{"version":3,"file":"ng-vagabond-lab-ng-dsv-api.mjs","sources":["../../../projects/ng-dsv/api/interceptor/api.interceptor.ts","../../../projects/ng-dsv/api/service/api.promise.service.ts","../../../projects/ng-dsv/api/service/api.resource.service.ts","../../../projects/ng-dsv/api/service/api.service.ts","../../../projects/ng-dsv/api/ng-vagabond-lab-ng-dsv-api.ts"],"sourcesContent":["import {\n  HttpClient,\n  HttpErrorResponse,\n  HttpHandlerFn,\n  HttpRequest\n} from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\nimport { StorageService } from '@ng-vagabond-lab/ng-dsv/storage';\nimport { catchError, switchMap, throwError } from 'rxjs';\nimport { ApiService } from '../public-api';\n\nexport const authInterceptor = (suffixe: string) => (req: HttpRequest<unknown>, next: HttpHandlerFn) => {\n  const httpClient = inject(HttpClient);\n  const apiService = inject(ApiService);\n  const storageService = inject(StorageService);\n  const toastService = inject(ToastService);\n  storageService.suffixe.set(suffixe);\n\n  return next(getToken(req, apiService, storageService)).pipe(\n    catchError((error) => {\n      if (\n        error instanceof HttpErrorResponse &&\n        !req.url.includes('auth/') &&\n        req.url.includes(apiService.baseUrl) &&\n        error.status === 401\n      ) {\n        return handle401Error(\n          httpClient,\n          apiService,\n          storageService,\n          req,\n          next\n        );\n      }\n\n      console.error(error);\n\n      toastService.showToast({\n        type: 'error',\n        text: error.error.debugMessage ?? error.error.message ?? error.message,\n      })\n\n      return throwError(() => error);\n    })\n  );\n};\n\nconst getToken = <T>(\n  req: HttpRequest<T>,\n  apiService: ApiService,\n  storageService: StorageService\n) => {\n  const jwt = JSON.parse(storageService.getItem('user-connected') as string)?.['jwt' as keyof {}];\n  if (!req.url.includes('/auth/') && req.url.includes(apiService.baseUrl) && jwt) {\n    const headers = req.headers.set('Authorization', `Bearer ${jwt}`);\n\n    return req.clone({\n      headers,\n    });\n  }\n  return req;\n};\n\nconst handle401Error = <T>(\n  httpClient: HttpClient,\n  apiService: ApiService,\n  storageService: StorageService,\n  request: HttpRequest<T>,\n  next: HttpHandlerFn\n) => {\n  const jwtRefresh =\n    JSON.parse(storageService.getItem('user-connected') as string)?.['jwtRefresh' as keyof {}];\n  return httpClient\n    .post(apiService.baseUrl + '/auth/refresh-token', {\n      refreshToken: jwtRefresh,\n    })\n    .pipe(\n      switchMap((response) => {\n        storageService.setItem('user-connected', JSON.stringify(response));\n        return next(getToken(request, apiService, storageService));\n      })\n    );\n};\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable, signal } from '@angular/core';\nimport { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\nimport { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';\nimport { lastValueFrom, Observable } from 'rxjs';\nimport { ApiDto, ID, JSONObject, OrderState } from '../dto/api.dto';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ApiPromiseService {\n  readonly httpClient = inject(HttpClient);\n  readonly toastService = inject(ToastService);\n  readonly platformService = inject(PlatformService);\n\n  load = signal<boolean>(false);\n  baseUrl: string = '';\n\n  setBaseUrl(url: string) {\n    this.baseUrl = url;\n  }\n\n  get<T>(url: string) {\n    return this.doSubscribe(url, this.httpClient.get<T>(this.baseUrl + url));\n  }\n\n  post<T>(url: string, data: T) {\n    return this.doSubscribe(url, this.httpClient.post<T>(this.baseUrl + url, data));\n  }\n\n  put<T>(url: string, data: T) {\n    return this.doSubscribe(url, this.httpClient.put<T>(this.baseUrl + url, data));\n  }\n\n  delete<T>(url: string) {\n    return this.doSubscribe(url, this.httpClient.delete<T>(this.baseUrl + url));\n  }\n\n\n  findById<T>(endPoint: string, id: ID) {\n    this.get<T>(endPoint + '/' + id);\n  }\n\n  findBy<T>(\n    endPoint: string,\n    fields: string,\n    values: string,\n    first: number,\n    max: number,\n    order: OrderState\n  ) {\n    const orderType: string = order.orderAsc ? '' : 'Desc';\n    const orderConst: string = order.order ? '>>' + order.order + orderType : '';\n    const fieldsComplete = fields + orderConst;\n    return this.get<T>(\n      endPoint + '?fields=' + encodeURI(fieldsComplete) + '&values=' + encodeURI(values) + '&first=' + first + '&max=' + max,\n    );\n  }\n\n  countBy(endPoint: string, fields: string, values: string) {\n    return this.get<{ count: number }>(endPoint + '?fields=' + encodeURI(fields) + '&values=' + values);\n  }\n\n  createOrUpdate<T extends ApiDto>(endPoint: string, data: T) {\n    if (data.id !== null && data.id !== undefined && data.id !== '' && Number(data.id) > 0) {\n      return this.put<T>(endPoint + '/', data).then((dateReturn: T) => {\n        this.toastService.showToast({ text: 'UPDATE_OK', type: 'success' });\n        return Promise.resolve(dateReturn);\n      });\n    } else {\n      return this.post<T>(endPoint + '/', data).then((dateReturn: T) => {\n        this.toastService.showToast({ text: 'CREATION_OK', type: 'success' });\n        return Promise.resolve(dateReturn);\n      });\n    }\n  }\n\n  private doSubscribe<T>(url: string, observable: Observable<T>): Promise<T> {\n    this.load.set(true);\n    return lastValueFrom(observable).then((res) => {\n      this.load.set(false);\n      this.info(url, res as JSONObject);\n      return Promise.resolve(res);\n    }).catch((error) => {\n      this.load.set(false);\n      this.error(url, error);\n      return Promise.reject(new Error(error));\n    });\n  }\n\n  info(url: string, data: JSONObject) {\n    if (this.platformService.isPlatformBrowser()) {\n      console.log(url, data);\n    }\n  }\n\n  error(url: string, error: JSONObject) {\n    if (this.platformService.isPlatformBrowser()) {\n      console.error(url, error);\n    }\n  }\n}\n","import { httpResource } from \"@angular/common/http\";\nimport { Injectable, ResourceRef, signal } from \"@angular/core\";\nimport { OrderState } from \"../public-api\";\n\n\nexport interface ApiFindBy {\n    endPoint?: string,\n    fields?: string,\n    values?: string,\n    first?: number,\n    max?: number,\n    order?: OrderState\n}\n\n@Injectable({\n    providedIn: 'root',\n})\nexport class ApiResourceService<T> {\n\n    url = signal<string | undefined>(undefined);\n\n    resource: ResourceRef<T | undefined> = httpResource(() => ({\n        url: `${this.url()}`,\n        method: 'GET',\n        headers: {\n            'Content-Type': 'application/json',\n        },\n        params: {\n        },\n        reportProgress: true,\n        transferCache: true,\n        keepalive: true,\n        mode: 'same-origin',\n        redirect: 'error',\n        priority: 'high',\n        cache: 'force-cache',\n        credentials: 'include',\n        referrer: 'no-referrer',\n        integrity: 'sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GhEXAMPLEKEY='\n    }));;\n\n    constructor(\n    ) {\n    }\n}","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable, signal } from '@angular/core';\nimport { ToastService } from '@ng-vagabond-lab/ng-dsv/ds/toast';\nimport { PlatformService } from '@ng-vagabond-lab/ng-dsv/platform';\nimport { Observable } from 'rxjs';\nimport { ApiDto, ID, JSONObject, OrderState } from '../dto/api.dto';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class ApiService {\n  readonly httpClient = inject(HttpClient);\n  readonly toastService = inject(ToastService);\n  readonly platformService = inject(PlatformService);\n\n  load = signal<boolean>(false);\n  baseUrl: string = '';\n\n  setBaseUrl(url: string) {\n    this.baseUrl = url;\n  }\n\n  get<T>(url: string, callback: (data: T) => void) {\n    this.doSubscribe(url, this.httpClient.get<T>(this.baseUrl + url), callback);\n  }\n\n  post<T>(url: string, data: T, callback: (data: T) => void) {\n    this.doSubscribe(url, this.httpClient.post<T>(this.baseUrl + url, data), callback);\n  }\n\n  put<T>(url: string, data: T, callback: (data: T) => void) {\n    this.doSubscribe(url, this.httpClient.put<T>(this.baseUrl + url, data), callback);\n  }\n\n  delete<T>(url: string, callback: (data: T) => void) {\n    this.doSubscribe(url, this.httpClient.delete<T>(this.baseUrl + url), callback);\n  }\n\n\n  findById<T>(endPoint: string, id: ID, callback: (data: T) => void) {\n    this.get<T>(endPoint + '/' + id, callback);\n  }\n\n  findBy<T>(\n    endPoint: string,\n    fields: string,\n    values: string,\n    first: number,\n    max: number,\n    order: OrderState,\n    callback: (data: T) => void\n  ) {\n    const orderType: string = order.orderAsc ? '' : 'Desc';\n    const orderConst: string = order.order ? '>>' + order.order + orderType : '';\n    const fieldsComplete = fields + orderConst;\n    this.get<T>(\n      endPoint + '?fields=' + encodeURI(fieldsComplete) + '&values=' + encodeURI(values) + '&first=' + first + '&max=' + max,\n      (data: T) => {\n        callback(data);\n      },\n    );\n  }\n\n  countBy(endPoint: string, fields: string, values: string, callback: (data: { count: number }) => void) {\n    return this.get<{ count: number }>(endPoint + '?fields=' + encodeURI(fields) + '&values=' + values,\n      (data: { count: number }) => {\n        callback(data);\n      }\n    );\n  }\n\n  createOrUpdate<T extends ApiDto>(endPoint: string, data: T, callback: (data: T) => void) {\n    if (data.id !== null && data.id !== undefined && data.id !== '' && Number(data.id) > 0) {\n      this.put<T>('/' + endPoint + '/', data, (dateReturn: T) => {\n        this.toastService.showToast({ text: 'UPDATE_OK', type: 'success' });\n        callback(dateReturn);\n      });\n    } else {\n      this.post<T>('/' + endPoint + '/', data, (dateReturn: T) => {\n        this.toastService.showToast({ text: 'CREATION_OK', type: 'success' });\n        callback(dateReturn);\n      });\n    }\n  }\n\n  doSubscribe<T>(url: string, observable: Observable<T>, callback: (data: T) => void) {\n    this.load.set(true);\n    observable.subscribe({\n      next: (res) => {\n        this.load.set(false);\n        this.info(url, res as JSONObject);\n        callback(res);\n      },\n      error: (error: JSONObject) => {\n        this.load.set(false);\n        this.error(url, error);\n      },\n    });\n  }\n\n  info(url: string, data: JSONObject) {\n    if (this.platformService.isPlatformBrowser()) {\n      console.log(url, data);\n    }\n  }\n\n  error(url: string, error: JSONObject) {\n    if (this.platformService.isPlatformBrowser()) {\n      console.error(url, error);\n    }\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;AAYO,MAAM,eAAe,GAAG,CAAC,OAAe,KAAK,CAAC,GAAyB,EAAE,IAAmB,KAAI;AACrG,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACrC,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AACrC,IAAA,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAC7C,IAAA,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACzC,IAAA,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;AAEnC,IAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CACzD,UAAU,CAAC,CAAC,KAAK,KAAI;QACnB,IACE,KAAK,YAAY,iBAAiB;AAClC,YAAA,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC1B,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;AACpC,YAAA,KAAK,CAAC,MAAM,KAAK,GAAG,EACpB;AACA,YAAA,OAAO,cAAc,CACnB,UAAU,EACV,UAAU,EACV,cAAc,EACd,GAAG,EACH,IAAI,CACL;QACH;AAEA,QAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;QAEpB,YAAY,CAAC,SAAS,CAAC;AACrB,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO;AACvE,SAAA,CAAC;AAEF,QAAA,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC;IAChC,CAAC,CAAC,CACH;AACH;AAEA,MAAM,QAAQ,GAAG,CACf,GAAmB,EACnB,UAAsB,EACtB,cAA8B,KAC5B;AACF,IAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAW,CAAC,GAAG,KAAiB,CAAC;IAC/F,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE;AAC9E,QAAA,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAA,OAAA,EAAU,GAAG,CAAA,CAAE,CAAC;QAEjE,OAAO,GAAG,CAAC,KAAK,CAAC;YACf,OAAO;AACR,SAAA,CAAC;IACJ;AACA,IAAA,OAAO,GAAG;AACZ,CAAC;AAED,MAAM,cAAc,GAAG,CACrB,UAAsB,EACtB,UAAsB,EACtB,cAA8B,EAC9B,OAAuB,EACvB,IAAmB,KACjB;AACF,IAAA,MAAM,UAAU,GACd,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAW,CAAC,GAAG,YAAwB,CAAC;AAC5F,IAAA,OAAO;AACJ,SAAA,IAAI,CAAC,UAAU,CAAC,OAAO,GAAG,qBAAqB,EAAE;AAChD,QAAA,YAAY,EAAE,UAAU;KACzB;AACA,SAAA,IAAI,CACH,SAAS,CAAC,CAAC,QAAQ,KAAI;AACrB,QAAA,cAAc,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAClE,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC;IAC5D,CAAC,CAAC,CACH;AACL,CAAC;;MCzEY,iBAAiB,CAAA;AACnB,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,IAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACnC,IAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAElD,IAAA,IAAI,GAAG,MAAM,CAAU,KAAK,gDAAC;IAC7B,OAAO,GAAW,EAAE;AAEpB,IAAA,UAAU,CAAC,GAAW,EAAA;AACpB,QAAA,IAAI,CAAC,OAAO,GAAG,GAAG;IACpB;AAEA,IAAA,GAAG,CAAI,GAAW,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;IAC1E;IAEA,IAAI,CAAI,GAAW,EAAE,IAAO,EAAA;QAC1B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAI,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;IACjF;IAEA,GAAG,CAAI,GAAW,EAAE,IAAO,EAAA;QACzB,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC;IAChF;AAEA,IAAA,MAAM,CAAI,GAAW,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAI,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC;IAC7E;IAGA,QAAQ,CAAI,QAAgB,EAAE,EAAM,EAAA;QAClC,IAAI,CAAC,GAAG,CAAI,QAAQ,GAAG,GAAG,GAAG,EAAE,CAAC;IAClC;IAEA,MAAM,CACJ,QAAgB,EAChB,MAAc,EACd,MAAc,EACd,KAAa,EACb,GAAW,EACX,KAAiB,EAAA;AAEjB,QAAA,MAAM,SAAS,GAAW,KAAK,CAAC,QAAQ,GAAG,EAAE,GAAG,MAAM;AACtD,QAAA,MAAM,UAAU,GAAW,KAAK,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,SAAS,GAAG,EAAE;AAC5E,QAAA,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU;AAC1C,QAAA,OAAO,IAAI,CAAC,GAAG,CACb,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC,cAAc,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,GAAG,CACvH;IACH;AAEA,IAAA,OAAO,CAAC,QAAgB,EAAE,MAAc,EAAE,MAAc,EAAA;AACtD,QAAA,OAAO,IAAI,CAAC,GAAG,CAAoB,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,UAAU,GAAG,MAAM,CAAC;IACrG;IAEA,cAAc,CAAmB,QAAgB,EAAE,IAAO,EAAA;QACxD,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;AACtF,YAAA,OAAO,IAAI,CAAC,GAAG,CAAI,QAAQ,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,UAAa,KAAI;AAC9D,gBAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACnE,gBAAA,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;AACpC,YAAA,CAAC,CAAC;QACJ;aAAO;AACL,YAAA,OAAO,IAAI,CAAC,IAAI,CAAI,QAAQ,GAAG,GAAG,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,UAAa,KAAI;AAC/D,gBAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;AACrE,gBAAA,OAAO,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;AACpC,YAAA,CAAC,CAAC;QACJ;IACF;IAEQ,WAAW,CAAI,GAAW,EAAE,UAAyB,EAAA;AAC3D,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACnB,OAAO,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAI;AAC5C,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAiB,CAAC;AACjC,YAAA,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;AAC7B,QAAA,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,KAAI;AACjB,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACpB,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC;YACtB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;AACzC,QAAA,CAAC,CAAC;IACJ;IAEA,IAAI,CAAC,GAAW,EAAE,IAAgB,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,EAAE;AAC5C,YAAA,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;QACxB;IACF;IAEA,KAAK,CAAC,GAAW,EAAE,KAAiB,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,EAAE;AAC5C,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC;QAC3B;IACF;uGA1FW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA;;2FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCQY,kBAAkB,CAAA;AAE3B,IAAA,GAAG,GAAG,MAAM,CAAqB,SAAS,+CAAC;AAE3C,IAAA,QAAQ,GAA+B,YAAY,CAAC,OAAO;AACvD,QAAA,GAAG,EAAE,CAAA,EAAG,IAAI,CAAC,GAAG,EAAE,CAAA,CAAE;AACpB,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,OAAO,EAAE;AACL,YAAA,cAAc,EAAE,kBAAkB;AACrC,SAAA;AACD,QAAA,MAAM,EAAE,EACP;AACD,QAAA,cAAc,EAAE,IAAI;AACpB,QAAA,aAAa,EAAE,IAAI;AACnB,QAAA,SAAS,EAAE,IAAI;AACf,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,QAAQ,EAAE,OAAO;AACjB,QAAA,QAAQ,EAAE,MAAM;AAChB,QAAA,KAAK,EAAE,aAAa;AACpB,QAAA,WAAW,EAAE,SAAS;AACtB,QAAA,QAAQ,EAAE,aAAa;AACvB,QAAA,SAAS,EAAE;AACd,KAAA,CAAC,oDAAC;;AAEH,IAAA,WAAA,GAAA;IAEA;uGA1BS,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFf,MAAM,EAAA,CAAA;;2FAET,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA;;;MCNY,UAAU,CAAA;AACZ,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,IAAA,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;AACnC,IAAA,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;AAElD,IAAA,IAAI,GAAG,MAAM,CAAU,KAAK,gDAAC;IAC7B,OAAO,GAAW,EAAE;AAEpB,IAAA,UAAU,CAAC,GAAW,EAAA;AACpB,QAAA,IAAI,CAAC,OAAO,GAAG,GAAG;IACpB;IAEA,GAAG,CAAI,GAAW,EAAE,QAA2B,EAAA;QAC7C,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE,QAAQ,CAAC;IAC7E;AAEA,IAAA,IAAI,CAAI,GAAW,EAAE,IAAO,EAAE,QAA2B,EAAA;QACvD,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAI,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC;IACpF;AAEA,IAAA,GAAG,CAAI,GAAW,EAAE,IAAO,EAAE,QAA2B,EAAA;QACtD,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,GAAG,CAAI,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC;IACnF;IAEA,MAAM,CAAI,GAAW,EAAE,QAA2B,EAAA;QAChD,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAI,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE,QAAQ,CAAC;IAChF;AAGA,IAAA,QAAQ,CAAI,QAAgB,EAAE,EAAM,EAAE,QAA2B,EAAA;QAC/D,IAAI,CAAC,GAAG,CAAI,QAAQ,GAAG,GAAG,GAAG,EAAE,EAAE,QAAQ,CAAC;IAC5C;AAEA,IAAA,MAAM,CACJ,QAAgB,EAChB,MAAc,EACd,MAAc,EACd,KAAa,EACb,GAAW,EACX,KAAiB,EACjB,QAA2B,EAAA;AAE3B,QAAA,MAAM,SAAS,GAAW,KAAK,CAAC,QAAQ,GAAG,EAAE,GAAG,MAAM;AACtD,QAAA,MAAM,UAAU,GAAW,KAAK,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,SAAS,GAAG,EAAE;AAC5E,QAAA,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU;AAC1C,QAAA,IAAI,CAAC,GAAG,CACN,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC,cAAc,CAAC,GAAG,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,GAAG,KAAK,GAAG,OAAO,GAAG,GAAG,EACtH,CAAC,IAAO,KAAI;YACV,QAAQ,CAAC,IAAI,CAAC;AAChB,QAAA,CAAC,CACF;IACH;AAEA,IAAA,OAAO,CAAC,QAAgB,EAAE,MAAc,EAAE,MAAc,EAAE,QAA2C,EAAA;QACnG,OAAO,IAAI,CAAC,GAAG,CAAoB,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,UAAU,GAAG,MAAM,EAChG,CAAC,IAAuB,KAAI;YAC1B,QAAQ,CAAC,IAAI,CAAC;AAChB,QAAA,CAAC,CACF;IACH;AAEA,IAAA,cAAc,CAAmB,QAAgB,EAAE,IAAO,EAAE,QAA2B,EAAA;QACrF,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;AACtF,YAAA,IAAI,CAAC,GAAG,CAAI,GAAG,GAAG,QAAQ,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC,UAAa,KAAI;AACxD,gBAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;gBACnE,QAAQ,CAAC,UAAU,CAAC;AACtB,YAAA,CAAC,CAAC;QACJ;aAAO;AACL,YAAA,IAAI,CAAC,IAAI,CAAI,GAAG,GAAG,QAAQ,GAAG,GAAG,EAAE,IAAI,EAAE,CAAC,UAAa,KAAI;AACzD,gBAAA,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;gBACrE,QAAQ,CAAC,UAAU,CAAC;AACtB,YAAA,CAAC,CAAC;QACJ;IACF;AAEA,IAAA,WAAW,CAAI,GAAW,EAAE,UAAyB,EAAE,QAA2B,EAAA;AAChF,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QACnB,UAAU,CAAC,SAAS,CAAC;AACnB,YAAA,IAAI,EAAE,CAAC,GAAG,KAAI;AACZ,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAiB,CAAC;gBACjC,QAAQ,CAAC,GAAG,CAAC;YACf,CAAC;AACD,YAAA,KAAK,EAAE,CAAC,KAAiB,KAAI;AAC3B,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;AACpB,gBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC;YACxB,CAAC;AACF,SAAA,CAAC;IACJ;IAEA,IAAI,CAAC,GAAW,EAAE,IAAgB,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,EAAE;AAC5C,YAAA,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC;QACxB;IACF;IAEA,KAAK,CAAC,GAAW,EAAE,KAAiB,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,EAAE;AAC5C,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC;QAC3B;IACF;uGApGW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAV,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFT,MAAM,EAAA,CAAA;;2FAEP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACTD;;AAEG;;;;"}