@haloduck/core 2.0.5 → 2.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"haloduck-core.mjs","sources":["../../../../projects/haloduck/core/src/lib/guard/auth.guard.ts","../../../../projects/haloduck/core/src/lib/interceptor/dummy-member-id.interceptor.ts","../../../../projects/haloduck/core/src/lib/store/global/global.selectors.ts","../../../../projects/haloduck/core/src/lib/interceptor/group-id.interceptor.ts","../../../../projects/haloduck/core/src/lib/interceptor/id-token.interceptor.ts","../../../../projects/haloduck/core/src/lib/model/api-param.model.ts","../../../../projects/haloduck/core/src/lib/model/api-response.model.ts","../../../../projects/haloduck/core/src/lib/pipe/display-name.pipe.ts","../../../../projects/haloduck/core/src/lib/store/global/global.actions.ts","../../../../projects/haloduck/core/src/lib/service/auth.service.ts","../../../../projects/haloduck/core/src/lib/provider/config.provider.ts","../../../../projects/haloduck/core/src/lib/service/base-entity-api.service.ts","../../../../projects/haloduck/core/src/lib/service/cdn.service.ts","../../../../projects/haloduck/core/src/lib/service/global-api.service.ts","../../../../projects/haloduck/core/src/lib/service/group-api.service.ts","../../../../projects/haloduck/core/src/lib/service/member-api.service.ts","../../../../projects/haloduck/core/src/lib/store/component/table.store.ts","../../../../projects/haloduck/core/src/lib/store/component/group.store.ts","../../../../projects/haloduck/core/src/lib/store/component/member.store.ts","../../../../projects/haloduck/core/src/lib/store/global/global.effects.ts","../../../../projects/haloduck/core/src/lib/store/global/global.state.ts","../../../../projects/haloduck/core/src/lib/store/global/global.reducer.ts","../../../../projects/haloduck/core/src/public-api.ts","../../../../projects/haloduck/core/src/haloduck-core.ts"],"sourcesContent":["import { CanActivateFn, Router } from '@angular/router';\nimport { from, map, of, switchMap, take } from 'rxjs';\nimport { fetchAuthSession } from 'aws-amplify/auth';\n\nexport const authGuard: CanActivateFn = (route, state) => {\n return from(fetchAuthSession()).pipe(\n switchMap((session) => {\n if (session.tokens?.idToken) {\n return of(true);\n }\n\n window.location.href = '/authenticate';\n return of(false);\n })\n );\n};\n","import {\n HttpRequest,\n HttpEvent,\n HttpInterceptorFn,\n HttpHandlerFn,\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n// deprecated\nexport const dummyMemberIdInterceptor: HttpInterceptorFn = (\n req: HttpRequest<unknown>,\n next: HttpHandlerFn,\n): Observable<HttpEvent<unknown>> => {\n const dummyMemberId = localStorage.getItem('dummyMemberId');\n\n if (req.url.startsWith('http://localhost')) {\n if (dummyMemberId) {\n const clonedRequest = req.clone({\n setHeaders: {\n 'X-Dummy-Member-Id': dummyMemberId || '',\n },\n });\n\n return next(clonedRequest);\n }\n }\n\n return next(req);\n};\n","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport { GlobalStateEx } from './global.state';\n\nexport namespace GlobalSelectors {\n export const selectGlobalState = createFeatureSelector<GlobalStateEx>('global');\n\n export const isInitiated = createSelector(\n selectGlobalState,\n (state: GlobalStateEx) => state.initiated,\n );\n\n export const selectIsAuthenticated = createSelector(\n selectGlobalState,\n (state: GlobalStateEx) => state.isAuthenticated\n );\n\n export const selectProfile = createSelector(\n selectGlobalState,\n (state: GlobalStateEx) => state.profile\n );\n\n export const selectIsLoading = createSelector(\n selectGlobalState,\n (state: GlobalStateEx) => state.loadingReference > 0,\n );\n\n export const selectAcl = createSelector(\n selectGlobalState,\n (state: GlobalStateEx) => state.acl,\n );\n\n export const selectListMenuItem = createSelector(\n selectGlobalState,\n (state: GlobalStateEx) => state.listMenuItem,\n );\n\n export const selectIsSideMenuOpen = createSelector(\n selectGlobalState,\n (state: GlobalStateEx) => state.isSideMenuOpen,\n );\n\n export const selectLanguage = createSelector(\n selectGlobalState,\n (state: GlobalStateEx) => state.language,\n );\n\n export const canActivate = (\n resource: string,\n action: string,\n shouldStripTag?: boolean,\n ) =>\n createSelector(selectAcl, (acl) => {\n const allowedActions: string[] = [];\n\n switch (action) {\n case 'delete':\n allowedActions.push('delete');\n break;\n case 'create':\n allowedActions.push('delete');\n allowedActions.push('create');\n break;\n case 'update':\n allowedActions.push('delete');\n allowedActions.push('create');\n allowedActions.push('update');\n break;\n case 'read':\n allowedActions.push('delete');\n allowedActions.push('create');\n allowedActions.push('update');\n allowedActions.push('read');\n }\n\n const result = Object.keys(acl).some((aclKey) => {\n return ['delete', 'create', 'update', 'read'].some((_action) => {\n if (undefined === acl[aclKey][_action]) {\n return false;\n }\n\n let [_resource, _conditionsRaw] = resource.split(':');\n const _conditions = _conditionsRaw ? _conditionsRaw.split('|') : [];\n\n _resource =\n shouldStripTag && _resource.includes('/')\n ? _resource.split('/')[0]\n : _resource;\n\n const _resourceAclArray = acl[aclKey][_action];\n\n return _resourceAclArray.some((_resourceAclRaw: string) => {\n const [_resourceAcl, _conditionsAclRaw] =\n _resourceAclRaw.split(':');\n const _conditionsAcl = _conditionsAclRaw\n ? _conditionsAclRaw.split('|')\n : [];\n\n if (_resourceAcl === '*') {\n return true;\n }\n\n if (\n _resource === _resourceAcl &&\n allowedActions.includes(_action) &&\n (_conditions.length === 0 ||\n _conditionsAcl.some((_condition) =>\n _conditions.includes(_condition),\n ))\n ) {\n return true;\n }\n\n return false;\n });\n });\n });\n\n return result;\n });\n\n export const selectCurrentGroupId = createSelector(\n selectGlobalState,\n (state: GlobalStateEx) => state.currentGroup?.id,\n );\n\n export const selectCurrentGroup = createSelector(\n selectGlobalState,\n (state: GlobalStateEx) => state.currentGroup,\n );\n}\n","import { inject } from '@angular/core';\nimport {\n HttpRequest,\n HttpEvent,\n HttpInterceptorFn,\n HttpHandlerFn,\n} from '@angular/common/http';\nimport { Observable, switchMap, take } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { GlobalSelectors } from '../store/global/global.selectors';\nimport { GlobalStateEx } from '../store/global/global.state';\n\n// deprecated\nexport const groupIdInterceptor: HttpInterceptorFn = (\n req: HttpRequest<unknown>,\n next: HttpHandlerFn,\n): Observable<HttpEvent<unknown>> => {\n const store = inject(Store<GlobalStateEx>);\n const groupId$ = store.select(GlobalSelectors.selectCurrentGroupId);\n\n if (req.url.endsWith('/member/me')) return next(req);\n if (req.url.endsWith('/menu')) return next(req);\n if (req.url.endsWith('/acl')) return next(req);\n\n if (\n req.url.startsWith('https://api') ||\n req.url.startsWith('http://localhost')\n ) {\n return groupId$.pipe(\n switchMap((groupId) => {\n if (groupId) {\n const clonedRequest = req.clone({\n setHeaders: {\n 'X-Group-Id': groupId || '',\n },\n });\n return next(clonedRequest);\n }\n\n return next(req);\n }),\n );\n }\n\n return next(req);\n};\n","import {\n HttpRequest,\n HttpEvent,\n HttpInterceptorFn,\n HttpHandlerFn,\n} from '@angular/common/http';\nimport { from, Observable, of, switchMap } from 'rxjs';\nimport { fetchAuthSession } from 'aws-amplify/auth';\n\nexport const idTokenInterceptor: HttpInterceptorFn = (\n req: HttpRequest<unknown>,\n next: HttpHandlerFn\n): Observable<HttpEvent<unknown>> => {\n if (req.url.endsWith('/oauth2/token')) return next(req);\n\n if (req.url.startsWith('https://api')) {\n return from(fetchAuthSession()).pipe(\n switchMap((session) => {\n if (session.tokens?.idToken) {\n const clonedRequest = req.clone({\n setHeaders: {\n Authorization: `Bearer ${session.tokens.idToken}`,\n },\n });\n return next(clonedRequest);\n }\n\n return next(req);\n })\n );\n } else if (req.url.startsWith('https://auth') || req.url.startsWith('https://eleven-auth')) {\n return from(fetchAuthSession()).pipe(\n switchMap((session) => {\n if (session.tokens?.accessToken) {\n const clonedRequest = req.clone({\n setHeaders: {\n Authorization: `Bearer ${session.tokens.accessToken}`,\n },\n });\n return next(clonedRequest);\n }\n\n return next(req);\n })\n );\n }\n\n return next(req);\n};\n","export namespace SearchParams {\n export interface IData {\n filter: Filter;\n sort: Sort[];\n page?: Page;\n }\n\n export interface Filter {\n [key: string]: any;\n }\n\n export const SortDirectionAsc = 'asc';\n export const SortDirectionDesc = 'desc'; \n export type SortDirection = typeof SortDirectionAsc | typeof SortDirectionDesc | undefined;\n\n export interface Sort {\n field: string | string[];\n direction: SortDirection\n }\n\n export interface Page{\n limit: number;\n searchAfter?: any;\n }\n\n // export interface OrderAndPage{\n // size: number;\n // sort: Order[];\n // searchAfter?: any[];\n // }\n}","import { isDevMode } from '@angular/core';\nimport { Acl } from './acl.model';\nimport { MenuItem } from './menu-item.model';\nimport { Observable } from 'rxjs';\n\nexport interface ApiResponse {\n error: string;\n message?: string;\n data?: Acl | MenuItem[] | any;\n lastEvaluatedKey?: any;\n total?: number;\n}\n\nexport interface ApiError {\n error: string;\n message?: string;\n}\n\nexport function responseHandler(response: ApiResponse): ApiResponse {\n if (!response) {\n errorHandler({\n error: 'empty response',\n message: 'empty response',\n } as ApiError);\n }\n\n if (response.error != '00') {\n errorHandler({\n error: response.error,\n message: response.message,\n } as ApiError);\n }\n\n return response;\n}\n\nexport function errorHandler(err: ApiError): Observable<never> {\n isDevMode() && console.error('API Error: ', err);\n throw err;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Member } from '../store/component/member.store';\n\n@Pipe({\n name: 'displayName',\n})\nexport class DisplayNamePipe implements PipeTransform {\n transform(member: Member.IData | null | undefined): string {\n if (!member) return '';\n return (\n member.nickname?.trim() ||\n (member.firstName || '') + ' ' + (member.lastName || '')\n );\n }\n}\n","import { createAction, props } from '@ngrx/store';\nimport { Acl } from '../../model/acl.model';\nimport { MenuItem } from '../../model/menu-item.model';\nimport { Member } from '../../store/component/member.store';\nimport { Group } from '../../store//component/group.store';\n\nexport namespace GlobalActions {\n export const markInitiated = createAction(\n '[Global] Mark Initiated',\n props<{ initiated: boolean }>(),\n );\n\n export const clearAuthentication = createAction(\n '[Global] Clear Authentication',\n );\n\n export const setAuthenticated = createAction(\n '[Global] Set Authenticated',\n props<{ isAuthenticated: boolean }>(),\n );\n\n export const setProfile = createAction(\n '[Global] Set Profile',\n props<{ profile: Member.IData & { [key: string]: any } }>(),\n );\n\n export const increaseLoadingReference = createAction(\n '[Global] Increase Loading Reference',\n );\n\n export const decreaseLoadingReference = createAction(\n '[Global] Decrease Loading Reference',\n );\n\n export const setAcl = createAction('[Global] Set Acl', props<{ acl: Acl }>());\n\n export const setListMenuItem = createAction(\n '[Global] Set List Menu Item',\n props<{ listMenuItem: MenuItem[] }>(),\n );\n\n export const toggleSideMenu = createAction('[Global] Toggle Side Menu');\n\n export const closeSideMenu = createAction('[Global] Close Side Menu');\n\n export const setLanguage = createAction(\n '[Global] Set Language',\n props<{ language: string }>(),\n );\n\n export const setCurrentGroup = createAction(\n '[Global] Set Current Group',\n props<{ group: Group.IData & { [key: string]: any } }>(),\n );\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { distinctUntilChanged, Observable, tap } from 'rxjs';\nimport { GlobalSelectors } from '../store/global/global.selectors';\nimport { GlobalState } from '../store/global/global.state';\nimport { Member } from '../store/component/member.store';\nimport { Group } from '../store/component/group.store';\nimport { GlobalActions } from '../store/global/global.actions';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService<TM extends Member.IData, TG extends Group.IData> {\n private readonly globalStore = inject(Store<GlobalState<TM, TG>>);\n\n canActivate(\n resource: string,\n action: string,\n shouldStripTag?: boolean,\n ): Observable<boolean> {\n return this.globalStore\n .select(GlobalSelectors.canActivate(resource, action, shouldStripTag))\n .pipe(distinctUntilChanged());\n }\n\n getProfile(): Observable<TM | undefined> {\n return this.globalStore.select(\n GlobalSelectors.selectProfile,\n ) as Observable<TM>;\n }\n\n setProfile(profile: TM): void {\n return this.globalStore.dispatch(GlobalActions.setProfile({ profile }));\n }\n\n isAuthenticated(): Observable<boolean> {\n return this.globalStore\n .select(GlobalSelectors.selectIsAuthenticated)\n .pipe(distinctUntilChanged());\n }\n}\n","import { inject, Injectable, InjectionToken, Provider } from '@angular/core';\nimport { LngLat } from '../model/map.model';\n\nexport const defaultLanguage = { id: 'en', value: 'English' };\nexport const supportedLanguages = [\n defaultLanguage,\n { id: 'ko', value: '한국어' },\n];\n\nexport interface HaloduckCoreConfig {\n stage: string;\n appName: string;\n defaultLanguage: string;\n dateFormat: {\n long: string;\n short: string;\n };\n apiUrl: string;\n cdnUrl: string;\n map: {\n googleApiKey: string;\n mapId: string;\n defaultLngLat: LngLat;\n };\n}\n\nexport const HALODUCK_CORE_CONFIG = new InjectionToken<HaloduckCoreConfig>(\n 'HALODUCK_CORE_CONFIG',\n {\n providedIn: 'root',\n factory: () => ({\n stage: 'local',\n appName: 'please-register-app-name-via-provideHaloduckCoreConfig',\n defaultLanguage: defaultLanguage.id,\n dateFormat: {\n long: 'yyyy-MM-dd',\n short: 'yyMMdd',\n },\n apiUrl: 'https://please-register-via-provideHaloduckCoreConfig.com',\n cdnUrl: 'https://please-register-via-provideHaloduckCoreConfig.com',\n map: {\n mapId: 'please-register-map-id-via-provideHaloduckCoreConfig',\n googleApiKey:\n 'please-register-google-api-key-via-provideHaloduckCoreConfig',\n defaultLngLat: {\n lat: 37.575971,\n lng: 126.976800,\n },\n },\n }),\n },\n);\n\nexport function provideHaloduckCoreConfig(\n config: HaloduckCoreConfig,\n): Provider {\n return {\n provide: HALODUCK_CORE_CONFIG,\n useValue: config,\n };\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CoreService {\n private config = inject(HALODUCK_CORE_CONFIG);\n\n constructor() {}\n getStage(): string {\n return this.config.stage;\n }\n getAppName(): string {\n return this.config.appName;\n }\n getDefaultLanguage(): string {\n return this.config.defaultLanguage;\n }\n getApiUrl(): string {\n return this.config.apiUrl;\n }\n getCdnUrl(): string {\n return this.config.cdnUrl;\n }\n getDateFormatLong(): string {\n return this.config.dateFormat.long;\n }\n getDateFormatShort(): string {\n return this.config.dateFormat.short;\n }\n getGoogleApiKey(): string {\n return this.config.map.googleApiKey;\n }\n getMapId(): string {\n return this.config.map.mapId;\n }\n getDefaultLngLat(): LngLat {\n return this.config.map.defaultLngLat;\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { catchError, map, Observable } from 'rxjs';\nimport {\n ApiResponse,\n errorHandler,\n responseHandler,\n} from '..//model/api-response.model';\nimport { SearchParams } from '..//model/api-param.model';\nimport { CoreService } from '../provider/config.provider';\n\nexport interface ParentEntity {\n name: string;\n id: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BaseEntityApiService<T> {\n private readonly coreService = inject(CoreService);\n protected http = inject(HttpClient);\n protected apiUrl = this.coreService.getApiUrl();\n\n createEntity(entity: T, parent?: ParentEntity): Observable<ApiResponse> {\n return this.http\n .put<ApiResponse>(\n `${this.apiUrl}/${ parent ? parent.name + '/' + parent.id + '/' : '' }${this.getEntityName()}`,\n entity\n )\n .pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error))\n );\n }\n\n getListEntity(searchParams: SearchParams.IData, parent?: ParentEntity): Observable<ApiResponse> {\n const filter = JSON.stringify(searchParams.filter);\n const sort = JSON.stringify(searchParams.sort);\n const page = searchParams.page ? JSON.stringify(searchParams.page) : '';\n\n return this.http\n .get<ApiResponse>(\n `${this.apiUrl}/${ parent ? parent.name + '/' + parent.id + '/' : '' }${this.getEntityName()}`,\n {\n params: { filter, sort, page },\n }\n )\n .pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error))\n );\n }\n\n getEntityById(id: string, parent?: ParentEntity): Observable<ApiResponse> {\n return this.http\n .get<ApiResponse>(\n `${this.apiUrl}/${ parent ? parent.name + '/' + parent.id + '/' : '' }${this.getEntityName()}/${id}`\n )\n .pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error))\n );\n }\n\n updateEntityById(id: string, entity: T, parent?: ParentEntity): Observable<ApiResponse> {\n return this.http\n .patch<ApiResponse>(\n `${this.apiUrl}/${ parent ? parent.name + '/' + parent.id + '/' : '' }${this.getEntityName()}/${id}`,\n entity\n )\n .pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error))\n );\n }\n\n deleteEntityById(id: string, parent?: ParentEntity): Observable<ApiResponse> {\n return this.http\n .delete<ApiResponse>(\n `${this.apiUrl}/${ parent ? parent.name + '/' + parent.id + '/' : '' }${this.getEntityName()}/${id}`\n )\n .pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error))\n );\n }\n\n getEntityName(): string {\n throw new Error('Method not implemented.');\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { catchError, delay, map, Observable, switchMap, tap } from 'rxjs';\nimport {\n ApiResponse,\n errorHandler,\n responseHandler,\n} from '../model/api-response.model';\nimport { CoreService } from '../provider/config.provider';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CdnApiService {\n private readonly coreService = inject(CoreService);\n private http = inject(HttpClient);\n private apiUrl = this.coreService.getApiUrl();\n\n upload(file: File, keyPrefix: string): Observable<string> {\n return this.getPresignedPutUrl(`${keyPrefix}/${file.name}`).pipe(\n switchMap((response) => {\n const presignedUrl = response.data.url;\n const key = response.data.key;\n return this.uploadFile(presignedUrl, file).pipe(\n map(() => {\n return key;\n }),\n catchError((error) => {\n console.error('Upload error:', error);\n return errorHandler(error);\n })\n );\n }),\n catchError((error) => {\n console.error('Error getting presigned URL:', error);\n return errorHandler(error);\n })\n );\n }\n\n getPresignedPutUrl(key: string): Observable<ApiResponse> {\n return this.http\n .get<ApiResponse>(`${this.apiUrl}/tool/presignedPutUrl`, {\n params: { key },\n })\n .pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error))\n );\n }\n\n uploadFile(presignedUrl: string, file: File): Observable<any> {\n return this.http\n .put<any>(presignedUrl, file, {\n headers: { 'x-amz-tagging': 'expire1D=true' },\n })\n .pipe(catchError((error) => errorHandler(error)));\n }\n\n getPresignedGetUrl(key: string): Observable<string> {\n return this.http\n .get<ApiResponse>(`${this.apiUrl}/tool/presignedGetUrl`, {\n params: { key },\n })\n .pipe(\n delay(10000), // Simulate a delay of 1 second\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error)),\n map((response) => response.data.url)\n );\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { catchError, map, Observable } from 'rxjs';\nimport {\n ApiResponse,\n errorHandler,\n responseHandler,\n} from '..//model/api-response.model';\nimport { CoreService } from '../provider/config.provider';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GlobalApiService {\n private readonly coreService = inject(CoreService);\n private http = inject(HttpClient);\n private apiUrl = this.coreService.getApiUrl();\n\n getAcl(): Observable<ApiResponse> {\n return this.http.get<ApiResponse>(`${this.apiUrl}/acl`).pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error))\n );\n }\n\n getListMenuItem(): Observable<ApiResponse> {\n return this.http\n .get<ApiResponse>(`${this.apiUrl}/menu`)\n .pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error))\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseEntityApiService } from './base-entity-api.service';\nimport { Group } from '../store/component/group.store';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GroupApiService<T extends Group.IData> extends BaseEntityApiService<T> {\n override getEntityName(): string {\n return 'group';\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ApiResponse,\n errorHandler,\n responseHandler,\n} from '../model/api-response.model';\nimport { Observable } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { BaseEntityApiService } from './base-entity-api.service';\nimport { Member } from '../store/component/member.store';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MemberApiService<T extends Member.IData> extends BaseEntityApiService<T> {\n override getEntityName(): string {\n return 'member';\n }\n\n getProfile(): Observable<ApiResponse> {\n return this.http\n .get<ApiResponse>(\n `${this.apiUrl}/${this.getEntityName()}/me`,\n )\n .pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error)),\n );\n }\n\n checkMemberByEmail(email: string): Observable<ApiResponse> {\n return this.http\n .get<ApiResponse>(\n `${this.apiUrl}/${this.getEntityName()}/check/email/${email}`,\n )\n .pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error)),\n );\n }\n\n checkMemberByNickname(nickname: string): Observable<ApiResponse> {\n return this.http\n .get<ApiResponse>(\n `${this.apiUrl}/${this.getEntityName()}/check/nickname/${nickname}`,\n )\n .pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error)),\n );\n }\n\n registration(member: T): Observable<ApiResponse> {\n return this.http\n .put<ApiResponse>(\n `${this.apiUrl}/${this.getEntityName()}/registration`,\n member,\n )\n .pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error)),\n );\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { catchError, switchMap, tap, withLatestFrom } from 'rxjs';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { ApiResponse } from '../../model/api-response.model';\nimport { SearchParams } from '../../model/api-param.model';\n\nexport interface TableRowProperty {\n isExpanded?: boolean;\n isSelected?: boolean;\n expandMode?: string;\n bgColor?: string;\n}\n\nexport interface IRow<TExpandMode> {\n id?: string;\n parentId?: string;\n children?: IRow<TExpandMode>[];\n expandMode?: TExpandMode;\n isExpanded?: boolean;\n isSelected?: boolean;\n}\n\nexport interface ITableStateParent {\n id: string;\n name: string;\n}\n\nexport const ITableStateStatusCreating = 'creating';\nexport const ITableStateStatusCreated = 'created';\nexport const ITableStateStatusFailedToCreate = 'failedToCreate';\nexport const ITableStateStatusUpdating = 'updating';\nexport const ITableStateStatusUpdated = 'updated';\nexport const ITableStateStatusFailedToUpdate = 'failedToUpdate';\nexport const ITableStateStatusDeleting = 'deleting';\nexport const ITableStateStatusDeleted = 'deleted';\nexport const ITableStateStatusFailedToDelete = 'failedToDelete';\nexport const ITableStateStatusLoading = 'loading';\nexport const ITableStateStatusLoaded = 'loaded';\nexport const ITableStateStatusFailedToLoad = 'failedToLoad';\n\nexport interface ITableState<TData> {\n status?:\n | typeof ITableStateStatusCreating\n | typeof ITableStateStatusCreated\n | typeof ITableStateStatusFailedToCreate\n | typeof ITableStateStatusUpdating\n | typeof ITableStateStatusUpdated\n | typeof ITableStateStatusFailedToUpdate\n | typeof ITableStateStatusDeleting\n | typeof ITableStateStatusDeleted\n | typeof ITableStateStatusFailedToDelete\n | typeof ITableStateStatusLoading\n | typeof ITableStateStatusLoaded\n | typeof ITableStateStatusFailedToLoad;\n parent?: ITableStateParent;\n isLoading: boolean;\n filter: SearchParams.Filter;\n sort: SearchParams.Sort[];\n page: SearchParams.Page;\n listEntity: TData[];\n lastEvaluatedKey?: any;\n totalCount?: number;\n currentCount?: number;\n}\n\n@Injectable()\nexport class TableStore<\n TState extends ITableState<TData>,\n TData extends IRow<TExpandMode>,\n TExpandMode,\n> extends ComponentStore<TState> {\n // selectors\n public readonly status$ = this.select((state) => state.status);\n public readonly parent$ = this.select((state) => state.parent);\n public readonly filter$ = this.select((state) => state.filter);\n public readonly sort$ = this.select((state) => state.sort);\n public readonly page$ = this.select((state) => state.page);\n public readonly listEntity$ = this.select((state) => state.listEntity);\n public readonly totalCount$ = this.select((state) => state.totalCount);\n public readonly currentCount$ = this.select((state) => state.currentCount);\n public readonly isLoading$ = this.select((state) => state.isLoading);\n public readonly lastEvaluatedKey$ = this.select(\n (state) => state.lastEvaluatedKey,\n );\n\n // effects\n public readonly loadListEntity = this.effect((trigger$) =>\n trigger$.pipe(\n withLatestFrom(\n this.listEntity$,\n this.filter$,\n this.sort$,\n this.page$,\n this.parent$,\n ),\n switchMap(([, listEntity, filter, sort, page, parent]) => {\n this.updateStatus(ITableStateStatusLoading);\n\n return this.apiService\n .getListEntity({ filter, sort, page }, parent)\n .pipe(\n tap((response: ApiResponse) => {\n this.patchState({\n listEntity: [\n ...listEntity,\n ...(response.data ? response.data : []),\n ],\n totalCount: listEntity.length === 0 ? response.total : (this.get()?.totalCount),\n currentCount: listEntity.length + (response.data ? response.data.length : 0),\n lastEvaluatedKey: response.lastEvaluatedKey,\n } as Partial<TState>);\n\n this.updateStatus(ITableStateStatusLoaded);\n }),\n catchError(() => {\n this.updateStatus(ITableStateStatusFailedToLoad);\n return [];\n }),\n );\n }),\n ),\n );\n\n public readonly createEntity = this.effect<any>((trigger$) =>\n trigger$.pipe(\n withLatestFrom(this.listEntity$, this.parent$),\n switchMap(([data, listEntity, parent]) => {\n this.updateStatus(ITableStateStatusCreating);\n\n return this.apiService.createEntity(data, parent).pipe(\n tap((response: ApiResponse) => {\n this.patchState({\n listEntity: (() => {\n if (response.data?.parentId) {\n const updatedListEntity = listEntity.map((entity) => {\n if (entity.id === response.data.parentId) {\n return {\n ...entity,\n children: [\n ...(entity.children\n ? [response.data, ...entity.children]\n : [response.data]),\n ],\n };\n }\n return entity;\n });\n\n const parentExists = updatedListEntity.some(\n (entity) => entity.id === response.data.parentId,\n );\n\n if (!parentExists) {\n return updatedListEntity.map((entity) => ({\n ...entity,\n children: entity.children?.map((child) =>\n child.id === response.data.parentId\n ? {\n ...child,\n children: [\n ...(child.children\n ? [response.data, ...child.children]\n : [response.data]),\n ],\n }\n : child,\n ),\n }));\n }\n\n return updatedListEntity;\n }\n\n return [\n ...(response.data ? [response.data] : []),\n ...listEntity,\n ];\n })(),\n } as Partial<TState>);\n\n this.updateStatus(ITableStateStatusCreated);\n }),\n catchError(() => {\n this.updateStatus(ITableStateStatusFailedToCreate);\n return [];\n }),\n );\n }),\n ),\n );\n\n public readonly getEntityById = this.effect<string>((trigger$) =>\n trigger$.pipe(\n withLatestFrom(this.listEntity$, this.parent$),\n switchMap(([id, listEntity, parent]) => {\n this.updateStatus(ITableStateStatusLoading);\n\n return this.apiService.getEntityById(id, parent).pipe(\n tap((response: ApiResponse) => {\n this.patchState({\n listEntity: (() => {\n if (response.data?.parentId) {\n const updatedListEntity = listEntity.map((entity) => {\n if (entity.id === response.data.parentId) {\n return {\n ...entity,\n children: [\n ...(entity.children ? [response.data, ...entity.children] : [response.data]),\n ],\n };\n }\n return entity;\n });\n\n const parentExists = updatedListEntity.some(\n (entity) => entity.id === response.data.parentId,\n );\n\n if (!parentExists) {\n return updatedListEntity.map((entity) => ({\n ...entity,\n children: entity.children?.map((child) =>\n child.id === response.data.parentId\n ? {\n ...child,\n children: [\n ...(child.children ? [response.data, ...child.children] : [response.data]),\n ],\n }\n : child,\n ),\n }));\n }\n\n return updatedListEntity;\n }\n\n return listEntity.map((e) =>\n e.id === response.data.id ? response.data : e,\n );\n })(),\n } as Partial<TState>);\n\n this.updateStatus(ITableStateStatusLoaded);\n }),\n catchError(() => {\n this.updateStatus(ITableStateStatusFailedToLoad);\n return [];\n }),\n );\n }),\n ),\n );\n\n public readonly updateEntityById = this.effect<any>((trigger$) =>\n trigger$.pipe(\n withLatestFrom(this.listEntity$, this.parent$),\n switchMap(([data, listEntity, parent]) => {\n this.updateStatus(ITableStateStatusUpdating);\n\n return this.apiService.updateEntityById(data.id, data.entity, parent).pipe(\n tap((response: ApiResponse) => {\n this.patchState({\n listEntity: (() => {\n if (response.data?.parentId) {\n const updatedListEntity = listEntity.map((entity) => {\n if (entity.id === response.data.parentId) {\n return {\n ...entity,\n children: entity.children?.map((child) =>\n child.id === response.data.id ? response.data : child,\n ),\n };\n }\n return entity;\n });\n\n const parentExists = updatedListEntity.some(\n (entity) => entity.id === response.data.parentId,\n );\n\n if (!parentExists) {\n return updatedListEntity.map((entity) => ({\n ...entity,\n children: entity.children?.map((child) =>\n child.id === response.data.parentId\n ? {\n ...child,\n children: child.children?.map((grandChild) =>\n grandChild.id === response.data.id\n ? response.data\n : grandChild,\n ),\n }\n : child,\n ),\n }));\n }\n\n return updatedListEntity;\n }\n\n return listEntity.map((e) =>\n e.id === response.data.id ? response.data : e,\n );\n })(),\n } as Partial<TState>);\n\n this.updateStatus(ITableStateStatusUpdated);\n }),\n catchError(() => {\n this.updateStatus(ITableStateStatusFailedToUpdate);\n return [];\n }),\n );\n }),\n ),\n );\n\n public readonly deleteEntityById = this.effect<string>((trigger$) =>\n trigger$.pipe(\n withLatestFrom(this.listEntity$, this.parent$),\n switchMap(([id, listEntity, parent]) => {\n this.updateStatus(ITableStateStatusDeleting);\n\n return this.apiService.deleteEntityById(id, parent).pipe(\n tap(() => {\n this.patchState({\n listEntity: listEntity.filter((e) => e.id !== id),\n } as Partial<TState>);\n\n this.updateStatus(ITableStateStatusDeleted);\n }),\n catchError(() => {\n this.updateStatus(ITableStateStatusFailedToDelete);\n return [];\n }),\n );\n }),\n ),\n );\n\n // actions\n public readonly updateEntity = this.updater((state, data: TData) => ({\n ...state,\n listEntity: state.listEntity.map((e) => {\n return e.id === data.id ? data : e;\n }),\n }));\n\n public readonly updateStatus = this.updater(\n (state, status: TState['status']) => ({\n ...state,\n status,\n }),\n );\n\n public readonly setParent = this.updater(\n (state, parent?: ITableStateParent) => ({\n ...state,\n parent,\n }),\n );\n\n public readonly updateSortField = this.updater(\n (state, sort: SearchParams.Sort) => ({\n ...state,\n sort: [sort],\n }),\n );\n\n public readonly updateFilter = this.updater(\n (state, filter: SearchParams.Filter) => ({\n ...state,\n filter,\n }),\n );\n\n public readonly updatePage = this.updater(\n (state, page: SearchParams.Page) => ({\n ...state,\n page,\n }),\n );\n\n public readonly setExpandMode = this.updater(\n (state, { id, mode }: { id?: string; mode?: TExpandMode }) => ({\n ...state,\n listEntity: state.listEntity.map(\n (e) =>\n ({\n ...e,\n expandMode: e.id === id ? mode : e.expandMode,\n }) as TData,\n ),\n }),\n );\n\n public readonly toggleExpanded = this.updater(\n (state, { id }: { id?: string }) => ({\n ...state,\n listEntity: state.listEntity.map((e) => ({\n ...e,\n isExpanded: e.id === id ? !(e.isExpanded || false) : e.isExpanded,\n })),\n }),\n );\n\n public readonly showExpanded = this.updater(\n (state, { id }: { id?: string }) => ({\n ...state,\n listEntity: state.listEntity.map((e) => ({\n ...e,\n isExpanded: e.id === id ? true : e.isExpanded,\n })),\n }),\n );\n\n public readonly hideExpanded = this.updater(\n (state, { id }: { id?: string }) => ({\n ...state,\n listEntity: state.listEntity.map((e) => ({\n ...e,\n isExpanded: e.id === id ? false : e.isExpanded,\n })),\n }),\n );\n\n public readonly toggleSelected = this.updater(\n (state, { id }: { id?: string }) => ({\n ...state,\n listEntity: state.listEntity.map((e) => ({\n ...e,\n isSelected: e.id === id ? !(e.isSelected || false) : e.isSelected,\n })),\n }),\n );\n\n constructor(\n @Inject('initialState') protected initialState: TState,\n @Inject('apiService') protected apiService: any,\n ) {\n super(initialState);\n\n // this.loadListEntity();\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { SearchParams } from '../../model/api-param.model';\nimport { GroupApiService } from '../../service/group-api.service';\nimport { IRow, ITableState, TableStore, TableRowProperty } from './table.store';\n\nexport namespace Group {\n export interface IData {\n id?: string;\n createdTimestamp?: Date;\n updatedTimestamp?: Date;\n deletedTimestamp?: Date;\n active?: boolean;\n organizationId?: string;\n organization?: any; // TODO: Define a proper type for organization\n type?: string;\n name: string;\n codePrefix?: string;\n timezone?: string;\n language?: string;\n pictureKey?: string;\n }\n\n export interface IDataEx extends IData, TableRowProperty {\n isLoading?: boolean;\n }\n\n export interface Filter {\n dateRange?: {\n from: Date;\n to: Date;\n };\n organizationId?: string[];\n id?: string[];\n type?: string[];\n active?: boolean | null;\n approved?: boolean | null;\n keyword?: string;\n }\n}\n\n@Injectable()\nexport class GroupStore extends TableStore<\n ITableState<Group.IData>,\n IRow<never>,\n never\n> {\n constructor() {\n super(\n {\n isLoading: false,\n filter: {\n dateRange: undefined,\n organizationId: [],\n id: [],\n type: [],\n active: null,\n approved: null,\n keyword: '',\n },\n sort: [\n {\n field: 'created_timestamp',\n direction: SearchParams.SortDirectionDesc,\n },\n ],\n page: {\n limit: 10,\n },\n listEntity: [],\n },\n inject(GroupApiService),\n );\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { SearchParams } from '../../model/api-param.model';\nimport { IRow, ITableState, TableStore, TableRowProperty } from './table.store';\nimport { MemberApiService } from '../../service/member-api.service';\nimport { Group } from './group.store';\n\nexport namespace Member {\n export type MemberType =\n // | 'clinicDoctor'\n // | 'clinicAdmin'\n // | 'orthovisorAdvisor'\n // | 'orthovisorMaster'\n // | 'orthovisorAdmin'\n 'systemMember' | 'systemAdmin';\n\n export interface IData {\n id?: string;\n createdTimestamp?: Date;\n updatedTimestamp?: Date;\n active?: boolean;\n groupId?: string;\n group?: Group.IData;\n username?: string;\n role?: string;\n type?: string;\n lastName?: string;\n firstName?: string;\n nickname: string;\n mobile?: string;\n email?: string;\n status?: string;\n pictureKey?: string;\n }\n\n export interface IDataEx extends IData, TableRowProperty {\n isLoading?: boolean;\n // isUpdating?: boolean;\n // isDeleting?: boolean;\n }\n\n export interface Filter {\n dateRange?: {\n from: Date;\n to: Date;\n };\n organizationId: string[];\n groupId: string[];\n type: string[];\n active: boolean | null;\n keyword: string;\n }\n}\n\n@Injectable()\nexport class MemberStore extends TableStore<\n ITableState<Member.IData>,\n IRow<never>,\n never\n> {\n constructor() {\n super(\n {\n isLoading: false,\n filter: {\n dateRange: undefined,\n organizationId: [],\n groupId: [],\n type: [],\n active: null,\n keyword: '',\n },\n sort: [\n {\n field: 'created_timestamp',\n direction: SearchParams.SortDirectionDesc,\n },\n ],\n page: {\n limit: 10,\n },\n listEntity: [],\n },\n inject(MemberApiService),\n );\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { forkJoin, of } from 'rxjs';\nimport { catchError, finalize, mergeMap, withLatestFrom } from 'rxjs/operators';\nimport { GlobalSelectors } from './global.selectors';\nimport { GlobalApiService } from '../../service/global-api.service';\nimport { GlobalActions } from './global.actions';\nimport { MemberApiService } from '../../service/member-api.service';\nimport { GroupApiService } from '../../service/group-api.service';\nimport { GlobalState } from './global.state';\nimport { Member } from '../component/member.store';\nimport { Group } from '../component/group.store';\n\n@Injectable()\nexport class GlobalEffects<TM extends Member.IData, TG extends Group.IData> {\n private actions$ = inject(Actions);\n private memberApiService = inject(MemberApiService);\n private globalApiService = inject(GlobalApiService);\n private groupApiService = inject(GroupApiService);\n private store = inject(Store<GlobalState<TM, TG>>);\n\n setAuthenticated$ = createEffect(() =>\n this.actions$.pipe(\n ofType(GlobalActions.setAuthenticated),\n withLatestFrom(this.store.select(GlobalSelectors.selectIsAuthenticated)),\n mergeMap(([action, isAuthenticated]) => {\n if (isAuthenticated) {\n this.store.dispatch(GlobalActions.increaseLoadingReference());\n\n return forkJoin({\n profile: this.memberApiService.getProfile(),\n acl: this.globalApiService.getAcl(),\n listMenuItem: this.globalApiService.getListMenuItem(),\n }).pipe(\n mergeMap(({ profile, acl, listMenuItem }) => {\n const groupId = profile.data.groupId;\n return this.groupApiService.getEntityById(groupId).pipe(\n mergeMap((group) => [\n GlobalActions.setProfile({ profile: profile.data }),\n GlobalActions.setAcl({ acl: acl.data }),\n GlobalActions.setListMenuItem({\n listMenuItem: listMenuItem.data,\n }),\n GlobalActions.setCurrentGroup({ group: group.data }),\n GlobalActions.markInitiated( {initiated:true}),\n ])\n );\n }),\n catchError(() => of(GlobalActions.clearAuthentication())),\n finalize(() => {\n this.store.dispatch(GlobalActions.decreaseLoadingReference());\n })\n );\n }\n return of(GlobalActions.clearAuthentication());\n })\n )\n );\n}\n","import { Acl } from '../../model/acl.model';\nimport { MenuItem } from '../../model/menu-item.model';\nimport { Group, Member } from '../component';\n\nexport interface GlobalState<TM extends Member.IData, TG extends Group.IData> {\n initiated: boolean;\n isAuthenticated: boolean;\n loadingReference: number;\n acl: Acl;\n listMenuItem: MenuItem[];\n isSideMenuOpen: boolean;\n language: string;\n profile?: TM;\n currentGroup?: TG;\n}\n\nexport type GlobalStateEx = GlobalState<Member.IData & { [key: string]: any }, Group.IData & { [key: string]: any }>;\n\nexport const initialState: GlobalStateEx = {\n initiated: false,\n isAuthenticated: false,\n loadingReference: 0,\n acl: {},\n listMenuItem: [],\n isSideMenuOpen: false,\n language: 'en', // TODO: Use a proper language management system\n profile: undefined,\n currentGroup: undefined,\n};\n","import { createReducer, on } from '@ngrx/store';\nimport { GlobalActions } from './global.actions';\nimport { initialState } from './global.state';\n\n\nexport const globalReducer = createReducer(\n initialState,\n on(GlobalActions.markInitiated, (state) => ({\n ...state,\n initiated: true,\n })),\n on(GlobalActions.setAuthenticated, (state, { isAuthenticated }) => ({\n ...state,\n isAuthenticated,\n })),\n on(GlobalActions.setProfile, (state, { profile }) => ({\n ...state,\n profile,\n })),\n on(GlobalActions.increaseLoadingReference, (state) => ({\n ...state,\n loadingReference: state.loadingReference + 1,\n })),\n on(GlobalActions.decreaseLoadingReference, (state) => ({\n ...state,\n loadingReference: Math.max(state.loadingReference - 1, 0),\n })),\n on(GlobalActions.setAcl, (state, { acl }) => ({\n ...state,\n acl,\n })),\n on(GlobalActions.setListMenuItem, (state, { listMenuItem }) => ({\n ...state,\n listMenuItem,\n })),\n on(GlobalActions.toggleSideMenu, (state) => ({\n ...state,\n isSideMenuOpen: !state.isSideMenuOpen,\n })),\n on(GlobalActions.closeSideMenu, (state) => ({\n ...state,\n isSideMenuOpen: false,\n })),\n on(GlobalActions.setLanguage, (state, { language }) => ({\n ...state,\n language,\n })),\n on(GlobalActions.setCurrentGroup, (state, { group }) => ({\n ...state,\n currentGroup: group,\n })),\n);\n","/*\n * Public API Surface of core\n */\n\nexport * from './lib';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["map","catchError","withLatestFrom"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"haloduck-core.mjs","sources":["../../../../projects/haloduck/core/src/lib/guard/auth.guard.ts","../../../../projects/haloduck/core/src/lib/interceptor/dummy-member-id.interceptor.ts","../../../../projects/haloduck/core/src/lib/store/global/global.selectors.ts","../../../../projects/haloduck/core/src/lib/interceptor/group-id.interceptor.ts","../../../../projects/haloduck/core/src/lib/interceptor/id-token.interceptor.ts","../../../../projects/haloduck/core/src/lib/model/api-param.model.ts","../../../../projects/haloduck/core/src/lib/model/api-response.model.ts","../../../../projects/haloduck/core/src/lib/pipe/display-name.pipe.ts","../../../../projects/haloduck/core/src/lib/store/global/global.actions.ts","../../../../projects/haloduck/core/src/lib/service/auth.service.ts","../../../../projects/haloduck/core/src/lib/provider/config.provider.ts","../../../../projects/haloduck/core/src/lib/service/base-entity-api.service.ts","../../../../projects/haloduck/core/src/lib/service/cdn.service.ts","../../../../projects/haloduck/core/src/lib/service/global-api.service.ts","../../../../projects/haloduck/core/src/lib/service/group-api.service.ts","../../../../projects/haloduck/core/src/lib/service/member-api.service.ts","../../../../projects/haloduck/core/src/lib/store/component/table.store.ts","../../../../projects/haloduck/core/src/lib/store/component/group.store.ts","../../../../projects/haloduck/core/src/lib/store/component/member.store.ts","../../../../projects/haloduck/core/src/lib/store/global/global.effects.ts","../../../../projects/haloduck/core/src/lib/store/global/global.state.ts","../../../../projects/haloduck/core/src/lib/store/global/global.reducer.ts","../../../../projects/haloduck/core/src/public-api.ts","../../../../projects/haloduck/core/src/haloduck-core.ts"],"sourcesContent":["import { CanActivateFn, Router } from '@angular/router';\nimport { from, map, of, switchMap, take } from 'rxjs';\nimport { fetchAuthSession } from 'aws-amplify/auth';\n\nexport const authGuard: CanActivateFn = (route, state) => {\n return from(fetchAuthSession()).pipe(\n switchMap((session) => {\n if (session.tokens?.idToken) {\n return of(true);\n }\n\n window.location.href = '/authenticate';\n return of(false);\n })\n );\n};\n","import {\n HttpRequest,\n HttpEvent,\n HttpInterceptorFn,\n HttpHandlerFn,\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\n// deprecated\nexport const dummyMemberIdInterceptor: HttpInterceptorFn = (\n req: HttpRequest<unknown>,\n next: HttpHandlerFn,\n): Observable<HttpEvent<unknown>> => {\n const dummyMemberId = localStorage.getItem('dummyMemberId');\n\n if (req.url.startsWith('http://localhost')) {\n if (dummyMemberId) {\n const clonedRequest = req.clone({\n setHeaders: {\n 'X-Dummy-Member-Id': dummyMemberId || '',\n },\n });\n\n return next(clonedRequest);\n }\n }\n\n return next(req);\n};\n","import { createSelector, createFeatureSelector } from '@ngrx/store';\nimport { GlobalStateEx } from './global.state';\n\nexport namespace GlobalSelectors {\n export const selectGlobalState = createFeatureSelector<GlobalStateEx>('global');\n\n export const isInitiated = createSelector(\n selectGlobalState,\n (state: GlobalStateEx) => state.initiated,\n );\n\n export const selectIsAuthenticated = createSelector(\n selectGlobalState,\n (state: GlobalStateEx) => state.isAuthenticated\n );\n\n export const selectProfile = createSelector(\n selectGlobalState,\n (state: GlobalStateEx) => state.profile\n );\n\n export const selectIsLoading = createSelector(\n selectGlobalState,\n (state: GlobalStateEx) => state.loadingReference > 0,\n );\n\n export const selectAcl = createSelector(\n selectGlobalState,\n (state: GlobalStateEx) => state.acl,\n );\n\n export const selectListMenuItem = createSelector(\n selectGlobalState,\n (state: GlobalStateEx) => state.listMenuItem,\n );\n\n export const selectIsSideMenuOpen = createSelector(\n selectGlobalState,\n (state: GlobalStateEx) => state.isSideMenuOpen,\n );\n\n export const selectLanguage = createSelector(\n selectGlobalState,\n (state: GlobalStateEx) => state.language,\n );\n\n export const canActivate = (\n resource: string,\n action: string,\n shouldStripTag?: boolean,\n ) =>\n createSelector(selectAcl, (acl) => {\n const allowedActions: string[] = [];\n\n switch (action) {\n case 'delete':\n allowedActions.push('delete');\n break;\n case 'create':\n allowedActions.push('delete');\n allowedActions.push('create');\n break;\n case 'update':\n allowedActions.push('delete');\n allowedActions.push('create');\n allowedActions.push('update');\n break;\n case 'read':\n allowedActions.push('delete');\n allowedActions.push('create');\n allowedActions.push('update');\n allowedActions.push('read');\n }\n\n const result = Object.keys(acl).some((aclKey) => {\n return ['delete', 'create', 'update', 'read'].some((_action) => {\n if (undefined === acl[aclKey][_action]) {\n return false;\n }\n\n let [_resource, _conditionsRaw] = resource.split(':');\n const _conditions = _conditionsRaw ? _conditionsRaw.split('|') : [];\n\n _resource =\n shouldStripTag && _resource.includes('/')\n ? _resource.split('/')[0]\n : _resource;\n\n const _resourceAclArray = acl[aclKey][_action];\n\n return _resourceAclArray.some((_resourceAclRaw: string) => {\n const [_resourceAcl, _conditionsAclRaw] =\n _resourceAclRaw.split(':');\n const _conditionsAcl = _conditionsAclRaw\n ? _conditionsAclRaw.split('|')\n : [];\n\n if (_resourceAcl === '*') {\n return true;\n }\n\n if (\n _resource === _resourceAcl &&\n allowedActions.includes(_action) &&\n (_conditions.length === 0 ||\n _conditionsAcl.some((_condition) =>\n _conditions.includes(_condition),\n ))\n ) {\n return true;\n }\n\n return false;\n });\n });\n });\n\n return result;\n });\n\n export const selectCurrentGroupId = createSelector(\n selectGlobalState,\n (state: GlobalStateEx) => state.currentGroup?.id,\n );\n\n export const selectCurrentGroup = createSelector(\n selectGlobalState,\n (state: GlobalStateEx) => state.currentGroup,\n );\n}\n","import { inject } from '@angular/core';\nimport {\n HttpRequest,\n HttpEvent,\n HttpInterceptorFn,\n HttpHandlerFn,\n} from '@angular/common/http';\nimport { Observable, switchMap, take } from 'rxjs';\nimport { Store } from '@ngrx/store';\nimport { GlobalSelectors } from '../store/global/global.selectors';\nimport { GlobalStateEx } from '../store/global/global.state';\n\n// deprecated\nexport const groupIdInterceptor: HttpInterceptorFn = (\n req: HttpRequest<unknown>,\n next: HttpHandlerFn,\n): Observable<HttpEvent<unknown>> => {\n const store = inject(Store<GlobalStateEx>);\n const groupId$ = store.select(GlobalSelectors.selectCurrentGroupId);\n\n if (req.url.endsWith('/member/me')) return next(req);\n if (req.url.endsWith('/menu')) return next(req);\n if (req.url.endsWith('/acl')) return next(req);\n\n if (\n req.url.startsWith('https://api') ||\n req.url.startsWith('http://localhost')\n ) {\n return groupId$.pipe(\n switchMap((groupId) => {\n if (groupId) {\n const clonedRequest = req.clone({\n setHeaders: {\n 'X-Group-Id': groupId || '',\n },\n });\n return next(clonedRequest);\n }\n\n return next(req);\n }),\n );\n }\n\n return next(req);\n};\n","import {\n HttpRequest,\n HttpEvent,\n HttpInterceptorFn,\n HttpHandlerFn,\n} from '@angular/common/http';\nimport { from, Observable, of, switchMap } from 'rxjs';\nimport { fetchAuthSession } from 'aws-amplify/auth';\n\nexport const idTokenInterceptor: HttpInterceptorFn = (\n req: HttpRequest<unknown>,\n next: HttpHandlerFn\n): Observable<HttpEvent<unknown>> => {\n if (req.url.endsWith('/oauth2/token')) return next(req);\n\n if (req.url.startsWith('https://api')) {\n return from(fetchAuthSession()).pipe(\n switchMap((session) => {\n if (session.tokens?.idToken) {\n const clonedRequest = req.clone({\n setHeaders: {\n Authorization: `Bearer ${session.tokens.idToken}`,\n },\n });\n return next(clonedRequest);\n }\n\n return next(req);\n })\n );\n } else if (req.url.startsWith('https://auth') || req.url.startsWith('https://eleven-auth')) {\n return from(fetchAuthSession()).pipe(\n switchMap((session) => {\n if (session.tokens?.accessToken) {\n const clonedRequest = req.clone({\n setHeaders: {\n Authorization: `Bearer ${session.tokens.accessToken}`,\n },\n });\n return next(clonedRequest);\n }\n\n return next(req);\n })\n );\n }\n\n return next(req);\n};\n","export namespace SearchParams {\n export interface IData {\n filter: Filter;\n sort: Sort[];\n page?: Page;\n }\n\n export interface Filter {\n [key: string]: any;\n }\n\n export const SortDirectionAsc = 'asc';\n export const SortDirectionDesc = 'desc'; \n export type SortDirection = typeof SortDirectionAsc | typeof SortDirectionDesc | undefined;\n\n export interface Sort {\n field: string | string[];\n direction: SortDirection\n }\n\n export interface Page{\n limit: number;\n searchAfter?: any;\n }\n\n // export interface OrderAndPage{\n // size: number;\n // sort: Order[];\n // searchAfter?: any[];\n // }\n}","import { isDevMode } from '@angular/core';\nimport { Acl } from './acl.model';\nimport { MenuItem } from './menu-item.model';\nimport { Observable } from 'rxjs';\n\nexport interface ApiResponse {\n error: string;\n message?: string;\n data?: Acl | MenuItem[] | any;\n lastEvaluatedKey?: any;\n total?: number;\n}\n\nexport interface ApiError {\n error: string;\n message?: string;\n}\n\nexport function responseHandler(response: ApiResponse): ApiResponse {\n if (!response) {\n errorHandler({\n error: 'empty response',\n message: 'empty response',\n } as ApiError);\n }\n\n if (response.error != '00') {\n errorHandler({\n error: response.error,\n message: response.message,\n } as ApiError);\n }\n\n return response;\n}\n\nexport function errorHandler(err: ApiError): Observable<never> {\n isDevMode() && console.error('API Error: ', err);\n throw err;\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { Member } from '../store/component/member.store';\n\n@Pipe({\n name: 'displayName',\n})\nexport class DisplayNamePipe implements PipeTransform {\n transform(member: Member.IData | null | undefined): string {\n if (!member) return '';\n return (\n member.nickname?.trim() ||\n (member.firstName || '') + ' ' + (member.lastName || '')\n );\n }\n}\n","import { createAction, props } from '@ngrx/store';\nimport { Acl } from '../../model/acl.model';\nimport { MenuItem } from '../../model/menu-item.model';\nimport { Member } from '../../store/component/member.store';\nimport { Group } from '../../store//component/group.store';\n\nexport namespace GlobalActions {\n export const markInitiated = createAction(\n '[Global] Mark Initiated',\n props<{ initiated: boolean }>(),\n );\n\n export const clearAuthentication = createAction(\n '[Global] Clear Authentication',\n );\n\n export const setAuthenticated = createAction(\n '[Global] Set Authenticated',\n props<{ isAuthenticated: boolean }>(),\n );\n\n export const setProfile = createAction(\n '[Global] Set Profile',\n props<{ profile: Member.IData & { [key: string]: any } }>(),\n );\n\n export const increaseLoadingReference = createAction(\n '[Global] Increase Loading Reference',\n );\n\n export const decreaseLoadingReference = createAction(\n '[Global] Decrease Loading Reference',\n );\n\n export const setAcl = createAction('[Global] Set Acl', props<{ acl: Acl }>());\n\n export const setListMenuItem = createAction(\n '[Global] Set List Menu Item',\n props<{ listMenuItem: MenuItem[] }>(),\n );\n\n export const toggleSideMenu = createAction('[Global] Toggle Side Menu');\n\n export const closeSideMenu = createAction('[Global] Close Side Menu');\n\n export const setLanguage = createAction(\n '[Global] Set Language',\n props<{ language: string }>(),\n );\n\n export const setCurrentGroup = createAction(\n '[Global] Set Current Group',\n props<{ group: Group.IData & { [key: string]: any } }>(),\n );\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { distinctUntilChanged, Observable, tap } from 'rxjs';\nimport { GlobalSelectors } from '../store/global/global.selectors';\nimport { GlobalState } from '../store/global/global.state';\nimport { Member } from '../store/component/member.store';\nimport { Group } from '../store/component/group.store';\nimport { GlobalActions } from '../store/global/global.actions';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AuthService<TM extends Member.IData, TG extends Group.IData> {\n private readonly globalStore = inject(Store<GlobalState<TM, TG>>);\n\n canActivate(\n resource: string,\n action: string,\n shouldStripTag?: boolean,\n ): Observable<boolean> {\n return this.globalStore\n .select(GlobalSelectors.canActivate(resource, action, shouldStripTag))\n .pipe(distinctUntilChanged());\n }\n\n getProfile(): Observable<TM | undefined> {\n return this.globalStore.select(\n GlobalSelectors.selectProfile,\n ) as Observable<TM>;\n }\n\n setProfile(profile: TM): void {\n return this.globalStore.dispatch(GlobalActions.setProfile({ profile }));\n }\n\n isAuthenticated(): Observable<boolean> {\n return this.globalStore\n .select(GlobalSelectors.selectIsAuthenticated)\n .pipe(distinctUntilChanged());\n }\n}\n","import { inject, Injectable, InjectionToken, Provider } from '@angular/core';\nimport { LngLat } from '../model/map.model';\n\nexport const defaultLanguage = { id: 'en', value: 'English' };\nexport const supportedLanguages = [\n defaultLanguage,\n { id: 'ko', value: '한국어' },\n];\n\nexport interface HaloduckCoreConfig {\n stage: string;\n appName: string;\n defaultLanguage: string;\n dateFormat: {\n long: string;\n short: string;\n };\n apiUrl: string;\n cdnUrl: string;\n map: {\n googleApiKey: string;\n mapId: string;\n defaultLngLat: LngLat;\n };\n}\n\nexport const HALODUCK_CORE_CONFIG = new InjectionToken<HaloduckCoreConfig>(\n 'HALODUCK_CORE_CONFIG',\n {\n providedIn: 'root',\n factory: () => ({\n stage: 'local',\n appName: 'please-register-app-name-via-provideHaloduckCoreConfig',\n defaultLanguage: defaultLanguage.id,\n dateFormat: {\n long: 'yyyy-MM-dd',\n short: 'yyMMdd',\n },\n apiUrl: 'https://please-register-via-provideHaloduckCoreConfig.com',\n cdnUrl: 'https://please-register-via-provideHaloduckCoreConfig.com',\n map: {\n mapId: 'please-register-map-id-via-provideHaloduckCoreConfig',\n googleApiKey:\n 'please-register-google-api-key-via-provideHaloduckCoreConfig',\n defaultLngLat: {\n lat: 37.575971,\n lng: 126.976800,\n },\n },\n }),\n },\n);\n\nexport function provideHaloduckCoreConfig(\n config: HaloduckCoreConfig,\n): Provider {\n return {\n provide: HALODUCK_CORE_CONFIG,\n useValue: config,\n };\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CoreService {\n private config = inject(HALODUCK_CORE_CONFIG);\n\n constructor() {}\n getStage(): string {\n return this.config.stage;\n }\n getAppName(): string {\n return this.config.appName;\n }\n getDefaultLanguage(): string {\n return this.config.defaultLanguage;\n }\n getApiUrl(): string {\n return this.config.apiUrl;\n }\n getCdnUrl(): string {\n return this.config.cdnUrl;\n }\n getDateFormatLong(): string {\n return this.config.dateFormat.long;\n }\n getDateFormatShort(): string {\n return this.config.dateFormat.short;\n }\n getGoogleApiKey(): string {\n return this.config.map.googleApiKey;\n }\n getMapId(): string {\n return this.config.map.mapId;\n }\n getDefaultLngLat(): LngLat {\n return this.config.map.defaultLngLat;\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { catchError, map, Observable } from 'rxjs';\nimport {\n ApiResponse,\n errorHandler,\n responseHandler,\n} from '..//model/api-response.model';\nimport { SearchParams } from '..//model/api-param.model';\nimport { CoreService } from '../provider/config.provider';\n\nexport interface ParentEntity {\n name: string;\n id: string;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class BaseEntityApiService<T> {\n private readonly coreService = inject(CoreService);\n protected http = inject(HttpClient);\n protected apiUrl = this.coreService.getApiUrl();\n\n createEntity(entity: T, parent?: ParentEntity): Observable<ApiResponse> {\n return this.http\n .put<ApiResponse>(\n `${this.apiUrl}/${ parent ? parent.name + '/' + parent.id + '/' : '' }${this.getEntityName()}`,\n entity\n )\n .pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error))\n );\n }\n\n getListEntity(searchParams: SearchParams.IData, parent?: ParentEntity): Observable<ApiResponse> {\n const filter = JSON.stringify(searchParams.filter);\n const sort = JSON.stringify(searchParams.sort);\n const page = searchParams.page ? JSON.stringify(searchParams.page) : '';\n\n return this.http\n .get<ApiResponse>(\n `${this.apiUrl}/${ parent ? parent.name + '/' + parent.id + '/' : '' }${this.getEntityName()}`,\n {\n params: { filter, sort, page },\n }\n )\n .pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error))\n );\n }\n\n getEntityById(id: string, parent?: ParentEntity): Observable<ApiResponse> {\n return this.http\n .get<ApiResponse>(\n `${this.apiUrl}/${ parent ? parent.name + '/' + parent.id + '/' : '' }${this.getEntityName()}/${id}`\n )\n .pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error))\n );\n }\n\n updateEntityById(id: string, entity: T, parent?: ParentEntity): Observable<ApiResponse> {\n return this.http\n .patch<ApiResponse>(\n `${this.apiUrl}/${ parent ? parent.name + '/' + parent.id + '/' : '' }${this.getEntityName()}/${id}`,\n entity\n )\n .pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error))\n );\n }\n\n deleteEntityById(id: string, parent?: ParentEntity): Observable<ApiResponse> {\n return this.http\n .delete<ApiResponse>(\n `${this.apiUrl}/${ parent ? parent.name + '/' + parent.id + '/' : '' }${this.getEntityName()}/${id}`\n )\n .pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error))\n );\n }\n\n getEntityName(): string {\n throw new Error('Method not implemented.');\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { catchError, delay, map, Observable, switchMap, tap } from 'rxjs';\nimport {\n ApiResponse,\n errorHandler,\n responseHandler,\n} from '../model/api-response.model';\nimport { CoreService } from '../provider/config.provider';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CdnApiService {\n private readonly coreService = inject(CoreService);\n private http = inject(HttpClient);\n private apiUrl = this.coreService.getApiUrl();\n\n upload(file: File, keyPrefix: string): Observable<string> {\n return this.getPresignedPutUrl(`${keyPrefix}/${file.name}`).pipe(\n switchMap((response) => {\n const presignedUrl = response.data.url;\n const key = response.data.key;\n return this.uploadFile(presignedUrl, file).pipe(\n map(() => {\n return key;\n }),\n catchError((error) => {\n console.error('Upload error:', error);\n return errorHandler(error);\n })\n );\n }),\n catchError((error) => {\n console.error('Error getting presigned URL:', error);\n return errorHandler(error);\n })\n );\n }\n\n getPresignedPutUrl(key: string): Observable<ApiResponse> {\n return this.http\n .get<ApiResponse>(`${this.apiUrl}/tool/presignedPutUrl`, {\n params: { key },\n })\n .pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error))\n );\n }\n\n uploadFile(presignedUrl: string, file: File): Observable<any> {\n return this.http\n .put<any>(presignedUrl, file, {\n headers: { 'x-amz-tagging': 'expire1D=true' },\n })\n .pipe(catchError((error) => errorHandler(error)));\n }\n\n getPresignedGetUrl(key: string): Observable<string> {\n return this.http\n .get<ApiResponse>(`${this.apiUrl}/tool/presignedGetUrl`, {\n params: { key },\n })\n .pipe(\n delay(10000), // Simulate a delay of 1 second\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error)),\n map((response) => response.data.url)\n );\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { catchError, map, Observable } from 'rxjs';\nimport {\n ApiResponse,\n errorHandler,\n responseHandler,\n} from '..//model/api-response.model';\nimport { CoreService } from '../provider/config.provider';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GlobalApiService {\n private readonly coreService = inject(CoreService);\n private http = inject(HttpClient);\n private apiUrl = this.coreService.getApiUrl();\n\n getAcl(): Observable<ApiResponse> {\n return this.http.get<ApiResponse>(`${this.apiUrl}/acl`).pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error))\n );\n }\n\n getListMenuItem(): Observable<ApiResponse> {\n return this.http\n .get<ApiResponse>(`${this.apiUrl}/menu`)\n .pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error))\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseEntityApiService } from './base-entity-api.service';\nimport { Group } from '../store/component/group.store';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GroupApiService<T extends Group.IData> extends BaseEntityApiService<T> {\n override getEntityName(): string {\n return 'group';\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n ApiResponse,\n errorHandler,\n responseHandler,\n} from '../model/api-response.model';\nimport { Observable } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\nimport { BaseEntityApiService } from './base-entity-api.service';\nimport { Member } from '../store/component/member.store';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class MemberApiService<T extends Member.IData> extends BaseEntityApiService<T> {\n override getEntityName(): string {\n return 'member';\n }\n\n getProfile(): Observable<ApiResponse> {\n return this.http\n .get<ApiResponse>(\n `${this.apiUrl}/${this.getEntityName()}/me`,\n )\n .pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error)),\n );\n }\n\n checkMemberByEmail(email: string): Observable<ApiResponse> {\n return this.http\n .get<ApiResponse>(\n `${this.apiUrl}/${this.getEntityName()}/check/email/${email}`,\n )\n .pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error)),\n );\n }\n\n checkMemberByNickname(nickname: string): Observable<ApiResponse> {\n return this.http\n .get<ApiResponse>(\n `${this.apiUrl}/${this.getEntityName()}/check/nickname/${nickname}`,\n )\n .pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error)),\n );\n }\n\n registration(member: T): Observable<ApiResponse> {\n return this.http\n .put<ApiResponse>(\n `${this.apiUrl}/${this.getEntityName()}/registration`,\n member,\n )\n .pipe(\n map((response) => responseHandler(response)),\n catchError((error) => errorHandler(error)),\n );\n }\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { catchError, switchMap, tap, withLatestFrom } from 'rxjs';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { ApiResponse } from '../../model/api-response.model';\nimport { SearchParams } from '../../model/api-param.model';\n\nexport interface TableRowProperty {\n isExpanded?: boolean;\n isSelected?: boolean;\n expandMode?: string;\n bgColor?: string;\n}\n\nexport interface IRow<TExpandMode> {\n id?: string;\n parentId?: string;\n children?: IRow<TExpandMode>[];\n expandMode?: TExpandMode;\n isExpanded?: boolean;\n isSelected?: boolean;\n}\n\nexport interface ITableStateParent {\n id: string;\n name: string;\n}\n\nexport const ITableStateStatusCreating = 'creating';\nexport const ITableStateStatusCreated = 'created';\nexport const ITableStateStatusFailedToCreate = 'failedToCreate';\nexport const ITableStateStatusUpdating = 'updating';\nexport const ITableStateStatusUpdated = 'updated';\nexport const ITableStateStatusFailedToUpdate = 'failedToUpdate';\nexport const ITableStateStatusDeleting = 'deleting';\nexport const ITableStateStatusDeleted = 'deleted';\nexport const ITableStateStatusFailedToDelete = 'failedToDelete';\nexport const ITableStateStatusLoading = 'loading';\nexport const ITableStateStatusLoaded = 'loaded';\nexport const ITableStateStatusFailedToLoad = 'failedToLoad';\n\nexport interface ITableState<TData> {\n status?:\n | typeof ITableStateStatusCreating\n | typeof ITableStateStatusCreated\n | typeof ITableStateStatusFailedToCreate\n | typeof ITableStateStatusUpdating\n | typeof ITableStateStatusUpdated\n | typeof ITableStateStatusFailedToUpdate\n | typeof ITableStateStatusDeleting\n | typeof ITableStateStatusDeleted\n | typeof ITableStateStatusFailedToDelete\n | typeof ITableStateStatusLoading\n | typeof ITableStateStatusLoaded\n | typeof ITableStateStatusFailedToLoad;\n parent?: ITableStateParent;\n isLoading: boolean;\n filter: SearchParams.Filter;\n sort: SearchParams.Sort[];\n page: SearchParams.Page;\n listEntity: TData[];\n lastEvaluatedKey?: any;\n totalCount?: number;\n currentCount?: number;\n}\n\n@Injectable()\nexport class TableStore<\n TState extends ITableState<TData>,\n TData extends IRow<TExpandMode>,\n TExpandMode,\n> extends ComponentStore<TState> {\n // selectors\n public readonly status$ = this.select((state) => state.status);\n public readonly parent$ = this.select((state) => state.parent);\n public readonly filter$ = this.select((state) => state.filter);\n public readonly sort$ = this.select((state) => state.sort);\n public readonly page$ = this.select((state) => state.page);\n public readonly listEntity$ = this.select((state) => state.listEntity);\n public readonly totalCount$ = this.select((state) => state.totalCount);\n public readonly currentCount$ = this.select((state) => state.currentCount);\n public readonly isLoading$ = this.select((state) => state.isLoading);\n public readonly lastEvaluatedKey$ = this.select(\n (state) => state.lastEvaluatedKey,\n );\n\n // effects\n public readonly loadListEntity = this.effect((trigger$) =>\n trigger$.pipe(\n withLatestFrom(\n this.listEntity$,\n this.filter$,\n this.sort$,\n this.page$,\n this.parent$,\n ),\n switchMap(([, listEntity, filter, sort, page, parent]) => {\n this.updateStatus(ITableStateStatusLoading);\n\n return this.apiService\n .getListEntity({ filter, sort, page }, parent)\n .pipe(\n tap((response: ApiResponse) => {\n this.patchState({\n listEntity: [\n ...listEntity,\n ...(response.data ? response.data : []),\n ],\n totalCount: listEntity.length === 0 ? response.total : (this.get()?.totalCount),\n currentCount: listEntity.length + (response.data ? response.data.length : 0),\n lastEvaluatedKey: response.lastEvaluatedKey,\n } as Partial<TState>);\n\n this.updateStatus(ITableStateStatusLoaded);\n }),\n catchError(() => {\n this.updateStatus(ITableStateStatusFailedToLoad);\n return [];\n }),\n );\n }),\n ),\n );\n\n public readonly createEntity = this.effect<any>((trigger$) =>\n trigger$.pipe(\n withLatestFrom(this.listEntity$, this.parent$),\n switchMap(([data, listEntity, parent]) => {\n this.updateStatus(ITableStateStatusCreating);\n\n return this.apiService.createEntity(data, parent).pipe(\n tap((response: ApiResponse) => {\n this.patchState({\n listEntity: (() => {\n if (response.data?.parentId) {\n const updatedListEntity = listEntity.map((entity) => {\n if (entity.id === response.data.parentId) {\n return {\n ...entity,\n children: [\n ...(entity.children\n ? [response.data, ...entity.children]\n : [response.data]),\n ],\n };\n }\n return entity;\n });\n\n const parentExists = updatedListEntity.some(\n (entity) => entity.id === response.data.parentId,\n );\n\n if (!parentExists) {\n return updatedListEntity.map((entity) => ({\n ...entity,\n children: entity.children?.map((child) =>\n child.id === response.data.parentId\n ? {\n ...child,\n children: [\n ...(child.children\n ? [response.data, ...child.children]\n : [response.data]),\n ],\n }\n : child,\n ),\n }));\n }\n\n return updatedListEntity;\n }\n\n return [\n ...(response.data ? [response.data] : []),\n ...listEntity,\n ];\n })(),\n } as Partial<TState>);\n\n this.updateStatus(ITableStateStatusCreated);\n }),\n catchError(() => {\n this.updateStatus(ITableStateStatusFailedToCreate);\n return [];\n }),\n );\n }),\n ),\n );\n\n public readonly getEntityById = this.effect<string>((trigger$) =>\n trigger$.pipe(\n withLatestFrom(this.listEntity$, this.parent$),\n switchMap(([id, listEntity, parent]) => {\n this.updateStatus(ITableStateStatusLoading);\n\n return this.apiService.getEntityById(id, parent).pipe(\n tap((response: ApiResponse) => {\n this.patchState({\n listEntity: (() => {\n if (response.data?.parentId) {\n const updatedListEntity = listEntity.map((entity) => {\n if (entity.id === response.data.parentId) {\n return {\n ...entity,\n children: [\n ...(entity.children ? [response.data, ...entity.children] : [response.data]),\n ],\n };\n }\n return entity;\n });\n\n const parentExists = updatedListEntity.some(\n (entity) => entity.id === response.data.parentId,\n );\n\n if (!parentExists) {\n return updatedListEntity.map((entity) => ({\n ...entity,\n children: entity.children?.map((child) =>\n child.id === response.data.parentId\n ? {\n ...child,\n children: [\n ...(child.children ? [response.data, ...child.children] : [response.data]),\n ],\n }\n : child,\n ),\n }));\n }\n\n return updatedListEntity;\n }\n\n return listEntity.map((e) =>\n e.id === response.data.id ? response.data : e,\n );\n })(),\n } as Partial<TState>);\n\n this.updateStatus(ITableStateStatusLoaded);\n }),\n catchError(() => {\n this.updateStatus(ITableStateStatusFailedToLoad);\n return [];\n }),\n );\n }),\n ),\n );\n\n public readonly updateEntityById = this.effect<any>((trigger$) =>\n trigger$.pipe(\n withLatestFrom(this.listEntity$, this.parent$),\n switchMap(([data, listEntity, parent]) => {\n this.updateStatus(ITableStateStatusUpdating);\n\n return this.apiService.updateEntityById(data.id, data.entity, parent).pipe(\n tap((response: ApiResponse) => {\n this.patchState({\n listEntity: (() => {\n if (response.data?.parentId) {\n const updatedListEntity = listEntity.map((entity) => {\n if (entity.id === response.data.parentId) {\n return {\n ...entity,\n children: entity.children?.map((child) =>\n child.id === response.data.id ? response.data : child,\n ),\n };\n }\n return entity;\n });\n\n const parentExists = updatedListEntity.some(\n (entity) => entity.id === response.data.parentId,\n );\n\n if (!parentExists) {\n return updatedListEntity.map((entity) => ({\n ...entity,\n children: entity.children?.map((child) =>\n child.id === response.data.parentId\n ? {\n ...child,\n children: child.children?.map((grandChild) =>\n grandChild.id === response.data.id\n ? response.data\n : grandChild,\n ),\n }\n : child,\n ),\n }));\n }\n\n return updatedListEntity;\n }\n\n return listEntity.map((e) =>\n e.id === response.data.id ? response.data : e,\n );\n })(),\n } as Partial<TState>);\n\n this.updateStatus(ITableStateStatusUpdated);\n }),\n catchError(() => {\n this.updateStatus(ITableStateStatusFailedToUpdate);\n return [];\n }),\n );\n }),\n ),\n );\n\n public readonly deleteEntityById = this.effect<string>((trigger$) =>\n trigger$.pipe(\n withLatestFrom(this.listEntity$, this.parent$),\n switchMap(([id, listEntity, parent]) => {\n this.updateStatus(ITableStateStatusDeleting);\n\n return this.apiService.deleteEntityById(id, parent).pipe(\n tap(() => {\n this.patchState({\n listEntity: listEntity.filter((e) => e.id !== id),\n } as Partial<TState>);\n\n this.updateStatus(ITableStateStatusDeleted);\n }),\n catchError(() => {\n this.updateStatus(ITableStateStatusFailedToDelete);\n return [];\n }),\n );\n }),\n ),\n );\n\n // actions\n public readonly updateEntity = this.updater((state, data: TData) => ({\n ...state,\n listEntity: state.listEntity.map((e) => {\n return e.id === data.id ? data : e;\n }),\n }));\n\n public readonly updateStatus = this.updater(\n (state, status: TState['status']) => ({\n ...state,\n status,\n }),\n );\n\n public readonly setParent = this.updater(\n (state, parent?: ITableStateParent) => ({\n ...state,\n parent,\n }),\n );\n\n public readonly updateSortField = this.updater(\n (state, sort: SearchParams.Sort) => ({\n ...state,\n sort: [sort],\n }),\n );\n\n public readonly updateFilter = this.updater(\n (state, filter: SearchParams.Filter) => ({\n ...state,\n filter,\n }),\n );\n\n public readonly updatePage = this.updater(\n (state, page: SearchParams.Page) => ({\n ...state,\n page,\n }),\n );\n\n public readonly setExpandMode = this.updater(\n (state, { id, mode }: { id?: string; mode?: TExpandMode }) => ({\n ...state,\n listEntity: state.listEntity.map(\n (e) =>\n ({\n ...e,\n expandMode: e.id === id ? mode : e.expandMode,\n }) as TData,\n ),\n }),\n );\n\n public readonly toggleExpanded = this.updater(\n (state, { id }: { id?: string }) => ({\n ...state,\n listEntity: state.listEntity.map((e) => ({\n ...e,\n isExpanded: e.id === id ? !(e.isExpanded || false) : e.isExpanded,\n })),\n }),\n );\n\n public readonly showExpanded = this.updater(\n (state, { id }: { id?: string }) => ({\n ...state,\n listEntity: state.listEntity.map((e) => ({\n ...e,\n isExpanded: e.id === id ? true : e.isExpanded,\n })),\n }),\n );\n\n public readonly hideExpanded = this.updater(\n (state, { id }: { id?: string }) => ({\n ...state,\n listEntity: state.listEntity.map((e) => ({\n ...e,\n isExpanded: e.id === id ? false : e.isExpanded,\n })),\n }),\n );\n\n public readonly toggleSelected = this.updater(\n (state, { id }: { id?: string }) => ({\n ...state,\n listEntity: state.listEntity.map((e) => ({\n ...e,\n isSelected: e.id === id ? !(e.isSelected || false) : e.isSelected,\n })),\n }),\n );\n\n constructor(\n @Inject('initialState') protected initialState: TState,\n @Inject('apiService') protected apiService: any,\n ) {\n super(initialState);\n\n // this.loadListEntity();\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { SearchParams } from '../../model/api-param.model';\nimport { GroupApiService } from '../../service/group-api.service';\nimport { IRow, ITableState, TableStore, TableRowProperty } from './table.store';\n\nexport namespace Group {\n export interface IData {\n id?: string;\n createdTimestamp?: Date;\n updatedTimestamp?: Date;\n deletedTimestamp?: Date;\n active?: boolean;\n organizationId?: string;\n organization?: any; // TODO: Define a proper type for organization\n type?: string;\n name: string;\n codePrefix?: string;\n timezone?: string;\n language?: string;\n pictureKey?: string;\n }\n\n export interface IDataEx extends IData, TableRowProperty {\n isLoading?: boolean;\n }\n\n export interface Filter {\n dateRange?: {\n from: Date;\n to: Date;\n };\n organizationId?: string[];\n id?: string[];\n type?: string[];\n active?: boolean | null;\n approved?: boolean | null;\n keyword?: string;\n }\n}\n\n@Injectable()\nexport class GroupStore extends TableStore<\n ITableState<Group.IData>,\n IRow<never>,\n never\n> {\n constructor() {\n super(\n {\n isLoading: false,\n filter: {\n dateRange: undefined,\n organizationId: [],\n id: [],\n type: [],\n active: null,\n approved: null,\n keyword: '',\n },\n sort: [\n {\n field: 'created_timestamp',\n direction: SearchParams.SortDirectionDesc,\n },\n ],\n page: {\n limit: 10,\n },\n listEntity: [],\n },\n inject(GroupApiService),\n );\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { SearchParams } from '../../model/api-param.model';\nimport { IRow, ITableState, TableStore, TableRowProperty } from './table.store';\nimport { MemberApiService } from '../../service/member-api.service';\nimport { Group } from './group.store';\n\nexport namespace Member {\n export type MemberType =\n 'systemMember' | 'systemAdmin';\n\n export interface IData {\n id?: string;\n createdTimestamp?: Date;\n updatedTimestamp?: Date;\n active?: boolean;\n groupId?: string;\n group?: Group.IData;\n username?: string;\n role?: string;\n type?: string;\n lastName?: string;\n firstName?: string;\n nickname: string;\n mobile?: string;\n email?: string;\n status?: string;\n pictureKey?: string;\n }\n\n export interface IDataEx extends IData, TableRowProperty {\n isLoading?: boolean;\n // isUpdating?: boolean;\n // isDeleting?: boolean;\n }\n\n export interface Filter {\n dateRange?: {\n from: Date;\n to: Date;\n };\n organizationId: string[];\n groupId: string[];\n type: string[];\n active: boolean | null;\n keyword: string;\n }\n}\n\n@Injectable()\nexport class MemberStore extends TableStore<\n ITableState<Member.IData>,\n IRow<never>,\n never\n> {\n constructor() {\n super(\n {\n isLoading: false,\n filter: {\n dateRange: undefined,\n organizationId: [],\n groupId: [],\n type: [],\n active: null,\n keyword: '',\n },\n sort: [\n {\n field: 'created_timestamp',\n direction: SearchParams.SortDirectionDesc,\n },\n ],\n page: {\n limit: 10,\n },\n listEntity: [],\n },\n inject(MemberApiService),\n );\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Store } from '@ngrx/store';\nimport { forkJoin, of } from 'rxjs';\nimport { catchError, finalize, mergeMap, withLatestFrom } from 'rxjs/operators';\nimport { GlobalSelectors } from './global.selectors';\nimport { GlobalApiService } from '../../service/global-api.service';\nimport { GlobalActions } from './global.actions';\nimport { MemberApiService } from '../../service/member-api.service';\nimport { GroupApiService } from '../../service/group-api.service';\nimport { GlobalState } from './global.state';\nimport { Member } from '../component/member.store';\nimport { Group } from '../component/group.store';\n\n@Injectable()\nexport class GlobalEffects<TM extends Member.IData, TG extends Group.IData> {\n private actions$ = inject(Actions);\n private memberApiService = inject(MemberApiService);\n private globalApiService = inject(GlobalApiService);\n private groupApiService = inject(GroupApiService);\n private store = inject(Store<GlobalState<TM, TG>>);\n\n setAuthenticated$ = createEffect(() =>\n this.actions$.pipe(\n ofType(GlobalActions.setAuthenticated),\n withLatestFrom(this.store.select(GlobalSelectors.selectIsAuthenticated)),\n mergeMap(([action, isAuthenticated]) => {\n if (isAuthenticated) {\n this.store.dispatch(GlobalActions.increaseLoadingReference());\n\n return forkJoin({\n profile: this.memberApiService.getProfile(),\n acl: this.globalApiService.getAcl(),\n listMenuItem: this.globalApiService.getListMenuItem(),\n }).pipe(\n mergeMap(({ profile, acl, listMenuItem }) => {\n const groupId = profile.data.groupId;\n return this.groupApiService.getEntityById(groupId).pipe(\n mergeMap((group) => [\n GlobalActions.setProfile({ profile: profile.data }),\n GlobalActions.setAcl({ acl: acl.data }),\n GlobalActions.setListMenuItem({\n listMenuItem: listMenuItem.data,\n }),\n GlobalActions.setCurrentGroup({ group: group.data }),\n GlobalActions.markInitiated( {initiated:true}),\n ])\n );\n }),\n catchError(() => of(GlobalActions.clearAuthentication())),\n finalize(() => {\n this.store.dispatch(GlobalActions.decreaseLoadingReference());\n })\n );\n }\n return of(GlobalActions.clearAuthentication());\n })\n )\n );\n}\n","import { Acl } from '../../model/acl.model';\nimport { MenuItem } from '../../model/menu-item.model';\nimport { Group, Member } from '../component';\n\nexport interface GlobalState<TM extends Member.IData, TG extends Group.IData> {\n initiated: boolean;\n isAuthenticated: boolean;\n loadingReference: number;\n acl: Acl;\n listMenuItem: MenuItem[];\n isSideMenuOpen: boolean;\n language: string;\n profile?: TM;\n currentGroup?: TG;\n}\n\nexport type GlobalStateEx = GlobalState<Member.IData & { [key: string]: any }, Group.IData & { [key: string]: any }>;\n\nexport const initialState: GlobalStateEx = {\n initiated: false,\n isAuthenticated: false,\n loadingReference: 0,\n acl: {},\n listMenuItem: [],\n isSideMenuOpen: false,\n language: 'en', // TODO: Use a proper language management system\n profile: undefined,\n currentGroup: undefined,\n};\n","import { createReducer, on } from '@ngrx/store';\nimport { GlobalActions } from './global.actions';\nimport { initialState } from './global.state';\n\n\nexport const globalReducer = createReducer(\n initialState,\n on(GlobalActions.markInitiated, (state) => ({\n ...state,\n initiated: true,\n })),\n on(GlobalActions.setAuthenticated, (state, { isAuthenticated }) => ({\n ...state,\n isAuthenticated,\n })),\n on(GlobalActions.setProfile, (state, { profile }) => ({\n ...state,\n profile,\n })),\n on(GlobalActions.increaseLoadingReference, (state) => ({\n ...state,\n loadingReference: state.loadingReference + 1,\n })),\n on(GlobalActions.decreaseLoadingReference, (state) => ({\n ...state,\n loadingReference: Math.max(state.loadingReference - 1, 0),\n })),\n on(GlobalActions.setAcl, (state, { acl }) => ({\n ...state,\n acl,\n })),\n on(GlobalActions.setListMenuItem, (state, { listMenuItem }) => ({\n ...state,\n listMenuItem,\n })),\n on(GlobalActions.toggleSideMenu, (state) => ({\n ...state,\n isSideMenuOpen: !state.isSideMenuOpen,\n })),\n on(GlobalActions.closeSideMenu, (state) => ({\n ...state,\n isSideMenuOpen: false,\n })),\n on(GlobalActions.setLanguage, (state, { language }) => ({\n ...state,\n language,\n })),\n on(GlobalActions.setCurrentGroup, (state, { group }) => ({\n ...state,\n currentGroup: group,\n })),\n);\n","/*\n * Public API Surface of core\n */\n\nexport * from './lib';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["map","catchError","withLatestFrom"],"mappings":"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"}
|