@pepperi-addons/ngx-lib 0.4.2-beta.98 → 0.4.2-scroll.1
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.
- package/chips/chips.component.d.ts +1 -3
- package/core/common/pipes/common-pipes.d.ts +3 -0
- package/core/customization/customization.model.d.ts +1 -1
- package/esm2020/checkbox/checkbox.component.mjs +3 -3
- package/esm2020/chips/chips.component.mjs +8 -11
- package/esm2020/color/color.component.mjs +3 -3
- package/esm2020/core/common/pipes/common-pipes.mjs +14 -4
- package/esm2020/core/customization/customization.model.mjs +7 -1
- package/esm2020/core/customization/customization.service.mjs +2 -1
- package/esm2020/core/http/services/loader.service.mjs +3 -3
- package/esm2020/draggable-items/draggable-items.component.mjs +3 -3
- package/esm2020/form/field-generator.component.mjs +3 -3
- package/esm2020/form/form.component.mjs +3 -3
- package/esm2020/form/internal-carusel.component.mjs +10 -6
- package/esm2020/form/internal-field-generator.component.mjs +3 -3
- package/esm2020/form/internal-form.component.mjs +3 -3
- package/esm2020/form/internal-menu.component.mjs +4 -6
- package/esm2020/form/internal-page.component.mjs +3 -4
- package/esm2020/image/image.component.mjs +3 -3
- package/esm2020/images-filmstrip/images-filmstrip.component.mjs +3 -3
- package/esm2020/link/link.component.mjs +9 -3
- package/esm2020/list/list-actions.component.mjs +1 -1
- package/esm2020/list/list-chooser.component.mjs +1 -1
- package/esm2020/list/list-sorting.component.mjs +1 -1
- package/esm2020/list/list-views.component.mjs +1 -1
- package/esm2020/list/list.component.mjs +22 -10
- package/esm2020/list/list.model.mjs +1 -1
- package/esm2020/menu/menu-item.component.mjs +3 -3
- package/esm2020/menu/menu.component.mjs +6 -3
- package/esm2020/menu/menu.model.mjs +2 -1
- package/esm2020/profile-data-views-list/profile-data-view/profile-data-view.component.mjs +1 -1
- package/esm2020/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.mjs +25 -9
- package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +58 -26
- package/esm2020/profile-data-views-list/profile-data-views-list.model.mjs +1 -1
- package/esm2020/quantity-selector/quantity-selector.component.mjs +7 -3
- package/esm2020/query-builder/common/model/legacy.mjs +1 -1
- package/esm2020/query-builder/common/model/operator.mjs +72 -62
- package/esm2020/query-builder/common/services/output-query.service.mjs +5 -3
- package/esm2020/query-builder/common/services/query-structure.service.mjs +24 -1
- package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +3 -3
- package/esm2020/query-builder/query-builder-section/query-builder-section.component.mjs +3 -3
- package/esm2020/query-builder/query-builder.module.mjs +14 -3
- package/esm2020/query-builder/query-builder.service.mjs +2 -2
- package/esm2020/remote-loader/remote-loader.service.mjs +16 -16
- package/esm2020/rich-html-textarea/rich-html-textarea.component.mjs +10 -3
- package/esm2020/select/select.component.mjs +3 -3
- package/esm2020/select-panel/select-panel.component.mjs +3 -5
- package/esm2020/signature/signature-dialog.component.mjs +2 -1
- package/esm2020/signature/signature.component.mjs +4 -4
- package/esm2020/skeleton-loader/public-api.mjs +2 -2
- package/esm2020/skeleton-loader/skeleton-loader.component.mjs +3 -3
- package/esm2020/smart-filters/common/model/operator.mjs +11 -4
- package/esm2020/smart-filters/common/model/type.mjs +1 -1
- package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +3 -3
- package/esm2020/smart-filters/text-filter/text-filter.component.mjs +3 -3
- package/esm2020/textbox/textbox.component.mjs +26 -6
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +7 -10
- package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-color.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-form.mjs +22 -21
- package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-image.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-link.mjs +8 -2
- package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-list.mjs +25 -13
- package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +8 -4
- package/fesm2015/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +81 -33
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +7 -2
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +119 -70
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +16 -16
- package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs +9 -2
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs +2 -4
- package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-select.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +5 -3
- package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs +3 -3
- package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +14 -7
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +26 -5
- package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib.mjs +547 -532
- package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-checkbox.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +7 -10
- package/fesm2020/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-color.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-form.mjs +22 -21
- package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-image.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-image.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-link.mjs +8 -2
- package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-list.mjs +25 -13
- package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +8 -4
- package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +81 -33
- package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +6 -2
- package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +115 -69
- package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +15 -15
- package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs +9 -2
- package/fesm2020/pepperi-addons-ngx-lib-rich-html-textarea.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs +2 -4
- package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-select.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-select.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +4 -3
- package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs +3 -3
- package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +14 -7
- package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +25 -5
- package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib.mjs +544 -529
- package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
- package/form/internal-carusel.component.d.ts +1 -0
- package/form/internal-menu.component.d.ts +1 -2
- package/link/link.component.d.ts +3 -1
- package/list/list.component.d.ts +1 -1
- package/list/list.model.d.ts +1 -2
- package/menu/menu.component.d.ts +2 -1
- package/menu/menu.model.d.ts +1 -0
- package/package.json +1 -1
- package/profile-data-views-list/profile-data-view/profile-data-view.component.d.ts +3 -3
- package/profile-data-views-list/profile-data-views-card/profile-data-views-card.component.d.ts +5 -4
- package/profile-data-views-list/profile-data-views-list.component.d.ts +13 -10
- package/profile-data-views-list/profile-data-views-list.model.d.ts +8 -0
- package/query-builder/common/model/legacy.d.ts +2 -0
- package/query-builder/common/model/operator.d.ts +11 -1
- package/query-builder/common/services/query-structure.service.d.ts +1 -0
- package/query-builder/query-builder.module.d.ts +7 -3
- package/remote-loader/remote-loader.service.d.ts +1 -1
- package/rich-html-textarea/rich-html-textarea.component.d.ts +3 -1
- package/rich-html-textarea/rich-html-textarea.component.theme.scss +4 -2
- package/select-panel/select-panel.component.d.ts +1 -2
- package/signature/signature-dialog.component.d.ts +1 -1
- package/skeleton-loader/skeleton-loader.component.d.ts +3 -3
- package/smart-filters/boolean-filter/boolean-filter.component.d.ts +1 -0
- package/smart-filters/common/model/operator.d.ts +1 -0
- package/smart-filters/common/model/type.d.ts +1 -1
- package/smart-filters/date-filter/date-filter.component.d.ts +1 -0
- package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +1 -0
- package/smart-filters/number-filter/number-filter.component.d.ts +1 -0
- package/smart-filters/text-filter/text-filter.component.d.ts +1 -0
- package/src/assets/i18n/de.ngx-lib.json +4 -1
- package/src/assets/i18n/en.ngx-lib.json +7 -1
- package/src/core/style/abstracts/mixins.scss +73 -11
- package/src/core/style/abstracts/variables.scss +1 -1
- package/src/core/style/base/base.scss +5 -3
- package/src/core/style/base/typography.scss +2 -1
- package/src/core/style/components/button.scss +11 -0
- package/src/core/style/components/general.scss +2 -4
- package/textbox/textbox.component.d.ts +2 -0
- package/theming.scss +5 -1
- package/src/assets/images/sail-away.jpg +0 -0
- package/src/core/style/abstracts/AbstractsIntro.stories.mdx +0 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pepperi-addons-ngx-lib.mjs","sources":["../../../projects/ngx-lib/src/core/http/interceptors/error.interceptor.ts","../../../projects/ngx-lib/src/core/http/services/loader.service.ts","../../../projects/ngx-lib/src/core/http/interceptors/loader.interceptor.ts","../../../projects/ngx-lib/src/core/http/interceptors/profiler.interceptor.ts","../../../projects/ngx-lib/src/core/http/interceptors/index.ts","../../../projects/ngx-lib/src/core/clipboard/clipboard.directive.ts","../../../projects/ngx-lib/src/core/layout/layout.service.ts","../../../projects/ngx-lib/src/core/layout/rtl.directive.ts","../../../projects/ngx-lib/src/core/common/pipes/common-pipes.ts","../../../projects/ngx-lib/src/core/common/pipes/date-ago.pipe.ts","../../../projects/ngx-lib/src/core/common/directives/auto-width.directive.ts","../../../projects/ngx-lib/src/core/common/directives/button-blur.directive.ts","../../../projects/ngx-lib/src/core/common/services/utilities.service.ts","../../../projects/ngx-lib/src/core/common/directives/button-loader.directive.ts","../../../projects/ngx-lib/src/core/common/directives/menu-blur.directive.ts","../../../projects/ngx-lib/src/core/common/directives/data-qa.directive.ts","../../../projects/ngx-lib/src/core/common/directives/prevent-multi-click.directive.ts","../../../projects/ngx-lib/src/core/common/directives/print.directive.ts","../../../projects/ngx-lib/src/core/common/services/jwt-helper.service.ts","../../../projects/ngx-lib/src/core/common/services/session.service.ts","../../../projects/ngx-lib/src/core/common/services/file.service.ts","../../../projects/ngx-lib/src/core/customization/customization.service.ts","../../../projects/ngx-lib/src/core/common/directives/div-loader.directive.ts","../../../projects/ngx-lib/src/core/portal/portal.service.ts","../../../projects/ngx-lib/src/core/portal/attach.directive.ts","../../../projects/ngx-lib/src/core/portal/target.directive.ts","../../../projects/ngx-lib/src/core/clipboard/clipboard.service.ts","../../../projects/ngx-lib/src/core/clipboard/public-api.ts","../../../projects/ngx-lib/src/core/clipboard/index.ts","../../../projects/ngx-lib/src/core/common/directives/public-api.ts","../../../projects/ngx-lib/src/core/common/directives/index.ts","../../../projects/ngx-lib/src/core/common/model/papi.model.ts","../../../projects/ngx-lib/src/core/common/model/utilities.model.ts","../../../projects/ngx-lib/src/core/common/model/wapi.model.ts","../../../projects/ngx-lib/src/core/common/model/public-api.ts","../../../projects/ngx-lib/src/core/common/model/index.ts","../../../projects/ngx-lib/src/core/common/pipes/public-api.ts","../../../projects/ngx-lib/src/core/common/pipes/index.ts","../../../projects/ngx-lib/src/core/common/services/cookie.service.ts","../../../projects/ngx-lib/src/core/http/services/http.service.ts","../../../projects/ngx-lib/src/core/common/services/translate.service.ts","../../../projects/ngx-lib/src/core/common/services/addon.service.ts","../../../projects/ngx-lib/src/core/common/services/color.service.ts","../../../projects/ngx-lib/src/core/common/services/data-convertor.service.ts","../../../projects/ngx-lib/src/core/common/services/validator.service.ts","../../../projects/ngx-lib/src/core/common/services/window-scrolling.service.ts","../../../projects/ngx-lib/src/core/common/services/public-api.ts","../../../projects/ngx-lib/src/core/common/services/index.ts","../../../projects/ngx-lib/src/core/common/public-api.ts","../../../projects/ngx-lib/src/core/common/index.ts","../../../projects/ngx-lib/src/core/customization/customization.model.ts","../../../projects/ngx-lib/src/core/customization/public-api.ts","../../../projects/ngx-lib/src/core/customization/index.ts","../../../projects/ngx-lib/src/core/http/public-api.ts","../../../projects/ngx-lib/src/core/http/index.ts","../../../projects/ngx-lib/src/core/layout/public-api.ts","../../../projects/ngx-lib/src/core/layout/index.ts","../../../projects/ngx-lib/src/core/portal/public-api.ts","../../../projects/ngx-lib/src/core/portal/index.ts","../../../projects/ngx-lib/src/core/scroll-to/scroll-to.service.ts","../../../projects/ngx-lib/src/core/scroll-to/public-api.ts","../../../projects/ngx-lib/src/core/scroll-to/index.ts","../../../projects/ngx-lib/src/core/public-api.ts","../../../projects/ngx-lib/src/core/index.ts","../../../projects/ngx-lib/src/ngx-lib.module.ts","../../../projects/ngx-lib/src/public-api.ts","../../../projects/ngx-lib/src/pepperi-addons-ngx-lib.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport {\n HttpEvent,\n HttpRequest,\n HttpHandler,\n HttpInterceptor,\n HttpErrorResponse,\n} from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, retry } from 'rxjs/operators';\n// import { ToastrService } from 'ngx-toastr';\n\n@Injectable()\nexport class PepErrorInterceptor implements HttpInterceptor {\n // constructor() {} // private toastr: ToastrService\n\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n // console.warn('ErrorInterceptor');\n\n return next.handle(req).pipe(\n // retry(2), TODO: Check if we want to retry\n catchError((error: HttpErrorResponse) => {\n // 401 handled in auth.interceptor\n if (error.status !== 401) {\n // TODO: Show error in dialog.\n // this.toastr.error(error.message);\n }\n return throwError(error);\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter, distinctUntilChanged } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepLoaderService {\n counter = 0;\n private showLoaderSubject: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(undefined);\n\n get onChanged$(): Observable<boolean> {\n return this.showLoaderSubject\n .asObservable()\n .pipe(\n filter(v => v !== undefined),\n distinctUntilChanged());\n }\n\n constructor() {\n // Raise custom event for showing the loader.\n this.onChanged$.subscribe((show) => {\n this.showLoaderChanged(show);\n });\n }\n\n private showLoaderChanged(show: boolean): void {\n const eventData = {\n detail: {\n showLoader: show,\n },\n };\n\n const event = new CustomEvent('toggleLoader', eventData);\n window.dispatchEvent(event);\n }\n\n show(): void {\n this.counter++;\n this.showLoaderSubject.next(true);\n }\n\n hide(): void {\n this.counter--;\n\n if (this.counter < 0) {\n this.counter = 0;\n }\n\n if (this.counter === 0) {\n this.showLoaderSubject.next(false);\n }\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport {\n HttpEvent,\n HttpRequest,\n HttpHandler,\n HttpInterceptor,\n HttpResponse,\n} from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { finalize, delay, map, catchError } from 'rxjs/operators';\nimport { PepLoaderService } from '../services/loader.service';\n\n@Injectable()\nexport class PepLoaderInterceptor implements HttpInterceptor {\n constructor(private injector: Injector) { }\n\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n // console.warn('LoaderInterceptor');\n const newVer = 2;\n const loaderService = this.injector.get(PepLoaderService);\n // console.log('show', req.url); \n loaderService.show();\n\n return next.handle(req).pipe(\n // delay(3000),\n catchError((err) => throwError(err)),\n finalize(() => loaderService.hide())\n );\n\n // return next.handle(req).pipe(map(event => {\n // if (event instanceof HttpResponse) {\n // loaderService.hide();\n // }\n\n // return event;\n // }));\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpEvent,\n HttpRequest,\n HttpHandler,\n HttpInterceptor,\n HttpResponse,\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { tap, finalize } from 'rxjs/operators';\n\n@Injectable()\nexport class PepProfilerInterceptor implements HttpInterceptor {\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n // console.warn('ProfilerInterceptor');\n\n const started = Date.now();\n let ok: string;\n\n return next.handle(req).pipe(\n tap(\n // Succeeds when there is a response; ignore other events\n (event: HttpEvent<any>) => {\n if (event instanceof HttpResponse) {\n ok = 'succeeded';\n }\n },\n // Operation failed; error is an HttpErrorResponse\n (error) => (ok = 'failed')\n ),\n // Log when response observable either completes or errors\n finalize(() => {\n const elapsed = Date.now() - started;\n const msg = `${req.method} \"${req.urlWithParams}\" ${ok} in ${elapsed} ms.`;\n console.log(msg);\n })\n );\n }\n}\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\n\n// import { AuthInterceptor } from './auth.interceptor';\n// import { CacheInterceptor } from './cache.interceptor';\n// import { ConvertInterceptor } from './convert.interceptor';\nimport { PepErrorInterceptor } from './error.interceptor';\n// import { FakeInterceptor } from './fake.interceptor';\n// import { HeaderInterceptor } from './header.interceptor';\nimport { PepLoaderInterceptor } from './loader.interceptor';\nimport { PepProfilerInterceptor } from './profiler.interceptor';\n\nexport const httpInterceptorProviders = [\n // { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },\n // { provide: HTTP_INTERCEPTORS, useClass: CacheInterceptor, multi: true },\n // { provide: HTTP_INTERCEPTORS, useClass: ConvertInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: PepErrorInterceptor, multi: true },\n // { provide: HTTP_INTERCEPTORS, useClass: FakeInterceptor, multi: true },\n // { provide: HTTP_INTERCEPTORS, useClass: HeaderInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: PepLoaderInterceptor, multi: true },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: PepProfilerInterceptor,\n multi: true,\n },\n];\n","// Import the core angular services.\nimport { Directive } from '@angular/core';\nimport { EventEmitter } from '@angular/core';\n\n// Import the application components and services.\n// import { PepClipboardService } from './clipboard.service';\n\n// This directive acts as a simple glue layer between the given [clipboard] property\n// and the underlying ClipboardService. Upon the (click) event, the [clipboard] value\n// will be copied to the ClipboardService and a (clipboardCopy) event will be emitted.\n@Directive({\n selector: '[pepClipboard]',\n inputs: ['value: clipboard'],\n outputs: ['copyEvent: clipboardCopy', 'errorEvent: clipboardError'],\n host: {\n '(click)': 'copyToClipboard()',\n },\n})\nexport class PepClipboardDirective {\n // public copyEvent: EventEmitter<string>;\n // public errorEvent: EventEmitter<Error>;\n // public value: string;\n // private clipboardService: ClipboardService;\n // // I initialize the clipboard directive.\n // constructor(clipboardService: ClipboardService) {\n // this.clipboardService = clipboardService;\n // this.copyEvent = new EventEmitter();\n // this.errorEvent = new EventEmitter();\n // this.value = '';\n // }\n // // ---\n // // PUBLIC METODS.\n // // ---\n // // I copy the value-input to the Clipboard. Emits success or error event.\n // public copyToClipboard(): void {\n // this.clipboardService\n // .copy(this.value)\n // .then((value: string): void => {\n // this.copyEvent.emit(value);\n // })\n // .catch((error: Error): void => {\n // this.errorEvent.emit(error);\n // });\n // }\n}\n","import { Injectable, Optional } from '@angular/core';\nimport { Observable, BehaviorSubject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { TranslateService } from '@ngx-translate/core';\n\n// Const BIDI_RTL_LANGS Array\n// BIDI_RTL_LANGS ref: http://en.wikipedia.org/wiki/Right-to-left\n// Table of scripts in Unicode: https://en.wikipedia.org/wiki/Script_(Unicode)\nconst _BIDI_RTL_LANGS = [\n 'ae' /* Avestan */,\n 'ar' /* 'العربية', Arabic */,\n 'arc' /* Aramaic */,\n 'bcc' /* 'بلوچی مکرانی', Southern Balochi */,\n 'bqi' /* 'بختياري', Bakthiari */,\n 'ckb' /* 'Soranî / کوردی', Sorani */,\n 'dv' /* Dhivehi */,\n 'fa' /* 'فارسی', Persian */,\n 'glk' /* 'گیلکی', Gilaki */,\n 'he' /* 'עברית', Hebrew */,\n 'ku' /* 'Kurdî / كوردی', Kurdish */,\n 'mzn' /* 'مازِرونی', Mazanderani */,\n 'nqo' /* N'Ko */,\n 'pnb' /* 'پنجابی', Western Punjabi */,\n 'ps' /* 'پښتو', Pashto, */,\n 'sd' /* 'سنڌي', Sindhi */,\n 'ug' /* 'Uyghurche / ئۇيغۇرچە', Uyghur */,\n 'ur' /* 'اردو', Urdu */,\n 'yi' /* 'ייִדיש', Yiddish */,\n];\n\nexport type PepOrientationType = 'landscape' | 'portrait';\n\nexport enum PepScreenSizeType {\n XL,\n LG,\n MD,\n SM,\n XS,\n}\n// export type PepScreenSizeType = 'xl' | 'lg' | 'md' | 'sm' | 'xs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepLayoutService {\n private resizeSubject: BehaviorSubject<PepScreenSizeType>;\n private deviceHasMouseSubject: BehaviorSubject<boolean>;\n\n get onResize$(): Observable<PepScreenSizeType> {\n return this.resizeSubject.asObservable().pipe(distinctUntilChanged());\n }\n\n get onMouseOver$(): Observable<boolean> {\n return this.deviceHasMouseSubject\n .asObservable()\n .pipe(distinctUntilChanged());\n }\n\n constructor(@Optional() private translate: TranslateService = null) {\n this.resizeSubject = new BehaviorSubject(PepScreenSizeType.LG);\n\n this.deviceHasMouseSubject = new BehaviorSubject(false);\n document.addEventListener(\n 'mouseover',\n this.documentMouseoverListener,\n false\n );\n // document.addEventListener('touchstart', this._documentTouchstartListener, false);\n }\n\n private documentMouseoverListener = (event: MouseEvent) => {\n this.deviceHasMouseSubject.next(true);\n this.deviceHasMouseSubject.complete();\n document.removeEventListener(\n 'mouseover',\n this.documentMouseoverListener,\n false\n );\n };\n\n // private _documentTouchstartListener = (event: TouchEvent) => {\n // debugger;\n // this.isTouchDevice = true;\n // document.removeEventListener('touchstart', this._documentTouchstartListener, false);\n // }\n\n /**\n * Set the current screen size.\n * @param size The size to change to.\n */\n onResize(size: PepScreenSizeType): void {\n this.resizeSubject.next(size);\n }\n\n getDeviceHasMouse(): boolean {\n return this.deviceHasMouseSubject.getValue();\n }\n\n getOrintation(): PepOrientationType {\n if (window.innerHeight > window.innerWidth) {\n return 'portrait';\n } else {\n return 'landscape';\n }\n }\n\n getScreenWidth(): number {\n let retVal = 250.0;\n switch (this.resizeSubject.getValue()) {\n case PepScreenSizeType.XS: {\n retVal = this.getOrintation() === 'landscape' ? 130.0 : 65.0;\n break;\n }\n case PepScreenSizeType.SM:\n case PepScreenSizeType.MD: {\n retVal = this.getOrintation() === 'landscape' ? 220.0 : 140.0;\n break;\n }\n case PepScreenSizeType.LG:\n case PepScreenSizeType.XL: {\n retVal = this.getOrintation() === 'landscape' ? 400.0 : 250.0;\n break;\n }\n }\n return retVal;\n }\n\n getScreenHeight(): number {\n let retVal = 250.0;\n switch (this.resizeSubject.getValue()) {\n case PepScreenSizeType.XS: {\n retVal = this.getOrintation() === 'landscape' ? 65.0 : 130.0;\n break;\n }\n case PepScreenSizeType.SM:\n case PepScreenSizeType.MD: {\n retVal = this.getOrintation() === 'landscape' ? 140.0 : 220.0;\n break;\n }\n case PepScreenSizeType.LG:\n case PepScreenSizeType.XL: {\n retVal = this.getOrintation() === 'landscape' ? 250.0 : 400.0;\n break;\n }\n }\n return retVal;\n }\n\n getScreenHeightPx(): number {\n return (\n window.innerHeight ||\n document.documentElement.clientHeight ||\n document.body.clientHeight\n );\n }\n\n getScreenWidthPx(): number {\n return (\n window.innerWidth ||\n document.documentElement.clientWidth ||\n document.body.clientWidth\n );\n }\n\n getScrollbarWidth() {\n // Creating invisible container\n const outer = document.createElement('div');\n outer.style.visibility = 'hidden';\n outer.style.overflow = 'scroll'; // forcing scrollbar to appear\n // outer.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps\n document.body.appendChild(outer);\n\n // Creating inner element and placing it in the container\n const inner = document.createElement('div');\n outer.appendChild(inner);\n\n // Calculating difference between container's full width and the child width\n const scrollbarWidth = (outer.offsetWidth - inner.offsetWidth);\n\n // Removing temporary elements from the DOM\n outer.parentNode.removeChild(outer);\n\n return scrollbarWidth;\n }\n\n getCurrentLanguage(): string {\n return this.translate?.getBrowserCultureLang() || navigator.language;\n }\n\n isRtl(): boolean {\n const userLang = this.getCurrentLanguage();\n const isRtl = _BIDI_RTL_LANGS.indexOf(userLang) >= 0;\n\n return isRtl;\n }\n}\n","import { Directive, Renderer2, ElementRef, OnInit } from '@angular/core';\nimport { PepLayoutService } from './layout.service';\n\n@Directive({\n selector: '[pepRtlClass]',\n})\nexport class PepRtlClassDirective implements OnInit {\n constructor(\n private layoutService: PepLayoutService,\n private renderer: Renderer2,\n private element: ElementRef\n ) {}\n\n ngOnInit(): void {\n const isRtl = this.layoutService.isRtl();\n\n if (isRtl) {\n this.renderer.addClass(this.element.nativeElement, 'rtl');\n }\n }\n}\n\n@Directive({\n selector: '[pepRtlDirection]',\n})\nexport class PepRtlDirectionDirective implements OnInit {\n constructor(\n private layoutService: PepLayoutService,\n private renderer: Renderer2,\n private element: ElementRef\n ) {}\n\n ngOnInit(): void {\n const isRtl = this.layoutService.isRtl();\n\n this.renderer.setAttribute(\n this.element.nativeElement,\n 'dir',\n isRtl ? 'rtl' : 'ltr'\n );\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport {\n DomSanitizer,\n SafeHtml,\n SafeStyle,\n SafeScript,\n SafeUrl,\n SafeResourceUrl,\n} from '@angular/platform-browser';\n\n@Pipe({ name: 'pepCapitalize' })\nexport class PepCapitalizePipe implements PipeTransform {\n transform(value: any) {\n if (value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n }\n return value;\n }\n}\n\n@Pipe({ name: 'pepEncode' })\nexport class PepEncodePipe implements PipeTransform {\n transform(value: any) {\n if (value) {\n const v = btoa(value);\n return v;\n }\n return value;\n }\n}\n\ndeclare function escape(s: string): string;\n\n@Pipe({ name: 'pepEscape' })\nexport class PepEscapePipe implements PipeTransform {\n transform(value: any) {\n if (value) {\n const v = escape(value);\n return v;\n }\n return value;\n }\n}\n\n@Pipe({ name: 'pepReplaceLineBreaks' })\nexport class PepReplaceLineBreaksPipe implements PipeTransform {\n transform(value: string): string {\n const newValue = value.replace(/(<br\\ ?\\/?>)/g, ' ');\n return newValue;\n }\n}\n\n@Pipe({ name: 'pepDateFormatter' })\nexport class PepDateFormatterPipe implements PipeTransform {\n transform(value: Date, culture: any, showTime = false): string {\n let res = '';\n value = new Date(value);\n if (value) {\n res = value.toLocaleDateString(culture || 'en-US');\n if (showTime) {\n res +=\n ' ' +\n value.toLocaleTimeString(culture || 'en-US', {\n hour: '2-digit',\n minute: '2-digit',\n });\n }\n }\n return res;\n }\n}\n\n@Pipe({ name: 'pepDateStringFormatter' })\nexport class PepDateStringFormatterPipe implements PipeTransform {\n transform(value: string, culture: any, showTime = false): string {\n let res = '';\n const tmpDate = new Date(value);\n if (value) {\n res = tmpDate.toLocaleDateString(culture || 'en-US');\n if (showTime) {\n res += ' ' + tmpDate.toLocaleTimeString(culture || 'en-US');\n }\n }\n return res;\n }\n}\n\n@Pipe({ name: 'pepSafeHtml' })\nexport class PepSafeHtmlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(html) {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n\n@Pipe({ name: 'pepSafe' })\nexport class PepSafePipe implements PipeTransform {\n constructor(protected sanitizer: DomSanitizer) {}\n\n public transform(\n value: any,\n type: string\n ): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n switch (type) {\n case 'html':\n return this.sanitizer.bypassSecurityTrustHtml(value);\n\n case 'style':\n return this.sanitizer.bypassSecurityTrustStyle(value);\n\n case 'script':\n return this.sanitizer.bypassSecurityTrustScript(value);\n\n case 'url':\n return this.sanitizer.bypassSecurityTrustUrl(value);\n\n case 'resourceUrl':\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n\n default:\n throw new Error(`Invalid safe type specified: ${type}`);\n }\n }\n}\n\n@Pipe({ name: 'pepSplitUppercase' })\nexport class PepSplitUppercasePipe implements PipeTransform {\n transform(value: string): string {\n const newValue = value.replace(/([a-z])([A-Z])/g, '$1 $2');\n return newValue;\n }\n}\n\n@Pipe({ name: 'pepToNumber' })\nexport class PepToNumberPipe implements PipeTransform {\n transform(value: string): number {\n return parseInt(value);\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Pipe({\r\n name: 'dateAgo'\r\n})\r\nexport class DateAgoPipe implements PipeTransform {\r\n constructor(private translateService: TranslateService) {}\r\n\r\n private getCounterTranslation(counter: number, key: string) {\r\n const intervalText = this.translateService.get(`DATE_AGO.${key.toUpperCase()}`) || key;\r\n const agoText = this.translateService.get(counter === 1 ? 'DATE_AGO.SINGULAR' : 'DATE_AGO.PLURAL') || counter === 1 ? ' ago' : 's ago';\r\n return `${intervalText}${agoText}`;\r\n }\r\n\r\n transform(value: any, args?: any): any {\r\n if (value) {\r\n const seconds = Math.floor((+new Date() - +new Date(value)) / 1000);\r\n if (seconds < 29) // less than 30 seconds ago will show as 'Just now'\r\n return this.translateService.get('DATE_AGO.JUST_NOW') || 'Just now';\r\n const intervals: { [key: string]: number } = {\r\n 'year': 31536000,\r\n 'month': 2592000,\r\n 'week': 604800,\r\n 'day': 86400,\r\n 'hour': 3600,\r\n 'minute': 60,\r\n 'second': 1\r\n };\r\n let counter;\r\n for (const i in intervals) {\r\n counter = Math.floor(seconds / intervals[i]);\r\n if (counter > 0) {\r\n this.getCounterTranslation(counter, i);\r\n }\r\n }\r\n }\r\n return value;\r\n }\r\n\r\n}","import {\n AfterViewInit,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n Renderer2,\n} from '@angular/core';\n\n@Directive({\n selector: '[pepAutoWidth]',\n})\nexport class PepInputAutoWidthDirective implements AfterViewInit, OnDestroy {\n @Input() includePadding = true;\n\n private input: any = null;\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngAfterViewInit(): void {\n if (this.el.nativeElement.tagName.toLowerCase() === 'input') {\n this.input = this.el;\n } else {\n const list = this.el.nativeElement.querySelectorAll('input');\n this.input = list.length > 0 ? list[0] : null;\n }\n\n if (this.input) {\n this.input.addEventListener(\n 'blur',\n this.setWidthUsingText.bind(this)\n );\n this.input.addEventListener(\n 'keyup',\n this.setWidthUsingText.bind(this)\n );\n }\n\n this.setWidthUsingText();\n }\n\n ngOnDestroy() {\n this.input.removeEventListener(\n 'blur',\n this.setWidthUsingText.bind(this)\n );\n this.input.removeEventListener(\n 'keyup',\n this.setWidthUsingText.bind(this)\n );\n }\n\n get paddingWidth(): number {\n return this.includePadding\n ? this._sumPropertyValues(['padding-left', 'padding-right'])\n : 0;\n }\n\n get style() {\n return getComputedStyle(this.input, '');\n }\n\n setWidth(width: number): void {\n this.renderer.setStyle(this.input, 'width', width + 'px');\n }\n\n setWidthUsingText(): void {\n if (this.input) {\n const text = this.input.value;\n this.setWidth(this.textWidth(text) + this.paddingWidth);\n }\n }\n\n private _sumPropertyValues(properties: string[]): number {\n return properties\n .map((property) =>\n parseInt(this.style.getPropertyValue(property), 10)\n )\n .reduce((a, b) => a + b, 0);\n }\n\n private textWidth(value: string): number {\n const ctx = this.renderer.createElement('canvas').getContext('2d');\n const {\n fontStyle,\n fontVariant,\n fontWeight,\n fontSize,\n fontFamily,\n } = this.style;\n\n // font string format: {normal, normal, 700, 20px, Roboto, \"Helvetica Neue\", sans-serif}\n ctx.font =\n fontStyle +\n ' ' +\n fontVariant +\n ' ' +\n fontWeight +\n ' ' +\n fontSize +\n ' ' +\n fontFamily;\n return ctx ? ctx.measureText(value).width : 0;\n }\n}\n","import { Directive, HostListener, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[pepButtonBlur]',\n})\nexport class PepButtonBlurDirective {\n constructor(private element: ElementRef) {}\n\n @HostListener('click')\n onClick(): void {\n setTimeout(() => {\n this.element.nativeElement.blur();\n }, 0);\n }\n}\n","import { coerceNumberProperty, _isNumberValue } from '@angular/cdk/coercion';\nimport { formatCurrency, formatNumber, formatPercent } from '@angular/common';\nimport { Injectable, Optional } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepUtilitiesService {\n private culture = 'en-US';\n\n constructor(@Optional() private translate: TranslateService = null) {\n this.culture = this.translate?.getBrowserCultureLang() || 'en-US';\n\n // try {\n // import(`@angular/common/locales/global/${this.culture}`);\n // } catch {}\n }\n\n private prepareNumberToFormat(value: string, fallbackValue = 0): number {\n // If the decimal separator is ',' change it to '.'\n if (value?.length > 0) {\n // If the decimal separator is ',' change it to '.' for let the formatting works.\n value = this.changeDecimalSeparatorWhenItsComma(value);\n // console.log('coerceNumberProperty after change decimal separator value is', value);\n }\n\n return coerceNumberProperty(value, fallbackValue);\n }\n\n // adapted from https://github.com/sindresorhus/parse-ms.\n // moved to internal function because parse-ms is now pure ESM.\n private parseMs(milliseconds: number) {\n if (typeof milliseconds !== 'number') {\n throw new TypeError('Expected a number')\n }\n\n return {\n days: Math.trunc(milliseconds / 86400000),\n hours: Math.trunc(milliseconds / 3600000) % 24,\n minutes: Math.trunc(milliseconds / 60000) % 60,\n seconds: Math.trunc(milliseconds / 1000) % 60,\n milliseconds: Math.trunc(milliseconds) % 1000\n }\n }\n\n // adapted from https://github.com/rafaelrinaldi/add-zero.\n // moved to internal function b/c addZero is unmaintained (7+ years).\n // stripped out negative sign logic since we're already doing it elsewhere.\n private addZero(value: number, digits = 2) {\n digits = digits || 2\n\n let str = value.toString()\n let size = 0\n\n size = digits - str.length + 1\n str = new Array(size).join('0').concat(str)\n\n return str\n }\n\n private isCurrencyShouldBeOnRight(currencySymbol: string) {\n let res = false;\n\n if (currencySymbol == \"€\" ||\n currencySymbol == \"₪\" ||\n currencySymbol == \"Ft\" ||\n currencySymbol == \"Kč\" ||\n currencySymbol == \"руб\" ||\n currencySymbol == \"zł\" ||\n currencySymbol == \"kr.\") {\n res = true;\n }\n\n return res;\n }\n\n private cutValueByFractionDigits(value: string, maxFractionDigits: number): string {\n let res = value;\n maxFractionDigits = maxFractionDigits || 2;\n const decimalSeparator = this.getDecimalSeparator();\n\n if (value.includes(decimalSeparator)) {\n const valueArr = value.split(decimalSeparator);\n\n // if (valueArr[1].length < maxFractionDigits) {\n valueArr[1] = valueArr[1].padEnd(maxFractionDigits, '0');\n // }\n\n res = `${valueArr[0]}${decimalSeparator}${valueArr[1].slice(0, maxFractionDigits)}`;\n }\n\n return res;\n }\n\n parseDate(dateStr: string, showTime = false): Date {\n let retVal: Date = null;\n if (dateStr !== '') {\n retVal = new Date(dateStr);\n\n // Convert to date with no offset.\n if (!showTime) {\n const index = dateStr.indexOf('T');\n\n if (index > 0) {\n dateStr = dateStr.substring(0, index);\n }\n\n const dateText = dateStr.split('-');\n if (dateText.length === 3) {\n const year = Number(dateText[0]);\n const month = Number(dateText[1]) - 1;\n const day = Number(dateText[2]);\n retVal = new Date(year, month, day, 0, retVal.getTimezoneOffset() * -1);\n }\n } else {\n retVal = new Date(\n retVal.getFullYear(), retVal.getMonth(), retVal.getDate(), retVal.getHours(),\n retVal.getMinutes() + retVal.getTimezoneOffset() * -1, retVal.getSeconds());\n }\n }\n if (retVal && isNaN(retVal.getTime())) {\n retVal = null;\n }\n return retVal;\n }\n\n stringifyDate(date: Date, showTime = false): string {\n if (date) {\n if (showTime) {\n return date.toISOString(); // include - offset\n } else {\n const dateText = [];\n dateText.push(\n date.getFullYear(),\n '-',\n date.getMonth() + 1,\n '-',\n date.getDate()\n );\n return dateText.join('');\n }\n } else {\n return '';\n }\n }\n\n isValueHtml(value: string): boolean {\n let res = false;\n const REGEXP = /<\\/?[a-z][\\s\\S]*>/i;\n res = REGEXP.test(value);\n\n return res;\n }\n\n isJsonString(str: string): boolean {\n try {\n JSON.parse(str);\n } catch (e) {\n return false;\n }\n return true;\n }\n\n getSvgElementFromString(document, svgContent: string): SVGElement {\n const div = document.createElement('DIV');\n // div.className = 'svg-icon';\n // Add class svg-icon\n if (svgContent?.length > 0) {\n div.innerHTML = svgContent.replace('<svg ', '<svg class=\"svg-icon\" ');\n }\n return (\n div.querySelector('svg') ||\n document.createElementNS('http://www.w3.org/2000/svg', 'path')\n );\n }\n\n // formatPercent(value: any, digitsInfo = '1.0-2') {\n formatPercent(value: any, minFractionDigits = 0, maxFractionDigits = 2) {\n minFractionDigits = coerceNumberProperty(minFractionDigits, null);\n maxFractionDigits = coerceNumberProperty(maxFractionDigits, null);\n\n value = this.cutValueByFractionDigits(value?.toString(), Math.max(minFractionDigits, maxFractionDigits));\n const number = this.prepareNumberToFormat(value);\n\n if (number === 0) {\n return '0%';\n } else {\n // return formatPercent(number / 100, this.culture, digitsInfo);\n return new Intl.NumberFormat(this.culture, {\n style: 'percent',\n minimumFractionDigits: minFractionDigits || 0,\n maximumFractionDigits: maxFractionDigits || Math.max(2, minFractionDigits),\n }).format(number / 100);\n }\n }\n\n // formatCurrency(value: any, currencySign = '', digitsInfo = '1.2-2') {\n formatCurrency(value: any, currencySign = '', minFractionDigits = 2, maxFractionDigits = 2, useGrouping = true) {\n minFractionDigits = coerceNumberProperty(minFractionDigits, null);\n maxFractionDigits = coerceNumberProperty(maxFractionDigits, null);\n\n let res = '';\n\n // If the decimal separator is the last digit\n // if (value.length > 0 && value.indexOf(this.getDecimalSeparator()) === value.length -1) {\n // res = value;\n // } else {\n value = this.cutValueByFractionDigits(value?.toString(), Math.max(minFractionDigits, maxFractionDigits));\n const number = this.prepareNumberToFormat(value);\n const styleOptions = {\n // style: 'currency',\n // currencySign: currencySign,\n useGrouping: useGrouping,\n minimumFractionDigits: minFractionDigits || Math.min(2, maxFractionDigits || 2),\n maximumFractionDigits: maxFractionDigits || Math.max(2, minFractionDigits),\n };\n \n if (number === 0) {\n // return formatCurrency(0, this.culture, currencySign, undefined, digitsInfo);\n res = new Intl.NumberFormat(this.culture, styleOptions).format(0);\n } else {\n // return formatCurrency(value, this.culture, currencySign, undefined, digitsInfo);\n res = new Intl.NumberFormat(this.culture, styleOptions).format(number);\n }\n \n if (currencySign.length > 0) {\n res = this.isCurrencyShouldBeOnRight(currencySign) ? `${res} ${currencySign}` : `${currencySign} ${res}`\n }\n // }\n\n return res;\n }\n\n // formatDecimal(value: any, digitsInfo = '1.2-2') {\n formatDecimal(value: any, minFractionDigits = 2, maxFractionDigits = 2, useGrouping = true) {\n minFractionDigits = coerceNumberProperty(minFractionDigits, null);\n // console.log('formatDecimal minFractionDigits value is', minFractionDigits);\n maxFractionDigits = coerceNumberProperty(maxFractionDigits, null);\n // console.log('formatDecimal minFractionDigits value is', maxFractionDigits);\n\n value = this.cutValueByFractionDigits(value?.toString(), Math.max(minFractionDigits, maxFractionDigits));\n const number = this.prepareNumberToFormat(value);\n \n // console.log('number value is', number);\n\n if (number === 0) {\n return '0';\n } else {\n // return formatNumber(value, this.culture, digitsInfo);\n const res = new Intl.NumberFormat(this.culture, {\n useGrouping: useGrouping,\n minimumFractionDigits: minFractionDigits || Math.min(2, maxFractionDigits || 2),\n maximumFractionDigits: maxFractionDigits || Math.max(2, minFractionDigits),\n }).format(number);\n \n // console.log('Intl.NumberFormat value is', res);\n\n return res;\n }\n }\n\n // formatNumber(value: any, digitsInfo = '1.0-0'): string {\n formatNumber(value: any, useGrouping = true): string {\n const number = this.prepareNumberToFormat(value);\n\n if (number === 0) {\n return '0';\n } else {\n // return formatNumber(value, this.culture, digitsInfo);\n return new Intl.NumberFormat(this.culture, {\n useGrouping: useGrouping,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n }).format(number)\n }\n }\n\n /**\n * Convert a number in milliseconds to a standard duration string.\n * @param {number} value - duration in milliseconds\n * @param {object} options - formatDuration options object\n * @param {boolean} [options.leading=false] - add leading zero\n * @returns string - formatted duration string\n */\n formatDuration(value, options: { leading?: boolean, duration?: 'milliseconds' | 'seconds' } = {}): string {\n const isNumber = _isNumberValue(value);\n\n if (!isNumber) {\n return value;\n } else {\n let number = this.prepareNumberToFormat(value);\n\n const leading = options?.leading || true;\n const duration = options?.duration || 'milliseconds';\n if (duration === 'seconds') {\n number = number * 1000;\n }\n\n const unsignedMs = number < 0 ? -number : number;\n const sign = number <= -1000 ? '-' : '';\n const t = this.parseMs(unsignedMs);\n const seconds = this.addZero(t.seconds);\n\n if (t.days) {\n return sign + t.days + ':' + this.addZero(t.hours) + ':' + this.addZero(t.minutes) + ':' + seconds\n }\n\n if (t.hours) {\n return sign + (leading ? this.addZero(t.hours) : t.hours) + ':' + this.addZero(t.minutes) + ':' + seconds\n }\n\n return sign + (leading ? this.addZero(t.minutes) : t.minutes) + ':' + seconds\n }\n }\n\n incrementNumber(value: any): string {\n let numberValue = coerceNumberProperty(value, 0);\n return (++numberValue).toString();\n }\n\n decrementNumber(value: any): string {\n let numberValue = coerceNumberProperty(value, 0);\n return (--numberValue).toString();\n }\n\n getDecimalSeparator(): string {\n const numberWithDecimalSeparator = 1.1;\n\n return numberWithDecimalSeparator\n .toLocaleString(this.culture)\n .substring(1, 2);\n }\n\n changeDecimalSeparatorWhenItsComma(value: string, reverse = false): string {\n // If the decimal separator is ','\n if (this.getDecimalSeparator() === ',') {\n // In case that the value isn't string.\n value = value?.toString() || '';\n\n // If reverse change the number from '.' to ',' else do the opposite.\n value = reverse ? value.replace('.', ',') : value.replace(',', '.');\n }\n\n return value;\n }\n\n isEqualNumber(numberAsString: string, numberAsString2: string): boolean {\n const number = this.prepareNumberToFormat(numberAsString);\n const number2 = this.prepareNumberToFormat(numberAsString2);\n\n return number === number2;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n OnInit,\n Optional,\n Renderer2,\n} from '@angular/core';\nimport { PepUtilitiesService } from '../services/utilities.service';\n\n@Directive({\n selector: '[pepButtonLoader]',\n})\nexport class PepButtonLoaderDirective implements OnInit {\n @Input() loaderTime = 0;\n @Input() loaderColor = null;\n @Input() loaderWidth = '1.5rem';\n @Input() loaderHeight = 'inherit';\n @Input() ignoreDisabledStyle = false;\n\n private _isLoading = false;\n private _finish = null;\n @Input()\n set finish(value: boolean) {\n this._finish = value;\n\n if (this._isLoading && value) {\n this.toggleLoading(false);\n }\n }\n\n private svgIcon: SVGElement;\n\n constructor(\n private renderer: Renderer2,\n private element: ElementRef,\n private utilitiesService: PepUtilitiesService,\n @Optional() @Inject(DOCUMENT) private document: any\n ) {}\n\n @HostListener('click', ['$event'])\n clickEvent(event): void {\n this.toggleLoading(true);\n\n // In case that the finish input is supplied - init it.\n if (this._finish !== null) {\n this._finish = false;\n } else {\n // Init loaderTime if is not supplied (3000 - default 3 seconds).\n if (this.loaderTime === 0) {\n this.loaderTime = 3000;\n }\n }\n\n if (this.loaderTime > 0) {\n setTimeout(() => {\n this.toggleLoading(false);\n }, this.loaderTime);\n }\n }\n\n ngOnInit(): void {\n this.setButtonStyle();\n const svgData =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\" preserveAspectRatio=\"xMidYMid\" class=\"lds-ripple\" style=\"background:0 0; \"><circle cx=\"64\" cy=\"64\" r=\"0\" fill=\"none\" stroke-width=\"10\"><animate attributeName=\"r\" calcMode=\"spline\" values=\"0;59\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0 0.3 0.8 0.8\" begin=\"-1.6s\" repeatCount=\"indefinite\"/><animate attributeName=\"opacity\" calcMode=\"spline\" values=\"1;0\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0.3 0 0.8 1\" begin=\"-1.6s\" repeatCount=\"indefinite\"/></circle><circle cx=\"64\" cy=\"64\" r=\"0\" fill=\"none\" stroke-width=\"10\"><animate attributeName=\"r\" calcMode=\"spline\" values=\"0;59\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0 0.3 0.8 0.8\" begin=\"-0.8s\" repeatCount=\"indefinite\"/><animate attributeName=\"opacity\" calcMode=\"spline\" values=\"1;0\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0.3 0 0.8 1\" begin=\"-0.8s\" repeatCount=\"indefinite\"/></circle><circle cx=\"64\" cy=\"64\" r=\"0\" fill=\"none\" stroke-width=\"10\"><animate attributeName=\"r\" calcMode=\"spline\" values=\"0;59\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0 0.3 0.8 0.8\" begin=\"0s\" repeatCount=\"indefinite\"/><animate attributeName=\"opacity\" calcMode=\"spline\" values=\"1;0\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0.3 0 0.8 1\" begin=\"0s\" repeatCount=\"indefinite\"/></circle></svg>';\n this.svgIcon = this.utilitiesService.getSvgElementFromString(\n this.document,\n svgData\n );\n this.setIconStyle();\n }\n\n private setButtonStyle(): void {\n this.renderer.setStyle(this.element.nativeElement, 'display', 'flex');\n this.renderer.setStyle(\n this.element.nativeElement,\n 'justify-content',\n 'center'\n );\n this.renderer.setStyle(\n this.element.nativeElement,\n 'align-items',\n 'center'\n );\n\n if (this.ignoreDisabledStyle) {\n this.renderer.addClass(\n this.element.nativeElement,\n 'ignore-disabled'\n );\n }\n }\n\n private setIconStyle(): void {\n if (this.loaderColor) {\n this.renderer.setStyle(this.svgIcon, 'stroke', this.loaderColor);\n }\n\n this.renderer.setStyle(this.svgIcon, 'width', this.loaderWidth);\n this.renderer.setStyle(this.svgIcon, 'height', this.loaderHeight);\n this.renderer.setStyle(this.svgIcon, 'margin-inline-start', '0.5rem');\n this.renderer.addClass(this.svgIcon, 'svg-icon');\n this.renderer.addClass(this.svgIcon, 'stroke');\n }\n\n private toggleLoading(show: boolean): void {\n if (show) {\n this._isLoading = true;\n this.renderer.appendChild(this.element.nativeElement, this.svgIcon);\n this.renderer.setAttribute(\n this.element.nativeElement,\n 'disabled',\n 'true'\n );\n this.renderer.addClass(this.element.nativeElement, 'lock-events');\n } else {\n if (this._isLoading) {\n this._isLoading = false;\n this.renderer.removeChild(\n this.element.nativeElement,\n this.svgIcon\n );\n this.renderer.removeAttribute(\n this.element.nativeElement,\n 'disabled'\n );\n this.renderer.removeClass(\n this.element.nativeElement,\n 'lock-events'\n );\n }\n }\n }\n}\n","import { Directive, HostListener, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[pepMenuBlur]',\n})\nexport class PepMenuBlurDirective {\n constructor(private element: ElementRef) {}\n\n @HostListener('menuClosed')\n menuClosedEvent(): void {\n setTimeout(() => {\n this.element.nativeElement.blur();\n }, 0);\n }\n\n @HostListener('menuOpened')\n menuOpenedEvent(): void {\n setTimeout(() => {\n this.element.nativeElement.blur();\n }, 0);\n }\n}\n","import {\n Directive,\n HostListener,\n ElementRef,\n Renderer2,\n OnInit,\n Input,\n} from '@angular/core';\n\n@Directive({\n selector: '[pepDataQa]',\n})\nexport class PepDataQaDirective implements OnInit {\n @Input('pepDataQa') dataQa: string;\n\n constructor(private renderer: Renderer2, private element: ElementRef) {}\n\n ngOnInit(): void {\n this.renderer.setAttribute(\n this.element.nativeElement,\n 'data-qa',\n this.dataQa\n );\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: '[pepPreventMultiClick]',\n})\nexport class PepPreventMultiClickDirective {\n @Input() disabledTime = 1000;\n\n @HostListener('click', ['$event'])\n clickEvent(event): void {\n event.srcElement.setAttribute('disabled', true);\n setTimeout(() => {\n event.srcElement.removeAttribute('disabled');\n }, this.disabledTime);\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\r\n@Directive({\r\n selector: \"[pepPrint]\"\r\n})\r\nexport class PepPrintDirective {\r\n\r\n public _printStyle = [];\r\n\r\n /**\r\n * @memberof PepPrintDirective\r\n */\r\n @Input() printSectionId: string;\r\n\r\n /**\r\n * @memberof PepPrintDirective\r\n */\r\n @Input() printTitle: string;\r\n\r\n /**\r\n * @memberof PepPrintDirective\r\n */\r\n @Input() useExistingCss = true;\r\n\r\n /**\r\n * A delay in milliseconds to force the print dialog to wait before opened. Default: 0\r\n * \r\n * @memberof PepPrintDirective\r\n */\r\n @Input() printDelay = 0;\r\n\r\n /**\r\n * @memberof PepPrintDirective\r\n */\r\n @Input()\r\n set printStyle(values: { [key: string]: { [key: string]: string } }) {\r\n for (const key in values) {\r\n if (values.hasOwnProperty(key)) {\r\n this._printStyle.push((key + JSON.stringify(values[key])).replace(/['\"]+/g, ''));\r\n }\r\n }\r\n this.returnStyleValues();\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @returns the string that create the stylesheet which will be injected\r\n * later within <style></style> tag.\r\n *\r\n * - join/replace to transform an array objects to css-styled string\r\n * @memberof PepPrintDirective\r\n */\r\n public returnStyleValues() {\r\n return `<style> ${this._printStyle.join(' ').replace(/,/g, ';')} </style>`;\r\n }\r\n\r\n /**\r\n * @returns html for the given tag\r\n *\r\n * @memberof PepPrintDirective\r\n */\r\n private _styleSheetFile = '';\r\n\r\n /**\r\n * @memberof PepPrintDirective\r\n * @param cssList\r\n */\r\n @Input()\r\n set styleSheetFile(cssList: string) {\r\n const linkTagFn = function (cssFileName) {\r\n return `<link rel=\"stylesheet\" type=\"text/css\" href=\"${cssFileName}\">`;\r\n }\r\n if (cssList.indexOf(',') !== -1) {\r\n const valueArr = cssList.split(',');\r\n for (const val of valueArr) {\r\n this._styleSheetFile = this._styleSheetFile + linkTagFn(val);\r\n }\r\n } else {\r\n this._styleSheetFile = linkTagFn(cssList);\r\n }\r\n }\r\n\r\n /**\r\n * @returns string which contains the link tags containing the css which will\r\n * be injected later within <head></head> tag.\r\n *\r\n */\r\n private returnStyleSheetLinkTags() {\r\n return this._styleSheetFile;\r\n }\r\n private getElementTag(tag: keyof HTMLElementTagNameMap): string {\r\n const html: string[] = [];\r\n const elements = document.getElementsByTagName(tag);\r\n for (let index = 0; index < elements.length; index++) {\r\n html.push(elements[index].outerHTML);\r\n }\r\n return html.join('\\r\\n');\r\n }\r\n\r\n /**\r\n * \r\n * @param data the html element collection to save defaults to\r\n * \r\n */\r\n private getFormData(data: any) {\r\n for (let i = 0; i < data.length; i++) {\r\n data[i].defaultValue = data[i].value;\r\n if (data[i].checked) {\r\n data[i].defaultChecked = true;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @returns html section to be printed along with some associated inputs\r\n * \r\n */\r\n private getHtmlContents() {\r\n const printContents = document.getElementById(this.printSectionId);\r\n const innards = printContents.getElementsByTagName('input');\r\n this.getFormData(innards);\r\n\r\n const txt = printContents.getElementsByTagName('textarea');\r\n this.getFormData(txt);\r\n\r\n return printContents.innerHTML;\r\n }\r\n\r\n /**\r\n * @memberof PepPrintDirective\r\n */\r\n @HostListener('click')\r\n public print(): void {\r\n let styles = '', links = '';\r\n const baseTag = this.getElementTag('base');\r\n\r\n if (this.useExistingCss) {\r\n styles = this.getElementTag('style');\r\n links = this.getElementTag('link');\r\n }\r\n\r\n const printContents = this.getHtmlContents();\r\n const popupWin = window.open(\"\", \"_blank\", \"top=0,left=0,height=auto,width=auto\");\r\n popupWin.document.open();\r\n popupWin.document.write(`\r\n <html>\r\n <head>\r\n <title>${this.printTitle ? this.printTitle : \"\"}</title>\r\n ${baseTag}\r\n ${this.returnStyleValues()}\r\n ${this.returnStyleSheetLinkTags()}\r\n ${styles}\r\n ${links}\r\n </head>\r\n <body>\r\n ${printContents}\r\n <script defer>\r\n function triggerPrint(event) {\r\n window.removeEventListener('load', triggerPrint, false);\r\n setTimeout(function() {\r\n closeWindow(window.print());\r\n }, ${this.printDelay});\r\n }\r\n function closeWindow(){\r\n window.close();\r\n }\r\n window.addEventListener('load', triggerPrint, false);\r\n </script>\r\n </body>\r\n </html>`\r\n );\r\n popupWin.document.close();\r\n }\r\n}","import { HttpRequest } from '@angular/common/http';\nimport { Injectable, Inject } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepJwtHelperService {\n public urlBase64Decode(str: string): string {\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0: {\n break;\n }\n case 2: {\n output += '==';\n break;\n }\n case 3: {\n output += '=';\n break;\n }\n default: {\n throw new Error('Illegal base64url string!');\n }\n }\n return this.b64DecodeUnicode(output);\n }\n\n // credits for decoder goes to https://github.com/atk\n private b64decode(str: string): string {\n const chars =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n let output = '';\n\n str = String(str).replace(/=+$/, '');\n\n if (str.length % 4 === 1) {\n throw new Error(\n \"'atob' failed: The string to be decoded is not correctly encoded.\"\n );\n }\n\n for (\n // initialize result and counters\n let bc = 0, bs: any, buffer: any, idx = 0;\n // get next character\n (buffer = str.charAt(idx++));\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer &&\n ((bs = bc % 4 ? bs * 64 + buffer : buffer),\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4)\n ? (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6))))\n : 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n }\n\n private b64DecodeUnicode(str: any): string {\n return decodeURIComponent(\n Array.prototype.map\n .call(this.b64decode(str), (c: any) => {\n return (\n '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\n );\n })\n .join('')\n );\n }\n\n public decodeToken(token: string): any {\n if (!token || token === '') {\n return null;\n }\n\n const parts = token.split('.');\n\n if (parts.length !== 3) {\n throw new Error(\n \"The inspected token doesn't appear to be a JWT. Check to make sure it has three parts and see https://jwt.io for more.\"\n );\n }\n\n const decoded = this.urlBase64Decode(parts[1]);\n if (!decoded) {\n throw new Error('Cannot decode the token.');\n }\n\n return JSON.parse(decoded);\n }\n\n public getTokenExpirationDate(token: string): Date | null {\n const decoded = this.decodeToken(token);\n\n if (!decoded || !decoded.hasOwnProperty('exp')) {\n return null;\n }\n\n const date = new Date(0);\n date.setUTCSeconds(decoded.exp);\n\n return date;\n }\n\n public isTokenExpired(token: string, offsetSeconds?: number): boolean {\n if (!token || token === '') {\n return true;\n }\n const date = this.getTokenExpirationDate(token);\n offsetSeconds = offsetSeconds || 0;\n\n if (date === null) {\n return false;\n }\n\n return !(date.valueOf() > new Date().valueOf() + offsetSeconds * 1000);\n }\n\n public getAuthScheme(\n authScheme: (request: HttpRequest<any>) => any | string | undefined,\n request: HttpRequest<any>\n ): string {\n if (typeof authScheme === 'function') {\n return authScheme(request);\n }\n\n return authScheme;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { PepJwtHelperService } from './jwt-helper.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepSessionService {\n private readonly IDP_TOKEN_KEY = 'idp_token';\n private readonly PAPI_BASE_URL_KEY = 'pepperi.baseurl';\n // private readonly API_BASE_URL_KEY = 'pepperi.publicapibaseurl';\n // private readonly WAPI_TOKEN_KEY = 'auth_token';\n private readonly WAPI_BASE_URL_KEY = 'serverHostURL'; // pepperi.webapibaseurl\n // private readonly PEPPERI_CONSUMER_TOKEN: 'YY2pAwx6Exo2LWXrUllF9xzSfWF53wqc';\n\n constructor(private jwtHelper: PepJwtHelperService) {}\n\n private getParseToken(): any {\n // debugger;\n // const tokenTest = \"eyJhbGciOiJSUzI1NiIsImtpZCI6IjRiYTFjNzJmMTI3NThjYzEzMzg3ZWQ3YTBiZjNlODg3IiwidHlwIjoiSldUIn0.eyJuYmYiOjE1OTY3MjU5NjksImV4cCI6MTU5NjcyNjI2OSwiaXNzIjoiaHR0cHM6Ly9pZHAuc2FuZGJveC5wZXBwZXJpLmNvbSIsImF1ZCI6InBlcHBlcmkud2ViYXBwLmFwcC5zYW5kYm94LnBlcHBlcmkuY29tIiwiaWF0IjoxNTk2NzI1OTY5LCJhdF9oYXNoIjoiSGtmRXJ0Q2JzQ3NzOTVKUm05VmJTdyIsInNpZCI6IjJkNzFiM2JiNWUyNjRiNDk2Y2JmZDkzNmYyNTNhNWIzIiwic3ViIjoiZTJkZmQ0MDYtZDM4Yy00ZmYwLThhZGItMWRlMjI3ODIzYWEyIiwiYXV0aF90aW1lIjoxNTk2NzE4ODA5LCJpZHAiOiJsb2NhbCIsIm5hbWUiOiJkYW5pZWwgZGF2aWRvZmYiLCJlbWFpbCI6ImRhbmllbC5kQHBlcHBlcml0ZXN0LmNvbSIsInBlcHBlcmkuaWQiOjg2OTAzMDQsInBlcHBlcmkudXNlcnV1aWQiOiJlMmRmZDQwNi1kMzhjLTRmZjAtOGFkYi0xZGUyMjc4MjNhYTIiLCJwZXBwZXJpLmRpc3RyaWJ1dG9yaWQiOjMwMDEyMzUxLCJwZXBwZXJpLmRpc3RyaWJ1dG9ydXVpZCI6IjBiZDBlZDc5LThlOWUtNDRmYi05NmY0LThlNTNlZDljZTgyYiIsInBlcHBlcmkuZGF0YWNlbnRlciI6InNhbmRib3giLCJwZXBwZXJpLmtlZXBsb2dpbiI6ZmFsc2UsInBlcHBlcmkuaWRsZXRpbWV3ZWIiOjEyMCwidXBkYXRlZF9hdCI6MTU5NjcwMjgwMCwiZ2l2ZW5fbmFtZSI6ImRhbmllbCIsImZhbWlseV9uYW1lIjoiZGF2aWRvZmYiLCJwZXBwZXJpLmFwaW50YmFzZXVybCI6Imh0dHBzOi8vcmVzdGFwaS5zYW5kYm94LnBlcHBlcmkuY29tIiwicGVwcGVyaS53ZWJhcGliYXNldXJsIjoiaHR0cHM6Ly93ZWJhcGkuc2FuZGJveC5wZXBwZXJpLmNvbS9WMTZfNTAvV2ViQXBwXzYiLCJwZXBwZXJpLnB1YmxpY2FwaWJhc2V1cmwiOiJodHRwczovL2FwaS1zYW5kYm94LnBlcHBlcmkuY29tIiwicGVwcGVyaS5iYXNldXJsIjoiaHR0cHM6Ly9wYXBpLnNhbmRib3gucGVwcGVyaS5jb20vVjEuMCIsInBlcHBlcmkuZW1wbG95ZWV0eXBlIjoxLCJhbXIiOlsicHdkIl19.tNtZT3Cl4dMmTQftoaO2KP5BvHOlWGIP-5GpHrAhZoymBkxBSxpKprQGqr0ATtQlNHjX3gDV1W6k_avaSkyJgDiB2hcwr1tNRilasNuMzNV93gxLC9Oh_HdkIN4cZ0hahIcJvf_17PHpS8zD_MRwvGG_i45wRYJAtiGXChxCMzooethRsLOq5TEwuNbE3MxdjZOpImGYyytmsfdsdJRWQn1LQwQBt95ssuypcUzBsVB34P5XuFttjAe9dhTwHIfgsPG-VdfAWH_r-hVe834wKpKrplSWlC_MucgS0X4XP_tN4CtLnHO2wXKPsojqSTH2NQycfqh6YvT6rzRDBEdQIQ\";\n const token = this.getIdpToken();\n // token = token || tokenTest;\n\n const decodedToken = this.jwtHelper.decodeToken(token);\n // const expirationDate = this.jwtHelper.getTokenExpirationDate(token);\n // const isExpired = this.jwtHelper.isTokenExpired(token);\n\n return decodedToken;\n }\n\n setObject<T>(key: string, object: T): void {\n const stringifiedObject =\n typeof object === 'string' || object instanceof String\n ? object\n : JSON.stringify(object);\n\n sessionStorage.setItem(key, stringifiedObject.toString());\n }\n\n getObject<T = any>(key: string): T {\n let result = null;\n const item = sessionStorage.getItem(key);\n\n try {\n result = item ? (JSON.parse(item) as T) : item;\n } catch {\n result = item;\n }\n\n return result;\n }\n\n // setObject(key: string, value: string): void {\n // sessionStorage.setItem(key, value);\n // }\n\n // getObject(key: string): string | null {\n // return sessionStorage.getItem(key);\n // }\n\n removeObject(key: string): void {\n sessionStorage.removeItem(key);\n }\n\n // getWapiToken(): string {\n // return this.getObject(this.WAPI_TOKEN_KEY);\n // }\n\n getWapiBaseUrl(): string {\n return this.getObject(this.WAPI_BASE_URL_KEY);\n }\n\n getIdpToken(): string {\n return this.getObject(this.IDP_TOKEN_KEY);\n }\n\n getPapiBaseUrl(): string {\n const tokenObj = this.getParseToken();\n return tokenObj ? tokenObj[this.PAPI_BASE_URL_KEY] : null;\n }\n\n // getApiBaseUrl(): string {\n // const tokenObj = this.getParseToken();\n // return tokenObj ? tokenObj[this.API_BASE_URL_KEY] : null;\n // }\n}\n","import { Injectable } from '@angular/core';\n\nexport type PepFileType = 'script' | 'style';\n\nexport interface IPepExternalFileModel {\n path: string;\n type: PepFileType;\n}\n\ndeclare let document: any;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepFileService {\n private scripts: Map<string, { loaded: boolean; src: string }>;\n private styles: Map<string, { loaded: boolean; src: string }>;\n\n constructor() {\n this.scripts = new Map<string, { loaded: boolean; src: string }>();\n this.styles = new Map<string, { loaded: boolean; src: string }>();\n }\n\n loadFiles(files: IPepExternalFileModel[]): Promise<any[]> {\n const promises: any[] = [];\n files.forEach((file) => {\n if (file.type === 'style') {\n promises.push(this.loadStyle(file.path));\n } else if (file.type === 'script') {\n promises.push(this.loadScript(file.path));\n }\n });\n return Promise.all(promises);\n }\n\n removeFiles(files: IPepExternalFileModel[]): void {\n for (\n let index = 0;\n index < files.length &&\n files[index].path &&\n files[index].path.trim() !== '';\n index++\n ) {\n const name = this.getFileName(files[index].path, true);\n const element = document.getElementById(name);\n element.parentNode.removeChild(element);\n\n if (files[index].type === 'script' && this.scripts.has(name)) {\n this.scripts.delete(name);\n } else if (files[index].type === 'style' && this.styles.has(name)) {\n this.styles.delete(name);\n }\n }\n }\n\n loadScript(path: string): Promise<any> {\n return new Promise((resolve, reject) => {\n const name = this.getFileName(path, true);\n\n // If the script isn't exist add it.\n if (!this.scripts.has(name)) {\n this.scripts.set(name, { loaded: false, src: path });\n }\n\n const scriptItem = this.scripts.get(name);\n\n // Resolve if already loaded\n if (scriptItem.loaded) {\n resolve({\n script: name,\n loaded: true,\n status: 'Already Loaded',\n });\n } else {\n // Load script\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = scriptItem.src;\n script.setAttribute('id', name);\n script.async = false;\n\n if (script.readyState) {\n // IE\n script.onreadystatechange = () => {\n if (\n script.readyState === 'loaded' ||\n script.readyState === 'complete'\n ) {\n script.onreadystatechange = null;\n scriptItem.loaded = true;\n resolve({\n path,\n type: 'script',\n loaded: true,\n status: 'Loaded',\n });\n }\n };\n } else {\n // Others\n script.onload = () => {\n scriptItem.loaded = true;\n resolve({\n path,\n type: 'script',\n loaded: true,\n status: 'Loaded',\n });\n };\n }\n script.onerror = (error: any) =>\n resolve({\n path,\n type: 'script',\n loaded: false,\n status: 'Loaded',\n });\n document.getElementsByTagName('head')[0].appendChild(script);\n }\n });\n }\n\n loadStyle(path: string): Promise<any> {\n return new Promise((resolve, reject) => {\n const name = this.getFileName(path, true);\n\n // If the style isn't exist add it.\n if (!this.styles.has(name)) {\n this.styles.set(name, { loaded: false, src: path });\n }\n\n const styleItem = this.styles.get(name);\n\n // Resolve if already loaded\n if (styleItem.loaded) {\n resolve({\n path,\n type: 'style',\n loaded: true,\n status: 'Already Loaded',\n });\n } else {\n // Load style\n const style = document.createElement('link');\n style.type = 'text/css';\n style.rel = 'stylesheet';\n style.href = styleItem.src;\n style.media = 'all';\n style.setAttribute('id', name);\n\n styleItem.loaded = true;\n resolve({\n path,\n type: 'style',\n loaded: true,\n status: 'Loaded',\n });\n\n document.getElementsByTagName('head')[0].appendChild(style);\n }\n });\n }\n\n loadFontStyle(styleId: string, href: string): void {\n const head = document.getElementsByTagName('head')[0];\n\n const styleElement = document.getElementById(\n styleId\n ) as HTMLLinkElement;\n\n if (styleElement) {\n styleElement.href = href;\n } else {\n const style = document.createElement('link');\n style.id = styleId;\n style.rel = 'stylesheet';\n style.href = `${href}`;\n\n head.appendChild(style);\n }\n }\n\n getFileName(filePath: string, withExtenstion = false): string {\n const lastIndex = withExtenstion\n ? filePath.length - 1\n : filePath.lastIndexOf('.');\n\n return filePath.substr(filePath.lastIndexOf('/') + 1, lastIndex);\n }\n\n getFileExtension(filename: string): string {\n const extension = filename.substring(filename.lastIndexOf('.') + 1, filename.length);\n return extension;\n }\n\n /* Returns true if url is valid */\n isValidUrl(url: string): boolean {\n /* Try creating a valid URL */\n try {\n const tmp = new URL(url);\n return true;\n } catch (e) {\n return false;\n }\n }\n \n convertFromb64toArrayBuffer(base64String: string): ArrayBuffer {\n const base64 = base64String.slice(base64String.indexOf(',') + 1);\n const binary_string = window.atob(base64);\n const len = binary_string.length;\n const bytes = new Uint8Array(len);\n \n for (let i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes.buffer;\n }\n\n convertFromb64toBlob(base64String: any): Blob {\n // const byteCharacters = window.atob(b64Data);\n const byteArrays = this.convertFromb64toArrayBuffer(base64String);\n\n const fileStrArr = base64String.split(';');\n const contentType = fileStrArr[0].split(':')[1];\n\n const blob = new Blob([byteArrays], { type: contentType });\n return blob;\n }\n\n getBase64FileSize(base64String: string): number {\n let fileSize: number;\n\n try {\n base64String = base64String.slice(base64String.indexOf(',') + 1);\n fileSize = window.atob(base64String).length;\n } catch (e) {\n fileSize = -1;\n }\n\n return fileSize; // return size in bytes;\n }\n\n fileToBase64(file: File) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = (error) => reject(error);\n });\n }\n\n isValidFileExtension(\n fileExtension,\n acceptedExtensions\n ): boolean {\n const extensionOK =\n acceptedExtensions === '' ||\n acceptedExtensions.indexOf(fileExtension.toLowerCase()) !== -1;\n \n return extensionOK;\n }\n\n isValidFileSize(\n fileStr,\n sizeLimitMB = 5\n ): boolean {\n const file: any = fileStr;\n let fileSize = 0;\n // check if got file as Base64\n if (typeof fileStr === 'string' && fileStr.indexOf('data:') > -1) {\n fileSize = this.getBase64FileSize(fileStr);\n } else {\n fileSize = file.size;\n }\n // check the size\n const sizeOK: boolean = fileSize !== -1 && file != null && fileSize < sizeLimitMB * 1048576;\n return sizeOK;\n }\n\n getAssetsPath(assetsDomain = '', libName = 'ngx-lib'): string {\n const concatChar =\n assetsDomain === '' || assetsDomain.endsWith('/') ? '' : '/';\n return `${assetsDomain}${concatChar}assets/${libName}/`;\n }\n\n getAssetsTranslationsSuffix(libName = 'ngx-lib'): string {\n return `.${libName}.json`;\n }\n\n getAssetsTranslationsPath(assetsDomain = '', libName = 'ngx-lib'): string {\n return `${this.getAssetsPath(assetsDomain, libName)}i18n/`;\n }\n\n getAssetsImagesPath(assetsDomain = '', image = '', libName = 'ngx-lib'): string {\n return `${this.getAssetsPath(assetsDomain, libName)}images/${image}`;\n }\n\n getSvgAsImageSrc(svg: string): string {\n const blob = new Blob([svg], { type: 'image/svg+xml' });\n const url = URL.createObjectURL(blob);\n return url;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { PepSessionService } from '../common/services/session.service';\nimport { PepFileService } from '../common/services/file.service';\nimport { PepStyleType, PepFieldBase } from './customization.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepCustomizationService {\n static STAND_ALONE_FIELD_CLASS_NAME = 'pep-field';\n static STAND_ALONE_FIELD_NO_SPACING_CLASS_NAME = 'pep-field-no-spacing';\n\n static REM_STRING = 'rem';\n static PX_STRING = 'px';\n static USER_THEME = 'user_theme';\n static USER_COLOR = 'user_color';\n static USER_THEME_VARIABLES = 'user_theme_variables';\n\n // Header height\n static HEADER_HEIGHT_KEY = '--pep-header-height';\n\n // Side bar variables keys\n static SIDE_BAR_WIDTH_KEY = '--pep-side-bar-width';\n\n // Settings width\n static SETTINGS_WIDTH_KEY = '--pep-settings-bar-width';\n\n // Top bar variables keys\n static TOP_BAR_SPACING_TOP_KEY = '--pep-top-bar-spacing-top';\n static TOP_BAR_SPACING_BOTTOM_KEY = '--pep-top-bar-spacing-bottom';\n static TOP_BAR_FIELD_HEIGHT_KEY = '--pep-top-bar-field-height';\n\n // Footer variables keys\n static FOOTER_HEIGHT_KEY = '--pep-footer-bar-height';\n static FOOTER_BAR_SPACING_TOP_KEY = '--pep-footer-bar-spacing-top';\n static FOOTER_BAR_SPACING_BOTTOM_KEY = '--pep-footer-bar-spacing-bottom';\n\n // Main container height\n static MAIN_HEIGHT_KEY = '--pep-main-height';\n\n // Colors variables keys\n static COLOR_USER_PRIMARY_KEY = '--pep-color-user-primary';\n static COLOR_USER_SECONDARY_KEY = '--pep-color-user-secondary';\n static COLOR_SYSTEM_PRIMARY_INVERT_KEY =\n '--pep-color-system-primary-invert';\n static COLOR_SYSTEM_PRIMARY_KEY = '--pep-color-system-primary';\n static COLOR_TEXT_LINK_KEY = '--pep-color-text-link';\n static COLOR_SYSTEM_CAUTION_KEY = '--pep-color-system-caution';\n static COLOR_SYSTEM_SUCCESS_KEY = '--pep-color-system-success';\n static COLOR_STRONG_KEY = '--pep-color-strong';\n static COLOR_REGULAR_KEY = '--pep-color-regular';\n static COLOR_WEAK_KEY = '--pep-color-weak';\n\n // Top header variables keys\n static COLOR_TOP_HEADER_KEY = '--pep-color-top-header';\n static STYLE_TOP_HEADER_KEY = '--pep-style-top-header';\n\n // QS variables keys\n static COLOR_QS_KEY = '--pep-color-qs';\n static STYLE_QS_KEY = '--pep-style-qs';\n\n // Fonts variables keys\n static FONT_FAMILY_TITLE_KEY = '--pep-font-family-title';\n static FONT_FAMILY_TITLE_NORMAL_URL_KEY =\n '--pep-font-family-title-normal-url';\n static FONT_FAMILY_TITLE_BOLD_URL_KEY = '--pep-font-family-title-bold-url';\n static FONT_FAMILY_BODY_KEY = '--pep-font-family-body';\n static FONT_FAMILY_BODY_NORMAL_URL_KEY =\n '--pep-font-family-body-normal-url';\n static FONT_FAMILY_BODY_BOLD_URL_KEY = '--pep-font-family-body-bold-url';\n\n // Border radius variables keys\n static BORDER_RADIUS_KEY = '--pep-border-radius';\n static BORDER_RADIUS_SM_KEY =\n PepCustomizationService.BORDER_RADIUS_KEY + '-sm';\n static BORDER_RADIUS_MD_KEY =\n PepCustomizationService.BORDER_RADIUS_KEY + '-md';\n static BORDER_RADIUS_LG_KEY =\n PepCustomizationService.BORDER_RADIUS_KEY + '-lg';\n static BORDER_RADIUS_XL_KEY =\n PepCustomizationService.BORDER_RADIUS_KEY + '-xl';\n\n // Fonts variables keys\n static FONT_SIZE_2XS_KEY = '--pep-font-size-2xs';\n static FONT_SIZE_XS_KEY = '--pep-font-size-xs';\n static FONT_SIZE_SM_KEY = '--pep-font-size-sm';\n static FONT_SIZE_MD_KEY = '--pep-font-size-md';\n static FONT_SIZE_LG_KEY = '--pep-font-size-lg';\n static FONT_SIZE_XL_KEY = '--pep-font-size-xl';\n static FONT_SIZE_2XL_KEY = '--pep-font-size-2xl';\n\n // Line height variables keys\n static LINE_HEIGHT_2XS_KEY = '--pep-line-height-2xs';\n static LINE_HEIGHT_XS_KEY = '--pep-line-height-xs';\n static LINE_HEIGHT_SM_KEY = '--pep-line-height-sm';\n static LINE_HEIGHT_MD_KEY = '--pep-line-height-md';\n static LINE_HEIGHT_LG_KEY = '--pep-line-height-lg';\n static LINE_HEIGHT_XL_KEY = '--pep-line-height-xl';\n static LINE_HEIGHT_2XL_KEY = '--pep-line-height-2xl';\n\n // Shadows offset variables keys\n static SHADOW_NONE_OFFSET_KEY = '--pep-shadow-none-offset';\n static SHADOW_XS_OFFSET_KEY = '--pep-shadow-xs-offset';\n static SHADOW_SM_OFFSET_KEY = '--pep-shadow-sm-offset';\n static SHADOW_MD_OFFSET_KEY = '--pep-shadow-md-offset';\n static SHADOW_LG_OFFSET_KEY = '--pep-shadow-lg-offset';\n static SHADOW_XL_OFFSET_KEY = '--pep-shadow-xl-offset';\n\n // Spacing variables keys\n static SPACING_SIZE_2XS_KEY = '--pep-spacing-2xs';\n static SPACING_SIZE_XS_KEY = '--pep-spacing-xs';\n static SPACING_SIZE_SM_KEY = '--pep-spacing-sm';\n static SPACING_SIZE_MD_KEY = '--pep-spacing-md';\n static SPACING_SIZE_LG_KEY = '--pep-spacing-lg';\n static SPACING_SIZE_XL_KEY = '--pep-spacing-xl';\n static SPACING_SIZE_2XL_KEY = '--pep-spacing-2xl';\n static SPACING_SIZE_3XL_KEY = '--pep-spacing-3xl';\n static SPACING_SIZE_4XL_KEY = '--pep-spacing-4xl';\n static SPACING_SIZE_5XL_KEY = '--pep-spacing-5xl';\n static SPACING_SIZE_6XL_KEY = '--pep-spacing-6xl';\n static SPACING_SIZE_7XL_KEY = '--pep-spacing-7xl';\n static SPACING_SIZE_8XL_KEY = '--pep-spacing-8xl';\n static SPACING_SIZE_9XL_KEY = '--pep-spacing-9xl';\n\n // Form variables keys\n static FORM_FIELD_HEIGHT_KEY = '--pep-form-field-height';\n static FORM_FIELD_TITLE_HEIGHT_KEY = '--pep-form-field-title-height';\n static FORM_FIELD_SPACEING_KEY = '--pep-form-field-spacing';\n static FORM_SPACEING_KEY = '--pep-form-spacing';\n\n // Card variables keys\n static CARD_FIELD_HEIGHT_KEY = '--pep-card-field-height';\n static CARD_SPACEING_KEY = '--pep-card-spacing';\n static CARD_SHADOW_OFFSET_KEY = '--pep-shadow-card-offset';\n static CARD_BORDER_RADIUS_KEY = '--pep-card-border-radius';\n\n // Table variables keys\n static TABLE_FIELD_HEIGHT_KEY = '--pep-table-field-height';\n static TABLE_SPACEING_KEY = '--pep-table-spacing';\n static TABLE_BORDER_RADIUS_KEY = '--pep-table-border-radius';\n\n // // Branding keys\n // static BRANDING_LOGO_SRC = '--pep-branding-logo-src';\n // static FAV_ICON_SRC = '--pep-favicon-src';\n\n static DEFAULT_HEADER_HEIGHT = 64; // Default\n\n static DEFAULT_SPINNER_COLOR = '#78aa00';\n static DEFAULT_BRANDING_COLOR = '#fff';\n\n public hasCustomHomepage: boolean = null;\n public hasCustomHeader: boolean = null;\n public customHeaderHeight = PepCustomizationService.DEFAULT_HEADER_HEIGHT;\n public mainContHeight = 0;\n public footerHeight = new BehaviorSubject<number>(0);\n public settingsWidth = new BehaviorSubject<number>(0);\n\n constructor(\n private sessionService: PepSessionService,\n private fileService: PepFileService,\n public fb: FormBuilder\n ) {\n this.hideFooter();\n //\n }\n\n getDefaultFromGroup(field: PepFieldBase, withValidators = true): FormGroup {\n const validators = withValidators ? field.getValidators() : [];\n const group = {};\n group[field.key] = [\n { value: field.value, disabled: field.disabled },\n validators,\n ];\n return this.fb.group(group);\n }\n\n getFormControl(\n form: FormGroup,\n fieldKey: string,\n parentFieldKey: string = null\n ): any {\n let formControl = null;\n\n if (form && form.controls) {\n if (parentFieldKey === null) {\n formControl = form.controls[fieldKey];\n } else {\n formControl = form.controls[parentFieldKey]?.get(fieldKey);\n }\n }\n\n return formControl;\n }\n\n updateFormFieldValue(\n form: FormGroup,\n fieldKey: string,\n value = '',\n parentFieldKey: string = null\n ): void {\n const formControl = this.getFormControl(form, fieldKey, parentFieldKey);\n if (formControl) {\n formControl.setValue(value);\n }\n }\n\n updateFormField(\n form: FormGroup,\n field: PepFieldBase,\n value = '',\n parentField: PepFieldBase = null\n ): void {\n const formControl: FormControl = this.getFormControl(\n form,\n field.key,\n parentField?.key\n );\n if (formControl) {\n formControl.setValue(value);\n\n // If disabled has changed.\n if (formControl.disabled !== field.disabled) {\n field.disabled ? formControl.disable() : formControl.enable();\n\n const validators = field.getValidators();\n formControl.setValidators(validators);\n }\n }\n }\n\n calculateFormFieldHeight(\n withTitle = true,\n rowSpan = 1,\n standAlone = false\n ): number {\n const themeVars = this.getThemeVariables();\n const rowFieldHeight = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.FORM_FIELD_HEIGHT_KEY\n );\n const rowFieldTitleHeight = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.FORM_FIELD_TITLE_HEIGHT_KEY\n );\n const rowFieldSpacingBottom = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.FORM_SPACEING_KEY\n );\n\n let fieldHeight = 0;\n if (rowSpan === 1) {\n fieldHeight =\n (withTitle ? rowFieldTitleHeight : 0) + rowFieldHeight;\n } else {\n const rowSpanCalc = withTitle ? rowSpan : rowSpan - 1;\n fieldHeight =\n rowSpan * rowFieldHeight +\n rowSpanCalc * rowFieldTitleHeight +\n (standAlone ? 0 : rowSpanCalc * rowFieldSpacingBottom);\n }\n\n return fieldHeight;\n }\n\n calculateCardRowsHeight(rowsCount = 1, withSpacing = true): number {\n const themeVars = this.getThemeVariables();\n const cardFieldHeight = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.CARD_FIELD_HEIGHT_KEY\n );\n const cardFieldSpacing = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.CARD_SPACEING_KEY\n );\n\n const fieldHeight =\n rowsCount * cardFieldHeight +\n (rowsCount - 1) * (withSpacing ? cardFieldSpacing : 0);\n return fieldHeight;\n }\n\n calculateTableRowsHeight(rowsCount = 1, withSpacing = true): number {\n const themeVars = this.getThemeVariables();\n const tableFieldHeight = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.TABLE_FIELD_HEIGHT_KEY\n );\n const tableFieldSpacing = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.TABLE_SPACEING_KEY\n );\n\n const fieldHeight =\n rowsCount *\n (tableFieldHeight + (withSpacing ? tableFieldSpacing * 2 : 0));\n return fieldHeight;\n }\n\n calculateFieldHeight(layoutType = 'form', rowSpan, standAlone): string {\n let fieldHeight = 'inherit'; // Default for card (with no title)\n if (layoutType === 'table') {\n fieldHeight = this.getThemeVariable(\n PepCustomizationService.TABLE_FIELD_HEIGHT_KEY\n );\n } else if (layoutType === 'card') {\n fieldHeight =\n this.calculateCardRowsHeight(rowSpan, !standAlone) +\n PepCustomizationService.REM_STRING;\n } else {\n // Form\n fieldHeight =\n this.calculateFormFieldHeight(false, rowSpan, standAlone) +\n PepCustomizationService.REM_STRING;\n }\n\n return fieldHeight;\n }\n\n getBrandingTheme(): string {\n const themeObj = this.sessionService.getObject(\n PepCustomizationService.USER_THEME\n );\n return (themeObj && themeObj.Theme) || 'default-theme'; // 'light-theme';\n }\n\n getDefaultThemeLayoutVariables(themeVars: any): void {\n // Declare default screen sizes.\n themeVars['--pep-screen-max-size-2xs'] =\n '460' + PepCustomizationService.PX_STRING;\n themeVars['--pep-screen-max-size-xs'] =\n '767' + PepCustomizationService.PX_STRING;\n themeVars['--pep-screen-max-size-sm'] =\n '991' + PepCustomizationService.PX_STRING;\n themeVars['--pep-screen-max-size-md'] =\n '1199' + PepCustomizationService.PX_STRING;\n themeVars['--pep-screen-max-size-lg'] =\n '1366' + PepCustomizationService.PX_STRING;\n themeVars['--pep-screen-max-size-xl'] =\n '1920' + PepCustomizationService.PX_STRING;\n\n // Declare default top bar.\n themeVars[PepCustomizationService.SIDE_BAR_WIDTH_KEY] =\n '16' + PepCustomizationService.REM_STRING;\n\n // Declare default top bar.\n themeVars[PepCustomizationService.TOP_BAR_SPACING_TOP_KEY] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.TOP_BAR_SPACING_BOTTOM_KEY] =\n '0.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.TOP_BAR_FIELD_HEIGHT_KEY] =\n '2.5' + PepCustomizationService.REM_STRING;\n\n // Declare default footer.\n themeVars[PepCustomizationService.FOOTER_BAR_SPACING_TOP_KEY] =\n '0.75' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FOOTER_BAR_SPACING_BOTTOM_KEY] =\n '1.25' + PepCustomizationService.REM_STRING;\n }\n\n getDefaultThemeBorderRadiusVariables(themeVars: any): void {\n themeVars[PepCustomizationService.BORDER_RADIUS_SM_KEY] =\n '0.125' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.BORDER_RADIUS_MD_KEY] =\n '0.25' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.BORDER_RADIUS_LG_KEY] =\n '0.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.BORDER_RADIUS_XL_KEY] =\n '1' + PepCustomizationService.REM_STRING;\n }\n\n getDefaultThemeSpacingVariables(themeVars: any): void {\n themeVars[PepCustomizationService.SPACING_SIZE_2XS_KEY] =\n '0.125' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_XS_KEY] =\n '0.25' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_SM_KEY] =\n '0.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_MD_KEY] =\n '0.75' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_LG_KEY] =\n '1' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_XL_KEY] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_2XL_KEY] =\n '2' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_3XL_KEY] =\n '2.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_4XL_KEY] =\n '3' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_5XL_KEY] =\n '3.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_6XL_KEY] =\n '5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_7XL_KEY] =\n '6' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_8XL_KEY] =\n '8' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_9XL_KEY] =\n '16' + PepCustomizationService.REM_STRING;\n }\n\n getDefaultThemeFontsVariables(themeVars: any): void {\n // Title font family\n themeVars[PepCustomizationService.FONT_FAMILY_TITLE_KEY] = 'Nexa';\n\n // Body font family\n themeVars[PepCustomizationService.FONT_FAMILY_BODY_KEY] = 'Inter';\n\n // Font sizes\n themeVars[PepCustomizationService.FONT_SIZE_2XS_KEY] =\n '0.625' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FONT_SIZE_XS_KEY] =\n '0.75' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FONT_SIZE_SM_KEY] =\n '0.875' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FONT_SIZE_MD_KEY] =\n '1' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FONT_SIZE_LG_KEY] =\n '1.125' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FONT_SIZE_XL_KEY] =\n '1.25' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FONT_SIZE_2XL_KEY] =\n '1.5' + PepCustomizationService.REM_STRING;\n\n // Line height\n themeVars[PepCustomizationService.LINE_HEIGHT_2XS_KEY] =\n '0.75' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.LINE_HEIGHT_XS_KEY] =\n '1' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.LINE_HEIGHT_SM_KEY] =\n '1.25' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.LINE_HEIGHT_MD_KEY] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.LINE_HEIGHT_LG_KEY] =\n '1.75' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.LINE_HEIGHT_XL_KEY] =\n '2' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.LINE_HEIGHT_2XL_KEY] =\n '2.25' + PepCustomizationService.REM_STRING;\n\n // Font weight\n themeVars['--pep-font-weight-normal'] = 400;\n themeVars['--pep-font-weight-bold'] = 600;\n themeVars['--pep-font-weight-bolder'] = 800;\n }\n\n getDefaultThemeButtonsVariables(themeVars: any): void {\n themeVars['--pep-button-2xs-horizontal-spacing'] =\n '0.25' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-2xs-min-width'] =\n '1' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-2xs-height'] =\n '1' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-2xs-font-size'] =\n 'var(' + PepCustomizationService.FONT_SIZE_2XS_KEY + ')';\n // themeVars['--pep-button-2xs-icon-horizontal-spacing'] = '0.125' + PepCustomizationService.REM_STRING;\n\n themeVars['--pep-button-xs-horizontal-spacing'] =\n '0.5' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-xs-min-width'] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-xs-height'] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-xs-font-size'] =\n 'var(' + PepCustomizationService.FONT_SIZE_XS_KEY + ')';\n // themeVars['--pep-button-xs-icon-horizontal-spacing'] = '0.25' + PepCustomizationService.REM_STRING;\n\n themeVars['--pep-button-sm-horizontal-spacing'] =\n '0.75' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-sm-min-width'] =\n '2' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-sm-height'] =\n '2' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-sm-font-size'] =\n 'var(' + PepCustomizationService.FONT_SIZE_SM_KEY + ')';\n // themeVars['--pep-button-sm-icon-horizontal-spacing'] = '0.5' + PepCustomizationService.REM_STRING;\n\n themeVars['--pep-button-md-horizontal-spacing'] =\n '1' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-md-min-width'] =\n '2.5' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-md-height'] =\n '2.5' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-md-font-size'] =\n 'var(' + PepCustomizationService.FONT_SIZE_MD_KEY + ')';\n // themeVars['--pep-button-md-icon-horizontal-spacing'] = '0.5' + PepCustomizationService.REM_STRING;\n\n themeVars['--pep-button-lg-horizontal-spacing'] =\n '1' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-lg-min-width'] =\n '3' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-lg-height'] =\n '3' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-lg-font-size'] =\n 'var(' + PepCustomizationService.FONT_SIZE_LG_KEY + ')';\n // themeVars['--pep-button-lg-icon-horizontal-spacing'] = '0.75' + PepCustomizationService.REM_STRING;\n\n themeVars['--pep-button-xl-horizontal-spacing'] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-xl-min-width'] =\n '4' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-xl-height'] =\n '4' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-xl-font-size'] =\n 'var(' + PepCustomizationService.FONT_SIZE_XL_KEY + ')';\n // themeVars['--pep-button-xl-icon-horizontal-spacing'] = '1' + PepCustomizationService.REM_STRING;\n }\n\n getSystemPrimaryInvertColorsVariables(themeVars: any): void {\n themeVars[\n PepCustomizationService.COLOR_SYSTEM_PRIMARY_INVERT_KEY + '-h'\n ] = '255';\n themeVars[\n PepCustomizationService.COLOR_SYSTEM_PRIMARY_INVERT_KEY + '-s'\n ] = '100%';\n themeVars[\n PepCustomizationService.COLOR_SYSTEM_PRIMARY_INVERT_KEY + '-l'\n ] = '100%';\n }\n\n getSystemPrimaryColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-h'] =\n '0';\n themeVars[PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-s'] =\n '0%';\n themeVars[PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-l'] =\n '10%';\n }\n\n getSystemSuccessColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_SYSTEM_SUCCESS_KEY + '-h'] =\n '100';\n themeVars[PepCustomizationService.COLOR_SYSTEM_SUCCESS_KEY + '-s'] =\n '100%';\n themeVars[PepCustomizationService.COLOR_SYSTEM_SUCCESS_KEY + '-l'] =\n '25%';\n }\n\n getSystemCautionColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_SYSTEM_CAUTION_KEY + '-h'] =\n '360';\n themeVars[PepCustomizationService.COLOR_SYSTEM_CAUTION_KEY + '-s'] =\n '100%';\n themeVars[PepCustomizationService.COLOR_SYSTEM_CAUTION_KEY + '-l'] =\n '40%';\n }\n\n getUserPrimaryColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_USER_PRIMARY_KEY + '-h'] = '78';\n themeVars[PepCustomizationService.COLOR_USER_PRIMARY_KEY + '-s'] =\n '87%';\n themeVars[PepCustomizationService.COLOR_USER_PRIMARY_KEY + '-l'] =\n '27%';\n }\n\n getUserSecondaryColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_USER_SECONDARY_KEY + '-h'] =\n '36';\n themeVars[PepCustomizationService.COLOR_USER_SECONDARY_KEY + '-s'] =\n '100%';\n themeVars[PepCustomizationService.COLOR_USER_SECONDARY_KEY + '-l'] =\n '50%';\n }\n\n getWeakColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_WEAK_KEY + '-h'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-h)';\n themeVars[PepCustomizationService.COLOR_WEAK_KEY + '-s'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-s)';\n themeVars[PepCustomizationService.COLOR_WEAK_KEY + '-l'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-l)';\n }\n\n getRegularColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_REGULAR_KEY + '-h'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-h)';\n themeVars[PepCustomizationService.COLOR_REGULAR_KEY + '-s'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-s)';\n themeVars[PepCustomizationService.COLOR_REGULAR_KEY + '-l'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-l)';\n }\n\n getStrongColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_STRONG_KEY + '-h'] =\n 'var(' + PepCustomizationService.COLOR_USER_PRIMARY_KEY + '-h)';\n themeVars[PepCustomizationService.COLOR_STRONG_KEY + '-s'] =\n 'var(' + PepCustomizationService.COLOR_USER_PRIMARY_KEY + '-s)';\n themeVars[PepCustomizationService.COLOR_STRONG_KEY + '-l'] =\n 'var(' + PepCustomizationService.COLOR_USER_PRIMARY_KEY + '-l)';\n }\n\n getTextColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_TEXT_LINK_KEY + '-h'] = '207';\n themeVars[PepCustomizationService.COLOR_TEXT_LINK_KEY + '-s'] = '76%';\n themeVars[PepCustomizationService.COLOR_TEXT_LINK_KEY + '-l'] = '37%';\n }\n\n getDefaultThemeColorsVariables(themeVars: any): void {\n // System primary invert colors.\n this.getSystemPrimaryInvertColorsVariables(themeVars);\n // System primary colors.\n this.getSystemPrimaryColorsVariables(themeVars);\n // System success colors.\n this.getSystemSuccessColorsVariables(themeVars);\n // System caution colors.\n this.getSystemCautionColorsVariables(themeVars);\n // User primary colors.\n this.getUserPrimaryColorsVariables(themeVars);\n // User secondary colors.\n this.getUserSecondaryColorsVariables(themeVars);\n\n // Weak colors.\n this.getWeakColorsVariables(themeVars);\n // Regular colors.\n this.getRegularColorsVariables(themeVars);\n // Strong colors.\n this.getStrongColorsVariables(themeVars);\n\n // Text colors.\n this.getTextColorsVariables(themeVars);\n }\n\n getDefaultThemeShadowsVariables(themeVars: any): void {\n const noneOffset = '0';\n themeVars[PepCustomizationService.SHADOW_NONE_OFFSET_KEY] = noneOffset;\n\n const xsOffset = '0 0.125rem 0.25rem 0';\n themeVars[PepCustomizationService.SHADOW_XS_OFFSET_KEY] = xsOffset;\n\n const smOffset = '0 0.25rem 0.5rem 0';\n themeVars[PepCustomizationService.SHADOW_SM_OFFSET_KEY] = smOffset;\n\n const mdOffset = '0 0.5rem 1rem 0';\n themeVars[PepCustomizationService.SHADOW_MD_OFFSET_KEY] = mdOffset;\n\n const lgOffset = '0 1rem 2rem 0';\n themeVars[PepCustomizationService.SHADOW_LG_OFFSET_KEY] = lgOffset;\n\n const xlOffset = '0 2rem 4rem 0';\n themeVars[PepCustomizationService.SHADOW_XL_OFFSET_KEY] = xlOffset;\n }\n\n getDefaultThemeFormCustomizationVariables(themeVars: any): void {\n const formFieldSpacing = 1;\n themeVars[PepCustomizationService.FORM_FIELD_HEIGHT_KEY] =\n '2.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FORM_FIELD_TITLE_HEIGHT_KEY] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FORM_SPACEING_KEY] =\n formFieldSpacing + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FORM_FIELD_SPACEING_KEY] =\n formFieldSpacing + PepCustomizationService.REM_STRING;\n }\n\n getDefaultThemeCardCustomizationVariables(themeVars: any): void {\n themeVars[PepCustomizationService.CARD_FIELD_HEIGHT_KEY] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.CARD_SPACEING_KEY] =\n 'var(' + PepCustomizationService.SPACING_SIZE_XS_KEY + ')';\n\n themeVars[PepCustomizationService.CARD_BORDER_RADIUS_KEY] =\n 'var(' + PepCustomizationService.BORDER_RADIUS_MD_KEY + ')';\n themeVars[PepCustomizationService.CARD_SHADOW_OFFSET_KEY] =\n 'var(' + PepCustomizationService.SHADOW_MD_OFFSET_KEY + ')';\n }\n\n getDefaultThemeTableCustomizationVariables(themeVars: any): void {\n themeVars[PepCustomizationService.TABLE_FIELD_HEIGHT_KEY] =\n '2' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.TABLE_SPACEING_KEY] =\n '0.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.TABLE_BORDER_RADIUS_KEY] =\n 'var(' + PepCustomizationService.BORDER_RADIUS_MD_KEY + ')';\n }\n\n getDefaultThemeQSCustomizationVariables(themeVars: any): void {\n const qsState: PepStyleType = 'regular';\n themeVars[PepCustomizationService.STYLE_QS_KEY] = qsState;\n\n themeVars[PepCustomizationService.COLOR_QS_KEY + '-h'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-h)';\n themeVars[PepCustomizationService.COLOR_QS_KEY + '-s'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-s)';\n themeVars[PepCustomizationService.COLOR_QS_KEY + '-l'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-l)';\n }\n\n getDefaultThemeTopHeaderCustomizationVariables(themeVars: any): void {\n const topHeaderState: PepStyleType = 'strong';\n themeVars[\n PepCustomizationService.STYLE_TOP_HEADER_KEY\n ] = topHeaderState;\n\n themeVars[PepCustomizationService.COLOR_TOP_HEADER_KEY + '-h'] = '';\n themeVars[PepCustomizationService.COLOR_TOP_HEADER_KEY + '-s'] = '';\n themeVars[PepCustomizationService.COLOR_TOP_HEADER_KEY + '-l'] = '';\n }\n\n // getDefaultThemeBrandingCustomizationVariables(themeVars: any): void {\n // themeVars[PepCustomizationService.BRANDING_LOGO_SRC] = '/assets/images/Pepperi-Logo-HiRes.png';\n // themeVars[PepCustomizationService.FAV_ICON_SRC] = '/assets/favicon.ico';\n // }\n\n getDefaultThemeVariables(): any {\n const themeVars = {};\n\n // Declare default layout.\n this.getDefaultThemeLayoutVariables(themeVars);\n\n // Declare default border radius.\n this.getDefaultThemeBorderRadiusVariables(themeVars);\n\n // Declare default spacing.\n this.getDefaultThemeSpacingVariables(themeVars);\n\n // Declare default fonts size & line height.\n this.getDefaultThemeFontsVariables(themeVars);\n\n // Declare default buttons.\n this.getDefaultThemeButtonsVariables(themeVars);\n\n // Declare default colors.\n this.getDefaultThemeColorsVariables(themeVars);\n\n // Declare default shadows.\n this.getDefaultThemeShadowsVariables(themeVars);\n\n // Declare default form customization.\n this.getDefaultThemeFormCustomizationVariables(themeVars);\n\n // Declare default card customization.\n this.getDefaultThemeCardCustomizationVariables(themeVars);\n\n // Declare default table customization.\n this.getDefaultThemeTableCustomizationVariables(themeVars);\n\n // Declare default qs customization.\n this.getDefaultThemeQSCustomizationVariables(themeVars);\n\n // Declare default top header customization.\n this.getDefaultThemeTopHeaderCustomizationVariables(themeVars);\n\n // // Declare default branding logo's customization\n // this.getDefaultThemeBrandingCustomizationVariables(themeVars);\n\n return themeVars;\n }\n\n getThemeVariables(): any {\n const ret = this.getDefaultThemeVariables();\n const themeVars = this.sessionService.getObject(\n PepCustomizationService.USER_THEME_VARIABLES\n );\n\n // Override defaults.\n if (themeVars) {\n for (const key in themeVars) {\n ret[key] = themeVars[key];\n }\n }\n\n return ret;\n }\n\n setThemeVariables(themeVariablesToSet = null): void {\n const themeVariables = this.getThemeVariables();\n\n // Override defaults.\n if (themeVariablesToSet) {\n for (const key in themeVariablesToSet) {\n themeVariables[key] = themeVariablesToSet[key];\n }\n }\n\n this.sessionService.setObject(\n PepCustomizationService.USER_THEME_VARIABLES,\n JSON.stringify(themeVariables)\n );\n\n for (const key in themeVariables) {\n if (this.isFontUrlKey(key)) {\n this.fileService.loadFontStyle(key, themeVariables[key]);\n } else {\n document.documentElement.style.setProperty(\n key,\n themeVariables[key]\n );\n }\n }\n }\n\n isFontUrlKey(key: string): boolean {\n let res = false;\n\n if (\n key === PepCustomizationService.FONT_FAMILY_TITLE_NORMAL_URL_KEY ||\n key === PepCustomizationService.FONT_FAMILY_TITLE_BOLD_URL_KEY ||\n key === PepCustomizationService.FONT_FAMILY_BODY_NORMAL_URL_KEY ||\n key === PepCustomizationService.FONT_FAMILY_BODY_BOLD_URL_KEY\n ) {\n res = true;\n }\n\n return res;\n }\n\n getThemeVariable(key: string): string {\n const themeVars = this.getThemeVariables();\n\n if (themeVars.hasOwnProperty(key)) {\n return themeVars[key];\n } else {\n return '';\n }\n }\n\n getNumberThemeVariable(themeVars, key: string): number {\n if (themeVars && themeVars.hasOwnProperty(key)) {\n // If it's reference to another key.\n if (themeVars[key].indexOf('var(') === 0) {\n key = themeVars[key].substr(4).split(')')[0];\n }\n\n const tmp = Number(\n themeVars[key].replace(PepCustomizationService.REM_STRING, '')\n );\n return tmp;\n } else {\n return 0;\n }\n }\n\n private setFooterHeight(height): void {\n if (this.footerHeight.getValue() !== height) {\n // it is publishing this value to all the subscribers that have already subscribed to this message\n setTimeout(() => {\n this.footerHeight.next(height);\n }, 0);\n }\n document.documentElement.style.setProperty(\n PepCustomizationService.FOOTER_HEIGHT_KEY,\n height + PepCustomizationService.REM_STRING\n );\n }\n\n hideFooter(): void {\n this.setFooterHeight(0);\n }\n\n showFooter(): void {\n const themeVars = this.getThemeVariables();\n\n const res =\n this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.FOOTER_BAR_SPACING_TOP_KEY\n ) +\n this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.FOOTER_BAR_SPACING_BOTTOM_KEY\n ) +\n this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.TOP_BAR_FIELD_HEIGHT_KEY\n );\n\n this.setFooterHeight(res);\n }\n\n private setSettingsWidth(width): void {\n if (this.settingsWidth.getValue() !== width) {\n // it is publishing this value to all the subscribers that have already subscribed to this message\n setTimeout(() => {\n this.settingsWidth.next(width);\n }, 0);\n }\n document.documentElement.style.setProperty(\n PepCustomizationService.SETTINGS_WIDTH_KEY,\n width + PepCustomizationService.REM_STRING\n );\n }\n\n hideSettings(): void {\n this.setSettingsWidth(0);\n }\n\n showSettings(): void {\n const themeVars = this.getThemeVariables();\n\n const res = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.SIDE_BAR_WIDTH_KEY\n );\n\n this.setSettingsWidth(res);\n }\n\n getTopBarHeight(): number {\n const themeVars = this.getThemeVariables();\n\n const res =\n this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.TOP_BAR_SPACING_TOP_KEY\n ) +\n this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.TOP_BAR_SPACING_BOTTOM_KEY\n ) +\n this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.TOP_BAR_FIELD_HEIGHT_KEY\n );\n\n return res;\n }\n\n setOldUserTheme(res: any): void {\n // Added user theme.\n const themeObj = {\n Theme: res.Theme || 'default-theme',\n };\n\n this.sessionService.setObject(\n PepCustomizationService.USER_THEME,\n JSON.stringify(themeObj)\n );\n\n let spinnerColor;\n let brandingFontColor;\n\n if (this.isLightColor(res.BrandingMainColor)) {\n spinnerColor = PepCustomizationService.DEFAULT_SPINNER_COLOR;\n brandingFontColor = '#222';\n } else {\n spinnerColor = res.BrandingMainColor;\n brandingFontColor = PepCustomizationService.DEFAULT_BRANDING_COLOR;\n }\n\n const color = {\n BrandingSecondaryColor: res.BrandingSecondaryColor,\n BrandingMainColor: res.BrandingMainColor,\n BrandingFontColor: brandingFontColor,\n SpinnerColor: spinnerColor,\n };\n\n this.sessionService.setObject(\n PepCustomizationService.USER_COLOR,\n JSON.stringify(color)\n );\n\n this.hasCustomHeader =\n res.TopHeaderFiles &&\n res.TopHeaderFiles.length > 0 &&\n res.TopHeaderFiles[0] !== ''\n ? true\n : false;\n this.hasCustomHomepage =\n res.UserRole === 'Buyer' &&\n res.TopHeaderFiles &&\n res.TopHeaderFiles.length > 1 &&\n res.TopHeaderFiles[1] !== '';\n }\n\n isLegacyColor(): boolean {\n const h = document.documentElement.style.getPropertyValue(\n PepCustomizationService.COLOR_TOP_HEADER_KEY + '-h'\n );\n const s = document.documentElement.style.getPropertyValue(\n PepCustomizationService.COLOR_TOP_HEADER_KEY + '-s'\n );\n const l = document.documentElement.style.getPropertyValue(\n PepCustomizationService.COLOR_TOP_HEADER_KEY + '-l'\n );\n\n return !(h && s && l);\n }\n\n getLoadingSpinnerColor(): string {\n let spinnerColor = '';\n\n if (this.isLegacyColor()) {\n const color = this.sessionService.getObject(\n PepCustomizationService.USER_COLOR\n );\n\n if (color && color.SpinnerColor) {\n spinnerColor = color.SpinnerColor;\n } else {\n spinnerColor = PepCustomizationService.DEFAULT_SPINNER_COLOR;\n }\n }\n\n return spinnerColor;\n }\n\n getBrandingMainColor(): string {\n let brandingMainColor = '';\n\n if (this.isLegacyColor()) {\n const color = this.sessionService.getObject(\n PepCustomizationService.USER_COLOR\n );\n\n if (color && color.BrandingMainColor) {\n brandingMainColor = color.BrandingMainColor;\n } else {\n brandingMainColor =\n PepCustomizationService.DEFAULT_BRANDING_COLOR;\n }\n }\n\n return brandingMainColor;\n }\n\n isLightColor(hexColor): boolean {\n if (!hexColor) {\n return;\n }\n\n let isBright = false;\n let sum = 0;\n const c = hexColor.replace(/^#/, '');\n\n sum = parseInt(c[0] + c[1], 16);\n sum += parseInt(c[2] + c[3], 16);\n sum += parseInt(c[4] + c[5], 16);\n\n if (sum > 382.6) {\n // it's bright color\n isBright = true;\n }\n\n return isBright;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n OnInit,\n Optional,\n Renderer2,\n} from '@angular/core';\nimport { PepCustomizationService } from '../../customization/customization.service';\nimport { PepUtilitiesService } from '../services/utilities.service';\n\n@Directive({\n selector: '[pepDivLoader]',\n})\nexport class PepDivLoaderDirective implements OnInit {\n @Input() loaderColor = null;\n @Input() loaderWidth = '5rem';\n @Input() loaderHeight = 'inherit';\n \n private svgIcon: SVGElement;\n\n constructor(\n private renderer: Renderer2,\n private element: ElementRef,\n private utilitiesService: PepUtilitiesService,\n private customizationService: PepCustomizationService,\n @Optional() @Inject(DOCUMENT) private document: any\n ) {}\n\n ngOnInit(): void {\n if (!this.loaderColor) {\n this.loaderColor = this.customizationService?.getLoadingSpinnerColor();\n }\n\n this.setDivStyle();\n const svgData =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\" preserveAspectRatio=\"xMidYMid\" class=\"lds-ripple\" style=\"background:0 0; \"><circle cx=\"64\" cy=\"64\" r=\"0\" fill=\"none\" stroke-width=\"10\"><animate attributeName=\"r\" calcMode=\"spline\" values=\"0;59\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0 0.3 0.8 0.8\" begin=\"-1.6s\" repeatCount=\"indefinite\"/><animate attributeName=\"opacity\" calcMode=\"spline\" values=\"1;0\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0.3 0 0.8 1\" begin=\"-1.6s\" repeatCount=\"indefinite\"/></circle><circle cx=\"64\" cy=\"64\" r=\"0\" fill=\"none\" stroke-width=\"10\"><animate attributeName=\"r\" calcMode=\"spline\" values=\"0;59\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0 0.3 0.8 0.8\" begin=\"-0.8s\" repeatCount=\"indefinite\"/><animate attributeName=\"opacity\" calcMode=\"spline\" values=\"1;0\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0.3 0 0.8 1\" begin=\"-0.8s\" repeatCount=\"indefinite\"/></circle><circle cx=\"64\" cy=\"64\" r=\"0\" fill=\"none\" stroke-width=\"10\"><animate attributeName=\"r\" calcMode=\"spline\" values=\"0;59\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0 0.3 0.8 0.8\" begin=\"0s\" repeatCount=\"indefinite\"/><animate attributeName=\"opacity\" calcMode=\"spline\" values=\"1;0\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0.3 0 0.8 1\" begin=\"0s\" repeatCount=\"indefinite\"/></circle></svg>';\n this.svgIcon = this.utilitiesService.getSvgElementFromString(\n this.document,\n svgData\n );\n\n this.setIconStyle();\n this.renderer.appendChild(this.element.nativeElement, this.svgIcon);\n }\n\n private setDivStyle(): void {\n this.renderer.setStyle(this.element.nativeElement, 'display', 'flex');\n this.renderer.setStyle(\n this.element.nativeElement,\n 'justify-content',\n 'center'\n );\n this.renderer.setStyle(\n this.element.nativeElement,\n 'align-items',\n 'center'\n );\n }\n\n private setIconStyle(): void {\n if (this.loaderColor) {\n this.renderer.setStyle(this.svgIcon, 'stroke', this.loaderColor);\n }\n\n this.renderer.setStyle(this.svgIcon, 'width', this.loaderWidth);\n this.renderer.setStyle(this.svgIcon, 'height', this.loaderHeight);\n this.renderer.addClass(this.svgIcon, 'svg-icon');\n this.renderer.addClass(this.svgIcon, 'stroke');\n }\n}\n","import { Injectable, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepPortalService {\n private targets: Map<string, ViewContainerRef>;\n\n constructor() {\n this.targets = new Map<string, ViewContainerRef>();\n }\n\n addTarget(targetName: string, viewContainer: ViewContainerRef): void {\n this.targets.set(targetName, viewContainer);\n }\n\n attach(targetName: string, template: TemplateRef<any>): void {\n const target = this.getTarget(targetName);\n\n if (target) {\n target.createEmbeddedView(template);\n }\n }\n\n clear(targetName: string): void {\n const target = this.getTarget(targetName);\n\n if (target) {\n target.clear();\n }\n }\n\n private getTarget(targetName: string): ViewContainerRef {\n return this.targets.has(targetName)\n ? this.targets.get(targetName)\n : null;\n }\n}\n","import {\n Directive,\n OnInit,\n OnDestroy,\n Input,\n TemplateRef,\n} from '@angular/core';\nimport { PepPortalService } from './portal.service';\n\n@Directive({\n selector: '[pepAttach]',\n})\nexport class PepAttachDirective implements OnInit, OnDestroy {\n @Input('pepAttach') targetName: string;\n\n constructor(\n private portalService: PepPortalService,\n private templateRef: TemplateRef<any>\n ) {}\n\n ngOnInit(): void {\n this.portalService.attach(this.targetName, this.templateRef);\n }\n\n ngOnDestroy(): void {\n this.portalService.clear(this.targetName);\n }\n}\n","import { Directive, OnInit, Input, ViewContainerRef } from '@angular/core';\nimport { PepPortalService } from './portal.service';\n\n@Directive({\n selector: '[pepTarget]',\n})\nexport class PepTargetDirective implements OnInit {\n @Input('pepTarget') targetName: string;\n\n constructor(\n private portalService: PepPortalService,\n private viewContainer: ViewContainerRef\n ) {}\n\n ngOnInit(): void {\n this.portalService.addTarget(this.targetName, this.viewContainer);\n }\n}\n","// Import the core angular services.\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepClipboardService {\n // private dom: Document;\n // // I initialize the Clipboard service.\n // // --\n // // CAUTION: This service is tightly couped to the browser DOM (Document Object Model).\n // // But, by injecting the \"document\" reference rather than trying to reference it\n // // globally, we can at least pretend that we are trying to lower the tight coupling.\n // constructor(@Optional() @Inject(DOCUMENT) dom: Document) {\n // this.dom = dom;\n // }\n // // ---\n // // PUBLIC METHODS.\n // // ---\n // // I copy the given value to the user's system clipboard. Returns a promise that\n // // resolves to the given value on success or rejects with the raised Error.\n // public copy(value: string): Promise<any> {\n // const promise = new Promise(\n // (resolve, reject): void => {\n // let textarea = null;\n // try {\n // // In order to execute the \"Copy\" command, we actually have to have\n // // a \"selection\" in the currently rendered document. As such, we're\n // // going to inject a Textarea element and .select() it in order to\n // // force a selection.\n // // --\n // // NOTE: This Textarea is being rendered off-screen.\n // textarea = this.dom.createElement('textarea');\n // textarea.style.height = '0px';\n // textarea.style.left = '-100px';\n // textarea.style.opacity = '0';\n // textarea.style.position = 'fixed';\n // textarea.style.top = '-100px';\n // textarea.style.width = '0px';\n // this.dom.body.appendChild(textarea);\n // // Set and select the value (creating an active Selection range).\n // textarea.value = value;\n // textarea.select();\n // // Ask the browser to copy the current selection to the clipboard.\n // this.dom.execCommand('copy');\n // resolve(value);\n // } finally {\n // // Cleanup - remove the Textarea from the DOM if it was injected.\n // if (textarea && textarea.parentNode) {\n // textarea.parentNode.removeChild(textarea);\n // }\n // }\n // }\n // );\n // return (promise);\n // }\n}\n","/*\n * Public API Surface of ngx-lib/core/clipboard\n */\nexport * from './clipboard.service';\nexport * from './clipboard.directive';\n","/*\n * export from ngx-lib/core/clipboard\n */\nexport * from './public-api';\n","/*\n * Public API Surface of ngx-lib/core/common/directives\n */\nexport * from './auto-width.directive';\nexport * from './button-blur.directive';\nexport * from './button-loader.directive';\nexport * from './data-qa.directive';\nexport * from './menu-blur.directive';\n// export * from './debounce-click.directive';\nexport * from './prevent-multi-click.directive';\nexport * from './print.directive';\nexport * from './div-loader.directive';\n","/*\n * export from ngx-lib/core/common/directives\n */\nexport * from './public-api';\n","export class Test {}\n","export class PepGuid {\n private static pad4(num: number): string {\n let ret: string = num.toString(16);\n while (ret.length < 4) {\n ret = '0' + ret;\n }\n return ret;\n }\n\n private static random4(): string {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n\n public static newGuid(): string {\n // This is not build for -prod\n // return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n // const r = Math.random() * 16 | 0;\n // const v = c === 'x' ? r : (r & 0x3 | 0x8);\n // return v.toString(16);\n // });\n\n // If we have a cryptographically secure PRNG, use that\n if (\n typeof window !== 'undefined' &&\n typeof window.crypto !== 'undefined' &&\n typeof window.crypto.getRandomValues !== 'undefined'\n ) {\n const buf: Uint16Array = new Uint16Array(8);\n window.crypto.getRandomValues(buf);\n return (\n this.pad4(buf[0]) +\n this.pad4(buf[1]) +\n '-' +\n this.pad4(buf[2]) +\n '-' +\n this.pad4(buf[3]) +\n '-' +\n this.pad4(buf[4]) +\n '-' +\n this.pad4(buf[5]) +\n this.pad4(buf[6]) +\n this.pad4(buf[7])\n );\n } else {\n // Otherwise, just use Math.random\n return (\n this.random4() +\n this.random4() +\n '-' +\n this.random4() +\n '-' +\n this.random4() +\n '-' +\n this.random4() +\n '-' +\n this.random4() +\n this.random4() +\n this.random4()\n );\n }\n }\n}\n","export enum FIELD_TYPE {\n // specify text field\n 'Default' = 0,\n 'TextBox' = 1,\n 'LimitedLengthTextBox' = 2,\n // specify text area field\n 'TextArea' = 3,\n 'TextHeader' = 4,\n // specify date field\n 'Date' = 5,\n // specify date & time field\n 'DateAndTime' = 6,\n // specify integer field\n 'NumberInteger' = 7,\n // specify decimal field\n 'NumberReal' = 8,\n // specify currency field\n 'Currency' = 9,\n // specify boolean field\n 'Boolean' = 10,\n // specify multiple options field\n 'ComboBox' = 11,\n // specify multiple options field\n 'MultiTickBox' = 12,\n // specify separator (view only) field\n 'Separator' = 13,\n // specify address field\n 'Address' = 14,\n // specify percentage field\n 'Percentage' = 15,\n 'EmptyComboBox' = 16, // For Category, CPIPriceList, Special Price List (ComboBox Without Values)\n 'InternalLink' = 17, // for reps, Contacts, Locations & Catalogs\n // specify email field\n 'Email' = 18,\n 'LimitedDate' = 19,\n // specify image field\n 'Image' = 20,\n 'MultiTickBoxToComboBox' = 21,\n 'EmptyMultiTickBox' = 22,\n 'Totals' = 23,\n // specify attachment field\n 'Attachment' = 24,\n 'Signature' = 25,\n // specify link field\n 'Link' = 26,\n // specify image url field\n 'ImageURL' = 27,\n 'NumberIntegerQuantitySelector' = 28, // hack for quantity selector in case of integer\n 'NumberRealQuantitySelector' = 29, // hack for quantity selector in case of double\n 'NumberIntegerForMatrix' = 30, // hack for integer in matrix\n 'NumberRealForMatrix' = 31, // hack for double in matrix\n 'Images' = 32, // hack for Images (for filmstrip and variants)\n 'Indicators' = 33, // Indicators is like address (group field that conains boolean fields).\n 'CalculatedReal' = 34,\n 'CalculatedInt' = 35,\n 'CalculatedString' = 36,\n 'CalculatedDate' = 37,\n 'CalculatedBool' = 38,\n 'MapDataDropDown' = 39,\n 'MapDataReal' = 40,\n 'MapDataString' = 41,\n 'MapDataInt' = 42,\n 'Sum' = 43,\n 'Phone' = 44,\n 'UrlForApi' = 45,\n 'ManyToManyUrlForApi' = 46,\n 'ReferenceType' = 47,\n 'GuidReferenceType' = 48,\n 'Button' = 49,\n 'InternalPage' = 50, // The old value was 45 - in the cpi project the \"InternalPage\" value is 50 so i fixed it!!!\n 'Duration' = 51,\n 'ListOfObjects' = 52,\n 'Package' = 53, // Package Quantity Selector\n 'RelatedObjectsCards' = 54,\n 'BooleanText' = 55, // Boolean that return a string defined by the user in case of true/false\n 'RichTextHTML' = 56, // Html Text\n}\n\nexport enum X_ALIGNMENT_TYPE {\n None = 0,\n Left = 1,\n Right = 2,\n Center = 3,\n}\n\nexport enum Y_ALIGNMENT_TYPE {\n None = 0,\n Top = 1,\n Bottom = 2,\n Center = 3,\n}\n\nexport class FieldLayout {\n X: number;\n Width: number;\n XAlignment: X_ALIGNMENT_TYPE;\n Y: Y_ALIGNMENT_TYPE;\n Height: number;\n YAlignment: Y_ALIGNMENT_TYPE;\n LineNumber: number;\n\n // constructor(\n // x = 0,\n // width = 1,\n // xAlignment: X_ALIGNMENT_TYPE = 1, y: Y_ALIGNMENT_TYPE = 0, height = 1, yAlignment = 1, lineNumber = 1) {\n // this.X = x;\n // this.Width = width;\n // this.XAlignment = xAlignment;\n // this.Y = y;\n // this.Height = height;\n // this.YAlignment = yAlignment;\n // this.LineNumber = lineNumber;\n // }\n\n constructor(data: Partial<FieldLayout>) {\n Object.assign(this, data);\n }\n}\n\nexport class UIControlField {\n Title: string;\n MandatoryField = false;\n Mandatory = false;\n ReadOnlyField: boolean;\n ReadOnly: boolean;\n FieldConditions: any;\n CustomField: any;\n ApiName: string;\n FieldType: FIELD_TYPE;\n OptionalValues: Array<KeyValuePair<string>>;\n MinValue: number;\n MaxValue: number;\n MaxCharacters: number;\n MaxFieldCharacters: number;\n MaxLines: number;\n Layout: FieldLayout; // { X: number; Height: number; Y: number; Width: number; XAlignment: number; YAlignment: number };\n ColumnWidth: number;\n ColumnWidthType: number;\n FieldName: string;\n DefaultValue: string;\n Hidden: boolean;\n ObjectTypeReference: any;\n ParentField: string;\n WrntyFieldName: string;\n Editor: any;\n minFieldWidth = 45;\n calcColumnWidth = 10;\n calcTitleColumnWidthString = '100%';\n calcColumnWidthString = '100%';\n}\n\nexport class UIControl {\n ObjectID: any;\n Type: string;\n DisplayName: string;\n ControlFields: Array<UIControlField>;\n Columns: number;\n}\n\nexport class ObjectsDataRowCell {\n Accessory?: string;\n AdditionalValue?: string;\n ApiName: string;\n BackgroundColor?: string;\n Enabled?: boolean;\n FieldType: number;\n FormattedValue: any;\n GroupFields?: Array<ObjectsDataRowCell>;\n Highlighted?: boolean;\n NotificationInfo?: string;\n OptionalValues?: Array<KeyValuePair<string>>;\n ReferenceObjectInternalType?: string;\n ReferenceObjectSubType?: string;\n ReferenceObjectType?: string;\n TextColor?: string;\n UiPageKey?: string;\n UIPageInfo?: any;\n // Type?: string; // This is in the object??\n Value: any;\n Visible?: boolean; \n DigitsNumberAfterDecimalPoint?: number;\n}\n\nexport class ObjectsDataRow {\n AdditionalData?: any;\n BackgroundColor?: string;\n ExtraInfo?: Array<{ Key: string; Value: string }>;\n Fields: Array<ObjectsDataRowCell>;\n IsEditable = true;\n IsSelected = false;\n IsSelectableForActions = true;\n MainAction?: string;\n Profile?: any;\n Type: number;\n UID: any;\n Key: string;\n}\n\nexport class ObjectSingleData {\n Data: ObjectsDataRow;\n ErrorCode: string;\n ErrorMessage: string;\n IsEditable: boolean;\n Success: boolean;\n Type: string;\n UIControl: UIControl;\n\n constructor(uiControl: UIControl = null, data: ObjectsDataRow = null) {\n this.Success = true;\n this.ErrorMessage = '';\n this.Type = '';\n\n this.UIControl = uiControl;\n this.Data = data;\n }\n}\n\nexport class ObjectsData {\n DateFilter?: string;\n ErrorCode: string;\n ErrorMessage: string;\n Rows: Array<ObjectsDataRow>;\n SearchCode?: string;\n SecSmartSearchList?: [];\n SmartSearchList: Array<SmartSearchResponse>;\n Success: boolean;\n TotalRows: number;\n UIControl: UIControl;\n // AllRows: Array<ObjectsDataRow>;\n // TotalAmount: any;\n // CurrencySymbol: any;\n\n constructor() {\n this.ErrorMessage = '';\n this.Success = true;\n // this.TotalAmount = '0';\n // this.CurrencySymbol = '$';\n }\n}\n\nexport class SmartSearchValues {\n ApiName: string;\n ComparisonType: string;\n Value: string;\n ValueRange: { Start: string; End: string };\n Values: Array<string>;\n}\n\nexport class SmartSearchResponse {\n ApiName: string;\n FieldType: any;\n Title: string;\n Values: Array<KeyValuePair<string>>;\n SmartSearchData: SmartSearchValues;\n}\n\nexport class KeyValuePair<T> {\n Key: string;\n Value: T;\n}\n","/*\n * Public API Surface of ngx-lib/core/common/model\n */\nexport * from './papi.model';\nexport * from './utilities.model';\nexport * from './wapi.model';\n","/*\n * export from ngx-lib/core/common/model\n */\nexport * from './public-api';\n","/*\n * Public API Surface of ngx-lib/core/common/pipes\n */\nexport * from './common-pipes';\nexport * from './date-ago.pipe';\n","/*\n * export from ngx-lib/core/common/pipes\n */\nexport * from './public-api';\n","import {\n Injectable,\n Inject,\n PLATFORM_ID,\n InjectionToken,\n Optional,\n} from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepCookieService {\n private readonly documentIsAccessible: boolean;\n\n constructor(\n @Optional() @Inject(DOCUMENT) private document: any,\n @Inject(PLATFORM_ID) private platformId: InjectionToken<any>\n ) {\n this.documentIsAccessible = isPlatformBrowser(this.platformId);\n }\n\n /**\n * @param name Cookie name\n * @returns boolean - whether cookie with specified name exists\n */\n check(name: string): boolean {\n if (!this.documentIsAccessible) {\n return false;\n }\n\n name = encodeURIComponent(name);\n\n const regExp: RegExp = this.getCookieRegExp(name);\n const exists: boolean = regExp.test(this.document.cookie);\n\n return exists;\n }\n\n /**\n * @param name Cookie name\n * @returns property value\n */\n get(name: string): string {\n if (this.documentIsAccessible && this.check(name)) {\n name = encodeURIComponent(name);\n\n const regExp: RegExp = this.getCookieRegExp(name);\n const result: RegExpExecArray = regExp.exec(this.document.cookie);\n\n return this.safeDecodeURIComponent(result[1]);\n } else {\n return '';\n }\n }\n\n /**\n * @returns all the cookies in json\n */\n getAll(): { [key: string]: string } {\n if (!this.documentIsAccessible) {\n return {};\n }\n\n const cookies: { [key: string]: string } = {};\n const document: any = this.document;\n\n if (document.cookie && document.cookie !== '') {\n document.cookie.split(';').forEach((currentCookie) => {\n const [cookieName, cookieValue] = currentCookie.split('=');\n cookies[\n this.safeDecodeURIComponent(cookieName.replace(/^ /, ''))\n ] = this.safeDecodeURIComponent(cookieValue);\n });\n }\n\n return cookies;\n }\n\n /**\n * @param name Cookie name\n * @param value Cookie value\n * @param expires Number of days until the cookies expires or an actual `Date`\n * @param path Cookie path\n * @param domain Cookie domain\n * @param secure Secure flag\n * @param sameSite OWASP samesite token `Lax`, `None`, or `Strict`. Defaults to `Lax`\n */\n set(\n name: string,\n value: string,\n expires?: number | Date,\n path?: string,\n domain?: string,\n secure?: boolean,\n sameSite: 'Lax' | 'None' | 'Strict' = 'Lax'\n ): void {\n if (!this.documentIsAccessible) {\n return;\n }\n\n let cookieString: string =\n encodeURIComponent(name) + '=' + encodeURIComponent(value) + ';';\n\n if (expires) {\n if (typeof expires === 'number') {\n const dateExpires: Date = new Date(\n new Date().getTime() + expires * 1000 * 60 * 60 * 24\n );\n\n cookieString += 'expires=' + dateExpires.toUTCString() + ';';\n } else {\n cookieString += 'expires=' + expires.toUTCString() + ';';\n }\n }\n\n if (path) {\n cookieString += 'path=' + path + ';';\n }\n\n if (domain) {\n cookieString += 'domain=' + domain + ';';\n }\n\n if (secure === false && sameSite === 'None') {\n secure = true;\n }\n\n if (secure) {\n cookieString += 'secure;';\n }\n\n cookieString += 'sameSite=' + sameSite + ';';\n\n this.document.cookie = cookieString;\n }\n\n /**\n * @param name Cookie name\n * @param path Cookie path\n * @param domain Cookie domain\n */\n delete(\n name: string,\n path?: string,\n domain?: string,\n secure?: boolean,\n sameSite: 'Lax' | 'None' | 'Strict' = 'Lax'\n ): void {\n if (!this.documentIsAccessible) {\n return;\n }\n\n this.set(\n name,\n '',\n new Date('Thu, 01 Jan 1970 00:00:01 GMT'),\n path,\n domain,\n secure,\n sameSite\n );\n }\n\n /**\n * @param path Cookie path\n * @param domain Cookie domain\n */\n deleteAll(\n path?: string,\n domain?: string,\n secure?: boolean,\n sameSite: 'Lax' | 'None' | 'Strict' = 'Lax'\n ): void {\n if (!this.documentIsAccessible) {\n return;\n }\n\n const cookies: any = this.getAll();\n\n for (const cookieName in cookies) {\n if (cookies.hasOwnProperty(cookieName)) {\n this.delete(cookieName, path, domain, secure, sameSite);\n }\n }\n }\n\n /**\n * @param name Cookie name\n * @returns property RegExp\n */\n private getCookieRegExp(name: string): RegExp {\n const escapedName: string = name.replace(\n /([\\[\\]\\{\\}\\(\\)\\|\\=\\;\\+\\?\\,\\.\\*\\^\\$])/gi,\n '\\\\$1'\n );\n\n return new RegExp(\n '(?:^' + escapedName + '|;\\\\s*' + escapedName + ')=(.*?)(?:;|$)',\n 'g'\n );\n }\n\n private safeDecodeURIComponent(encodedURIComponent: string): string {\n try {\n return decodeURIComponent(encodedURIComponent);\n } catch {\n // probably it is not uri encoded. return as is\n return encodedURIComponent;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpClient,\n HttpErrorResponse,\n HttpParams,\n HttpHeaders,\n} from '@angular/common/http';\nimport { throwError, Observable } from 'rxjs';\nimport { retry, catchError, tap } from 'rxjs/operators';\nimport { PepSessionService } from '../../common/services/session.service';\nimport { PepCookieService } from '../../common/services/cookie.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepHttpService {\n private readonly AUTH_HEADER = 'Authorization';\n private readonly PEPPERI_TOKEN_HEADER = 'PepperiSessionToken';\n private readonly WAPI_TOKEN_KEY = 'auth_token';\n private readonly PEPPERI_TOKEN_COOKIE = 'PepperiUserSettings';\n\n constructor(\n private sessionService: PepSessionService,\n private cookieService: PepCookieService,\n private http: HttpClient\n ) {}\n\n private handleError(response: HttpErrorResponse): Observable<never> {\n let errorMessage = 'Unknown error!';\n if (response.error instanceof ErrorEvent) {\n // Client-side errors\n errorMessage = `Error: ${response.error.message}`;\n } else {\n // Server-side errors\n errorMessage = this.getServerErrorMessage(response);\n }\n\n return throwError(errorMessage);\n }\n\n private getServerErrorMessage(response: HttpErrorResponse): string {\n if (response?.error?.fault?.faultstring) {\n return `${response.error.fault.faultstring}`;\n } else {\n switch (response.status) {\n case 404: {\n return `Not Found: ${response.message}`;\n }\n case 403: {\n return `Access Denied: ${response.message}`;\n }\n case 500: {\n return `Internal Server Error: ${response.message}`;\n }\n default: {\n return `Unknown Server Error\\nError Code: ${response.status}\\nMessage: ${response.message}`;\n }\n }\n }\n }\n\n // Add authorization token if the token exist.\n private addAuthorizationToken(httpOptions: any = {}): any {\n if (!httpOptions.headers.has(this.AUTH_HEADER)) {\n const idpToken = this.sessionService.getIdpToken();\n\n if (idpToken) {\n httpOptions.headers = httpOptions.headers.set(\n this.AUTH_HEADER,\n `Bearer ${idpToken}`\n );\n }\n }\n\n return httpOptions;\n }\n\n // Add web api token if calling to wapi domain.\n private addWebApiToken(url: string, httpOptions: any = {}): any {\n if (!httpOptions.headers.has(this.PEPPERI_TOKEN_HEADER)) {\n const wapiBaseUrl = this.sessionService.getWapiBaseUrl();\n\n if (wapiBaseUrl && url.match(new RegExp(wapiBaseUrl, 'g'))) {\n // TODO:\n // const webApiToken = this.sessionService.getWapiToken();\n try {\n const userSettingCookie = this.cookieService.get(\n this.PEPPERI_TOKEN_COOKIE\n );\n const webApiToken = JSON.parse(userSettingCookie).values\n .items[this.WAPI_TOKEN_KEY];\n if (webApiToken) {\n httpOptions.headers = httpOptions.headers.set(\n this.PEPPERI_TOKEN_HEADER,\n webApiToken\n );\n }\n } catch {\n // Do nothing.\n }\n }\n }\n\n return httpOptions;\n }\n\n private setDefaultHeaderOptions(url: string, httpOptions: any = {}): any {\n if (!httpOptions.headers) {\n httpOptions.headers = new HttpHeaders();\n }\n\n // Add content type\n if (!httpOptions.headers.has('Content-Type')) {\n httpOptions.headers = httpOptions.headers.set(\n 'Content-Type',\n 'application/json'\n );\n }\n\n httpOptions = this.addAuthorizationToken(httpOptions);\n httpOptions = this.addWebApiToken(url, httpOptions);\n\n return httpOptions;\n }\n\n // getTextFile(filename: string): void {\n // // The Observable returned by get() is of type Observable<string>\n // // because a text response was specified.\n // // There's no need to pass a <string> type parameter to get().\n // // return this.http.get(filename, {responseType: 'text'})\n // // .pipe(\n // // tap( // Log the result or error\n // // data => this.log(filename, data),\n // // error => this.logError(filename, error)\n // // )\n // // );\n // }\n\n getHttpCall(url: string, httpOptions: any = {}): Observable<any> {\n httpOptions = this.setDefaultHeaderOptions(url, httpOptions);\n\n return this.http\n .get(url, httpOptions)\n .pipe(catchError(this.handleError.bind(this)));\n // .subscribe(\n // (res) => console.log(''),\n // (error) => console.log(''),\n // () => {}\n // );\n }\n\n postHttpCall(\n url: string,\n body: any | null,\n httpOptions: any = {}\n ): Observable<any> {\n httpOptions = this.setDefaultHeaderOptions(url, httpOptions);\n\n return this.http\n .post(url, body, httpOptions)\n .pipe(catchError(this.handleError.bind(this)));\n // .subscribe(\n // (res) => console.log(''),\n // (error) => console.log(''),\n // () => {}\n // );\n }\n\n getWapiApiCall(url: string, httpOptions: any = {}): Observable<any> {\n const wapiBaseUrl = this.sessionService.getWapiBaseUrl();\n return this.getHttpCall(`${wapiBaseUrl}${url}`, httpOptions);\n }\n\n postWapiApiCall(\n url: string,\n body: any | null,\n httpOptions: any = {}\n ): Observable<any> {\n const wapiBaseUrl = this.sessionService.getWapiBaseUrl();\n return this.postHttpCall(`${wapiBaseUrl}${url}`, body, httpOptions);\n }\n\n getPapiApiCall(url: string, httpOptions: any = {}): Observable<any> {\n const papiBaseUrl = this.sessionService.getPapiBaseUrl();\n return this.getHttpCall(`${papiBaseUrl}${url}`, httpOptions);\n }\n\n postPapiApiCall(\n url: string,\n body: any | null,\n httpOptions: any = {}\n ): Observable<any> {\n const papiBaseUrl = this.sessionService.getPapiBaseUrl();\n return this.postHttpCall(`${papiBaseUrl}${url}`, body, httpOptions);\n }\n\n // getApiCall(url: string, httpOptions: any = {}): Observable<any> {\n // const apiBaseUrl = this.sessionService.getApiBaseUrl();\n // return this.getHttpCall(`${apiBaseUrl}${url}`, httpOptions);\n // }\n\n // postApiCall(\n // url: string,\n // body: any | null,\n // httpOptions: any = {}\n // ): Observable<any> {\n // const apiBaseUrl = this.sessionService.getApiBaseUrl();\n // return this.postHttpCall(`${apiBaseUrl}${url}`, body, httpOptions);\n // }\n}\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ITranslationResource, MultiTranslateHttpLoader } from 'ngx-translate-multi-http-loader';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n/*\r\n This service is the webapp api for addon usege.\r\n*/\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PepTranslateService {\r\n constructor(\r\n private http: HttpClient\r\n // private sessionService: PepSessionService,\r\n // private httpService: PepHttpService,\r\n // private loaderService: PepLoaderService\r\n ) {\r\n //\r\n }\r\n\r\n createMultiTranslateLoader(resources: ITranslationResource[]) {\r\n return new MultiTranslateHttpLoader(this.http, resources);\r\n }\r\n\r\n setDefaultTranslateLang(translate: TranslateService, urlLangParam = 'userLang') {\r\n let userLang = 'en';\r\n translate.setDefaultLang(userLang);\r\n userLang = translate.getBrowserLang().split('-')[0]; // use navigator lang if available\r\n\r\n if (urlLangParam.length > 0) {\r\n const index = location.href.indexOf(urlLangParam);\r\n\r\n if (index > -1) {\r\n // urlLangParam=XX\r\n const startIndex = index + urlLangParam.length + '='.length;\r\n userLang = location.href.substring(startIndex, startIndex + 2);\r\n }\r\n }\r\n\r\n // the lang to use, if the lang isn't available, it will use the current loader to get them\r\n translate.use(userLang).subscribe((res: any) => {\r\n // In here you can put the code you want. At this point the lang will be loaded\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable, Injector, Optional, Type } from '@angular/core';\nimport { createCustomElement } from '@angular/elements';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { PepSessionService } from './session.service';\nimport { PepFileService } from './file.service';\nimport { PepHttpService } from '../../http/services/http.service';\nimport { PepLoaderService } from '../../http/services/loader.service';\nimport { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ITranslationResource } from 'ngx-translate-multi-http-loader';\nimport { PepTranslateService } from './translate.service';\nimport { connectRouter } from '@angular-architects/module-federation-tools';\n\n/*\n This service is the webapp api for addon usege.\n*/\n@Injectable({\n providedIn: 'root',\n})\nexport class PepAddonService {\n private readonly PAGES_ADDON_UUID = '50062e0c-9967-4ed4-9102-f2bc50602d41';\n // private readonly ADDON_ASSETS_PATH_KEY = 'AddonAssetsPath';\n private readonly ADDONS_DICTIONARY_ASSETS_PATH_KEY = 'AddonsDictionaryAssetsPath';\n private readonly ADDON_API_RELATIVE_PATH = '/addons/api';\n private readonly ADDON_API_ASYNC_RELATIVE_PATH = `${this.ADDON_API_RELATIVE_PATH}/async`;\n\n private static _customElementsMap: Map<string, any> = new Map();\n\n private get devServer() {\n return this.route ? this.route.snapshot.queryParamMap.get('devServer') === 'true' : false;\n }\n\n constructor(\n private sessionService: PepSessionService,\n private httpService: PepHttpService,\n private loaderService: PepLoaderService,\n public translateService: PepTranslateService,\n public fileService: PepFileService,\n @Optional() private route: ActivatedRoute,\n ) {\n //\n }\n\n private getAddonBaseRelativePath(isAsync = false): string {\n return isAsync\n ? this.ADDON_API_ASYNC_RELATIVE_PATH\n : this.ADDON_API_RELATIVE_PATH;\n }\n\n getAddonStaticFolder(addonUUID: string): string {\n // if (addonUUID.length > 0) {\n const addonsDictionary = this.sessionService.getObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY);\n return addonsDictionary && addonsDictionary[addonUUID] ? addonsDictionary[addonUUID] : '';\n // } else {\n // return this.sessionService.getObject(this.ADDON_ASSETS_PATH_KEY) || '';\n // }\n }\n\n setAddonStaticFolder(path: string, addonUUID: string): void {\n // if (addonUUID.length > 0) {\n const addonsDictionary = this.sessionService.getObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY) ?? {};\n addonsDictionary[addonUUID] = path;\n this.sessionService.setObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY, addonsDictionary);\n // } else {\n // return this.sessionService.setObject(this.ADDON_ASSETS_PATH_KEY, path);\n // }\n }\n\n getServerBaseUrl(addonUUID: string, fileName = '', isAsync = false, localhostPort = 4500): string {\n const fileToAdd = fileName.length > 0 ? `/${fileName}` : '';\n \n // For devServer run server on localhost.\n if(this.devServer) {\n return `http://localhost:${localhostPort}${fileToAdd}`;\n } else {\n const baseUrl = this.sessionService.getPapiBaseUrl();\n return `${baseUrl}${this.getAddonBaseRelativePath(isAsync)}/${addonUUID}${fileToAdd}`;\n }\n }\n\n getAddonApiCall(\n addonUUID: string,\n fileName: string,\n functionName: string,\n httpOptions = {},\n isAsync = false\n ): Observable<any> {\n // return this.httpService.getPapiApiCall(\n // `${this.getAddonBaseRelativePath(\n // isAsync\n // )}/${addonUUID}/${fileName}/${functionName}`,\n // httpOptions\n // );\n\n const papiBaseUrl = this.getServerBaseUrl(addonUUID, fileName, isAsync);\n return this.httpService.getHttpCall(`${papiBaseUrl}/${functionName}`, httpOptions);\n }\n\n postAddonApiCall(\n addonUUID: string,\n fileName: string,\n functionName: string,\n body = {},\n httpOptions = {},\n isAsync = false\n ): Observable<any> {\n // return this.httpService.postPapiApiCall(\n // `${this.getAddonBaseRelativePath(\n // isAsync\n // )}/${addonUUID}/${fileName}/${functionName}`,\n // body,\n // httpOptions\n // );\n\n const papiBaseUrl = this.getServerBaseUrl(addonUUID, fileName, isAsync);\n return this.httpService.postHttpCall(`${papiBaseUrl}/${functionName}`, body, httpOptions);\n }\n\n async getAddonCPICall(\n addonUUID: string,\n url: string\n ) {\n const res = await this.emitEvent(\"AddonAPI\", {\n AddonUUID: addonUUID,\n RelativeURL: url,\n })\n\n if (res.Success) {\n return JSON.parse(res.Value)\n }\n else {\n throw new Error(res.Value)\n }\n }\n\n async postAddonCPICall(\n addonUUID: string,\n url: string,\n body: any\n ) {\n const res = await this.emitEvent(\"AddonAPI\", {\n AddonUUID: addonUUID,\n RelativeURL: url,\n Method: 'POST',\n Body: body\n })\n\n if (res.Success) {\n return JSON.parse(res.Value)\n }\n else {\n throw new Error(res.Value)\n }\n } \n\n emitEvent(eventKey: string, eventData: any): Promise<any> {\n return new Promise(resolve => {\n window.dispatchEvent(new CustomEvent('emit-event', {\n detail: {\n eventKey,\n eventData: eventData,\n completion: resolve\n }\n }))\n })\n }\n\n // TODO: need to chek this if the loader is working.\n fetch(input: RequestInfo, init?: RequestInit): Promise<Response> {\n this.loaderService.show();\n\n return window.fetch(input, init).finally(() => {\n this.loaderService.hide();\n });\n }\n\n getNgxLibTranslationResource(addonUUID: string, libName = 'ngx-lib'): ITranslationResource {\n const addonStaticFolder = this.getAddonStaticFolder(addonUUID);\n const translationsPath: string = this.fileService.getAssetsTranslationsPath(addonStaticFolder, libName);\n const translationsSuffix: string = this.fileService.getAssetsTranslationsSuffix(libName);\n\n return {\n prefix: translationsPath,\n suffix: translationsSuffix,\n };\n }\n\n getAddonTranslationResource(addonUUID: string): ITranslationResource {\n const addonStaticFolder = this.getAddonStaticFolder(addonUUID);\n const defaultSubFolder = 'assets/i18n/';\n\n return {\n prefix: addonStaticFolder.length > 0 ? `${addonStaticFolder}${defaultSubFolder}` : `/${defaultSubFolder}`,\n suffix: '.json',\n };\n }\n\n setDefaultTranslateLang(translate: TranslateService, urlLangParam = 'userLang') {\n this.translateService.setDefaultTranslateLang(translate, urlLangParam);\n }\n\n getPagesAddonUUID() {\n return this.PAGES_ADDON_UUID;\n }\n\n setShellRouterData(data: { addPadding?: boolean, showSidebar?: boolean, showHeader?: boolean }) {\n const eventData = {\n detail: data,\n };\n\n const customEvent = new CustomEvent('set-router-data', eventData);\n window.dispatchEvent(customEvent);\n }\n\n defineCustomElement(elementName: string, component: Type<any>, injector: Injector) {\n if (!customElements.get(elementName)) { \n customElements.define(elementName, createCustomElement(component, {injector: injector}));\n \n // Set the elementName in the _customElementsMap (Fix internal routing bug).\n PepAddonService._customElementsMap.set(elementName, {injector: injector});\n }\n }\n\n // Fix internal routing bug.\n connectInternalRouter(elementName: string) {\n const customElementObject = PepAddonService._customElementsMap.get(elementName);\n const router = customElementObject?.injector.get(Router);\n\n if (router) {\n const useHash = location.href.includes('#');\n connectRouter(router, useHash);\n }\n }\n\n public static createMultiTranslateLoader(\n addonUUID: string,\n addonService: PepAddonService,\n libsName = ['ngx-lib'],\n ) {\n const ngxLibTranslationResources = [];\n\n if (libsName?.length > 0) {\n for (let index = 0; index < libsName.length; index++) {\n const libName = libsName[index];\n ngxLibTranslationResources.push(addonService.getNgxLibTranslationResource(addonUUID, libName));\n }\n }\n\n const addonTranslationResource = addonService.getAddonTranslationResource(addonUUID);\n\n return addonService.translateService.createMultiTranslateLoader([\n ...ngxLibTranslationResources,\n addonTranslationResource\n ]);\n }\n}\n","import { Injectable } from '@angular/core';\n\nexport interface IPepRgbColor {\n r?: any;\n g?: any;\n b?: any;\n}\n\nexport interface IPepHslColor {\n h?: any;\n s?: any;\n l?: any;\n}\n\nexport interface IPepClosestColor {\n color: string;\n lightness: number;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepColorService {\n readonly FLOAT_REGEX = /^\\d+(\\.\\d+)?$/;\n readonly THREE_DIGIT_HEX_COLOR_REGEX = /^[0-9a-fA-F]{3}$/;\n readonly THREE_DIGIT_HEX_COLOR_WITH_HASH_REGEX = /^#[0-9a-fA-F]{3}$/;\n readonly SIX_DIGIT_HEX_COLOR_REGEX = /^[0-9a-fA-F]{6}$/;\n readonly SIX_DIGIT_HEX_COLOR_WITH_HASH_REGEX = /^#[0-9a-fA-F]{6}$/;\n\n private contrast(str1: string, str2: string): number {\n const L1 = this.relativeLuminance(this.hex2rgb(str1));\n const L2 = this.relativeLuminance(this.hex2rgb(str2));\n\n if (L1 < L2) {\n return (L2 + 0.05) / (L1 + 0.05);\n }\n\n return (L1 + 0.05) / (L2 + 0.05);\n }\n\n private findClosestAccessibleDarkerColor(\n adjustableColor: string,\n otherColor: string,\n contrastRatio: number\n ): IPepClosestColor {\n const { h, s, l } = this.hex2hsl(adjustableColor);\n\n if (this.contrast(adjustableColor, otherColor) >= contrastRatio) {\n return {\n color: adjustableColor,\n lightness: l,\n };\n }\n\n let minColor = this.hsl2hex({ h, s, l: 0 });\n\n if (this.contrast(minColor, otherColor) < contrastRatio) {\n return null;\n }\n\n let min = 0;\n let max = l;\n let maxColor = this.hsl2hex({ h, s, l });\n let lastMinColor;\n let lastMaxColor;\n let lTemp;\n\n while (minColor !== lastMinColor || maxColor !== lastMaxColor) {\n lastMinColor = minColor;\n lastMaxColor = maxColor;\n\n lTemp = (min + max) / 2;\n adjustableColor = this.hsl2hex({ h, s, l: lTemp });\n\n if (this.contrast(adjustableColor, otherColor) < contrastRatio) {\n max = lTemp;\n maxColor = this.hsl2hex({ h, s, l: lTemp });\n } else {\n min = lTemp;\n minColor = this.hsl2hex({ h, s, l: lTemp });\n }\n }\n\n return {\n color: minColor,\n lightness: min,\n };\n }\n\n private findClosestAccessibleLighterColor(\n adjustableColor: string,\n otherColor: string,\n contrastRatio: number\n ): IPepClosestColor {\n const { h, s, l } = this.hex2hsl(adjustableColor);\n\n if (this.contrast(adjustableColor, otherColor) >= contrastRatio) {\n return {\n color: adjustableColor,\n lightness: l,\n };\n }\n\n let maxColor = this.hsl2hex({ h, s, l: 100 });\n\n if (this.contrast(maxColor, otherColor) < contrastRatio) {\n return null;\n }\n\n let min = l;\n let max = 100;\n let minColor = this.hsl2hex({ h, s, l });\n let lastMinColor;\n let lastMaxColor;\n let lTemp;\n\n while (minColor !== lastMinColor || maxColor !== lastMaxColor) {\n lastMinColor = minColor;\n lastMaxColor = maxColor;\n\n lTemp = (min + max) / 2;\n adjustableColor = this.hsl2hex({ h, s, l: lTemp });\n\n if (this.contrast(adjustableColor, otherColor) < contrastRatio) {\n min = lTemp;\n minColor = this.hsl2hex({ h, s, l: lTemp });\n } else {\n max = lTemp;\n maxColor = this.hsl2hex({ h, s, l: lTemp });\n }\n }\n\n return {\n color: maxColor,\n lightness: max,\n };\n }\n\n /**\n * Convert hex string to 6 digits hex string.\n * @param str The string to convert.\n */\n hex2sixDigitHex(str: string): string {\n if (!str) {\n return null;\n }\n\n str = str.trim();\n\n if (this.SIX_DIGIT_HEX_COLOR_WITH_HASH_REGEX.test(str)) {\n return str;\n }\n\n if (this.SIX_DIGIT_HEX_COLOR_REGEX.test(str)) {\n return '#' + str;\n }\n\n if (this.THREE_DIGIT_HEX_COLOR_WITH_HASH_REGEX.test(str)) {\n return '#' + str[1] + str[1] + str[2] + str[2] + str[3] + str[3];\n }\n\n if (this.THREE_DIGIT_HEX_COLOR_REGEX.test(str)) {\n return '#' + str[0] + str[0] + str[1] + str[1] + str[2] + str[2];\n }\n\n return null;\n }\n\n /**\n * Convert rgb color to 6 digits hex string.\n * @param color The rgb color to convert.\n */\n rgb2sixDigitHex(color: IPepRgbColor): string {\n if (!color) {\n return null;\n }\n\n color.r = color.r.toString(16);\n color.g = color.g.toString(16);\n color.b = color.b.toString(16);\n\n if (color.r.length === 1) {\n color.r = '0' + color.r;\n }\n\n if (color.g.length === 1) {\n color.g = '0' + color.g;\n }\n\n if (color.b.length === 1) {\n color.b = '0' + color.b;\n }\n\n return '#' + color.r + color.g + color.b;\n }\n\n /**\n * Convert hex string to rgb color.\n * @param str The hex string to convert.\n */\n hex2rgb(str: string): IPepRgbColor {\n if (!str) {\n return null;\n }\n\n const sixDigitHex = this.hex2sixDigitHex(str);\n\n if (sixDigitHex === null) {\n return null;\n }\n\n return {\n r: parseInt(sixDigitHex.slice(1, 3), 16),\n g: parseInt(sixDigitHex.slice(3, 5), 16),\n b: parseInt(sixDigitHex.slice(5, 7), 16),\n };\n }\n\n rgbString2hsl(str: string): IPepHslColor {\n if (!str) {\n return null;\n }\n\n const sep = str.indexOf(',') > -1 ? ',' : ' ';\n const rgbArr = str.substr(4).split(')')[0].split(sep);\n\n const r = rgbArr[0];\n const g = rgbArr[1].substr(0, rgbArr[1].length).trim();\n const b = rgbArr[2].substr(0, rgbArr[2].length).trim();\n\n return this.rgb2hsl({ r, g, b });\n }\n\n rgb2hsl({ r, g, b }: IPepRgbColor): IPepHslColor {\n r /= 255;\n g /= 255;\n b /= 255;\n\n // Find greatest and smallest channel values\n const cmin = Math.min(r, g, b);\n const cmax = Math.max(r, g, b);\n const delta = cmax - cmin;\n\n let h = 0;\n let s = 0;\n let l = 0;\n\n if (delta === 0) {\n h = 0;\n } else if (cmax === r) {\n h = ((g - b) / delta) % 6;\n } else if (cmax === g) {\n h = (b - r) / delta + 2;\n } else {\n h = (r - g) / delta + 4;\n }\n\n h = Math.round(h * 60);\n\n if (h < 0) {\n h += 360;\n }\n\n l = (cmax + cmin) / 2;\n s = delta === 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));\n s = +(s * 100).toFixed(1);\n l = +(l * 100).toFixed(1);\n\n return { h, s, l };\n }\n\n hslString2hsl(str: string): IPepHslColor {\n if (!str) {\n return null;\n }\n\n const sep = str.indexOf(',') > -1 ? ',' : ' ';\n const hslArr = str.substr(4).split(')')[0].split(sep);\n\n let h: any = hslArr[0];\n let s = hslArr[1].substr(0, hslArr[1].length).trim();\n let l = hslArr[2].substr(0, hslArr[2].length).trim();\n\n // Strip label and convert to degrees (if necessary)\n if (h.indexOf('deg') > -1) {\n h = h.substr(0, h.length - 3);\n } else if (h.indexOf('rad') > -1) {\n h = Math.round(h.substr(0, h.length - 3) * (180 / Math.PI));\n } else if (h.indexOf('turn') > -1) {\n h = Math.round(h.substr(0, h.length - 4) * 360);\n }\n\n // Keep hue fraction of 360 if ending up over\n if (h >= 360) {\n h %= 360;\n }\n\n // Remove the %\n if (s.indexOf('%') > -1) {\n s = s.replace(/%/g, '');\n }\n\n // Remove the %\n if (l.indexOf('%') > -1) {\n l = l.replace(/%/g, '');\n }\n\n return { h, s, l };\n }\n\n hsl2rgb({ h, s, l }: IPepHslColor): IPepRgbColor {\n let r;\n let g;\n let b;\n\n if (!isFinite(h)) {\n h = 0;\n }\n\n if (!isFinite(s)) {\n s = 0;\n }\n\n if (!isFinite(l)) {\n l = 0;\n }\n\n h /= 60;\n\n if (h < 0) {\n h = 6 - (-h % 6);\n }\n\n h %= 6;\n\n s = Math.max(0, Math.min(1, s / 100));\n l = Math.max(0, Math.min(1, l / 100));\n\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs((h % 2) - 1));\n\n if (h < 1) {\n r = c;\n g = x;\n b = 0;\n } else if (h < 2) {\n r = x;\n g = c;\n b = 0;\n } else if (h < 3) {\n r = 0;\n g = c;\n b = x;\n } else if (h < 4) {\n r = 0;\n g = x;\n b = c;\n } else if (h < 5) {\n r = x;\n g = 0;\n b = c;\n } else {\n r = c;\n g = 0;\n b = x;\n }\n\n const m = l - c / 2;\n r = Math.round((r + m) * 255);\n g = Math.round((g + m) * 255);\n b = Math.round((b + m) * 255);\n\n return { r, g, b };\n }\n\n hex2hsl(str: string): IPepHslColor {\n if (!str) {\n return null;\n }\n\n const sixDigitHex = this.hex2sixDigitHex(str);\n\n if (sixDigitHex === null) {\n return null;\n }\n\n const rgb = this.hex2rgb(sixDigitHex);\n\n if (rgb === null) {\n return null;\n }\n\n return this.rgb2hsl(rgb);\n }\n\n hsl2hex(hsl: IPepHslColor): string {\n if (!hsl) {\n return null;\n }\n\n const rgb = this.hsl2rgb(hsl);\n\n return this.rgb2sixDigitHex(rgb);\n }\n\n relativeLuminance({ r, g, b }: IPepRgbColor): number {\n [r, g, b] = [r, g, b].map((c) => {\n c = c / 255;\n\n if (c <= 0.03928) {\n return c / 12.92;\n }\n\n return Math.pow((c + 0.055) / 1.055, 2.4);\n });\n\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n }\n\n findClosestAccessibleColor(\n adjustableColor: string,\n otherColor: string,\n contrastRatio: number\n ): string {\n const closestDarkerColor: IPepClosestColor = this.findClosestAccessibleDarkerColor(\n adjustableColor,\n otherColor,\n contrastRatio\n );\n const closestLighterColor: IPepClosestColor = this.findClosestAccessibleLighterColor(\n adjustableColor,\n otherColor,\n contrastRatio\n );\n\n if (closestDarkerColor === null) {\n if (closestLighterColor === null) {\n return null;\n }\n\n return closestLighterColor.color;\n }\n\n if (closestLighterColor === null) {\n return closestDarkerColor.color;\n }\n\n const { l } = this.hex2hsl(adjustableColor);\n\n if (\n closestLighterColor.lightness - l <\n l - closestDarkerColor.lightness\n ) {\n return closestLighterColor.color;\n }\n\n return closestDarkerColor.color;\n }\n\n convertHslToStringHsl(hsl: IPepHslColor): string {\n return (\n 'hsl(' +\n (hsl.h < 0 ? hsl.h + 360 : hsl.h) +\n ', ' +\n hsl.s +\n '%, ' +\n hsl.l +\n '%)'\n );\n }\n\n lightOrDark(color: any): 'light' | 'dark' {\n let r = undefined;\n let g = undefined;\n let b = undefined;\n\n // Check the format of the color, HEX or RGB?\n if (color.match(/^rgb/)) {\n // If HEX --> store the red, green, blue values in separate variables\n color = color.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/);\n \n r = color[1];\n g = color[2];\n b = color[3];\n } \n else {\n // If RGB --> Convert it to HEX: http://gist.github.com/983661\n color = +(\"0x\" + color.slice(1).replace( \n color.length < 5 && /./g, '$&$&'\n ));\n \n r = color >> 16;\n g = color >> 8 & 255;\n b = color & 255;\n }\n \n // HSP (Highly Sensitive Poo) equation from http://alienryderflex.com/hsp.html\n const hsp = Math.sqrt(\n 0.299 * (r * r) +\n 0.587 * (g * g) +\n 0.114 * (b * b)\n );\n \n // Using the HSP value, determine whether the color is light or dark\n return (hsp > 127.5) ? 'light' : 'dark';\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n FieldLayout,\n ObjectsDataRow,\n UIControl,\n UIControlField,\n ObjectsDataRowCell,\n FIELD_TYPE,\n X_ALIGNMENT_TYPE,\n} from '../model/wapi.model';\nimport { PepGuid } from '../model/utilities.model';\n\nexport class PepFieldData {\n ApiName: string;\n Enabled?: boolean;\n Value: string;\n FormattedValue?: string;\n FieldType: FIELD_TYPE;\n ReadOnly?: boolean;\n ColumnWidth: number;\n ColumnWidthType?: number;\n XAlignment: X_ALIGNMENT_TYPE;\n Title: string;\n AdditionalValue?: string;\n OptionalValues?: any;\n\n constructor(\n options: {\n ApiName?: string;\n Enabled?: boolean;\n Value?: string;\n FormattedValue?: string;\n FieldType?: FIELD_TYPE;\n ReadOnly?: boolean;\n ColumnWidth?: number;\n ColumnWidthType?: number;\n XAlignment?: X_ALIGNMENT_TYPE;\n Title?: string;\n } = {}\n ) {\n this.ApiName = options.ApiName;\n this.Enabled = !!options.Enabled;\n this.Value = options.Value;\n this.FormattedValue = options.FormattedValue || '';\n this.FieldType = options.FieldType;\n this.ReadOnly = !!options.ReadOnly;\n this.ColumnWidth = options.ColumnWidth;\n this.ColumnWidthType = options.ColumnWidthType;\n this.XAlignment = options.XAlignment || X_ALIGNMENT_TYPE.Left;\n this.Title = options.Title || '';\n }\n}\nexport class PepRowData {\n UUID?: string;\n IsEditable?: boolean;\n IsSelected?: boolean;\n IsSelectableForActions?: boolean;\n Fields: PepFieldData[];\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepDataConvertorService {\n getUiControl(formData: PepRowData): UIControl {\n const uiControl = new UIControl();\n\n if (formData?.Fields?.length > 0) {\n const uiRow = formData.Fields;\n uiControl.ControlFields = [];\n uiRow.forEach((field) =>\n uiControl.ControlFields.push(this.setUIControlField(field))\n );\n }\n\n return uiControl;\n }\n\n convertFormData(formData: PepRowData): ObjectsDataRow {\n const rowData = new ObjectsDataRow();\n rowData.Fields = [];\n rowData.Type = 0;\n rowData.UID = PepGuid.newGuid();\n formData.Fields.forEach((field) =>\n rowData.Fields.push(this.setDataField(field))\n );\n\n return rowData;\n }\n\n convertListData(\n tableData: PepRowData[],\n rowUUID = ''\n ): Array<ObjectsDataRow> {\n const rows = new Array<ObjectsDataRow>();\n\n if (tableData.length > 0) {\n tableData.forEach((row) => {\n const rowData = new ObjectsDataRow();\n rowData.Fields = [];\n rowData.Type = 0;\n rowData.UID = rowUUID\n ? rowUUID\n : row.UUID\n ? row.UUID\n : PepGuid.newGuid();\n if (row.IsEditable === false) {\n rowData.IsEditable = false;\n }\n if (row.IsSelectableForActions === false) {\n rowData.IsSelectableForActions = false;\n }\n if (row.IsSelected) {\n rowData.IsSelected = true;\n }\n row.Fields.forEach((field) =>\n rowData.Fields.push(this.setDataField(field))\n );\n rows.push(rowData);\n });\n }\n\n return rows;\n }\n\n setUIControlField(field: PepFieldData): UIControlField {\n const controlField = new UIControlField();\n controlField.ApiName = field.ApiName;\n controlField.FieldType = field.FieldType;\n\n controlField.Layout = new FieldLayout({\n X: 1,\n Width: 1,\n XAlignment: field.XAlignment,\n Y: 1,\n Height: 1,\n YAlignment: 1,\n });\n\n controlField.Title = field.Title;\n controlField.ReadOnly = field.ReadOnly === true ? true : false;\n controlField.ColumnWidth = field.ColumnWidth;\n controlField.ColumnWidthType = field.ColumnWidthType || 1;\n return controlField;\n }\n\n setDataField(field: PepFieldData): ObjectsDataRowCell {\n const dataField = new ObjectsDataRowCell();\n dataField.AdditionalValue = field.AdditionalValue;\n dataField.ApiName = field.ApiName;\n dataField.Enabled = field.Enabled === false ? false : true;\n dataField.FieldType = field.FieldType;\n dataField.FormattedValue =\n field.FormattedValue || field.Value.toString();\n dataField.GroupFields = null;\n dataField.NotificationInfo = '';\n dataField.OptionalValues = field.OptionalValues;\n dataField.ReferenceObjectSubType = '';\n dataField.TextColor = '';\n dataField.Value = field.Value.toString();\n dataField.Visible = true;\n return dataField;\n }\n\n setFieldLayout(\n x: number,\n width: number,\n xAlignment: number,\n y: number,\n height: number,\n yAlignment: number,\n lineNumber: number\n ): FieldLayout {\n const layout = new FieldLayout({\n X: x,\n Width: width,\n XAlignment: xAlignment,\n Y: y,\n Height: height,\n YAlignment: yAlignment,\n LineNumber: lineNumber,\n });\n\n return layout;\n }\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Injectable, Optional } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n AbstractControl,\n ValidatorFn,\n FormControl,\n Validators,\n} from '@angular/forms';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepValidatorService {\n // Regular expressions\n readonly integerUnsigned = '^[0-9]*$';\n readonly integerSigned = '^-?[0-9]+$';\n decimalUnsigned = '^[0-9]+(.[0-9]+)?$';\n decimalSigned = '^-?[0-9]+(.[0-9]+)?$';\n readonly phone = '^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-s./0-9]*$';\n\n decimalSeparator = '.';\n\n constructor(@Optional() private translate: TranslateService = null) {\n const currentLang = this.translate?.currentLang || navigator.language;\n\n // Check for number with thousands separator and if === ',' then the decimal separator is '.' else ','\n const tmp = new Intl.NumberFormat(currentLang, {\n maximumSignificantDigits: 2,\n }).format(1000);\n this.decimalSeparator = tmp.indexOf(',') === 1 ? '.' : ',';\n\n this.decimalUnsigned = `^[0-9]+(${this.decimalSeparator}[0-9]+)?$`;\n this.decimalSigned = `^-?[0-9]+(${this.decimalSeparator}[0-9]+)?$`;\n }\n\n /*\n ValidatorFn functions\n */\n isEqual(target: FormControl | AbstractControl): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } | null => {\n if (control.value) {\n return target.value !== control.value\n ? { equal: { value: true } }\n : null;\n } else {\n return null;\n }\n };\n }\n\n isGreaterThan(target: FormControl | AbstractControl): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } | null => {\n if (control.value && typeof target.value === 'number') {\n return target.value > control.value\n ? { greater: { value: true } }\n : null;\n } else if (control.value && typeof target.value === 'string') {\n const controlValueNumer = coerceNumberProperty(control.value);\n const targetValueNumer = coerceNumberProperty(target.value);\n\n return targetValueNumer > controlValueNumer\n ? { greater: { value: true } }\n : null;\n } else {\n return null;\n }\n };\n }\n\n isLessThan(target: FormControl | AbstractControl): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } | null => {\n if (control.value && typeof target.value === 'number') {\n return target.value < control.value\n ? { less: { value: true } }\n : null;\n } else if (control.value && typeof target.value === 'string') {\n const controlValueNumer = coerceNumberProperty(control.value);\n const targetValueNumer = coerceNumberProperty(target.value);\n\n return targetValueNumer < controlValueNumer\n ? { less: { value: true } }\n : null;\n } else {\n return null;\n }\n };\n }\n\n checkEmails(separator?: string): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } | null => {\n if (control.value) {\n const emails = control.value.split(separator ? separator : ',');\n const ctrl = new FormControl('', [\n Validators.required,\n Validators.email,\n ]);\n const result = emails.every((val: string) => {\n ctrl.setValue(val);\n return ctrl.valid;\n });\n\n return !result ? { emails: { value: true } } : null;\n } else {\n return null;\n }\n };\n }\n\n zipCodeValidator(): ValidatorFn {\n return Validators.pattern(/^(\\d{5}(-\\d{4})?|[A-Z]\\d[A-Z] *\\d[A-Z]\\d)$/);\n }\n\n allowableCharactersValidator(): ValidatorFn {\n return Validators.pattern(\n /^[a-zA-Z0-9`~!@#$%^&*()_+}{|\":?><,./;'\\\\\\]\\[=\\- ]+$/\n );\n }\n\n allowableCharactersWithoutNumberValidator(): ValidatorFn {\n return Validators.pattern(\n /^[a-zA-Z`~!@#$%^&*()_+}{|\":?><,./;'\\\\\\]\\[=\\- ]+$/\n );\n }\n\n allowableCharactersWithoutSpecialValidator(): ValidatorFn {\n return Validators.pattern(/^[a-zA-Z0-9 ]+$/);\n }\n\n dateValidator(): ValidatorFn {\n return Validators.pattern(\n /^(?:(0[1-9]|1[012])[\\/.](0[1-9]|[12][0-9]|3[01])[\\/.](19|20)[0-9]{2})$/\n );\n }\n\n numberValidator(): ValidatorFn {\n return Validators.pattern(/^[0-9]*$/);\n }\n\n /*\n RegExp functions\n */\n validateNumber(value: string, allowDecimal: boolean): string {\n // choose the appropiate regular expression\n let regex: string;\n\n if (allowDecimal) {\n regex = this.decimalSigned;\n } else {\n regex = this.integerSigned;\n }\n\n // when a numbers begins with a decimal separator,\n // fix it adding a zero in the beginning\n const firstCharacter = value.charAt(0);\n if (firstCharacter == this.decimalSeparator) value = 0 + value;\n\n // when a numbers ends with a decimal separator,\n // fix it adding a zero in the end\n const lastCharacter = value.charAt(value.length - 1);\n if (lastCharacter == this.decimalSeparator) value = value + 0;\n\n // test number with regular expression, when\n // number is invalid, replace it with a zero\n // console.log(`regex is ${regex} and value is ${value}`);\n const valid: boolean = new RegExp(regex).test(value);\n\n return valid ? value : null;\n }\n\n validatePhone(value: string): boolean {\n // test phone with regular expression\n const valid: boolean = new RegExp(this.phone).test(value);\n return valid;\n }\n\n private getName(e): string {\n if (e.key) {\n return e.key;\n } else {\n // for old browsers\n if (e.keyCode && String.fromCharCode) {\n switch (e.keyCode) {\n case 8:\n return 'Backspace';\n case 9:\n return 'Tab';\n case 27:\n return 'Escape';\n case 37:\n return 'ArrowLeft';\n case 39:\n return 'ArrowRight';\n case 188:\n return ',';\n case 190:\n return '.';\n case 109:\n return '-'; // minus in numbpad\n case 173:\n return '-'; // minus in alphabet keyboard in firefox\n case 189:\n return '-'; // minus in alphabet keyboard in chrome\n default:\n return String.fromCharCode(e.keyCode);\n }\n }\n }\n }\n\n private allowKeyboardNonNumericCharacters(\n allowedKeys: Array<string>,\n key: string,\n controlOrCommand: boolean\n ): boolean {\n const defaultAllowedKeys = [\n 'Backspace',\n 'ArrowLeft',\n 'ArrowRight',\n 'Escape',\n 'Tab',\n 'Home',\n 'End',\n 'Delete',\n ];\n\n // allow some non-numeric characters\n if (\n defaultAllowedKeys.indexOf(key) != -1 ||\n allowedKeys.indexOf(key) != -1 ||\n // Allow: Ctrl+A and Command+A\n (key == 'a' && controlOrCommand) ||\n // Allow: Ctrl+C and Command+C\n (key == 'c' && controlOrCommand) ||\n // Allow: Ctrl+V and Command+V\n (key == 'v' && controlOrCommand) ||\n // Allow: Ctrl+X and Command+X\n (key == 'x' && controlOrCommand) ||\n key.startsWith('F')\n ) {\n // let it happen, don't do anything\n return true;\n } else {\n return false;\n }\n }\n\n isPhone(e: KeyboardEvent): boolean {\n const key: string = this.getName(e);\n const controlOrCommand = e.ctrlKey === true || e.metaKey === true;\n\n // allowed keys apart from numeric characters\n const allowedKeys = ['.', '-', '+', '(', ')', '*', '#'];\n\n // allow some non-numeric characters\n if (\n this.allowKeyboardNonNumericCharacters(\n allowedKeys,\n key,\n controlOrCommand\n )\n ) {\n return true;\n }\n\n // allow phone characters only\n const isPhone = new RegExp(this.phone).test(key);\n return isPhone;\n }\n\n isNumber(e: KeyboardEvent, allowDecimal: boolean): boolean {\n const cursorPosition: number = e.target['selectionStart'];\n const originalValue: string = e.target['value'];\n const key: string = this.getName(e);\n const controlOrCommand = e.ctrlKey === true || e.metaKey === true;\n const signExists = originalValue.includes('-');\n const separatorExists = originalValue.includes(this.decimalSeparator);\n\n // allowed keys apart from numeric characters\n const allowedKeys = [];\n\n // when decimals are allowed, add\n // decimal separator to allowed codes when\n // its position is not close to the the sign (-. and .-)\n const separatorIsCloseToSign = signExists && cursorPosition <= 1;\n if (allowDecimal && !separatorIsCloseToSign && !separatorExists) {\n if (this.decimalSeparator == '.') allowedKeys.push('.');\n else allowedKeys.push(',');\n }\n\n // when minus sign is allowed, add its\n // key to allowed key only when the\n // cursor is in the first position, and\n // first character is different from\n // decimal separator\n const firstCharacterIsSeparator =\n originalValue.charAt(0) != this.decimalSeparator;\n if (!signExists && firstCharacterIsSeparator && cursorPosition == 0) {\n allowedKeys.push('-');\n }\n\n // allow some non-numeric characters\n if (\n this.allowKeyboardNonNumericCharacters(\n allowedKeys,\n key,\n controlOrCommand\n )\n ) {\n return true;\n }\n\n // allow number characters only\n const isNumber = new RegExp(this.integerUnsigned).test(key);\n return isNumber;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepWindowScrollingService {\n // Inject a STYLE element for overrides the scroll behavior, this way we can add | remove it in order to the behavior.\n private styleTag: HTMLStyleElement;\n\n constructor() {\n this.styleTag = this.buildStyleElement();\n }\n\n // Disable the scrolling feature on the main viewport.\n public disable(): void {\n document.body.appendChild(this.styleTag);\n }\n\n // Re-enable the scrolling feature on the main viewport.\n public enable(): void {\n document.body.removeChild(this.styleTag);\n }\n\n // Return a Style element that will prevent scrolling on the body.\n private buildStyleElement(): HTMLStyleElement {\n const style = document.createElement('style');\n\n style.type = 'text/css';\n style.setAttribute(\n 'data-debug',\n 'Injected by WindowScrolling service.'\n );\n style.textContent = `\n body {\n overflow: hidden !important ;\n }\n `;\n\n return style;\n }\n}\n","/*\n * Public API Surface of ngx-lib/core/common/services\n */\nexport * from './addon.service';\nexport * from './color.service';\nexport * from './cookie.service';\nexport * from './data-convertor.service';\nexport * from './file.service';\nexport * from './jwt-helper.service';\nexport * from './session.service';\nexport * from './translate.service';\nexport * from './utilities.service';\nexport * from './validator.service';\nexport * from './window-scrolling.service';\n","/*\n * export from ngx-lib/core/common/services\n */\nexport * from './public-api';\n","/*\n * Public API Surface of ngx-lib/core/common\n */\nexport * from './directives/index';\nexport * from './model/index';\nexport * from './pipes/index';\nexport * from './services/index';\n","/*\n * export from ngx-lib/core/common\n */\nexport * from './public-api';\n","import { ValidatorFn, Validators } from '@angular/forms';\n\n/** Allowed layout options */\nexport type PepLayoutType = 'form' | 'card' | 'table';\n\n/** Allowed style options */\nexport type PepStyleType = 'weak' | 'weak-invert' | 'regular' | 'strong';\n\n/** Allowed style state options */\nexport type PepStyleStateType = 'system' | 'caution' | 'success';\n\n/** Allowed size options */\nexport type PepSizeType = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/** Allowed horizontal alignment options */\nexport type PepHorizontalAlignment = 'left' | 'center' | 'right';\n/** Default horizontal alignment. */\nexport const DEFAULT_HORIZONTAL_ALIGNMENT: PepHorizontalAlignment = 'left';\n\n/** Allowed vertical alignment options */\nexport type PepVerticalAlignment = 'top' | 'middle' | 'bottom';\n/** Default horizontal alignment. */\nexport const DEFAULT_VERTICAL_ALIGNMENT: PepVerticalAlignment = 'top';\nexport interface IPepOption {\n key: string;\n value: string;\n}\n\n// export type PepFieldBaseType = '' | PepInternalButtonFieldType | PepTextboxFieldType |\n// PepQuantitySelectorFieldType | PepDateFieldType | PepCheckboxFieldType | PepSelectFieldType;\ninterface IPepFieldBaseOptions {\n value?: any;\n formattedValue?: any;\n additionalValue?: string;\n key?: string;\n label?: string;\n accessory?: string;\n mandatory?: boolean;\n readonly?: boolean;\n disabled?: boolean;\n order?: number;\n controlType?: string;\n // type?: PepFieldBaseType;\n placeholder?: string;\n hidden?: boolean;\n row?: number;\n rowSpan?: number;\n col?: number;\n colSpan?: number;\n xAlignment?: PepHorizontalAlignment;\n yAlignment?: PepVerticalAlignment;\n maxFieldCharacters?: number;\n minValue?: number;\n maxValue?: number;\n textColor?: string;\n visible?: boolean; \n emptyOption?: boolean; \n // lastFocusField?: any;\n digitsNumberAfterDecimalPoint?: number;\n}\nexport class PepFieldBase {\n value: any;\n formattedValue: any;\n additionalValue: string;\n key: string;\n label: string;\n accessory: string;\n mandatory: boolean;\n readonly: boolean;\n disabled: boolean;\n order: number;\n // type: string;\n controlType: string;\n placeholder: string;\n hidden: boolean;\n row: number;\n rowSpan: number;\n col: number;\n colSpan: number;\n xAlignment: PepHorizontalAlignment;\n yAlignment: PepVerticalAlignment;\n groupFields: PepFieldBase[];\n maxFieldCharacters: number;\n minValue: number;\n maxValue: number;\n textColor: string;\n visible: boolean; \n // lastFocusField: any;\n\n constructor(options: IPepFieldBaseOptions = {}) {\n this.key = options.key || '';\n this.label = options.label || '';\n this.accessory = options.accessory || '';\n this.mandatory = !!options.mandatory;\n\n this.order = options.order ?? 1;\n this.controlType = options.controlType || '';\n // this.type = options.type || '';\n this.placeholder = options.placeholder || '';\n this.hidden = !!options.hidden;\n\n this.row = options.row ?? 1;\n this.rowSpan = options.rowSpan ?? 1;\n this.col = options.col ?? 1;\n this.colSpan = options.colSpan ?? 1;\n\n this.xAlignment = options.xAlignment ?? DEFAULT_HORIZONTAL_ALIGNMENT;\n this.yAlignment = options.yAlignment ?? DEFAULT_VERTICAL_ALIGNMENT;\n\n this.maxFieldCharacters = options.maxFieldCharacters ?? 0;\n this.minValue = options.minValue ?? 0;\n this.maxValue = options.maxValue ?? 0;\n\n this.update(options);\n }\n\n protected getBaseValidators(isCheckbox = false): ValidatorFn[] {\n const validators = [];\n\n if (this.mandatory && !this.readonly && !this.disabled) {\n if (isCheckbox) {\n validators.push(Validators.requiredTrue);\n } else {\n validators.push(Validators.required);\n }\n } else {\n validators.push(Validators.nullValidator);\n }\n\n if (this.maxFieldCharacters > 0) {\n validators.push(Validators.maxLength(this.maxFieldCharacters));\n } \n\n return validators;\n }\n\n public getValidators(): ValidatorFn[] {\n const validators = this.getBaseValidators();\n return validators;\n }\n\n public update(options: IPepFieldBaseOptions): void {\n this.value = options.value;\n this.formattedValue = options.formattedValue;\n this.additionalValue = options.additionalValue;\n\n this.readonly = !!options.readonly;\n this.disabled = !!options.disabled;\n this.visible = !!options.visible;\n this.textColor = options.textColor || '';\n // this.lastFocusField = options.lastFocusField || null;\n }\n}\n\nexport class PepPlaceholderField extends PepFieldBase {\n controlType = 'placeholder';\n\n constructor(options: IPepFieldBaseOptions = {}) {\n super(options);\n }\n}\n\nexport class PepSeparatorField extends PepFieldBase {\n controlType = 'separator';\n \n constructor(options: IPepFieldBaseOptions = {}) {\n super(options); \n }\n}\n\nexport class PepAttachmentField extends PepFieldBase {\n controlType = 'attachment';\n\n constructor(options: IPepFieldBaseOptions = {}) {\n super(options);\n }\n}\n\nexport class PepIndicatorsField extends PepFieldBase {\n controlType = 'indicators';\n\n constructor(options: IPepFieldBaseOptions = {}) {\n super(options);\n }\n}\n\nexport type PepTextboxFieldType =\n | 'text'\n | 'link'\n | 'email'\n | 'phone'\n | 'duration'\n | 'int'\n | 'percentage'\n | 'currency'\n | 'real';\ninterface IPepTextboxFieldOptions extends IPepFieldBaseOptions {\n type?: PepTextboxFieldType;\n regex?: string | RegExp;\n // regexError?: string;\n}\nexport class PepTextboxField extends PepFieldBase {\n controlType = 'textbox';\n type: PepTextboxFieldType = 'text';\n regex?: string | RegExp;\n // regexError?: string;\n digitsNumberAfterDecimalPoint = NaN;\n\n constructor(options: IPepTextboxFieldOptions = {}) {\n super(options);\n\n this.type = options.type || 'text';\n this.regex = options.regex ?? null;\n // this.regexError = options.regexError ?? null;\n\n this.update(options);\n }\n\n public update(options: IPepTextboxFieldOptions): void {\n super.update(options);\n\n this.digitsNumberAfterDecimalPoint = options.digitsNumberAfterDecimalPoint ?? NaN;\n\n if (this.type === 'link') {\n // DI-11292 - add changes for link field for the \"Read Only display value\" prop\n this.formattedValue =\n this.disabled && this.formattedValue && this.value\n ? this.formattedValue\n : this.value;\n }\n }\n\n public getValidators(): ValidatorFn[] {\n const validators = super.getBaseValidators();\n\n if (this.type === 'email') {\n validators.push(\n Validators.pattern(\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n )\n );\n // validators.push(Validators.email);\n } else if (this.type === 'phone') {\n validators.push(Validators.pattern(/^[\\d\\.\\-\\+\\(\\)\\*\\#]+$/));\n } else if (this.type === 'int' || this.type === 'real') {\n validators.push(Validators.pattern(/^[\\.,\\-\\+\\d]+$/));\n\n if (!isNaN(this.minValue)) {\n validators.push(Validators.min(this.minValue));\n }\n\n if (!isNaN(this.maxValue)) {\n validators.push(Validators.max(this.maxValue));\n }\n }\n\n if (this.type === 'text' && this.regex) {\n validators.push(Validators.pattern(this.regex));\n }\n\n return validators;\n }\n}\n\nexport class PepLinkField extends PepFieldBase {\n controlType = 'link';\n type: PepTextboxFieldType = 'link';\n\n constructor(options: IPepFieldBaseOptions = {}) {\n super(options);\n\n this.update(options);\n }\n\n public update(options: IPepTextboxFieldOptions): void {\n super.update(options);\n \n // DI-23167 - Comment this.\n // // DI-11292 - add changes for link field for the \"Read Only display value\" prop\n // this.formattedValue =\n // this.disabled && this.formattedValue && this.value\n // ? this.formattedValue\n // : this.value;\n\n }\n}\n\nexport class PepTextareaField extends PepFieldBase {\n controlType = 'textarea';\n\n constructor(options: IPepFieldBaseOptions = {}) {\n super(options);\n // this.type = 'textarea';\n }\n}\n\ninterface IPepSignatureFieldOptions extends IPepFieldBaseOptions {\n renderTitle?: boolean;\n renderEnlargeButton?: boolean;\n}\nexport class PepRichHtmlTextareaField extends PepFieldBase {\n controlType = 'richhtmltextarea'; \n renderTitle: boolean;\n renderEnlargeButton: boolean;\n\n constructor(options: IPepSignatureFieldOptions = {}) {\n super(options);\n\n this.renderTitle = options.renderTitle !== undefined ? options.renderTitle : true;\n this.renderEnlargeButton = options.renderEnlargeButton !== undefined ? options.renderEnlargeButton : true;\n }\n}\n\ninterface IPepSignatureFieldOptions extends IPepFieldBaseOptions {\n options?: IPepOption[];\n}\nexport class PepSignatureField extends PepFieldBase {\n controlType = 'signature';\n options: IPepOption[] = [];\n\n constructor(options: IPepSignatureFieldOptions = {}) {\n super(options);\n this.options = options.options || [];\n }\n}\n\ninterface IPepImageFieldOptions extends IPepFieldBaseOptions {\n hasCampaignField?: any;\n indicatorsField?: any;\n menuField?: any;\n options?: IPepOption[];\n sizeLimitMB?: number;\n}\nexport class PepImageField extends PepFieldBase {\n controlType = 'image';\n hasCampaignField = null;\n indicatorsField = null;\n menuField = null;\n options: IPepOption[] = [];\n sizeLimitMB = 5;\n\n constructor(options: IPepImageFieldOptions = {}) {\n super(options);\n this.hasCampaignField = options.hasCampaignField || null;\n this.indicatorsField = options.indicatorsField || null;\n this.menuField = options.menuField || null;\n this.options = options.options || [];\n this.sizeLimitMB = options.sizeLimitMB || 5;\n }\n}\n\ninterface IPepImagesFieldOptions extends IPepFieldBaseOptions {\n options?: IPepOption[];\n}\nexport class PepImagesField extends PepFieldBase {\n controlType = 'images';\n options: IPepOption[] = [];\n\n constructor(options: IPepImagesFieldOptions = {}) {\n super(options);\n this.options = options.options || [];\n }\n}\n\nexport type PepQuantitySelectorFieldType =\n | 'button'\n | 'packageButton'\n | 'qs'\n | 'qsForMatrix';\ninterface IPepQuantitySelectorFieldOptions extends IPepFieldBaseOptions {\n allowDecimal?: boolean;\n notificationInfo?: any;\n type?: PepQuantitySelectorFieldType;\n}\nexport class PepQuantitySelectorField extends PepFieldBase {\n controlType = 'qs';\n allowDecimal: boolean;\n notificationInfo: any = {};\n updatedDataCount: number;\n type: PepQuantitySelectorFieldType;\n digitsNumberAfterDecimalPoint = NaN;\n\n constructor(options: IPepQuantitySelectorFieldOptions = {}) {\n super(options);\n\n this.updatedDataCount = 0;\n this.type = options.type || 'qs';\n\n this.update(options);\n }\n\n public update(options: IPepQuantitySelectorFieldOptions): void {\n super.update(options);\n \n this.digitsNumberAfterDecimalPoint = options.digitsNumberAfterDecimalPoint ?? NaN;\n\n this.allowDecimal = options.allowDecimal || false;\n this.notificationInfo = options.notificationInfo;\n this.updatedDataCount += 1;\n }\n}\n\nexport type PepDateFieldType = 'datetime' | 'date';\ninterface IPepDateFieldOptions extends IPepFieldBaseOptions {\n type?: PepDateFieldType;\n}\nexport class PepDateField extends PepFieldBase {\n controlType = 'date';\n type: PepDateFieldType;\n\n constructor(options: IPepDateFieldOptions = {}) {\n super(options);\n\n this.type = options.type || 'date';\n }\n}\n\nexport type PepCheckboxFieldType = 'checkbox' | 'booleanText';\ninterface IPepCheckboxFieldOptions extends IPepFieldBaseOptions {\n type?: PepCheckboxFieldType;\n}\nexport class PepCheckboxField extends PepFieldBase {\n controlType = 'checkbox';\n type: PepCheckboxFieldType;\n\n constructor(options: IPepCheckboxFieldOptions = {}) {\n super(options);\n\n this.type = options.type || 'checkbox';\n }\n\n public getValidators(): ValidatorFn[] {\n const validators = super.getBaseValidators(true);\n return validators;\n }\n}\n\nexport type PepSelectFieldType = 'select' | 'multi';\ninterface IPepSelectFieldOptions extends IPepFieldBaseOptions {\n options?: IPepOption[];\n type?: PepSelectFieldType;\n}\nexport class PepSelectField extends PepFieldBase {\n controlType = 'select';\n options: IPepOption[] = []; \n type: PepSelectFieldType; \n emptyOption: boolean;\n\n constructor(options: IPepSelectFieldOptions = {}) {\n super(options);\n this.type = options.type || 'select';\n this.emptyOption = options.emptyOption;\n\n this.update(options);\n }\n\n public update(options: IPepSelectFieldOptions): void {\n super.update(options);\n\n this.options = options.options || [];\n }\n}\n\ninterface IPepAddressFieldOptions extends IPepFieldBaseOptions {\n groupFields?: PepFieldBase[];\n}\nexport class PepAddressField extends PepFieldBase {\n controlType = 'address';\n groupFields: PepFieldBase[] = null;\n\n constructor(options: IPepAddressFieldOptions = {}) {\n super(options);\n this.groupFields = options.groupFields || null;\n }\n}\n\nexport type PepInternalButtonFieldType =\n | 'button'\n | 'reference'\n | 'listofobjects';\ninterface IPepInternalButtonFieldOptions extends IPepFieldBaseOptions {\n referenceObjectType?: any;\n referenceObjectSubType?: string;\n referenceObjectInternalType?: string;\n type?: PepInternalButtonFieldType;\n}\nexport class PepInternalButtonField extends PepFieldBase {\n controlType = 'button';\n referenceObjectType;\n referenceObjectSubType = '';\n referenceObjectInternalType = '';\n type: PepInternalButtonFieldType;\n\n constructor(options: IPepInternalButtonFieldOptions = {}) {\n super(options);\n\n this.referenceObjectType = options.referenceObjectType || null;\n this.referenceObjectSubType = options.referenceObjectSubType || null;\n this.referenceObjectInternalType =\n options.referenceObjectInternalType || null;\n\n this.type = options.type || 'button';\n }\n}\n\ninterface IPepInternalPageFieldOptions extends IPepFieldBaseOptions {\n objectId?: string;\n parentId?: string;\n searchCode?: string;\n}\nexport class PepInternalPageField extends PepFieldBase {\n controlType = 'internalPage';\n objectId = '';\n parentId = '';\n searchCode = '';\n\n constructor(options: IPepInternalPageFieldOptions = {}) {\n super(options);\n this.objectId = options.objectId || '';\n this.parentId = options.parentId || '';\n this.searchCode = options.searchCode || '';\n }\n}\n\n\ninterface IPepInternalCaruselFieldOptions extends IPepFieldBaseOptions {\n searchCode?: string;\n pageInfo?: any;\n}\nexport class PepInternalCaruselField extends PepFieldBase {\n controlType = 'internalCarusel';\n searchCode = '';\n pageInfo;\n\n constructor(options: IPepInternalCaruselFieldOptions = {}) {\n super(options);\n this.searchCode = options.searchCode || '';\n\n this.update(options);\n }\n\n public update(options: IPepInternalCaruselFieldOptions): void {\n super.update(options);\n\n this.pageInfo = options.pageInfo;\n }\n}\n\n\ninterface IPepInternalMenuFieldOptions extends IPepFieldBaseOptions {\n options?: IPepOption[];\n}\nexport class PepInternalMenuField extends PepFieldBase {\n controlType = 'menu';\n options: IPepOption[] = [];\n // hasSubMenu: boolean = false;\n\n constructor(options: IPepInternalMenuFieldOptions = {}) {\n super(options);\n this.options = options.options || [];\n // this.hasSubMenu = options['hasSubMenu'];\n }\n}\n\nexport interface IPepFieldValueChangeEvent {\n key: string;\n value: string;\n controlType?: string;\n}\n\nexport interface IPepFieldClickEvent {\n key: string;\n value?: string;\n controlType?: string;\n eventWhich?: any;\n otherData?: any;\n}\n","/*\n * Public API Surface of ngx-lib/core/customizatin\n */\nexport * from './customization.model';\nexport * from './customization.service';\n","/*\n * export from ngx-lib/core/customization\n */\nexport * from './public-api';\n","/*\n * Public API Surface of ngx-lib/core/http\n */\nexport * from './services/http.service';\nexport * from './services/loader.service';\n","/*\n * export from ngx-lib/core/http\n */\nexport * from './public-api';\n","/*\n * Public API Surface of ngx-lib/core/layout\n */\nexport * from './layout.service';\nexport * from './rtl.directive';\n","/*\n * export from ngx-lib/core/layout\n */\nexport * from './public-api';\n","/*\n * Public API Surface of ngx-lib/core/portal\n */\nexport * from './attach.directive';\nexport * from './target.directive';\nexport * from './portal.service';\n","/*\n * export from ngx-lib/core/portal\n */\nexport * from './public-api';\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepScrollToService {\n public scrollElementTo(\n element: Element | Window,\n duration = 500,\n top = 0\n ): Observable<any> {\n const subject: Subject<any> = new Subject<any>();\n if (element instanceof Element || element instanceof Window) {\n this._scrollElementTo(element, duration, top, subject);\n } else {\n subject.error(\"I don't find element\");\n }\n\n return subject;\n }\n\n private _scrollElementTo(\n el: Element | Window,\n duration: number,\n top: number,\n subject: Subject<any>\n ): Observable<any> {\n if (el) {\n let startingY: number;\n if (el instanceof Window) {\n startingY = window.pageYOffset;\n } else {\n const viewportOffset = (el as Element).getBoundingClientRect();\n startingY = viewportOffset.top;\n }\n this.doScrolling(el, startingY, top, duration, subject);\n } else {\n subject.error(\"I don't find element\");\n }\n\n return subject;\n }\n\n public scrollWindowToElement(\n element: string | HTMLElement,\n duration = 500,\n offset = 0\n ): Observable<any> {\n const subject: Subject<any> = new Subject<any>();\n if (typeof element === 'string') {\n const el = document.querySelector(element as string);\n this._scrollWindowToElement(\n el as HTMLElement,\n duration,\n offset,\n subject\n );\n } else if (element instanceof HTMLElement) {\n this._scrollWindowToElement(element, duration, offset, subject);\n } else {\n subject.error(\"I don't find element\");\n }\n\n return subject;\n }\n\n private _scrollWindowToElement(\n el: HTMLElement,\n duration: number,\n offset: number,\n subject: Subject<any>\n ): Observable<any> {\n if (el) {\n const viewportOffset = el.getBoundingClientRect();\n const startingY = window.pageYOffset;\n const offsetTop = viewportOffset.top + startingY;\n this.doScrolling(\n window,\n startingY,\n offsetTop + offset,\n duration,\n subject\n );\n } else {\n subject.error(\"I don't find element\");\n }\n\n return subject;\n }\n\n private doScrolling(\n scrollingElement: Element | Window,\n startingY: number,\n elementY: number,\n duration: number,\n subject: Subject<any>\n ): void {\n const diff = elementY - startingY;\n let start;\n\n requestAnimationFrame(function step(timestamp) {\n start = !start ? timestamp : start;\n\n const time = timestamp - start;\n const percent = Math.min(time / duration, 1);\n\n scrollingElement.scrollTo(0, startingY + diff * percent);\n\n if (time < duration) {\n requestAnimationFrame(step);\n subject.next({});\n } else {\n subject.complete();\n }\n });\n }\n}\n","/*\n * Public API Surface of ngx-lib/core/scroll-to\n */\n// export * from './scroll-to.directive';\nexport * from './scroll-to.service';\n","/*\n * export from ngx-lib/core/scroll-to\n */\nexport * from './public-api';\n","/*\n * Public API Surface of ngx-lib/core\n */\nexport * from './clipboard/index';\nexport * from './common/index';\nexport * from './customization/index';\nexport * from './http/index';\nexport * from './layout/index';\nexport * from './portal/index';\nexport * from './scroll-to/index';\n","/*\n * export from ngx-lib/core\n */\nexport * from './public-api';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule, HttpClient } from '@angular/common/http';\nimport { FormBuilder, ReactiveFormsModule } from '@angular/forms';\n\nimport { httpInterceptorProviders } from './core/http/interceptors/index';\n\nimport { PepClipboardDirective } from './core/clipboard/clipboard.directive';\nconst clipboardList = [PepClipboardDirective];\n\nimport {\n PepRtlClassDirective,\n PepRtlDirectionDirective,\n} from './core/layout/rtl.directive';\nconst layoutList = [PepRtlClassDirective, PepRtlDirectionDirective];\n\nimport {\n PepCapitalizePipe,\n PepEncodePipe,\n PepEscapePipe,\n PepReplaceLineBreaksPipe,\n PepDateFormatterPipe,\n PepDateStringFormatterPipe,\n PepSafeHtmlPipe,\n PepSafePipe,\n PepSplitUppercasePipe,\n PepToNumberPipe,\n} from './core/common/pipes/common-pipes';\n\nimport { DateAgoPipe } from './core/common/pipes/date-ago.pipe';\n\nconst pipeList = [\n PepCapitalizePipe,\n PepEncodePipe,\n PepEscapePipe,\n PepReplaceLineBreaksPipe,\n PepDateFormatterPipe,\n PepDateStringFormatterPipe,\n PepSafeHtmlPipe,\n PepSafePipe,\n PepSplitUppercasePipe,\n PepToNumberPipe,\n DateAgoPipe\n];\n\nimport { PepInputAutoWidthDirective } from './core/common/directives/auto-width.directive';\nimport { PepButtonBlurDirective } from './core/common/directives/button-blur.directive';\nimport { PepButtonLoaderDirective } from './core/common/directives/button-loader.directive';\nimport { PepMenuBlurDirective } from './core/common/directives/menu-blur.directive';\nimport { PepDataQaDirective } from './core/common/directives/data-qa.directive';\n// import { PreventDoubleClickDirective } from './core/common/directives/debounce-click.directive';\nimport { PepPreventMultiClickDirective } from './core/common/directives/prevent-multi-click.directive';\nimport { PepPrintDirective } from './core/common/directives/print.directive';\nimport { PepDivLoaderDirective } from './core/common/directives/div-loader.directive';\n\nconst utilitiesList = [\n PepInputAutoWidthDirective,\n PepButtonBlurDirective,\n PepButtonLoaderDirective,\n PepMenuBlurDirective,\n PepDataQaDirective,\n // PreventDoubleClickDirective,\n PepPreventMultiClickDirective,\n PepPrintDirective,\n PepDivLoaderDirective,\n];\n\nimport { PepAttachDirective } from './core/portal/attach.directive';\nimport { PepTargetDirective } from './core/portal/target.directive';\n\nconst portalList = [PepAttachDirective, PepTargetDirective];\n\nimport { TranslateModule, TranslateService, TranslateStore } from '@ngx-translate/core';\nimport { \n PepAddonService,\n PepColorService,\n PepCookieService,\n PepDataConvertorService,\n PepFileService,\n PepJwtHelperService,\n PepSessionService,\n PepTranslateService,\n PepUtilitiesService,\n PepValidatorService,\n PepWindowScrollingService,\n PepCustomizationService,\n PepHttpService,\n PepLoaderService,\n PepLayoutService,\n PepPortalService,\n PepScrollToService,\n} from './core/index';\n\n@NgModule({\n declarations: [\n pipeList,\n utilitiesList,\n clipboardList,\n layoutList,\n portalList,\n ],\n imports: [\n CommonModule,\n HttpClientModule,\n ReactiveFormsModule,\n ],\n exports: [\n pipeList,\n utilitiesList,\n clipboardList,\n layoutList,\n portalList,\n TranslateModule,\n ],\n providers: [\n httpInterceptorProviders,\n PepAddonService,\n PepColorService,\n PepCookieService,\n PepDataConvertorService,\n PepFileService,\n PepJwtHelperService,\n PepSessionService,\n PepTranslateService,\n PepUtilitiesService,\n PepValidatorService,\n PepWindowScrollingService,\n PepCustomizationService,\n PepHttpService,\n PepLoaderService,\n PepLayoutService,\n PepPortalService,\n PepScrollToService,\n FormBuilder\n ]\n})\nexport class PepNgxLibModule {\n // static forRoot(): ModuleWithProviders<PepNgxLibModule> {\n // return {\n // ngModule: PepNgxLibModule,\n // providers: [PepCustomizationService]\n // };\n // }\n // static forRoot() {\n // return {\n // ngModule: PepNgxLibModule,\n // providers: [ PepCustomizationService ]\n // }\n // }\n}\n","/*\n * Public API Surface of ngx-lib\n */\nexport * from './ngx-lib.module';\nexport * from './core/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PepLayoutService","i1","i1.PepJwtHelperService","i1.PepSessionService","i2.PepFileService","i1.PepPortalService","i2.PepCookieService","i3","i2.PepHttpService","i3.PepLoaderService","i4.PepTranslateService","i5.PepFileService"],"mappings":";;;;;;;;;;;;;;;;;;;AAUA;MAGa,mBAAmB,CAAA;;IAG5B,SAAS,CACL,GAAqB,EACrB,IAAiB,EAAA;;AAIjB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI;;AAExB,QAAA,UAAU,CAAC,CAAC,KAAwB,KAAI;;AAEpC,YAAA,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE;;;AAGzB,aAAA;AACD,YAAA,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;SAC5B,CAAC,CACL,CAAC;KACL;;gHApBQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;oHAAnB,mBAAmB,EAAA,CAAA,CAAA;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;;;MCLE,gBAAgB,CAAA;AAYzB,IAAA,WAAA,GAAA;QAXA,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;AACJ,QAAA,IAAA,CAAA,iBAAiB,GAA6B,IAAI,eAAe,CAAU,SAAS,CAAC,CAAC;;QAY1F,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AAC/B,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACjC,SAAC,CAAC,CAAC;KACN;AAbD,IAAA,IAAI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,iBAAiB;AACxB,aAAA,YAAY,EAAE;AACd,aAAA,IAAI,CACD,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC,EAC5B,oBAAoB,EAAE,CAAC,CAAC;KACnC;AASO,IAAA,iBAAiB,CAAC,IAAa,EAAA;AACnC,QAAA,MAAM,SAAS,GAAG;AACd,YAAA,MAAM,EAAE;AACJ,gBAAA,UAAU,EAAE,IAAI;AACnB,aAAA;SACJ,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;AACzD,QAAA,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KAC/B;IAED,IAAI,GAAA;QACA,IAAI,CAAC,OAAO,EAAE,CAAC;AACf,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACrC;IAED,IAAI,GAAA;QACA,IAAI,CAAC,OAAO,EAAE,CAAC;AAEf,QAAA,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;AAClB,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;AACpB,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;AACpB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,SAAA;KACJ;;6GA7CQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA;2FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCOY,oBAAoB,CAAA;AAC7B,IAAA,WAAA,CAAoB,QAAkB,EAAA;QAAlB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;KAAK;IAE3C,SAAS,CACL,GAAqB,EACrB,IAAiB,EAAA;;QAGjB,MAAM,MAAM,GAAG,CAAC,CAAC;QACjB,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;;QAE1D,aAAa,CAAC,IAAI,EAAE,CAAC;AAErB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI;;QAExB,UAAU,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC,EACpC,QAAQ,CAAC,MAAO,aAAa,CAAC,IAAI,EAAE,CAAC,CACxC,CAAC;;;;;;;KASL;;iHA1BQ,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;qHAApB,oBAAoB,EAAA,CAAA,CAAA;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,UAAU;;;MCAE,sBAAsB,CAAA;IAC/B,SAAS,CACL,GAAqB,EACrB,IAAiB,EAAA;;AAIjB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC3B,QAAA,IAAI,EAAU,CAAC;QAEf,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CACxB,GAAG;;QAEC,CAAC,KAAqB,KAAI;YACtB,IAAI,KAAK,YAAY,YAAY,EAAE;gBAC/B,EAAE,GAAG,WAAW,CAAC;AACpB,aAAA;SACJ;;QAED,CAAC,KAAK,MAAM,EAAE,GAAG,QAAQ,CAAC,CAC7B;;QAED,QAAQ,CAAC,MAAK;YACV,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;AACrC,YAAA,MAAM,GAAG,GAAG,CAAG,EAAA,GAAG,CAAC,MAAM,CAAA,EAAA,EAAK,GAAG,CAAC,aAAa,CAAK,EAAA,EAAA,EAAE,CAAO,IAAA,EAAA,OAAO,MAAM,CAAC;AAC3E,YAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;SACpB,CAAC,CACL,CAAC;KACL;;mHA5BQ,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;uHAAtB,sBAAsB,EAAA,CAAA,CAAA;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;;;ACAJ,MAAM,wBAAwB,GAAG;;;;IAIpC,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE;;;IAG1E,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE;AAC3E,IAAA;AACI,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,QAAQ,EAAE,sBAAsB;AAChC,QAAA,KAAK,EAAE,IAAI;AACd,KAAA;CACJ;;ACxBD;AAIA;AACA;AAEA;AACA;AACA;MASa,qBAAqB,CAAA;;kHAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAArB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,CAAA,WAAA,EAAA,OAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBARjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;oBAC1B,MAAM,EAAE,CAAC,kBAAkB,CAAC;AAC5B,oBAAA,OAAO,EAAE,CAAC,0BAA0B,EAAE,4BAA4B,CAAC;AACnE,oBAAA,IAAI,EAAE;AACF,wBAAA,SAAS,EAAE,mBAAmB;AACjC,qBAAA;AACJ,iBAAA,CAAA;;;ACZD;AACA;AACA;AACA,MAAM,eAAe,GAAG;AACpB,IAAA,IAAI;AACJ,IAAA,IAAI;AACJ,IAAA,KAAK;AACL,IAAA,KAAK;AACL,IAAA,KAAK;AACL,IAAA,KAAK;AACL,IAAA,IAAI;AACJ,IAAA,IAAI;AACJ,IAAA,KAAK;AACL,IAAA,IAAI;AACJ,IAAA,IAAI;AACJ,IAAA,KAAK;AACL,IAAA,KAAK;AACL,IAAA,KAAK;AACL,IAAA,IAAI;AACJ,IAAA,IAAI;AACJ,IAAA,IAAI;AACJ,IAAA,IAAI;AACJ,IAAA,IAAI;CACP,CAAC;IAIU,kBAMX;AAND,CAAA,UAAY,iBAAiB,EAAA;AACzB,IAAA,iBAAA,CAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE,CAAA;AACF,IAAA,iBAAA,CAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE,CAAA;AACF,IAAA,iBAAA,CAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE,CAAA;AACF,IAAA,iBAAA,CAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE,CAAA;AACF,IAAA,iBAAA,CAAA,iBAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAE,CAAA;AACN,CAAC,EANW,iBAAiB,KAAjB,iBAAiB,GAM5B,EAAA,CAAA,CAAA,CAAA;AACD;MAKa,gBAAgB,CAAA;AAczB,IAAA,WAAA,CAAgC,YAA8B,IAAI,EAAA;QAAlC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAyB;AAY1D,QAAA,IAAA,CAAA,yBAAyB,GAAG,CAAC,KAAiB,KAAI;AACtD,YAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACtC,YAAA,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC;YACtC,QAAQ,CAAC,mBAAmB,CACxB,WAAW,EACX,IAAI,CAAC,yBAAyB,EAC9B,KAAK,CACR,CAAC;AACN,SAAC,CAAC;QAnBE,IAAI,CAAC,aAAa,GAAG,IAAI,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;QAE/D,IAAI,CAAC,qBAAqB,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QACxD,QAAQ,CAAC,gBAAgB,CACrB,WAAW,EACX,IAAI,CAAC,yBAAyB,EAC9B,KAAK,CACR,CAAC;;KAEL;AApBD,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;KACzE;AAED,IAAA,IAAI,YAAY,GAAA;QACZ,OAAO,IAAI,CAAC,qBAAqB;AAC5B,aAAA,YAAY,EAAE;AACd,aAAA,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;KACrC;;;;;;AA8BD;;;AAGG;AACH,IAAA,QAAQ,CAAC,IAAuB,EAAA;AAC5B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACjC;IAED,iBAAiB,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAC;KAChD;IAED,aAAa,GAAA;AACT,QAAA,IAAI,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE;AACxC,YAAA,OAAO,UAAU,CAAC;AACrB,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,WAAW,CAAC;AACtB,SAAA;KACJ;IAED,cAAc,GAAA;QACV,IAAI,MAAM,GAAG,KAAK,CAAC;AACnB,QAAA,QAAQ,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;AACjC,YAAA,KAAK,iBAAiB,CAAC,EAAE,EAAE;AACvB,gBAAA,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,WAAW,GAAG,KAAK,GAAG,IAAI,CAAC;gBAC7D,MAAM;AACT,aAAA;YACD,KAAK,iBAAiB,CAAC,EAAE,CAAC;AAC1B,YAAA,KAAK,iBAAiB,CAAC,EAAE,EAAE;AACvB,gBAAA,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,WAAW,GAAG,KAAK,GAAG,KAAK,CAAC;gBAC9D,MAAM;AACT,aAAA;YACD,KAAK,iBAAiB,CAAC,EAAE,CAAC;AAC1B,YAAA,KAAK,iBAAiB,CAAC,EAAE,EAAE;AACvB,gBAAA,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,WAAW,GAAG,KAAK,GAAG,KAAK,CAAC;gBAC9D,MAAM;AACT,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACjB;IAED,eAAe,GAAA;QACX,IAAI,MAAM,GAAG,KAAK,CAAC;AACnB,QAAA,QAAQ,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;AACjC,YAAA,KAAK,iBAAiB,CAAC,EAAE,EAAE;AACvB,gBAAA,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,WAAW,GAAG,IAAI,GAAG,KAAK,CAAC;gBAC7D,MAAM;AACT,aAAA;YACD,KAAK,iBAAiB,CAAC,EAAE,CAAC;AAC1B,YAAA,KAAK,iBAAiB,CAAC,EAAE,EAAE;AACvB,gBAAA,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,WAAW,GAAG,KAAK,GAAG,KAAK,CAAC;gBAC9D,MAAM;AACT,aAAA;YACD,KAAK,iBAAiB,CAAC,EAAE,CAAC;AAC1B,YAAA,KAAK,iBAAiB,CAAC,EAAE,EAAE;AACvB,gBAAA,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,WAAW,GAAG,KAAK,GAAG,KAAK,CAAC;gBAC9D,MAAM;AACT,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACjB;IAED,iBAAiB,GAAA;QACb,QACI,MAAM,CAAC,WAAW;YAClB,QAAQ,CAAC,eAAe,CAAC,YAAY;AACrC,YAAA,QAAQ,CAAC,IAAI,CAAC,YAAY,EAC5B;KACL;IAED,gBAAgB,GAAA;QACZ,QACI,MAAM,CAAC,UAAU;YACjB,QAAQ,CAAC,eAAe,CAAC,WAAW;AACpC,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,EAC3B;KACL;IAED,iBAAiB,GAAA;;QAEb,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC5C,QAAA,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC;QAClC,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;;AAEhC,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;;QAGjC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC5C,QAAA,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;;QAGzB,MAAM,cAAc,IAAI,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;;AAG/D,QAAA,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAEpC,QAAA,OAAO,cAAc,CAAC;KACzB;IAED,kBAAkB,GAAA;QACd,OAAO,IAAI,CAAC,SAAS,EAAE,qBAAqB,EAAE,IAAI,SAAS,CAAC,QAAQ,CAAC;KACxE;IAED,KAAK,GAAA;AACD,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAErD,QAAA,OAAO,KAAK,CAAC;KAChB;;6GAtJQ,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA;2FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;0BAegB,QAAQ;;;MCpDZ,oBAAoB,CAAA;AAC7B,IAAA,WAAA,CACY,aAA+B,EAC/B,QAAmB,EACnB,OAAmB,EAAA;QAFnB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QAC/B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;KAC3B;IAEJ,QAAQ,GAAA;QACJ,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAEzC,QAAA,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AAC7D,SAAA;KACJ;;iHAbQ,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;qGAApB,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AAC5B,iBAAA,CAAA;;MAoBY,wBAAwB,CAAA;AACjC,IAAA,WAAA,CACY,aAA+B,EAC/B,QAAmB,EACnB,OAAmB,EAAA;QAFnB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QAC/B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;KAC3B;IAEJ,QAAQ,GAAA;QACJ,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAEzC,IAAI,CAAC,QAAQ,CAAC,YAAY,CACtB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,KAAK,EACL,KAAK,GAAG,KAAK,GAAG,KAAK,CACxB,CAAC;KACL;;qHAfQ,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;yGAAxB,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAChC,iBAAA,CAAA;;;MCbY,iBAAiB,CAAA;AAC1B,IAAA,SAAS,CAAC,KAAU,EAAA;AAChB,QAAA,IAAI,KAAK,EAAE;AACP,YAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACzD,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;;8GANQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAjB,iBAAiB,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,CAAA;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,IAAI;mBAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAA;;MAWlB,aAAa,CAAA;AACtB,IAAA,SAAS,CAAC,KAAU,EAAA;AAChB,QAAA,IAAI,KAAK,EAAE;AACP,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACtB,YAAA,OAAO,CAAC,CAAC;AACZ,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;;0GAPQ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;wGAAb,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,IAAI;mBAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;;MAcd,aAAa,CAAA;AACtB,IAAA,SAAS,CAAC,KAAU,EAAA;AAChB,QAAA,IAAI,KAAK,EAAE;AACP,YAAA,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACxB,YAAA,OAAO,CAAC,CAAC;AACZ,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;;0GAPQ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;wGAAb,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,IAAI;mBAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;;MAYd,wBAAwB,CAAA;AACjC,IAAA,SAAS,CAAC,KAAa,EAAA;QACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;AACrD,QAAA,OAAO,QAAQ,CAAC;KACnB;;qHAJQ,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;mHAAxB,wBAAwB,EAAA,IAAA,EAAA,sBAAA,EAAA,CAAA,CAAA;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBADpC,IAAI;mBAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAA;;MASzB,oBAAoB,CAAA;AAC7B,IAAA,SAAS,CAAC,KAAW,EAAE,OAAY,EAAE,QAAQ,GAAG,KAAK,EAAA;QACjD,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,QAAA,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AACxB,QAAA,IAAI,KAAK,EAAE;YACP,GAAG,GAAG,KAAK,CAAC,kBAAkB,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC;AACnD,YAAA,IAAI,QAAQ,EAAE;gBACV,GAAG;oBACC,GAAG;AACH,wBAAA,KAAK,CAAC,kBAAkB,CAAC,OAAO,IAAI,OAAO,EAAE;AACzC,4BAAA,IAAI,EAAE,SAAS;AACf,4BAAA,MAAM,EAAE,SAAS;AACpB,yBAAA,CAAC,CAAC;AACV,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,GAAG,CAAC;KACd;;iHAhBQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;+GAApB,oBAAoB,EAAA,IAAA,EAAA,kBAAA,EAAA,CAAA,CAAA;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,IAAI;mBAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAA;;MAqBrB,0BAA0B,CAAA;AACnC,IAAA,SAAS,CAAC,KAAa,EAAE,OAAY,EAAE,QAAQ,GAAG,KAAK,EAAA;QACnD,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,QAAA,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,QAAA,IAAI,KAAK,EAAE;YACP,GAAG,GAAG,OAAO,CAAC,kBAAkB,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC;AACrD,YAAA,IAAI,QAAQ,EAAE;gBACV,GAAG,IAAI,GAAG,GAAG,OAAO,CAAC,kBAAkB,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC;AAC/D,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,GAAG,CAAC;KACd;;uHAXQ,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;qHAA1B,0BAA0B,EAAA,IAAA,EAAA,wBAAA,EAAA,CAAA,CAAA;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC,IAAI;mBAAC,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAA;;MAgB3B,eAAe,CAAA;AACxB,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAAI;AAE/C,IAAA,SAAS,CAAC,IAAI,EAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;KACvD;;4GALQ,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;0GAAf,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,IAAI;mBAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAA;;MAUhB,WAAW,CAAA;AACpB,IAAA,WAAA,CAAsB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAAI;IAE1C,SAAS,CACZ,KAAU,EACV,IAAY,EAAA;AAEZ,QAAA,QAAQ,IAAI;AACR,YAAA,KAAK,MAAM;gBACP,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AAEzD,YAAA,KAAK,OAAO;gBACR,OAAO,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AAE1D,YAAA,KAAK,QAAQ;gBACT,OAAO,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;AAE3D,YAAA,KAAK,KAAK;gBACN,OAAO,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AAExD,YAAA,KAAK,aAAa;gBACd,OAAO,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;AAEhE,YAAA;AACI,gBAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAA,CAAE,CAAC,CAAC;AAC/D,SAAA;KACJ;;wGA1BQ,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;sGAAX,WAAW,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,CAAA;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,IAAI;mBAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAA;;MA+BZ,qBAAqB,CAAA;AAC9B,IAAA,SAAS,CAAC,KAAa,EAAA;QACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;AAC3D,QAAA,OAAO,QAAQ,CAAC;KACnB;;kHAJQ,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;gHAArB,qBAAqB,EAAA,IAAA,EAAA,mBAAA,EAAA,CAAA,CAAA;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,IAAI;mBAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAA;;MAStB,eAAe,CAAA;AACxB,IAAA,SAAS,CAAC,KAAa,EAAA;AACnB,QAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC1B;;4GAHQ,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;0GAAf,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,CAAA;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,IAAI;mBAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAA;;;MChIhB,WAAW,CAAA;AACpB,IAAA,WAAA,CAAoB,gBAAkC,EAAA;QAAlC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;KAAI;IAElD,qBAAqB,CAAC,OAAe,EAAE,GAAW,EAAA;AACtD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAY,SAAA,EAAA,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC;AACvF,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,mBAAmB,GAAG,iBAAiB,CAAC,IAAI,OAAO,KAAK,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC;AACvI,QAAA,OAAO,CAAG,EAAA,YAAY,CAAG,EAAA,OAAO,EAAE,CAAC;KACtC;IAED,SAAS,CAAC,KAAU,EAAE,IAAU,EAAA;AAC5B,QAAA,IAAI,KAAK,EAAE;YACP,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC;AACpE,YAAA,IAAI,OAAO,GAAG,EAAE;gBACZ,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,UAAU,CAAC;AACxE,YAAA,MAAM,SAAS,GAA8B;AACzC,gBAAA,MAAM,EAAE,QAAQ;AAChB,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,QAAQ,EAAE,CAAC;aACd,CAAC;AACF,YAAA,IAAI,OAAO,CAAC;AACZ,YAAA,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE;AACvB,gBAAA,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,OAAO,GAAG,CAAC,EAAE;AACb,oBAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAC1C,iBAAA;AACJ,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;;wGAhCQ,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;sGAAX,WAAW,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,CAAA;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,SAAS;AAClB,iBAAA,CAAA;;;MCQY,0BAA0B,CAAA;IAKnC,WAAoB,CAAA,QAAmB,EAAU,EAAc,EAAA;QAA3C,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QAAU,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QAJtD,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;QAEvB,IAAK,CAAA,KAAA,GAAQ,IAAI,CAAC;KAEyC;IAEnE,eAAe,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;AACzD,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC;AACxB,SAAA;AAAM,aAAA;AACH,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC7D,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;AACjD,SAAA;QAED,IAAI,IAAI,CAAC,KAAK,EAAE;AACZ,YAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CACvB,MAAM,EACN,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CACpC,CAAC;AACF,YAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CACvB,OAAO,EACP,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CACpC,CAAC;AACL,SAAA;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAC1B,MAAM,EACN,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CACpC,CAAC;AACF,QAAA,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAC1B,OAAO,EACP,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CACpC,CAAC;KACL;AAED,IAAA,IAAI,YAAY,GAAA;QACZ,OAAO,IAAI,CAAC,cAAc;cACpB,IAAI,CAAC,kBAAkB,CAAC,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;cAC1D,CAAC,CAAC;KACX;AAED,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;KAC3C;AAED,IAAA,QAAQ,CAAC,KAAa,EAAA;AAClB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;KAC7D;IAED,iBAAiB,GAAA;QACb,IAAI,IAAI,CAAC,KAAK,EAAE;AACZ,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAC9B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;AAC3D,SAAA;KACJ;AAEO,IAAA,kBAAkB,CAAC,UAAoB,EAAA;AAC3C,QAAA,OAAO,UAAU;AACZ,aAAA,GAAG,CAAC,CAAC,QAAQ,KACV,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CACtD;AACA,aAAA,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;KACnC;AAEO,IAAA,SAAS,CAAC,KAAa,EAAA;AAC3B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACnE,QAAA,MAAM,EACF,SAAS,EACT,WAAW,EACX,UAAU,EACV,QAAQ,EACR,UAAU,GACb,GAAG,IAAI,CAAC,KAAK,CAAC;;AAGf,QAAA,GAAG,CAAC,IAAI;YACJ,SAAS;gBACT,GAAG;gBACH,WAAW;gBACX,GAAG;gBACH,UAAU;gBACV,GAAG;gBACH,QAAQ;gBACR,GAAG;AACH,gBAAA,UAAU,CAAC;AACf,QAAA,OAAO,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;KACjD;;uHA3FQ,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;2GAA1B,0BAA0B,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC7B,iBAAA,CAAA;yHAEY,cAAc,EAAA,CAAA;sBAAtB,KAAK;;;MCTG,sBAAsB,CAAA;AAC/B,IAAA,WAAA,CAAoB,OAAmB,EAAA;QAAnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;KAAI;IAG3C,OAAO,GAAA;QACH,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SACrC,EAAE,CAAC,CAAC,CAAC;KACT;;mHARQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;uGAAtB,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,iBAAiB;AAC9B,iBAAA,CAAA;iGAKG,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,CAAA;;;MCAZ,mBAAmB,CAAA;AAG5B,IAAA,WAAA,CAAgC,YAA8B,IAAI,EAAA;QAAlC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAyB;QAF1D,IAAO,CAAA,OAAA,GAAG,OAAO,CAAC;QAGtB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,qBAAqB,EAAE,IAAI,OAAO,CAAC;;;;KAKrE;AAEO,IAAA,qBAAqB,CAAC,KAAa,EAAE,aAAa,GAAG,CAAC,EAAA;;AAE1D,QAAA,IAAI,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;;AAEnB,YAAA,KAAK,GAAG,IAAI,CAAC,kCAAkC,CAAC,KAAK,CAAC,CAAC;;AAE1D,SAAA;AAED,QAAA,OAAO,oBAAoB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;KACrD;;;AAIO,IAAA,OAAO,CAAC,YAAoB,EAAA;AAChC,QAAA,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;AAClC,YAAA,MAAM,IAAI,SAAS,CAAC,mBAAmB,CAAC,CAAA;AAC3C,SAAA;QAED,OAAO;YACH,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,QAAQ,CAAC;YACzC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE;YAC9C,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,EAAE;YAC9C,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE;YAC7C,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,IAAI;SAChD,CAAA;KACJ;;;;AAKO,IAAA,OAAO,CAAC,KAAa,EAAE,MAAM,GAAG,CAAC,EAAA;AACrC,QAAA,MAAM,GAAG,MAAM,IAAI,CAAC,CAAA;AAEpB,QAAA,IAAI,GAAG,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAA;QAC1B,IAAI,IAAI,GAAG,CAAC,CAAA;QAEZ,IAAI,GAAG,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,CAAA;AAC9B,QAAA,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;AAE3C,QAAA,OAAO,GAAG,CAAA;KACb;AAEO,IAAA,yBAAyB,CAAC,cAAsB,EAAA;QACpD,IAAI,GAAG,GAAG,KAAK,CAAC;QAEhB,IAAI,cAAc,IAAI,GAAG;AACrB,YAAA,cAAc,IAAI,GAAG;AACrB,YAAA,cAAc,IAAI,IAAI;AACtB,YAAA,cAAc,IAAI,IAAI;AACtB,YAAA,cAAc,IAAI,KAAK;AACvB,YAAA,cAAc,IAAI,IAAI;YACtB,cAAc,IAAI,KAAK,EAAE;YACzB,GAAG,GAAG,IAAI,CAAC;AACd,SAAA;AAED,QAAA,OAAO,GAAG,CAAC;KACd;IAEO,wBAAwB,CAAC,KAAa,EAAE,iBAAyB,EAAA;QACrE,IAAI,GAAG,GAAG,KAAK,CAAC;AAChB,QAAA,iBAAiB,GAAG,iBAAiB,IAAI,CAAC,CAAC;AAC3C,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAEpD,QAAA,IAAI,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;YAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;;AAG/C,YAAA,QAAQ,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC;;YAGzD,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA,EAAG,gBAAgB,CAAG,EAAA,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAA,CAAE,CAAC;AACvF,SAAA;AAED,QAAA,OAAO,GAAG,CAAC;KACd;AAED,IAAA,SAAS,CAAC,OAAe,EAAE,QAAQ,GAAG,KAAK,EAAA;QACvC,IAAI,MAAM,GAAS,IAAI,CAAC;QACxB,IAAI,OAAO,KAAK,EAAE,EAAE;AAChB,YAAA,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;;YAG3B,IAAI,CAAC,QAAQ,EAAE;gBACX,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAEnC,IAAI,KAAK,GAAG,CAAC,EAAE;oBACX,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AACzC,iBAAA;gBAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACpC,gBAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;oBACvB,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBACjC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACtC,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBAChC,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AAC3E,iBAAA;AACJ,aAAA;AAAM,iBAAA;AACH,gBAAA,MAAM,GAAG,IAAI,IAAI,CACb,MAAM,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE,EAC5E,MAAM,CAAC,UAAU,EAAE,GAAG,MAAM,CAAC,iBAAiB,EAAE,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AACnF,aAAA;AACJ,SAAA;QACD,IAAI,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE;YACnC,MAAM,GAAG,IAAI,CAAC;AACjB,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACjB;AAED,IAAA,aAAa,CAAC,IAAU,EAAE,QAAQ,GAAG,KAAK,EAAA;AACtC,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,IAAI,QAAQ,EAAE;AACV,gBAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;AAC7B,aAAA;AAAM,iBAAA;gBACH,MAAM,QAAQ,GAAG,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CACT,IAAI,CAAC,WAAW,EAAE,EAClB,GAAG,EACH,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EACnB,GAAG,EACH,IAAI,CAAC,OAAO,EAAE,CACjB,CAAC;AACF,gBAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5B,aAAA;AACJ,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,EAAE,CAAC;AACb,SAAA;KACJ;AAED,IAAA,WAAW,CAAC,KAAa,EAAA;QACrB,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,MAAM,MAAM,GAAG,oBAAoB,CAAC;AACpC,QAAA,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEzB,QAAA,OAAO,GAAG,CAAC;KACd;AAED,IAAA,YAAY,CAAC,GAAW,EAAA;QACpB,IAAI;AACA,YAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACnB,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACR,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACf;IAED,uBAAuB,CAAC,QAAQ,EAAE,UAAkB,EAAA;QAChD,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;;;AAG1C,QAAA,IAAI,UAAU,EAAE,MAAM,GAAG,CAAC,EAAE;YACxB,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;AACzE,SAAA;AACD,QAAA,QACI,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC;YACxB,QAAQ,CAAC,eAAe,CAAC,4BAA4B,EAAE,MAAM,CAAC,EAChE;KACL;;IAGD,aAAa,CAAC,KAAU,EAAE,iBAAiB,GAAG,CAAC,EAAE,iBAAiB,GAAG,CAAC,EAAA;AAClE,QAAA,iBAAiB,GAAG,oBAAoB,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;AAClE,QAAA,iBAAiB,GAAG,oBAAoB,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;AAElE,QAAA,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAAC;QACzG,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAEjD,IAAI,MAAM,KAAK,CAAC,EAAE;AACd,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAAM,aAAA;;YAEH,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE;AACvC,gBAAA,KAAK,EAAE,SAAS;gBAChB,qBAAqB,EAAE,iBAAiB,IAAI,CAAC;gBAC7C,qBAAqB,EAAE,iBAAiB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,CAAC;AAC7E,aAAA,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;AAC3B,SAAA;KACJ;;AAGD,IAAA,cAAc,CAAC,KAAU,EAAE,YAAY,GAAG,EAAE,EAAE,iBAAiB,GAAG,CAAC,EAAE,iBAAiB,GAAG,CAAC,EAAE,WAAW,GAAG,IAAI,EAAA;AAC1G,QAAA,iBAAiB,GAAG,oBAAoB,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;AAClE,QAAA,iBAAiB,GAAG,oBAAoB,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QAElE,IAAI,GAAG,GAAG,EAAE,CAAC;;;;;AAMT,QAAA,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAAC;QACzG,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AACjD,QAAA,MAAM,YAAY,GAAG;;;AAGjB,YAAA,WAAW,EAAE,WAAW;AACxB,YAAA,qBAAqB,EAAE,iBAAiB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,IAAI,CAAC,CAAC;YAC/E,qBAAqB,EAAE,iBAAiB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,CAAC;SAC7E,CAAC;QAEF,IAAI,MAAM,KAAK,CAAC,EAAE;;AAEd,YAAA,GAAG,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACrE,SAAA;AAAM,aAAA;;AAEH,YAAA,GAAG,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1E,SAAA;AAED,QAAA,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,GAAG,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,GAAG,CAAA,EAAG,GAAG,CAAI,CAAA,EAAA,YAAY,CAAE,CAAA,GAAG,GAAG,YAAY,CAAA,CAAA,EAAI,GAAG,CAAA,CAAE,CAAA;AAC3G,SAAA;;AAGL,QAAA,OAAO,GAAG,CAAC;KACd;;AAGD,IAAA,aAAa,CAAC,KAAU,EAAE,iBAAiB,GAAG,CAAC,EAAE,iBAAiB,GAAG,CAAC,EAAE,WAAW,GAAG,IAAI,EAAA;AACtF,QAAA,iBAAiB,GAAG,oBAAoB,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;;AAElE,QAAA,iBAAiB,GAAG,oBAAoB,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;;AAGlE,QAAA,KAAK,GAAG,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAAC,CAAC;QACzG,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;;QAIjD,IAAI,MAAM,KAAK,CAAC,EAAE;AACd,YAAA,OAAO,GAAG,CAAC;AACd,SAAA;AAAM,aAAA;;YAEH,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE;AAC5C,gBAAA,WAAW,EAAE,WAAW;AACxB,gBAAA,qBAAqB,EAAE,iBAAiB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,IAAI,CAAC,CAAC;gBAC/E,qBAAqB,EAAE,iBAAiB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,CAAC;AAC7E,aAAA,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;;AAIlB,YAAA,OAAO,GAAG,CAAC;AACd,SAAA;KACJ;;AAGD,IAAA,YAAY,CAAC,KAAU,EAAE,WAAW,GAAG,IAAI,EAAA;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAEjD,IAAI,MAAM,KAAK,CAAC,EAAE;AACd,YAAA,OAAO,GAAG,CAAC;AACd,SAAA;AAAM,aAAA;;YAEH,OAAO,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE;AACvC,gBAAA,WAAW,EAAE,WAAW;AACxB,gBAAA,qBAAqB,EAAE,CAAC;AACxB,gBAAA,qBAAqB,EAAE,CAAC;AAC3B,aAAA,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AACpB,SAAA;KACJ;AAED;;;;;;AAME;AACF,IAAA,cAAc,CAAC,KAAK,EAAE,OAAA,GAAwE,EAAE,EAAA;AAC5F,QAAA,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAEvC,IAAI,CAAC,QAAQ,EAAE;AACX,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAAM,aAAA;YACH,IAAI,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAE/C,YAAA,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,IAAI,CAAC;AACzC,YAAA,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,cAAc,CAAC;YACrD,IAAI,QAAQ,KAAK,SAAS,EAAE;AACxB,gBAAA,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;AAC1B,aAAA;AAED,YAAA,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC;AACjD,YAAA,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,EAAE,CAAC;YACxC,MAAM,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAExC,IAAI,CAAC,CAAC,IAAI,EAAE;AACR,gBAAA,OAAO,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,OAAO,CAAA;AACrG,aAAA;YAED,IAAI,CAAC,CAAC,KAAK,EAAE;AACT,gBAAA,OAAO,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,OAAO,CAAA;AAC5G,aAAA;YAED,OAAO,IAAI,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,OAAO,CAAA;AAChF,SAAA;KACJ;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;QACtB,IAAI,WAAW,GAAG,oBAAoB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACjD,QAAA,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;KACrC;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;QACtB,IAAI,WAAW,GAAG,oBAAoB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACjD,QAAA,OAAO,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;KACrC;IAED,mBAAmB,GAAA;QACf,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAEvC,QAAA,OAAO,0BAA0B;AAC5B,aAAA,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5B,aAAA,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACxB;AAED,IAAA,kCAAkC,CAAC,KAAa,EAAE,OAAO,GAAG,KAAK,EAAA;;AAE7D,QAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE,KAAK,GAAG,EAAE;;AAEpC,YAAA,KAAK,GAAG,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;YAGhC,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AACvE,SAAA;AAED,QAAA,OAAO,KAAK,CAAC;KAChB;IAED,aAAa,CAAC,cAAsB,EAAE,eAAuB,EAAA;QACzD,MAAM,MAAM,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;QAE5D,OAAO,MAAM,KAAK,OAAO,CAAC;KAC7B;;gHAxVQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFhB,MAAM,EAAA,CAAA,CAAA;2FAET,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;0BAIgB,QAAQ;;;MCKZ,wBAAwB,CAAA;AAoBjC,IAAA,WAAA,CACY,QAAmB,EACnB,OAAmB,EACnB,gBAAqC,EACP,QAAa,EAAA;QAH3C,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QACnB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAqB;QACP,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAK;QAvB9C,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;QACf,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;QACnB,IAAW,CAAA,WAAA,GAAG,QAAQ,CAAC;QACvB,IAAY,CAAA,YAAA,GAAG,SAAS,CAAC;QACzB,IAAmB,CAAA,mBAAA,GAAG,KAAK,CAAC;QAE7B,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;KAiBnB;IAhBJ,IACI,MAAM,CAAC,KAAc,EAAA;AACrB,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AAErB,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,EAAE;AAC1B,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC7B,SAAA;KACJ;AAYD,IAAA,UAAU,CAAC,KAAK,EAAA;AACZ,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;;AAGzB,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;AACvB,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACxB,SAAA;AAAM,aAAA;;AAEH,YAAA,IAAI,IAAI,CAAC,UAAU,KAAK,CAAC,EAAE;AACvB,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AAC1B,aAAA;AACJ,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE;YACrB,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAC9B,aAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACvB,SAAA;KACJ;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,OAAO,GACT,6uCAA6uC,CAAC;AAClvC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CACxD,IAAI,CAAC,QAAQ,EACb,OAAO,CACV,CAAC;QACF,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAEO,cAAc,GAAA;AAClB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACtE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,iBAAiB,EACjB,QAAQ,CACX,CAAC;AACF,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,aAAa,EACb,QAAQ,CACX,CAAC;QAEF,IAAI,IAAI,CAAC,mBAAmB,EAAE;AAC1B,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,iBAAiB,CACpB,CAAC;AACL,SAAA;KACJ;IAEO,YAAY,GAAA;QAChB,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACpE,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAChE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;KAClD;AAEO,IAAA,aAAa,CAAC,IAAa,EAAA;AAC/B,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,YAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AACpE,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CACtB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,UAAU,EACV,MAAM,CACT,CAAC;AACF,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AACrE,SAAA;AAAM,aAAA;YACH,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,gBAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACxB,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CACrB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,IAAI,CAAC,OAAO,CACf,CAAC;AACF,gBAAA,IAAI,CAAC,QAAQ,CAAC,eAAe,CACzB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,UAAU,CACb,CAAC;AACF,gBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CACrB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,aAAa,CAChB,CAAC;AACL,aAAA;AACJ,SAAA;KACJ;;AAvHQ,wBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,qGAwBT,QAAQ,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;yGAxBvB,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAChC,iBAAA,CAAA;;0BAyBQ,QAAQ;;0BAAI,MAAM;2BAAC,QAAQ,CAAA;4CAvBvB,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,mBAAmB,EAAA,CAAA;sBAA3B,KAAK;gBAKF,MAAM,EAAA,CAAA;sBADT,KAAK;gBAmBN,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCtCxB,oBAAoB,CAAA;AAC7B,IAAA,WAAA,CAAoB,OAAmB,EAAA;QAAnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;KAAI;IAG3C,eAAe,GAAA;QACX,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SACrC,EAAE,CAAC,CAAC,CAAC;KACT;IAGD,eAAe,GAAA;QACX,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SACrC,EAAE,CAAC,CAAC,CAAC;KACT;;iHAfQ,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;qGAApB,oBAAoB,EAAA,QAAA,EAAA,eAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,eAAe;AAC5B,iBAAA,CAAA;iGAKG,eAAe,EAAA,CAAA;sBADd,YAAY;uBAAC,YAAY,CAAA;gBAQ1B,eAAe,EAAA,CAAA;sBADd,YAAY;uBAAC,YAAY,CAAA;;;MCHjB,kBAAkB,CAAA;IAG3B,WAAoB,CAAA,QAAmB,EAAU,OAAmB,EAAA;QAAhD,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QAAU,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;KAAI;IAExE,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CACtB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,SAAS,EACT,IAAI,CAAC,MAAM,CACd,CAAC;KACL;;+GAXQ,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,QAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;AAC1B,iBAAA,CAAA;yHAEuB,MAAM,EAAA,CAAA;sBAAzB,KAAK;uBAAC,WAAW,CAAA;;;MCRT,6BAA6B,CAAA;AAH1C,IAAA,WAAA,GAAA;QAIa,IAAY,CAAA,YAAA,GAAG,IAAI,CAAC;AAShC,KAAA;AANG,IAAA,UAAU,CAAC,KAAK,EAAA;QACZ,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAChD,UAAU,CAAC,MAAK;AACZ,YAAA,KAAK,CAAC,UAAU,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AACjD,SAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;KACzB;;0HATQ,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;8GAA7B,6BAA6B,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAHzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wBAAwB;AACrC,iBAAA,CAAA;8BAEY,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAGN,UAAU,EAAA,CAAA;sBADT,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCJxB,iBAAiB,CAAA;AAH9B,IAAA,WAAA,GAAA;QAKW,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;AAYxB;;AAEG;QACM,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;AAE/B;;;;AAIG;QACM,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;AA4BxB;;;;AAIG;QACK,IAAe,CAAA,eAAA,GAAG,EAAE,CAAC;AAgHhC,KAAA;AA/IG;;AAEG;IACH,IACI,UAAU,CAAC,MAAoD,EAAA;AAC/D,QAAA,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE;AACtB,YAAA,IAAI,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;gBAC5B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;AACpF,aAAA;AACJ,SAAA;QACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;AAED;;;;;;;;AAQG;IACI,iBAAiB,GAAA;AACpB,QAAA,OAAO,WAAW,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,WAAW,CAAC;KAC9E;AASD;;;AAGG;IACH,IACI,cAAc,CAAC,OAAe,EAAA;QAC9B,MAAM,SAAS,GAAG,UAAU,WAAW,EAAA;YACnC,OAAO,CAAA,6CAAA,EAAgD,WAAW,CAAA,EAAA,CAAI,CAAC;AAC3E,SAAC,CAAA;QACD,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACpC,YAAA,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE;gBACxB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AAChE,aAAA;AACJ,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;AAC7C,SAAA;KACJ;AAED;;;;AAIG;IACK,wBAAwB,GAAA;QAC5B,OAAO,IAAI,CAAC,eAAe,CAAC;KAC/B;AACO,IAAA,aAAa,CAAC,GAAgC,EAAA;QAClD,MAAM,IAAI,GAAa,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;AACpD,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAClD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC;AACxC,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC5B;AAED;;;;AAIG;AACK,IAAA,WAAW,CAAC,IAAS,EAAA;AACzB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAClC,YAAA,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACrC,YAAA,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;AACjB,gBAAA,IAAI,CAAC,CAAC,CAAC,CAAC,cAAc,GAAG,IAAI,CAAC;AACjC,aAAA;AACJ,SAAA;KACJ;AAED;;;AAGG;IACK,eAAe,GAAA;QACnB,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnE,MAAM,OAAO,GAAG,aAAa,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAE1B,MAAM,GAAG,GAAG,aAAa,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;AAC3D,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAEtB,OAAO,aAAa,CAAC,SAAS,CAAC;KAClC;AAED;;AAEG;IAEI,KAAK,GAAA;AACR,QAAA,IAAI,MAAM,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAE3C,IAAI,IAAI,CAAC,cAAc,EAAE;AACrB,YAAA,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACrC,YAAA,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACtC,SAAA;AAED,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;AAC7C,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,qCAAqC,CAAC,CAAC;AAClF,QAAA,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,QAAA,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;;;yBAGP,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;kBAC7C,OAAO,CAAA;kBACP,IAAI,CAAC,iBAAiB,EAAE,CAAA;kBACxB,IAAI,CAAC,wBAAwB,EAAE,CAAA;kBAC/B,MAAM,CAAA;kBACN,KAAK,CAAA;;;kBAGL,aAAa,CAAA;;;;;;AAMN,uBAAA,EAAA,IAAI,CAAC,UAAU,CAAA;;;;;;;;AAQpB,mBAAA,CAAA,CACX,CAAC;AACF,QAAA,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;KAC7B;;8GAxKQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,YAAY;AACzB,iBAAA,CAAA;8BAQY,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAKG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAKG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAOG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAMF,UAAU,EAAA,CAAA;sBADb,KAAK;gBAmCF,cAAc,EAAA,CAAA;sBADjB,KAAK;gBAiEC,KAAK,EAAA,CAAA;sBADX,YAAY;uBAAC,OAAO,CAAA;;;MC7HZ,mBAAmB,CAAA;AACrB,IAAA,eAAe,CAAC,GAAW,EAAA;AAC9B,QAAA,IAAI,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACvD,QAAA,QAAQ,MAAM,CAAC,MAAM,GAAG,CAAC;YACrB,KAAK,CAAC,EAAE;gBACJ,MAAM;AACT,aAAA;YACD,KAAK,CAAC,EAAE;gBACJ,MAAM,IAAI,IAAI,CAAC;gBACf,MAAM;AACT,aAAA;YACD,KAAK,CAAC,EAAE;gBACJ,MAAM,IAAI,GAAG,CAAC;gBACd,MAAM;AACT,aAAA;AACD,YAAA,SAAS;AACL,gBAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAChD,aAAA;AACJ,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;KACxC;;AAGO,IAAA,SAAS,CAAC,GAAW,EAAA;QACzB,MAAM,KAAK,GACP,mEAAmE,CAAC;QACxE,IAAI,MAAM,GAAG,EAAE,CAAC;AAEhB,QAAA,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAErC,QAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE;AACtB,YAAA,MAAM,IAAI,KAAK,CACX,mEAAmE,CACtE,CAAC;AACL,SAAA;AAED,QAAA;;QAEI,IAAI,EAAE,GAAG,CAAC,EAAE,EAAO,EAAE,MAAW,EAAE,GAAG,GAAG,CAAC;;SAExC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;;AAE3B,QAAA,CAAC,MAAM;AACP,aAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,GAAG,MAAM;;;gBAGzC,EAAE,EAAE,GAAG,CAAC,CAAC;eACF,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;cAC7D,CAAC,EACT;;AAEE,YAAA,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAClC,SAAA;AACD,QAAA,OAAO,MAAM,CAAC;KACjB;AAEO,IAAA,gBAAgB,CAAC,GAAQ,EAAA;AAC7B,QAAA,OAAO,kBAAkB,CACrB,KAAK,CAAC,SAAS,CAAC,GAAG;aACd,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAM,KAAI;YAClC,QACI,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EACvD;AACN,SAAC,CAAC;AACD,aAAA,IAAI,CAAC,EAAE,CAAC,CAChB,CAAC;KACL;AAEM,IAAA,WAAW,CAAC,KAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE;AACxB,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE/B,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACpB,YAAA,MAAM,IAAI,KAAK,CACX,wHAAwH,CAC3H,CAAC;AACL,SAAA;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE;AACV,YAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC/C,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KAC9B;AAEM,IAAA,sBAAsB,CAAC,KAAa,EAAA;QACvC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAExC,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;AAC5C,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAED,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAEhC,QAAA,OAAO,IAAI,CAAC;KACf;IAEM,cAAc,CAAC,KAAa,EAAE,aAAsB,EAAA;AACvD,QAAA,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE;AACxB,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AAChD,QAAA,aAAa,GAAG,aAAa,IAAI,CAAC,CAAC;QAEnC,IAAI,IAAI,KAAK,IAAI,EAAE;AACf,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,aAAa,GAAG,IAAI,CAAC,CAAC;KAC1E;IAEM,aAAa,CAChB,UAAmE,EACnE,OAAyB,EAAA;AAEzB,QAAA,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;AAClC,YAAA,OAAO,UAAU,CAAC,OAAO,CAAC,CAAC;AAC9B,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACrB;;gHA7HQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFhB,MAAM,EAAA,CAAA,CAAA;2FAET,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCCY,iBAAiB,CAAA;;AAQ1B,IAAA,WAAA,CAAoB,SAA8B,EAAA;QAA9B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAqB;QAPjC,IAAa,CAAA,aAAA,GAAG,WAAW,CAAC;QAC5B,IAAiB,CAAA,iBAAA,GAAG,iBAAiB,CAAC;;;AAGtC,QAAA,IAAA,CAAA,iBAAiB,GAAG,eAAe,CAAC;KAGC;IAE9C,aAAa,GAAA;;;AAGjB,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;;QAGjC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;;;AAIvD,QAAA,OAAO,YAAY,CAAC;KACvB;IAED,SAAS,CAAI,GAAW,EAAE,MAAS,EAAA;QAC/B,MAAM,iBAAiB,GACnB,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,YAAY,MAAM;AAClD,cAAE,MAAM;AACR,cAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEjC,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC7D;AAED,IAAA,SAAS,CAAU,GAAW,EAAA;QAC1B,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEzC,IAAI;AACA,YAAA,MAAM,GAAG,IAAI,GAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAO,GAAG,IAAI,CAAC;AAClD,SAAA;QAAC,MAAM;YACJ,MAAM,GAAG,IAAI,CAAC;AACjB,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACjB;;;;;;;AAUD,IAAA,YAAY,CAAC,GAAW,EAAA;AACpB,QAAA,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;KAClC;;;;IAMD,cAAc,GAAA;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;KACjD;IAED,WAAW,GAAA;QACP,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KAC7C;IAED,cAAc,GAAA;AACV,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AACtC,QAAA,OAAO,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;KAC7D;;8GAxEQ,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,iBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFd,MAAM,EAAA,CAAA,CAAA;2FAET,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCSY,cAAc,CAAA;AAIvB,IAAA,WAAA,GAAA;AACI,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAA4C,CAAC;AACnE,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,GAAG,EAA4C,CAAC;KACrE;AAED,IAAA,SAAS,CAAC,KAA8B,EAAA;QACpC,MAAM,QAAQ,GAAU,EAAE,CAAC;AAC3B,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AACnB,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;AACvB,gBAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC5C,aAAA;AAAM,iBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC/B,gBAAA,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,aAAA;AACL,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KAChC;AAED,IAAA,WAAW,CAAC,KAA8B,EAAA;QACtC,KACI,IAAI,KAAK,GAAG,CAAC,EACb,KAAK,GAAG,KAAK,CAAC,MAAM;AACpB,YAAA,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI;AACjB,YAAA,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAC/B,KAAK,EAAE,EACT;AACE,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACvD,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC9C,YAAA,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAExC,YAAA,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC1D,gBAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7B,aAAA;AAAM,iBAAA,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AAC/D,gBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC5B,aAAA;AACJ,SAAA;KACJ;AAED,IAAA,UAAU,CAAC,IAAY,EAAA;QACnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;;YAG1C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACzB,gBAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AACxD,aAAA;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;;YAG1C,IAAI,UAAU,CAAC,MAAM,EAAE;AACnB,gBAAA,OAAO,CAAC;AACJ,oBAAA,MAAM,EAAE,IAAI;AACZ,oBAAA,MAAM,EAAE,IAAI;AACZ,oBAAA,MAAM,EAAE,gBAAgB;AAC3B,iBAAA,CAAC,CAAC;AACN,aAAA;AAAM,iBAAA;;gBAEH,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChD,gBAAA,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC;AAChC,gBAAA,MAAM,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;AAC5B,gBAAA,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAChC,gBAAA,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;gBAErB,IAAI,MAAM,CAAC,UAAU,EAAE;;AAEnB,oBAAA,MAAM,CAAC,kBAAkB,GAAG,MAAK;AAC7B,wBAAA,IACI,MAAM,CAAC,UAAU,KAAK,QAAQ;AAC9B,4BAAA,MAAM,CAAC,UAAU,KAAK,UAAU,EAClC;AACE,4BAAA,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC;AACjC,4BAAA,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;AACzB,4BAAA,OAAO,CAAC;gCACJ,IAAI;AACJ,gCAAA,IAAI,EAAE,QAAQ;AACd,gCAAA,MAAM,EAAE,IAAI;AACZ,gCAAA,MAAM,EAAE,QAAQ;AACnB,6BAAA,CAAC,CAAC;AACN,yBAAA;AACL,qBAAC,CAAC;AACL,iBAAA;AAAM,qBAAA;;AAEH,oBAAA,MAAM,CAAC,MAAM,GAAG,MAAK;AACjB,wBAAA,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC;AACzB,wBAAA,OAAO,CAAC;4BACJ,IAAI;AACJ,4BAAA,IAAI,EAAE,QAAQ;AACd,4BAAA,MAAM,EAAE,IAAI;AACZ,4BAAA,MAAM,EAAE,QAAQ;AACnB,yBAAA,CAAC,CAAC;AACP,qBAAC,CAAC;AACL,iBAAA;gBACD,MAAM,CAAC,OAAO,GAAG,CAAC,KAAU,KACxB,OAAO,CAAC;oBACJ,IAAI;AACJ,oBAAA,IAAI,EAAE,QAAQ;AACd,oBAAA,MAAM,EAAE,KAAK;AACb,oBAAA,MAAM,EAAE,QAAQ;AACnB,iBAAA,CAAC,CAAC;AACP,gBAAA,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AAChE,aAAA;AACL,SAAC,CAAC,CAAC;KACN;AAED,IAAA,SAAS,CAAC,IAAY,EAAA;QAClB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;;YAG1C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;AACxB,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;AACvD,aAAA;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;;YAGxC,IAAI,SAAS,CAAC,MAAM,EAAE;AAClB,gBAAA,OAAO,CAAC;oBACJ,IAAI;AACJ,oBAAA,IAAI,EAAE,OAAO;AACb,oBAAA,MAAM,EAAE,IAAI;AACZ,oBAAA,MAAM,EAAE,gBAAgB;AAC3B,iBAAA,CAAC,CAAC;AACN,aAAA;AAAM,iBAAA;;gBAEH,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC7C,gBAAA,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;AACxB,gBAAA,KAAK,CAAC,GAAG,GAAG,YAAY,CAAC;AACzB,gBAAA,KAAK,CAAC,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC;AAC3B,gBAAA,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;AACpB,gBAAA,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAE/B,gBAAA,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;AACxB,gBAAA,OAAO,CAAC;oBACJ,IAAI;AACJ,oBAAA,IAAI,EAAE,OAAO;AACb,oBAAA,MAAM,EAAE,IAAI;AACZ,oBAAA,MAAM,EAAE,QAAQ;AACnB,iBAAA,CAAC,CAAC;AAEH,gBAAA,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC/D,aAAA;AACL,SAAC,CAAC,CAAC;KACN;IAED,aAAa,CAAC,OAAe,EAAE,IAAY,EAAA;QACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtD,MAAM,YAAY,GAAG,QAAQ,CAAC,cAAc,CACxC,OAAO,CACS,CAAC;AAErB,QAAA,IAAI,YAAY,EAAE;AACd,YAAA,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;AAC5B,SAAA;AAAM,aAAA;YACH,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC7C,YAAA,KAAK,CAAC,EAAE,GAAG,OAAO,CAAC;AACnB,YAAA,KAAK,CAAC,GAAG,GAAG,YAAY,CAAC;AACzB,YAAA,KAAK,CAAC,IAAI,GAAG,CAAG,EAAA,IAAI,EAAE,CAAC;AAEvB,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC3B,SAAA;KACJ;AAED,IAAA,WAAW,CAAC,QAAgB,EAAE,cAAc,GAAG,KAAK,EAAA;QAChD,MAAM,SAAS,GAAG,cAAc;AAC5B,cAAE,QAAQ,CAAC,MAAM,GAAG,CAAC;AACrB,cAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAEhC,QAAA,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;KACpE;AAED,IAAA,gBAAgB,CAAC,QAAgB,EAAA;AAC7B,QAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrF,QAAA,OAAO,SAAS,CAAC;KACpB;;AAGD,IAAA,UAAU,CAAC,GAAW,EAAA;;QAElB,IAAI;AACA,YAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;AACzB,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;AACR,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;KACJ;AAED,IAAA,2BAA2B,CAAC,YAAoB,EAAA;AAC5C,QAAA,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1C,QAAA,MAAM,GAAG,GAAG,aAAa,CAAC,MAAM,CAAC;AACjC,QAAA,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;QAElC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC1B,KAAK,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC1C,SAAA;QACD,OAAO,KAAK,CAAC,MAAM,CAAC;KACvB;AAED,IAAA,oBAAoB,CAAC,YAAiB,EAAA;;QAElC,MAAM,UAAU,GAAG,IAAI,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAC;QAElE,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3C,QAAA,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAEhD,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAC3D,QAAA,OAAO,IAAI,CAAC;KACf;AAED,IAAA,iBAAiB,CAAC,YAAoB,EAAA;AAClC,QAAA,IAAI,QAAgB,CAAC;QAErB,IAAI;AACA,YAAA,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACjE,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;AAC/C,SAAA;AAAC,QAAA,OAAO,CAAC,EAAE;YACR,QAAQ,GAAG,CAAC,CAAC,CAAC;AACjB,SAAA;QAED,OAAO,QAAQ,CAAC;KACnB;AAED,IAAA,YAAY,CAAC,IAAU,EAAA;QACnB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;AACnC,YAAA,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;AAChC,YAAA,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC3B,YAAA,MAAM,CAAC,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC7C,YAAA,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9C,SAAC,CAAC,CAAC;KACN;IAED,oBAAoB,CAChB,aAAa,EACb,kBAAkB,EAAA;AAElB,QAAA,MAAM,WAAW,GACb,kBAAkB,KAAK,EAAE;YACzB,kBAAkB,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAEnE,QAAA,OAAO,WAAW,CAAC;KACtB;AAED,IAAA,eAAe,CACX,OAAO,EACP,WAAW,GAAG,CAAC,EAAA;QAEf,MAAM,IAAI,GAAQ,OAAO,CAAC;QAC1B,IAAI,QAAQ,GAAG,CAAC,CAAC;;AAEjB,QAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;AAC9D,YAAA,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC9C,SAAA;AAAM,aAAA;AACH,YAAA,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;AACxB,SAAA;;AAED,QAAA,MAAM,MAAM,GAAY,QAAQ,KAAK,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,QAAQ,GAAG,WAAW,GAAG,OAAO,CAAC;AAC5F,QAAA,OAAO,MAAM,CAAC;KACjB;AAED,IAAA,aAAa,CAAC,YAAY,GAAG,EAAE,EAAE,OAAO,GAAG,SAAS,EAAA;QAChD,MAAM,UAAU,GACZ,YAAY,KAAK,EAAE,IAAI,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC;AACjE,QAAA,OAAO,GAAG,YAAY,CAAA,EAAG,UAAU,CAAU,OAAA,EAAA,OAAO,GAAG,CAAC;KAC3D;IAED,2BAA2B,CAAC,OAAO,GAAG,SAAS,EAAA;QAC3C,OAAO,CAAA,CAAA,EAAI,OAAO,CAAA,KAAA,CAAO,CAAC;KAC7B;AAED,IAAA,yBAAyB,CAAC,YAAY,GAAG,EAAE,EAAE,OAAO,GAAG,SAAS,EAAA;QAC5D,OAAO,CAAA,EAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA,KAAA,CAAO,CAAC;KAC9D;IAED,mBAAmB,CAAC,YAAY,GAAG,EAAE,EAAE,KAAK,GAAG,EAAE,EAAE,OAAO,GAAG,SAAS,EAAA;AAClE,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,CAAC,CAAA,OAAA,EAAU,KAAK,CAAA,CAAE,CAAC;KACxE;AAED,IAAA,gBAAgB,CAAC,GAAW,EAAA;AACxB,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACtC,QAAA,OAAO,GAAG,CAAC;KACd;;2GA/RQ,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFX,MAAM,EAAA,CAAA,CAAA;2FAET,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCHY,uBAAuB,CAAA;AAqJhC,IAAA,WAAA,CACY,cAAiC,EACjC,WAA2B,EAC5B,EAAe,EAAA;QAFd,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QACjC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgB;QAC5B,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QAVnB,IAAiB,CAAA,iBAAA,GAAY,IAAI,CAAC;QAClC,IAAe,CAAA,eAAA,GAAY,IAAI,CAAC;AAChC,QAAA,IAAA,CAAA,kBAAkB,GAAG,uBAAuB,CAAC,qBAAqB,CAAC;QACnE,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;AACnB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC,CAAC;AAC9C,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC,CAAC;QAOlD,IAAI,CAAC,UAAU,EAAE,CAAC;;KAErB;AAED,IAAA,mBAAmB,CAAC,KAAmB,EAAE,cAAc,GAAG,IAAI,EAAA;AAC1D,QAAA,MAAM,UAAU,GAAG,cAAc,GAAG,KAAK,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC;QAC/D,MAAM,KAAK,GAAG,EAAE,CAAC;AACjB,QAAA,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG;YACf,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE;YAChD,UAAU;SACb,CAAC;QACF,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC/B;AAED,IAAA,cAAc,CACV,IAAe,EACf,QAAgB,EAChB,iBAAyB,IAAI,EAAA;QAE7B,IAAI,WAAW,GAAG,IAAI,CAAC;AAEvB,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YACvB,IAAI,cAAc,KAAK,IAAI,EAAE;AACzB,gBAAA,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACzC,aAAA;AAAM,iBAAA;AACH,gBAAA,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC9D,aAAA;AACJ,SAAA;AAED,QAAA,OAAO,WAAW,CAAC;KACtB;IAED,oBAAoB,CAChB,IAAe,EACf,QAAgB,EAChB,KAAK,GAAG,EAAE,EACV,cAAA,GAAyB,IAAI,EAAA;AAE7B,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;AACxE,QAAA,IAAI,WAAW,EAAE;AACb,YAAA,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAA;KACJ;IAED,eAAe,CACX,IAAe,EACf,KAAmB,EACnB,KAAK,GAAG,EAAE,EACV,WAAA,GAA4B,IAAI,EAAA;AAEhC,QAAA,MAAM,WAAW,GAAgB,IAAI,CAAC,cAAc,CAChD,IAAI,EACJ,KAAK,CAAC,GAAG,EACT,WAAW,EAAE,GAAG,CACnB,CAAC;AACF,QAAA,IAAI,WAAW,EAAE;AACb,YAAA,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;;AAG5B,YAAA,IAAI,WAAW,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,EAAE;AACzC,gBAAA,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;AAE9D,gBAAA,MAAM,UAAU,GAAG,KAAK,CAAC,aAAa,EAAE,CAAC;AACzC,gBAAA,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AACzC,aAAA;AACJ,SAAA;KACJ;IAED,wBAAwB,CACpB,SAAS,GAAG,IAAI,EAChB,OAAO,GAAG,CAAC,EACX,UAAU,GAAG,KAAK,EAAA;AAElB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC3C,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAC9C,SAAS,EACT,uBAAuB,CAAC,qBAAqB,CAChD,CAAC;AACF,QAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,CACnD,SAAS,EACT,uBAAuB,CAAC,2BAA2B,CACtD,CAAC;AACF,QAAA,MAAM,qBAAqB,GAAG,IAAI,CAAC,sBAAsB,CACrD,SAAS,EACT,uBAAuB,CAAC,iBAAiB,CAC5C,CAAC;QAEF,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,OAAO,KAAK,CAAC,EAAE;YACf,WAAW;AACP,gBAAA,CAAC,SAAS,GAAG,mBAAmB,GAAG,CAAC,IAAI,cAAc,CAAC;AAC9D,SAAA;AAAM,aAAA;AACH,YAAA,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,CAAC,CAAC;YACtD,WAAW;AACP,gBAAA,OAAO,GAAG,cAAc;AACxB,oBAAA,WAAW,GAAG,mBAAmB;AACjC,qBAAC,UAAU,GAAG,CAAC,GAAG,WAAW,GAAG,qBAAqB,CAAC,CAAC;AAC9D,SAAA;AAED,QAAA,OAAO,WAAW,CAAC;KACtB;AAED,IAAA,uBAAuB,CAAC,SAAS,GAAG,CAAC,EAAE,WAAW,GAAG,IAAI,EAAA;AACrD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC3C,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAC/C,SAAS,EACT,uBAAuB,CAAC,qBAAqB,CAChD,CAAC;AACF,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAChD,SAAS,EACT,uBAAuB,CAAC,iBAAiB,CAC5C,CAAC;AAEF,QAAA,MAAM,WAAW,GACb,SAAS,GAAG,eAAe;AAC3B,YAAA,CAAC,SAAS,GAAG,CAAC,KAAK,WAAW,GAAG,gBAAgB,GAAG,CAAC,CAAC,CAAC;AAC3D,QAAA,OAAO,WAAW,CAAC;KACtB;AAED,IAAA,wBAAwB,CAAC,SAAS,GAAG,CAAC,EAAE,WAAW,GAAG,IAAI,EAAA;AACtD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC3C,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAChD,SAAS,EACT,uBAAuB,CAAC,sBAAsB,CACjD,CAAC;AACF,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CACjD,SAAS,EACT,uBAAuB,CAAC,kBAAkB,CAC7C,CAAC;QAEF,MAAM,WAAW,GACb,SAAS;AACT,aAAC,gBAAgB,IAAI,WAAW,GAAG,iBAAiB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACnE,QAAA,OAAO,WAAW,CAAC;KACtB;AAED,IAAA,oBAAoB,CAAC,UAAU,GAAG,MAAM,EAAE,OAAO,EAAE,UAAU,EAAA;AACzD,QAAA,IAAI,WAAW,GAAG,SAAS,CAAC;QAC5B,IAAI,UAAU,KAAK,OAAO,EAAE;YACxB,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAC/B,uBAAuB,CAAC,sBAAsB,CACjD,CAAC;AACL,SAAA;aAAM,IAAI,UAAU,KAAK,MAAM,EAAE;YAC9B,WAAW;AACP,gBAAA,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC;oBAClD,uBAAuB,CAAC,UAAU,CAAC;AAC1C,SAAA;AAAM,aAAA;;YAEH,WAAW;gBACP,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,CAAC;oBACzD,uBAAuB,CAAC,UAAU,CAAC;AAC1C,SAAA;AAED,QAAA,OAAO,WAAW,CAAC;KACtB;IAED,gBAAgB,GAAA;AACZ,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAC1C,uBAAuB,CAAC,UAAU,CACrC,CAAC;QACF,OAAO,CAAC,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,eAAe,CAAC;KAC1D;AAED,IAAA,8BAA8B,CAAC,SAAc,EAAA;;QAEzC,SAAS,CAAC,2BAA2B,CAAC;AAClC,YAAA,KAAK,GAAG,uBAAuB,CAAC,SAAS,CAAC;QAC9C,SAAS,CAAC,0BAA0B,CAAC;AACjC,YAAA,KAAK,GAAG,uBAAuB,CAAC,SAAS,CAAC;QAC9C,SAAS,CAAC,0BAA0B,CAAC;AACjC,YAAA,KAAK,GAAG,uBAAuB,CAAC,SAAS,CAAC;QAC9C,SAAS,CAAC,0BAA0B,CAAC;AACjC,YAAA,MAAM,GAAG,uBAAuB,CAAC,SAAS,CAAC;QAC/C,SAAS,CAAC,0BAA0B,CAAC;AACjC,YAAA,MAAM,GAAG,uBAAuB,CAAC,SAAS,CAAC;QAC/C,SAAS,CAAC,0BAA0B,CAAC;AACjC,YAAA,MAAM,GAAG,uBAAuB,CAAC,SAAS,CAAC;;AAG/C,QAAA,SAAS,CAAC,uBAAuB,CAAC,kBAAkB,CAAC;AACjD,YAAA,IAAI,GAAG,uBAAuB,CAAC,UAAU,CAAC;;AAG9C,QAAA,SAAS,CAAC,uBAAuB,CAAC,uBAAuB,CAAC;AACtD,YAAA,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC/C,QAAA,SAAS,CAAC,uBAAuB,CAAC,0BAA0B,CAAC;AACzD,YAAA,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC/C,QAAA,SAAS,CAAC,uBAAuB,CAAC,wBAAwB,CAAC;AACvD,YAAA,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;;AAG/C,QAAA,SAAS,CAAC,uBAAuB,CAAC,0BAA0B,CAAC;AACzD,YAAA,MAAM,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAChD,QAAA,SAAS,CAAC,uBAAuB,CAAC,6BAA6B,CAAC;AAC5D,YAAA,MAAM,GAAG,uBAAuB,CAAC,UAAU,CAAC;KACnD;AAED,IAAA,oCAAoC,CAAC,SAAc,EAAA;AAC/C,QAAA,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC;AACnD,YAAA,OAAO,GAAG,uBAAuB,CAAC,UAAU,CAAC;AACjD,QAAA,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC;AACnD,YAAA,MAAM,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAChD,QAAA,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC;AACnD,YAAA,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC/C,QAAA,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC;AACnD,YAAA,GAAG,GAAG,uBAAuB,CAAC,UAAU,CAAC;KAChD;AAED,IAAA,+BAA+B,CAAC,SAAc,EAAA;AAC1C,QAAA,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC;AACnD,YAAA,OAAO,GAAG,uBAAuB,CAAC,UAAU,CAAC;AACjD,QAAA,SAAS,CAAC,uBAAuB,CAAC,mBAAmB,CAAC;AAClD,YAAA,MAAM,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAChD,QAAA,SAAS,CAAC,uBAAuB,CAAC,mBAAmB,CAAC;AAClD,YAAA,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC/C,QAAA,SAAS,CAAC,uBAAuB,CAAC,mBAAmB,CAAC;AAClD,YAAA,MAAM,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAChD,QAAA,SAAS,CAAC,uBAAuB,CAAC,mBAAmB,CAAC;AAClD,YAAA,GAAG,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC7C,QAAA,SAAS,CAAC,uBAAuB,CAAC,mBAAmB,CAAC;AAClD,YAAA,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC/C,QAAA,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC;AACnD,YAAA,GAAG,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC7C,QAAA,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC;AACnD,YAAA,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC/C,QAAA,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC;AACnD,YAAA,GAAG,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC7C,QAAA,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC;AACnD,YAAA,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC/C,QAAA,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC;AACnD,YAAA,GAAG,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC7C,QAAA,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC;AACnD,YAAA,GAAG,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC7C,QAAA,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC;AACnD,YAAA,GAAG,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC7C,QAAA,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC;AACnD,YAAA,IAAI,GAAG,uBAAuB,CAAC,UAAU,CAAC;KACjD;AAED,IAAA,6BAA6B,CAAC,SAAc,EAAA;;AAExC,QAAA,SAAS,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,GAAG,MAAM,CAAC;;AAGlE,QAAA,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC;;AAGlE,QAAA,SAAS,CAAC,uBAAuB,CAAC,iBAAiB,CAAC;AAChD,YAAA,OAAO,GAAG,uBAAuB,CAAC,UAAU,CAAC;AACjD,QAAA,SAAS,CAAC,uBAAuB,CAAC,gBAAgB,CAAC;AAC/C,YAAA,MAAM,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAChD,QAAA,SAAS,CAAC,uBAAuB,CAAC,gBAAgB,CAAC;AAC/C,YAAA,OAAO,GAAG,uBAAuB,CAAC,UAAU,CAAC;AACjD,QAAA,SAAS,CAAC,uBAAuB,CAAC,gBAAgB,CAAC;AAC/C,YAAA,GAAG,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC7C,QAAA,SAAS,CAAC,uBAAuB,CAAC,gBAAgB,CAAC;AAC/C,YAAA,OAAO,GAAG,uBAAuB,CAAC,UAAU,CAAC;AACjD,QAAA,SAAS,CAAC,uBAAuB,CAAC,gBAAgB,CAAC;AAC/C,YAAA,MAAM,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAChD,QAAA,SAAS,CAAC,uBAAuB,CAAC,iBAAiB,CAAC;AAChD,YAAA,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;;AAG/C,QAAA,SAAS,CAAC,uBAAuB,CAAC,mBAAmB,CAAC;AAClD,YAAA,MAAM,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAChD,QAAA,SAAS,CAAC,uBAAuB,CAAC,kBAAkB,CAAC;AACjD,YAAA,GAAG,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC7C,QAAA,SAAS,CAAC,uBAAuB,CAAC,kBAAkB,CAAC;AACjD,YAAA,MAAM,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAChD,QAAA,SAAS,CAAC,uBAAuB,CAAC,kBAAkB,CAAC;AACjD,YAAA,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC/C,QAAA,SAAS,CAAC,uBAAuB,CAAC,kBAAkB,CAAC;AACjD,YAAA,MAAM,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAChD,QAAA,SAAS,CAAC,uBAAuB,CAAC,kBAAkB,CAAC;AACjD,YAAA,GAAG,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC7C,QAAA,SAAS,CAAC,uBAAuB,CAAC,mBAAmB,CAAC;AAClD,YAAA,MAAM,GAAG,uBAAuB,CAAC,UAAU,CAAC;;AAGhD,QAAA,SAAS,CAAC,0BAA0B,CAAC,GAAG,GAAG,CAAC;AAC5C,QAAA,SAAS,CAAC,wBAAwB,CAAC,GAAG,GAAG,CAAC;AAC1C,QAAA,SAAS,CAAC,0BAA0B,CAAC,GAAG,GAAG,CAAC;KAC/C;AAED,IAAA,+BAA+B,CAAC,SAAc,EAAA;QAC1C,SAAS,CAAC,qCAAqC,CAAC;AAC5C,YAAA,MAAM,GAAG,uBAAuB,CAAC,UAAU,CAAC;QAChD,SAAS,CAAC,4BAA4B,CAAC;AACnC,YAAA,GAAG,GAAG,uBAAuB,CAAC,UAAU,CAAC;QAC7C,SAAS,CAAC,yBAAyB,CAAC;AAChC,YAAA,GAAG,GAAG,uBAAuB,CAAC,UAAU,CAAC;QAC7C,SAAS,CAAC,4BAA4B,CAAC;AACnC,YAAA,MAAM,GAAG,uBAAuB,CAAC,iBAAiB,GAAG,GAAG,CAAC;;QAG7D,SAAS,CAAC,oCAAoC,CAAC;AAC3C,YAAA,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;QAC/C,SAAS,CAAC,2BAA2B,CAAC;AAClC,YAAA,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;QAC/C,SAAS,CAAC,wBAAwB,CAAC;AAC/B,YAAA,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;QAC/C,SAAS,CAAC,2BAA2B,CAAC;AAClC,YAAA,MAAM,GAAG,uBAAuB,CAAC,gBAAgB,GAAG,GAAG,CAAC;;QAG5D,SAAS,CAAC,oCAAoC,CAAC;AAC3C,YAAA,MAAM,GAAG,uBAAuB,CAAC,UAAU,CAAC;QAChD,SAAS,CAAC,2BAA2B,CAAC;AAClC,YAAA,GAAG,GAAG,uBAAuB,CAAC,UAAU,CAAC;QAC7C,SAAS,CAAC,wBAAwB,CAAC;AAC/B,YAAA,GAAG,GAAG,uBAAuB,CAAC,UAAU,CAAC;QAC7C,SAAS,CAAC,2BAA2B,CAAC;AAClC,YAAA,MAAM,GAAG,uBAAuB,CAAC,gBAAgB,GAAG,GAAG,CAAC;;QAG5D,SAAS,CAAC,oCAAoC,CAAC;AAC3C,YAAA,GAAG,GAAG,uBAAuB,CAAC,UAAU,CAAC;QAC7C,SAAS,CAAC,2BAA2B,CAAC;AAClC,YAAA,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;QAC/C,SAAS,CAAC,wBAAwB,CAAC;AAC/B,YAAA,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;QAC/C,SAAS,CAAC,2BAA2B,CAAC;AAClC,YAAA,MAAM,GAAG,uBAAuB,CAAC,gBAAgB,GAAG,GAAG,CAAC;;QAG5D,SAAS,CAAC,oCAAoC,CAAC;AAC3C,YAAA,GAAG,GAAG,uBAAuB,CAAC,UAAU,CAAC;QAC7C,SAAS,CAAC,2BAA2B,CAAC;AAClC,YAAA,GAAG,GAAG,uBAAuB,CAAC,UAAU,CAAC;QAC7C,SAAS,CAAC,wBAAwB,CAAC;AAC/B,YAAA,GAAG,GAAG,uBAAuB,CAAC,UAAU,CAAC;QAC7C,SAAS,CAAC,2BAA2B,CAAC;AAClC,YAAA,MAAM,GAAG,uBAAuB,CAAC,gBAAgB,GAAG,GAAG,CAAC;;QAG5D,SAAS,CAAC,oCAAoC,CAAC;AAC3C,YAAA,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;QAC/C,SAAS,CAAC,2BAA2B,CAAC;AAClC,YAAA,GAAG,GAAG,uBAAuB,CAAC,UAAU,CAAC;QAC7C,SAAS,CAAC,wBAAwB,CAAC;AAC/B,YAAA,GAAG,GAAG,uBAAuB,CAAC,UAAU,CAAC;QAC7C,SAAS,CAAC,2BAA2B,CAAC;AAClC,YAAA,MAAM,GAAG,uBAAuB,CAAC,gBAAgB,GAAG,GAAG,CAAC;;KAE/D;AAED,IAAA,qCAAqC,CAAC,SAAc,EAAA;QAChD,SAAS,CACL,uBAAuB,CAAC,+BAA+B,GAAG,IAAI,CACjE,GAAG,KAAK,CAAC;QACV,SAAS,CACL,uBAAuB,CAAC,+BAA+B,GAAG,IAAI,CACjE,GAAG,MAAM,CAAC;QACX,SAAS,CACL,uBAAuB,CAAC,+BAA+B,GAAG,IAAI,CACjE,GAAG,MAAM,CAAC;KACd;AAED,IAAA,+BAA+B,CAAC,SAAc,EAAA;AAC1C,QAAA,SAAS,CAAC,uBAAuB,CAAC,wBAAwB,GAAG,IAAI,CAAC;AAC9D,YAAA,GAAG,CAAC;AACR,QAAA,SAAS,CAAC,uBAAuB,CAAC,wBAAwB,GAAG,IAAI,CAAC;AAC9D,YAAA,IAAI,CAAC;AACT,QAAA,SAAS,CAAC,uBAAuB,CAAC,wBAAwB,GAAG,IAAI,CAAC;AAC9D,YAAA,KAAK,CAAC;KACb;AAED,IAAA,+BAA+B,CAAC,SAAc,EAAA;AAC1C,QAAA,SAAS,CAAC,uBAAuB,CAAC,wBAAwB,GAAG,IAAI,CAAC;AAC9D,YAAA,KAAK,CAAC;AACV,QAAA,SAAS,CAAC,uBAAuB,CAAC,wBAAwB,GAAG,IAAI,CAAC;AAC9D,YAAA,MAAM,CAAC;AACX,QAAA,SAAS,CAAC,uBAAuB,CAAC,wBAAwB,GAAG,IAAI,CAAC;AAC9D,YAAA,KAAK,CAAC;KACb;AAED,IAAA,+BAA+B,CAAC,SAAc,EAAA;AAC1C,QAAA,SAAS,CAAC,uBAAuB,CAAC,wBAAwB,GAAG,IAAI,CAAC;AAC9D,YAAA,KAAK,CAAC;AACV,QAAA,SAAS,CAAC,uBAAuB,CAAC,wBAAwB,GAAG,IAAI,CAAC;AAC9D,YAAA,MAAM,CAAC;AACX,QAAA,SAAS,CAAC,uBAAuB,CAAC,wBAAwB,GAAG,IAAI,CAAC;AAC9D,YAAA,KAAK,CAAC;KACb;AAED,IAAA,6BAA6B,CAAC,SAAc,EAAA;QACxC,SAAS,CAAC,uBAAuB,CAAC,sBAAsB,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AACxE,QAAA,SAAS,CAAC,uBAAuB,CAAC,sBAAsB,GAAG,IAAI,CAAC;AAC5D,YAAA,KAAK,CAAC;AACV,QAAA,SAAS,CAAC,uBAAuB,CAAC,sBAAsB,GAAG,IAAI,CAAC;AAC5D,YAAA,KAAK,CAAC;KACb;AAED,IAAA,+BAA+B,CAAC,SAAc,EAAA;AAC1C,QAAA,SAAS,CAAC,uBAAuB,CAAC,wBAAwB,GAAG,IAAI,CAAC;AAC9D,YAAA,IAAI,CAAC;AACT,QAAA,SAAS,CAAC,uBAAuB,CAAC,wBAAwB,GAAG,IAAI,CAAC;AAC9D,YAAA,MAAM,CAAC;AACX,QAAA,SAAS,CAAC,uBAAuB,CAAC,wBAAwB,GAAG,IAAI,CAAC;AAC9D,YAAA,KAAK,CAAC;KACb;AAED,IAAA,sBAAsB,CAAC,SAAc,EAAA;AACjC,QAAA,SAAS,CAAC,uBAAuB,CAAC,cAAc,GAAG,IAAI,CAAC;AACpD,YAAA,MAAM,GAAG,uBAAuB,CAAC,wBAAwB,GAAG,KAAK,CAAC;AACtE,QAAA,SAAS,CAAC,uBAAuB,CAAC,cAAc,GAAG,IAAI,CAAC;AACpD,YAAA,MAAM,GAAG,uBAAuB,CAAC,wBAAwB,GAAG,KAAK,CAAC;AACtE,QAAA,SAAS,CAAC,uBAAuB,CAAC,cAAc,GAAG,IAAI,CAAC;AACpD,YAAA,MAAM,GAAG,uBAAuB,CAAC,wBAAwB,GAAG,KAAK,CAAC;KACzE;AAED,IAAA,yBAAyB,CAAC,SAAc,EAAA;AACpC,QAAA,SAAS,CAAC,uBAAuB,CAAC,iBAAiB,GAAG,IAAI,CAAC;AACvD,YAAA,MAAM,GAAG,uBAAuB,CAAC,wBAAwB,GAAG,KAAK,CAAC;AACtE,QAAA,SAAS,CAAC,uBAAuB,CAAC,iBAAiB,GAAG,IAAI,CAAC;AACvD,YAAA,MAAM,GAAG,uBAAuB,CAAC,wBAAwB,GAAG,KAAK,CAAC;AACtE,QAAA,SAAS,CAAC,uBAAuB,CAAC,iBAAiB,GAAG,IAAI,CAAC;AACvD,YAAA,MAAM,GAAG,uBAAuB,CAAC,wBAAwB,GAAG,KAAK,CAAC;KACzE;AAED,IAAA,wBAAwB,CAAC,SAAc,EAAA;AACnC,QAAA,SAAS,CAAC,uBAAuB,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACtD,YAAA,MAAM,GAAG,uBAAuB,CAAC,sBAAsB,GAAG,KAAK,CAAC;AACpE,QAAA,SAAS,CAAC,uBAAuB,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACtD,YAAA,MAAM,GAAG,uBAAuB,CAAC,sBAAsB,GAAG,KAAK,CAAC;AACpE,QAAA,SAAS,CAAC,uBAAuB,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACtD,YAAA,MAAM,GAAG,uBAAuB,CAAC,sBAAsB,GAAG,KAAK,CAAC;KACvE;AAED,IAAA,sBAAsB,CAAC,SAAc,EAAA;QACjC,SAAS,CAAC,uBAAuB,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;QACtE,SAAS,CAAC,uBAAuB,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;QACtE,SAAS,CAAC,uBAAuB,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,KAAK,CAAC;KACzE;AAED,IAAA,8BAA8B,CAAC,SAAc,EAAA;;AAEzC,QAAA,IAAI,CAAC,qCAAqC,CAAC,SAAS,CAAC,CAAC;;AAEtD,QAAA,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;;AAEhD,QAAA,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;;AAEhD,QAAA,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;;AAEhD,QAAA,IAAI,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC;;AAE9C,QAAA,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;;AAGhD,QAAA,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;;AAEvC,QAAA,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC;;AAE1C,QAAA,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,CAAC;;AAGzC,QAAA,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;KAC1C;AAED,IAAA,+BAA+B,CAAC,SAAc,EAAA;QAC1C,MAAM,UAAU,GAAG,GAAG,CAAC;AACvB,QAAA,SAAS,CAAC,uBAAuB,CAAC,sBAAsB,CAAC,GAAG,UAAU,CAAC;QAEvE,MAAM,QAAQ,GAAG,sBAAsB,CAAC;AACxC,QAAA,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,GAAG,QAAQ,CAAC;QAEnE,MAAM,QAAQ,GAAG,oBAAoB,CAAC;AACtC,QAAA,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,GAAG,QAAQ,CAAC;QAEnE,MAAM,QAAQ,GAAG,iBAAiB,CAAC;AACnC,QAAA,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,GAAG,QAAQ,CAAC;QAEnE,MAAM,QAAQ,GAAG,eAAe,CAAC;AACjC,QAAA,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,GAAG,QAAQ,CAAC;QAEnE,MAAM,QAAQ,GAAG,eAAe,CAAC;AACjC,QAAA,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,CAAC,GAAG,QAAQ,CAAC;KACtE;AAED,IAAA,yCAAyC,CAAC,SAAc,EAAA;QACpD,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,QAAA,SAAS,CAAC,uBAAuB,CAAC,qBAAqB,CAAC;AACpD,YAAA,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC/C,QAAA,SAAS,CAAC,uBAAuB,CAAC,2BAA2B,CAAC;AAC1D,YAAA,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC/C,QAAA,SAAS,CAAC,uBAAuB,CAAC,iBAAiB,CAAC;AAChD,YAAA,gBAAgB,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC1D,QAAA,SAAS,CAAC,uBAAuB,CAAC,uBAAuB,CAAC;AACtD,YAAA,gBAAgB,GAAG,uBAAuB,CAAC,UAAU,CAAC;KAC7D;AAED,IAAA,yCAAyC,CAAC,SAAc,EAAA;AACpD,QAAA,SAAS,CAAC,uBAAuB,CAAC,qBAAqB,CAAC;AACpD,YAAA,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC/C,QAAA,SAAS,CAAC,uBAAuB,CAAC,iBAAiB,CAAC;AAChD,YAAA,MAAM,GAAG,uBAAuB,CAAC,mBAAmB,GAAG,GAAG,CAAC;AAE/D,QAAA,SAAS,CAAC,uBAAuB,CAAC,sBAAsB,CAAC;AACrD,YAAA,MAAM,GAAG,uBAAuB,CAAC,oBAAoB,GAAG,GAAG,CAAC;AAChE,QAAA,SAAS,CAAC,uBAAuB,CAAC,sBAAsB,CAAC;AACrD,YAAA,MAAM,GAAG,uBAAuB,CAAC,oBAAoB,GAAG,GAAG,CAAC;KACnE;AAED,IAAA,0CAA0C,CAAC,SAAc,EAAA;AACrD,QAAA,SAAS,CAAC,uBAAuB,CAAC,sBAAsB,CAAC;AACrD,YAAA,GAAG,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC7C,QAAA,SAAS,CAAC,uBAAuB,CAAC,kBAAkB,CAAC;AACjD,YAAA,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC;AAC/C,QAAA,SAAS,CAAC,uBAAuB,CAAC,uBAAuB,CAAC;AACtD,YAAA,MAAM,GAAG,uBAAuB,CAAC,oBAAoB,GAAG,GAAG,CAAC;KACnE;AAED,IAAA,uCAAuC,CAAC,SAAc,EAAA;QAClD,MAAM,OAAO,GAAiB,SAAS,CAAC;AACxC,QAAA,SAAS,CAAC,uBAAuB,CAAC,YAAY,CAAC,GAAG,OAAO,CAAC;AAE1D,QAAA,SAAS,CAAC,uBAAuB,CAAC,YAAY,GAAG,IAAI,CAAC;AAClD,YAAA,MAAM,GAAG,uBAAuB,CAAC,wBAAwB,GAAG,KAAK,CAAC;AACtE,QAAA,SAAS,CAAC,uBAAuB,CAAC,YAAY,GAAG,IAAI,CAAC;AAClD,YAAA,MAAM,GAAG,uBAAuB,CAAC,wBAAwB,GAAG,KAAK,CAAC;AACtE,QAAA,SAAS,CAAC,uBAAuB,CAAC,YAAY,GAAG,IAAI,CAAC;AAClD,YAAA,MAAM,GAAG,uBAAuB,CAAC,wBAAwB,GAAG,KAAK,CAAC;KACzE;AAED,IAAA,8CAA8C,CAAC,SAAc,EAAA;QACzD,MAAM,cAAc,GAAiB,QAAQ,CAAC;AAC9C,QAAA,SAAS,CACL,uBAAuB,CAAC,oBAAoB,CAC/C,GAAG,cAAc,CAAC;QAEnB,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACpE,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACpE,SAAS,CAAC,uBAAuB,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;KACvE;;;;;IAOD,wBAAwB,GAAA;QACpB,MAAM,SAAS,GAAG,EAAE,CAAC;;AAGrB,QAAA,IAAI,CAAC,8BAA8B,CAAC,SAAS,CAAC,CAAC;;AAG/C,QAAA,IAAI,CAAC,oCAAoC,CAAC,SAAS,CAAC,CAAC;;AAGrD,QAAA,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;;AAGhD,QAAA,IAAI,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC;;AAG9C,QAAA,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;;AAGhD,QAAA,IAAI,CAAC,8BAA8B,CAAC,SAAS,CAAC,CAAC;;AAG/C,QAAA,IAAI,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;;AAGhD,QAAA,IAAI,CAAC,yCAAyC,CAAC,SAAS,CAAC,CAAC;;AAG1D,QAAA,IAAI,CAAC,yCAAyC,CAAC,SAAS,CAAC,CAAC;;AAG1D,QAAA,IAAI,CAAC,0CAA0C,CAAC,SAAS,CAAC,CAAC;;AAG3D,QAAA,IAAI,CAAC,uCAAuC,CAAC,SAAS,CAAC,CAAC;;AAGxD,QAAA,IAAI,CAAC,8CAA8C,CAAC,SAAS,CAAC,CAAC;;;AAK/D,QAAA,OAAO,SAAS,CAAC;KACpB;IAED,iBAAiB,GAAA;AACb,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;AAC5C,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAC3C,uBAAuB,CAAC,oBAAoB,CAC/C,CAAC;;AAGF,QAAA,IAAI,SAAS,EAAE;AACX,YAAA,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE;gBACzB,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AAC7B,aAAA;AACJ,SAAA;AAED,QAAA,OAAO,GAAG,CAAC;KACd;IAED,iBAAiB,CAAC,mBAAmB,GAAG,IAAI,EAAA;AACxC,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;;AAGhD,QAAA,IAAI,mBAAmB,EAAE;AACrB,YAAA,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE;gBACnC,cAAc,CAAC,GAAG,CAAC,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;AAClD,aAAA;AACJ,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CACzB,uBAAuB,CAAC,oBAAoB,EAC5C,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CACjC,CAAC;AAEF,QAAA,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE;AAC9B,YAAA,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE;AACxB,gBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AAC5D,aAAA;AAAM,iBAAA;AACH,gBAAA,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CACtC,GAAG,EACH,cAAc,CAAC,GAAG,CAAC,CACtB,CAAC;AACL,aAAA;AACJ,SAAA;KACJ;AAED,IAAA,YAAY,CAAC,GAAW,EAAA;QACpB,IAAI,GAAG,GAAG,KAAK,CAAC;AAEhB,QAAA,IACI,GAAG,KAAK,uBAAuB,CAAC,gCAAgC;YAChE,GAAG,KAAK,uBAAuB,CAAC,8BAA8B;YAC9D,GAAG,KAAK,uBAAuB,CAAC,+BAA+B;AAC/D,YAAA,GAAG,KAAK,uBAAuB,CAAC,6BAA6B,EAC/D;YACE,GAAG,GAAG,IAAI,CAAC;AACd,SAAA;AAED,QAAA,OAAO,GAAG,CAAC;KACd;AAED,IAAA,gBAAgB,CAAC,GAAW,EAAA;AACxB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAE3C,QAAA,IAAI,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AAC/B,YAAA,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;AACzB,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,EAAE,CAAC;AACb,SAAA;KACJ;IAED,sBAAsB,CAAC,SAAS,EAAE,GAAW,EAAA;QACzC,IAAI,SAAS,IAAI,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;;YAE5C,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACtC,gBAAA,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAChD,aAAA;AAED,YAAA,MAAM,GAAG,GAAG,MAAM,CACd,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC,UAAU,EAAE,EAAE,CAAC,CACjE,CAAC;AACF,YAAA,OAAO,GAAG,CAAC;AACd,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,CAAC,CAAC;AACZ,SAAA;KACJ;AAEO,IAAA,eAAe,CAAC,MAAM,EAAA;QAC1B,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE;;YAEzC,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAClC,EAAE,CAAC,CAAC,CAAC;AACT,SAAA;AACD,QAAA,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CACtC,uBAAuB,CAAC,iBAAiB,EACzC,MAAM,GAAG,uBAAuB,CAAC,UAAU,CAC9C,CAAC;KACL;IAED,UAAU,GAAA;AACN,QAAA,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;KAC3B;IAED,UAAU,GAAA;AACN,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE3C,MAAM,GAAG,GACL,IAAI,CAAC,sBAAsB,CACvB,SAAS,EACT,uBAAuB,CAAC,0BAA0B,CACrD;YACD,IAAI,CAAC,sBAAsB,CACvB,SAAS,EACT,uBAAuB,CAAC,6BAA6B,CACxD;YACD,IAAI,CAAC,sBAAsB,CACvB,SAAS,EACT,uBAAuB,CAAC,wBAAwB,CACnD,CAAC;AAEN,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;KAC7B;AAEO,IAAA,gBAAgB,CAAC,KAAK,EAAA;QAC1B,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE;;YAEzC,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAClC,EAAE,CAAC,CAAC,CAAC;AACT,SAAA;AACD,QAAA,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CACtC,uBAAuB,CAAC,kBAAkB,EAC1C,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAC7C,CAAC;KACL;IAED,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;KAC5B;IAED,YAAY,GAAA;AACR,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAE3C,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,sBAAsB,CACnC,SAAS,EACT,uBAAuB,CAAC,kBAAkB,CAC7C,CAAC;AAEF,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;KAC9B;IAED,eAAe,GAAA;AACX,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE3C,MAAM,GAAG,GACL,IAAI,CAAC,sBAAsB,CACvB,SAAS,EACT,uBAAuB,CAAC,uBAAuB,CAClD;YACD,IAAI,CAAC,sBAAsB,CACvB,SAAS,EACT,uBAAuB,CAAC,0BAA0B,CACrD;YACD,IAAI,CAAC,sBAAsB,CACvB,SAAS,EACT,uBAAuB,CAAC,wBAAwB,CACnD,CAAC;AAEN,QAAA,OAAO,GAAG,CAAC;KACd;AAED,IAAA,eAAe,CAAC,GAAQ,EAAA;;AAEpB,QAAA,MAAM,QAAQ,GAAG;AACb,YAAA,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,eAAe;SACtC,CAAC;AAEF,QAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CACzB,uBAAuB,CAAC,UAAU,EAClC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC3B,CAAC;AAEF,QAAA,IAAI,YAAY,CAAC;AACjB,QAAA,IAAI,iBAAiB,CAAC;QAEtB,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;AAC1C,YAAA,YAAY,GAAG,uBAAuB,CAAC,qBAAqB,CAAC;YAC7D,iBAAiB,GAAG,MAAM,CAAC;AAC9B,SAAA;AAAM,aAAA;AACH,YAAA,YAAY,GAAG,GAAG,CAAC,iBAAiB,CAAC;AACrC,YAAA,iBAAiB,GAAG,uBAAuB,CAAC,sBAAsB,CAAC;AACtE,SAAA;AAED,QAAA,MAAM,KAAK,GAAG;YACV,sBAAsB,EAAE,GAAG,CAAC,sBAAsB;YAClD,iBAAiB,EAAE,GAAG,CAAC,iBAAiB;AACxC,YAAA,iBAAiB,EAAE,iBAAiB;AACpC,YAAA,YAAY,EAAE,YAAY;SAC7B,CAAC;AAEF,QAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CACzB,uBAAuB,CAAC,UAAU,EAClC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CACxB,CAAC;AAEF,QAAA,IAAI,CAAC,eAAe;AAChB,YAAA,GAAG,CAAC,cAAc;AACd,gBAAA,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;AAC7B,gBAAA,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE;AAC5B,kBAAE,IAAI;kBACJ,KAAK,CAAC;AAChB,QAAA,IAAI,CAAC,iBAAiB;YAClB,GAAG,CAAC,QAAQ,KAAK,OAAO;AACxB,gBAAA,GAAG,CAAC,cAAc;AAClB,gBAAA,GAAG,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;AAC7B,gBAAA,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;KACpC;IAED,aAAa,GAAA;AACT,QAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB,CACrD,uBAAuB,CAAC,oBAAoB,GAAG,IAAI,CACtD,CAAC;AACF,QAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB,CACrD,uBAAuB,CAAC,oBAAoB,GAAG,IAAI,CACtD,CAAC;AACF,QAAA,MAAM,CAAC,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB,CACrD,uBAAuB,CAAC,oBAAoB,GAAG,IAAI,CACtD,CAAC;QAEF,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;KACzB;IAED,sBAAsB,GAAA;QAClB,IAAI,YAAY,GAAG,EAAE,CAAC;AAEtB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACtB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CACvC,uBAAuB,CAAC,UAAU,CACrC,CAAC;AAEF,YAAA,IAAI,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE;AAC7B,gBAAA,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;AACrC,aAAA;AAAM,iBAAA;AACH,gBAAA,YAAY,GAAG,uBAAuB,CAAC,qBAAqB,CAAC;AAChE,aAAA;AACJ,SAAA;AAED,QAAA,OAAO,YAAY,CAAC;KACvB;IAED,oBAAoB,GAAA;QAChB,IAAI,iBAAiB,GAAG,EAAE,CAAC;AAE3B,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;AACtB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CACvC,uBAAuB,CAAC,UAAU,CACrC,CAAC;AAEF,YAAA,IAAI,KAAK,IAAI,KAAK,CAAC,iBAAiB,EAAE;AAClC,gBAAA,iBAAiB,GAAG,KAAK,CAAC,iBAAiB,CAAC;AAC/C,aAAA;AAAM,iBAAA;gBACH,iBAAiB;oBACb,uBAAuB,CAAC,sBAAsB,CAAC;AACtD,aAAA;AACJ,SAAA;AAED,QAAA,OAAO,iBAAiB,CAAC;KAC5B;AAED,IAAA,YAAY,CAAC,QAAQ,EAAA;QACjB,IAAI,CAAC,QAAQ,EAAE;YACX,OAAO;AACV,SAAA;QAED,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,MAAM,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAErC,QAAA,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAChC,QAAA,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACjC,QAAA,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAEjC,IAAI,GAAG,GAAG,KAAK,EAAE;;YAEb,QAAQ,GAAG,IAAI,CAAC;AACnB,SAAA;AAED,QAAA,OAAO,QAAQ,CAAC;KACnB;;AAjgCM,uBAA4B,CAAA,4BAAA,GAAG,WAAW,CAAC;AAC3C,uBAAuC,CAAA,uCAAA,GAAG,sBAAsB,CAAC;AAEjE,uBAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AACnB,uBAAS,CAAA,SAAA,GAAG,IAAI,CAAC;AACjB,uBAAU,CAAA,UAAA,GAAG,YAAY,CAAC;AAC1B,uBAAU,CAAA,UAAA,GAAG,YAAY,CAAC;AAC1B,uBAAoB,CAAA,oBAAA,GAAG,sBAAsB,CAAC;AAErD;AACO,uBAAiB,CAAA,iBAAA,GAAG,qBAAqB,CAAC;AAEjD;AACO,uBAAkB,CAAA,kBAAA,GAAG,sBAAsB,CAAC;AAEnD;AACO,uBAAkB,CAAA,kBAAA,GAAG,0BAA0B,CAAC;AAEvD;AACO,uBAAuB,CAAA,uBAAA,GAAG,2BAA2B,CAAC;AACtD,uBAA0B,CAAA,0BAAA,GAAG,8BAA8B,CAAC;AAC5D,uBAAwB,CAAA,wBAAA,GAAG,4BAA4B,CAAC;AAE/D;AACO,uBAAiB,CAAA,iBAAA,GAAG,yBAAyB,CAAC;AAC9C,uBAA0B,CAAA,0BAAA,GAAG,8BAA8B,CAAC;AAC5D,uBAA6B,CAAA,6BAAA,GAAG,iCAAiC,CAAC;AAEzE;AACO,uBAAe,CAAA,eAAA,GAAG,mBAAmB,CAAC;AAE7C;AACO,uBAAsB,CAAA,sBAAA,GAAG,0BAA0B,CAAC;AACpD,uBAAwB,CAAA,wBAAA,GAAG,4BAA4B,CAAC;AACxD,uBAA+B,CAAA,+BAAA,GAClC,mCAAmC,CAAC;AACjC,uBAAwB,CAAA,wBAAA,GAAG,4BAA4B,CAAC;AACxD,uBAAmB,CAAA,mBAAA,GAAG,uBAAuB,CAAC;AAC9C,uBAAwB,CAAA,wBAAA,GAAG,4BAA4B,CAAC;AACxD,uBAAwB,CAAA,wBAAA,GAAG,4BAA4B,CAAC;AACxD,uBAAgB,CAAA,gBAAA,GAAG,oBAAoB,CAAC;AACxC,uBAAiB,CAAA,iBAAA,GAAG,qBAAqB,CAAC;AAC1C,uBAAc,CAAA,cAAA,GAAG,kBAAkB,CAAC;AAE3C;AACO,uBAAoB,CAAA,oBAAA,GAAG,wBAAwB,CAAC;AAChD,uBAAoB,CAAA,oBAAA,GAAG,wBAAwB,CAAC;AAEvD;AACO,uBAAY,CAAA,YAAA,GAAG,gBAAgB,CAAC;AAChC,uBAAY,CAAA,YAAA,GAAG,gBAAgB,CAAC;AAEvC;AACO,uBAAqB,CAAA,qBAAA,GAAG,yBAAyB,CAAC;AAClD,uBAAgC,CAAA,gCAAA,GACnC,oCAAoC,CAAC;AAClC,uBAA8B,CAAA,8BAAA,GAAG,kCAAkC,CAAC;AACpE,uBAAoB,CAAA,oBAAA,GAAG,wBAAwB,CAAC;AAChD,uBAA+B,CAAA,+BAAA,GAClC,mCAAmC,CAAC;AACjC,uBAA6B,CAAA,6BAAA,GAAG,iCAAiC,CAAC;AAEzE;AACO,uBAAiB,CAAA,iBAAA,GAAG,qBAAqB,CAAC;AAC1C,uBAAA,CAAA,oBAAoB,GACvB,uBAAuB,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/C,uBAAA,CAAA,oBAAoB,GACvB,uBAAuB,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/C,uBAAA,CAAA,oBAAoB,GACvB,uBAAuB,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/C,uBAAA,CAAA,oBAAoB,GACvB,uBAAuB,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAEtD;AACO,uBAAiB,CAAA,iBAAA,GAAG,qBAAqB,CAAC;AAC1C,uBAAgB,CAAA,gBAAA,GAAG,oBAAoB,CAAC;AACxC,uBAAgB,CAAA,gBAAA,GAAG,oBAAoB,CAAC;AACxC,uBAAgB,CAAA,gBAAA,GAAG,oBAAoB,CAAC;AACxC,uBAAgB,CAAA,gBAAA,GAAG,oBAAoB,CAAC;AACxC,uBAAgB,CAAA,gBAAA,GAAG,oBAAoB,CAAC;AACxC,uBAAiB,CAAA,iBAAA,GAAG,qBAAqB,CAAC;AAEjD;AACO,uBAAmB,CAAA,mBAAA,GAAG,uBAAuB,CAAC;AAC9C,uBAAkB,CAAA,kBAAA,GAAG,sBAAsB,CAAC;AAC5C,uBAAkB,CAAA,kBAAA,GAAG,sBAAsB,CAAC;AAC5C,uBAAkB,CAAA,kBAAA,GAAG,sBAAsB,CAAC;AAC5C,uBAAkB,CAAA,kBAAA,GAAG,sBAAsB,CAAC;AAC5C,uBAAkB,CAAA,kBAAA,GAAG,sBAAsB,CAAC;AAC5C,uBAAmB,CAAA,mBAAA,GAAG,uBAAuB,CAAC;AAErD;AACO,uBAAsB,CAAA,sBAAA,GAAG,0BAA0B,CAAC;AACpD,uBAAoB,CAAA,oBAAA,GAAG,wBAAwB,CAAC;AAChD,uBAAoB,CAAA,oBAAA,GAAG,wBAAwB,CAAC;AAChD,uBAAoB,CAAA,oBAAA,GAAG,wBAAwB,CAAC;AAChD,uBAAoB,CAAA,oBAAA,GAAG,wBAAwB,CAAC;AAChD,uBAAoB,CAAA,oBAAA,GAAG,wBAAwB,CAAC;AAEvD;AACO,uBAAoB,CAAA,oBAAA,GAAG,mBAAmB,CAAC;AAC3C,uBAAmB,CAAA,mBAAA,GAAG,kBAAkB,CAAC;AACzC,uBAAmB,CAAA,mBAAA,GAAG,kBAAkB,CAAC;AACzC,uBAAmB,CAAA,mBAAA,GAAG,kBAAkB,CAAC;AACzC,uBAAmB,CAAA,mBAAA,GAAG,kBAAkB,CAAC;AACzC,uBAAmB,CAAA,mBAAA,GAAG,kBAAkB,CAAC;AACzC,uBAAoB,CAAA,oBAAA,GAAG,mBAAmB,CAAC;AAC3C,uBAAoB,CAAA,oBAAA,GAAG,mBAAmB,CAAC;AAC3C,uBAAoB,CAAA,oBAAA,GAAG,mBAAmB,CAAC;AAC3C,uBAAoB,CAAA,oBAAA,GAAG,mBAAmB,CAAC;AAC3C,uBAAoB,CAAA,oBAAA,GAAG,mBAAmB,CAAC;AAC3C,uBAAoB,CAAA,oBAAA,GAAG,mBAAmB,CAAC;AAC3C,uBAAoB,CAAA,oBAAA,GAAG,mBAAmB,CAAC;AAC3C,uBAAoB,CAAA,oBAAA,GAAG,mBAAmB,CAAC;AAElD;AACO,uBAAqB,CAAA,qBAAA,GAAG,yBAAyB,CAAC;AAClD,uBAA2B,CAAA,2BAAA,GAAG,+BAA+B,CAAC;AAC9D,uBAAuB,CAAA,uBAAA,GAAG,0BAA0B,CAAC;AACrD,uBAAiB,CAAA,iBAAA,GAAG,oBAAoB,CAAC;AAEhD;AACO,uBAAqB,CAAA,qBAAA,GAAG,yBAAyB,CAAC;AAClD,uBAAiB,CAAA,iBAAA,GAAG,oBAAoB,CAAC;AACzC,uBAAsB,CAAA,sBAAA,GAAG,0BAA0B,CAAC;AACpD,uBAAsB,CAAA,sBAAA,GAAG,0BAA0B,CAAC;AAE3D;AACO,uBAAsB,CAAA,sBAAA,GAAG,0BAA0B,CAAC;AACpD,uBAAkB,CAAA,kBAAA,GAAG,qBAAqB,CAAC;AAC3C,uBAAuB,CAAA,uBAAA,GAAG,2BAA2B,CAAC;AAE7D;AACA;AACA;AAEO,uBAAA,CAAA,qBAAqB,GAAG,EAAE,CAAC;AAE3B,uBAAqB,CAAA,qBAAA,GAAG,SAAS,CAAC;AAClC,uBAAsB,CAAA,sBAAA,GAAG,MAAM,CAAC;oHA5I9B,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFpB,MAAM,EAAA,CAAA,CAAA;2FAET,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCQY,qBAAqB,CAAA;IAO9B,WACY,CAAA,QAAmB,EACnB,OAAmB,EACnB,gBAAqC,EACrC,oBAA6C,EACf,QAAa,EAAA;QAJ3C,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QACnB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAqB;QACrC,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAyB;QACf,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAK;QAX9C,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;QACnB,IAAW,CAAA,WAAA,GAAG,MAAM,CAAC;QACrB,IAAY,CAAA,YAAA,GAAG,SAAS,CAAC;KAU9B;IAEJ,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACnB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,oBAAoB,EAAE,sBAAsB,EAAE,CAAC;AAC1E,SAAA;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,OAAO,GACT,6uCAA6uC,CAAC;AAClvC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CACxD,IAAI,CAAC,QAAQ,EACb,OAAO,CACV,CAAC;QAEF,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;KACvE;IAEO,WAAW,GAAA;AACf,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACtE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,iBAAiB,EACjB,QAAQ,CACX,CAAC;AACF,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,IAAI,CAAC,OAAO,CAAC,aAAa,EAC1B,aAAa,EACb,QAAQ,CACX,CAAC;KACL;IAEO,YAAY,GAAA;QAChB,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACpE,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AAChE,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;KAClD;;AAvDQ,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,yIAYN,QAAQ,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;sGAZvB,qBAAqB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,gBAAgB;AAC7B,iBAAA,CAAA;;0BAaQ,QAAQ;;0BAAI,MAAM;2BAAC,QAAQ,CAAA;4CAXvB,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;;;MCfG,gBAAgB,CAAA;AAGzB,IAAA,WAAA,GAAA;AACI,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAC;KACtD;IAED,SAAS,CAAC,UAAkB,EAAE,aAA+B,EAAA;QACzD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;KAC/C;IAED,MAAM,CAAC,UAAkB,EAAE,QAA0B,EAAA;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAE1C,QAAA,IAAI,MAAM,EAAE;AACR,YAAA,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AACvC,SAAA;KACJ;AAED,IAAA,KAAK,CAAC,UAAkB,EAAA;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;AAE1C,QAAA,IAAI,MAAM,EAAE;YACR,MAAM,CAAC,KAAK,EAAE,CAAC;AAClB,SAAA;KACJ;AAEO,IAAA,SAAS,CAAC,UAAkB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;cAC7B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;cAC5B,IAAI,CAAC;KACd;;6GA/BQ,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA;2FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCQY,kBAAkB,CAAA;IAG3B,WACY,CAAA,aAA+B,EAC/B,WAA6B,EAAA;QAD7B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QAC/B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;KACrC;IAEJ,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;KAChE;IAED,WAAW,GAAA;QACP,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC7C;;+GAdQ,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,CAAA,WAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;AAC1B,iBAAA,CAAA;8HAEuB,UAAU,EAAA,CAAA;sBAA7B,KAAK;uBAAC,WAAW,CAAA;;;MCPT,kBAAkB,CAAA;IAG3B,WACY,CAAA,aAA+B,EAC/B,aAA+B,EAAA;QAD/B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QAC/B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;KACvC;IAEJ,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;KACrE;;+GAVQ,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,CAAA,WAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;AAC1B,iBAAA,CAAA;mIAEuB,UAAU,EAAA,CAAA;sBAA7B,KAAK;uBAAC,WAAW,CAAA;;;ACPtB;MAOa,mBAAmB,CAAA;;gHAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFhB,MAAM,EAAA,CAAA,CAAA;2FAET,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACND;;AAEG;;ACFH;;AAEG;;ACFH;;AAEG;;ACFH;;AAEG;;MCFU,IAAI,CAAA;AAAG;;MCAP,OAAO,CAAA;IACR,OAAO,IAAI,CAAC,GAAW,EAAA;QAC3B,IAAI,GAAG,GAAW,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACnC,QAAA,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AACnB,YAAA,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AACnB,SAAA;AACD,QAAA,OAAO,GAAG,CAAC;KACd;AAEO,IAAA,OAAO,OAAO,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,OAAO,CAAC;aAC3C,QAAQ,CAAC,EAAE,CAAC;aACZ,SAAS,CAAC,CAAC,CAAC,CAAC;KACrB;AAEM,IAAA,OAAO,OAAO,GAAA;;;;;;;;QASjB,IACI,OAAO,MAAM,KAAK,WAAW;AAC7B,YAAA,OAAO,MAAM,CAAC,MAAM,KAAK,WAAW;AACpC,YAAA,OAAO,MAAM,CAAC,MAAM,CAAC,eAAe,KAAK,WAAW,EACtD;AACE,YAAA,MAAM,GAAG,GAAgB,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;AAC5C,YAAA,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YACnC,QACI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjB,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjB,GAAG;AACH,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjB,GAAG;AACH,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjB,GAAG;AACH,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjB,GAAG;AACH,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjB,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACnB;AACL,SAAA;AAAM,aAAA;;AAEH,YAAA,QACI,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,OAAO,EAAE;gBACd,GAAG;gBACH,IAAI,CAAC,OAAO,EAAE;gBACd,GAAG;gBACH,IAAI,CAAC,OAAO,EAAE;gBACd,GAAG;gBACH,IAAI,CAAC,OAAO,EAAE;gBACd,GAAG;gBACH,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,OAAO,EAAE;AACd,gBAAA,IAAI,CAAC,OAAO,EAAE,EAChB;AACL,SAAA;KACJ;AACJ;;IC/DW,WA4EX;AA5ED,CAAA,UAAY,UAAU,EAAA;;AAElB,IAAA,UAAA,CAAA,UAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAa,CAAA;AACb,IAAA,UAAA,CAAA,UAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAa,CAAA;AACb,IAAA,UAAA,CAAA,UAAA,CAAA,sBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,sBAA0B,CAAA;;AAE1B,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAc,CAAA;AACd,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAgB,CAAA;;AAEhB,IAAA,UAAA,CAAA,UAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAU,CAAA;;AAEV,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAiB,CAAA;;AAEjB,IAAA,UAAA,CAAA,UAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAmB,CAAA;;AAEnB,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAgB,CAAA;;AAEhB,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAc,CAAA;;AAEd,IAAA,UAAA,CAAA,UAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAc,CAAA;;AAEd,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAe,CAAA;;AAEf,IAAA,UAAA,CAAA,UAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAmB,CAAA;;AAEnB,IAAA,UAAA,CAAA,UAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAgB,CAAA;;AAEhB,IAAA,UAAA,CAAA,UAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAc,CAAA;;AAEd,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAiB,CAAA;AACjB,IAAA,UAAA,CAAA,UAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAoB,CAAA;AACpB,IAAA,UAAA,CAAA,UAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAmB,CAAA;;AAEnB,IAAA,UAAA,CAAA,UAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAY,CAAA;AACZ,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAkB,CAAA;;AAElB,IAAA,UAAA,CAAA,UAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAY,CAAA;AACZ,IAAA,UAAA,CAAA,UAAA,CAAA,wBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,wBAA6B,CAAA;AAC7B,IAAA,UAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAwB,CAAA;AACxB,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAa,CAAA;;AAEb,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAiB,CAAA;AACjB,IAAA,UAAA,CAAA,UAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAgB,CAAA;;AAEhB,IAAA,UAAA,CAAA,UAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAW,CAAA;;AAEX,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAe,CAAA;AACf,IAAA,UAAA,CAAA,UAAA,CAAA,+BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,+BAAoC,CAAA;AACpC,IAAA,UAAA,CAAA,UAAA,CAAA,4BAAA,CAAA,GAAA,EAAA,CAAA,GAAA,4BAAiC,CAAA;AACjC,IAAA,UAAA,CAAA,UAAA,CAAA,wBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,wBAA6B,CAAA;AAC7B,IAAA,UAAA,CAAA,UAAA,CAAA,qBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,qBAA0B,CAAA;AAC1B,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAa,CAAA;AACb,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAiB,CAAA;AACjB,IAAA,UAAA,CAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAqB,CAAA;AACrB,IAAA,UAAA,CAAA,UAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAoB,CAAA;AACpB,IAAA,UAAA,CAAA,UAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,kBAAuB,CAAA;AACvB,IAAA,UAAA,CAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAqB,CAAA;AACrB,IAAA,UAAA,CAAA,UAAA,CAAA,gBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,gBAAqB,CAAA;AACrB,IAAA,UAAA,CAAA,UAAA,CAAA,iBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,iBAAsB,CAAA;AACtB,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAkB,CAAA;AAClB,IAAA,UAAA,CAAA,UAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAoB,CAAA;AACpB,IAAA,UAAA,CAAA,UAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAiB,CAAA;AACjB,IAAA,UAAA,CAAA,UAAA,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAU,CAAA;AACV,IAAA,UAAA,CAAA,UAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAY,CAAA;AACZ,IAAA,UAAA,CAAA,UAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAgB,CAAA;AAChB,IAAA,UAAA,CAAA,UAAA,CAAA,qBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,qBAA0B,CAAA;AAC1B,IAAA,UAAA,CAAA,UAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAoB,CAAA;AACpB,IAAA,UAAA,CAAA,UAAA,CAAA,mBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,mBAAwB,CAAA;AACxB,IAAA,UAAA,CAAA,UAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAa,CAAA;AACb,IAAA,UAAA,CAAA,UAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAmB,CAAA;AACnB,IAAA,UAAA,CAAA,UAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAe,CAAA;AACf,IAAA,UAAA,CAAA,UAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAoB,CAAA;AACpB,IAAA,UAAA,CAAA,UAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAc,CAAA;AACd,IAAA,UAAA,CAAA,UAAA,CAAA,qBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,qBAA0B,CAAA;AAC1B,IAAA,UAAA,CAAA,UAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAkB,CAAA;AAClB,IAAA,UAAA,CAAA,UAAA,CAAA,cAAA,CAAA,GAAA,EAAA,CAAA,GAAA,cAAmB,CAAA;AACvB,CAAC,EA5EW,UAAU,KAAV,UAAU,GA4ErB,EAAA,CAAA,CAAA,CAAA;IAEW,iBAKX;AALD,CAAA,UAAY,gBAAgB,EAAA;AACxB,IAAA,gBAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,gBAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,gBAAA,CAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,gBAAA,CAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACd,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,GAK3B,EAAA,CAAA,CAAA,CAAA;IAEW,iBAKX;AALD,CAAA,UAAY,gBAAgB,EAAA;AACxB,IAAA,gBAAA,CAAA,gBAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,gBAAA,CAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;AACP,IAAA,gBAAA,CAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACV,IAAA,gBAAA,CAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACd,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,GAK3B,EAAA,CAAA,CAAA,CAAA;MAEY,WAAW,CAAA;;;;;;;;;;;;;AAsBpB,IAAA,WAAA,CAAY,IAA0B,EAAA;AAClC,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KAC7B;AACJ,CAAA;MAEY,cAAc,CAAA;AAA3B,IAAA,WAAA,GAAA;QAEI,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;QACvB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QAuBlB,IAAa,CAAA,aAAA,GAAG,EAAE,CAAC;QACnB,IAAe,CAAA,eAAA,GAAG,EAAE,CAAC;QACrB,IAA0B,CAAA,0BAAA,GAAG,MAAM,CAAC;QACpC,IAAqB,CAAA,qBAAA,GAAG,MAAM,CAAC;KAClC;AAAA,CAAA;MAEY,SAAS,CAAA;AAMrB,CAAA;MAEY,kBAAkB,CAAA;AAsB9B,CAAA;MAEY,cAAc,CAAA;AAA3B,IAAA,WAAA,GAAA;QAKI,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;QAClB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAsB,CAAA,sBAAA,GAAG,IAAI,CAAC;KAMjC;AAAA,CAAA;MAEY,gBAAgB,CAAA;AASzB,IAAA,WAAA,CAAY,SAAuB,GAAA,IAAI,EAAE,IAAA,GAAuB,IAAI,EAAA;AAChE,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AAEf,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC3B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;KACpB;AACJ,CAAA;MAEY,WAAW,CAAA;;;;AAepB,IAAA,WAAA,GAAA;AACI,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;;;KAGvB;AACJ,CAAA;MAEY,iBAAiB,CAAA;AAM7B,CAAA;MAEY,mBAAmB,CAAA;AAM/B,CAAA;MAEY,YAAY,CAAA;AAGxB;;ACnQD;;AAEG;;ACFH;;AAEG;;ACFH;;AAEG;;ACFH;;AAEG;;MCUU,gBAAgB,CAAA;IAGzB,WAC0C,CAAA,QAAa,EACtB,UAA+B,EAAA;QADtB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAK;QACtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAqB;QAE5D,IAAI,CAAC,oBAAoB,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAClE;AAED;;;AAGG;AACH,IAAA,KAAK,CAAC,IAAY,EAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC5B,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;AAED,QAAA,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAEhC,MAAM,MAAM,GAAW,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAClD,QAAA,MAAM,MAAM,GAAY,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAE1D,QAAA,OAAO,MAAM,CAAC;KACjB;AAED;;;AAGG;AACH,IAAA,GAAG,CAAC,IAAY,EAAA;QACZ,IAAI,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;AAC/C,YAAA,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;YAEhC,MAAM,MAAM,GAAW,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAClD,YAAA,MAAM,MAAM,GAAoB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAElE,OAAO,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACjD,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,EAAE,CAAC;AACb,SAAA;KACJ;AAED;;AAEG;IACH,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC5B,YAAA,OAAO,EAAE,CAAC;AACb,SAAA;QAED,MAAM,OAAO,GAA8B,EAAE,CAAC;AAC9C,QAAA,MAAM,QAAQ,GAAQ,IAAI,CAAC,QAAQ,CAAC;QAEpC,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE,EAAE;AAC3C,YAAA,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,KAAI;AACjD,gBAAA,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC3D,OAAO,CACH,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAC5D,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;AACjD,aAAC,CAAC,CAAC;AACN,SAAA;AAED,QAAA,OAAO,OAAO,CAAC;KAClB;AAED;;;;;;;;AAQG;AACH,IAAA,GAAG,CACC,IAAY,EACZ,KAAa,EACb,OAAuB,EACvB,IAAa,EACb,MAAe,EACf,MAAgB,EAChB,WAAsC,KAAK,EAAA;AAE3C,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC5B,OAAO;AACV,SAAA;AAED,QAAA,IAAI,YAAY,GACZ,kBAAkB,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,kBAAkB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC;AAErE,QAAA,IAAI,OAAO,EAAE;AACT,YAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;gBAC7B,MAAM,WAAW,GAAS,IAAI,IAAI,CAC9B,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,OAAO,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CACvD,CAAC;gBAEF,YAAY,IAAI,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC;AAChE,aAAA;AAAM,iBAAA;gBACH,YAAY,IAAI,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC;AAC5D,aAAA;AACJ,SAAA;AAED,QAAA,IAAI,IAAI,EAAE;AACN,YAAA,YAAY,IAAI,OAAO,GAAG,IAAI,GAAG,GAAG,CAAC;AACxC,SAAA;AAED,QAAA,IAAI,MAAM,EAAE;AACR,YAAA,YAAY,IAAI,SAAS,GAAG,MAAM,GAAG,GAAG,CAAC;AAC5C,SAAA;AAED,QAAA,IAAI,MAAM,KAAK,KAAK,IAAI,QAAQ,KAAK,MAAM,EAAE;YACzC,MAAM,GAAG,IAAI,CAAC;AACjB,SAAA;AAED,QAAA,IAAI,MAAM,EAAE;YACR,YAAY,IAAI,SAAS,CAAC;AAC7B,SAAA;AAED,QAAA,YAAY,IAAI,WAAW,GAAG,QAAQ,GAAG,GAAG,CAAC;AAE7C,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC;KACvC;AAED;;;;AAIG;IACH,MAAM,CACF,IAAY,EACZ,IAAa,EACb,MAAe,EACf,MAAgB,EAChB,QAAA,GAAsC,KAAK,EAAA;AAE3C,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC5B,OAAO;AACV,SAAA;QAED,IAAI,CAAC,GAAG,CACJ,IAAI,EACJ,EAAE,EACF,IAAI,IAAI,CAAC,+BAA+B,CAAC,EACzC,IAAI,EACJ,MAAM,EACN,MAAM,EACN,QAAQ,CACX,CAAC;KACL;AAED;;;AAGG;IACH,SAAS,CACL,IAAa,EACb,MAAe,EACf,MAAgB,EAChB,WAAsC,KAAK,EAAA;AAE3C,QAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;YAC5B,OAAO;AACV,SAAA;AAED,QAAA,MAAM,OAAO,GAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;AAEnC,QAAA,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE;AAC9B,YAAA,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;AACpC,gBAAA,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC3D,aAAA;AACJ,SAAA;KACJ;AAED;;;AAGG;AACK,IAAA,eAAe,CAAC,IAAY,EAAA;QAChC,MAAM,WAAW,GAAW,IAAI,CAAC,OAAO,CACpC,wCAAwC,EACxC,MAAM,CACT,CAAC;AAEF,QAAA,OAAO,IAAI,MAAM,CACb,MAAM,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,gBAAgB,EAChE,GAAG,CACN,CAAC;KACL;AAEO,IAAA,sBAAsB,CAAC,mBAA2B,EAAA;QACtD,IAAI;AACA,YAAA,OAAO,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;AAClD,SAAA;QAAC,MAAM;;AAEJ,YAAA,OAAO,mBAAmB,CAAC;AAC9B,SAAA;KACJ;;6GAtMQ,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAID,QAAQ,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EACpB,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AALd,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFb,MAAM,EAAA,CAAA,CAAA;2FAET,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;0BAKQ,QAAQ;;0BAAI,MAAM;2BAAC,QAAQ,CAAA;;0BAC3B,MAAM;2BAAC,WAAW,CAAA;;;MCFd,cAAc,CAAA;AAMvB,IAAA,WAAA,CACY,cAAiC,EACjC,aAA+B,EAC/B,IAAgB,EAAA;QAFhB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QACjC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QAC/B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QARX,IAAW,CAAA,WAAA,GAAG,eAAe,CAAC;QAC9B,IAAoB,CAAA,oBAAA,GAAG,qBAAqB,CAAC;QAC7C,IAAc,CAAA,cAAA,GAAG,YAAY,CAAC;QAC9B,IAAoB,CAAA,oBAAA,GAAG,qBAAqB,CAAC;KAM1D;AAEI,IAAA,WAAW,CAAC,QAA2B,EAAA;QAC3C,IAAI,YAAY,GAAG,gBAAgB,CAAC;AACpC,QAAA,IAAI,QAAQ,CAAC,KAAK,YAAY,UAAU,EAAE;;YAEtC,YAAY,GAAG,UAAU,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;AACrD,SAAA;AAAM,aAAA;;AAEH,YAAA,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;AACvD,SAAA;AAED,QAAA,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC;KACnC;AAEO,IAAA,qBAAqB,CAAC,QAA2B,EAAA;AACrD,QAAA,IAAI,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE;YACrC,OAAO,CAAA,EAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAA,CAAE,CAAC;AAChD,SAAA;AAAM,aAAA;YACH,QAAQ,QAAQ,CAAC,MAAM;gBACnB,KAAK,GAAG,EAAE;AACN,oBAAA,OAAO,CAAc,WAAA,EAAA,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC3C,iBAAA;gBACD,KAAK,GAAG,EAAE;AACN,oBAAA,OAAO,CAAkB,eAAA,EAAA,QAAQ,CAAC,OAAO,EAAE,CAAC;AAC/C,iBAAA;gBACD,KAAK,GAAG,EAAE;AACN,oBAAA,OAAO,CAA0B,uBAAA,EAAA,QAAQ,CAAC,OAAO,EAAE,CAAC;AACvD,iBAAA;AACD,gBAAA,SAAS;oBACL,OAAO,CAAA,kCAAA,EAAqC,QAAQ,CAAC,MAAM,cAAc,QAAQ,CAAC,OAAO,CAAA,CAAE,CAAC;AAC/F,iBAAA;AACJ,aAAA;AACJ,SAAA;KACJ;;IAGO,qBAAqB,CAAC,cAAmB,EAAE,EAAA;QAC/C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;AAEnD,YAAA,IAAI,QAAQ,EAAE;AACV,gBAAA,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CACzC,IAAI,CAAC,WAAW,EAChB,UAAU,QAAQ,CAAA,CAAE,CACvB,CAAC;AACL,aAAA;AACJ,SAAA;AAED,QAAA,OAAO,WAAW,CAAC;KACtB;;AAGO,IAAA,cAAc,CAAC,GAAW,EAAE,WAAA,GAAmB,EAAE,EAAA;QACrD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE;YACrD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;AAEzD,YAAA,IAAI,WAAW,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,EAAE;;;gBAGxD,IAAI;AACA,oBAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAC5C,IAAI,CAAC,oBAAoB,CAC5B,CAAC;oBACF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,MAAM;AACnD,yBAAA,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAChC,oBAAA,IAAI,WAAW,EAAE;AACb,wBAAA,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CACzC,IAAI,CAAC,oBAAoB,EACzB,WAAW,CACd,CAAC;AACL,qBAAA;AACJ,iBAAA;gBAAC,MAAM;;AAEP,iBAAA;AACJ,aAAA;AACJ,SAAA;AAED,QAAA,OAAO,WAAW,CAAC;KACtB;AAEO,IAAA,uBAAuB,CAAC,GAAW,EAAE,WAAA,GAAmB,EAAE,EAAA;AAC9D,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;AACtB,YAAA,WAAW,CAAC,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;AAC3C,SAAA;;QAGD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;AAC1C,YAAA,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CACzC,cAAc,EACd,kBAAkB,CACrB,CAAC;AACL,SAAA;AAED,QAAA,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;QACtD,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAEpD,QAAA,OAAO,WAAW,CAAC;KACtB;;;;;;;;;;;;;AAeD,IAAA,WAAW,CAAC,GAAW,EAAE,WAAA,GAAmB,EAAE,EAAA;QAC1C,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC,IAAI;AACX,aAAA,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC;AACrB,aAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;;;;KAMtD;AAED,IAAA,YAAY,CACR,GAAW,EACX,IAAgB,EAChB,cAAmB,EAAE,EAAA;QAErB,WAAW,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC,IAAI;AACX,aAAA,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,CAAC;AAC5B,aAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;;;;;;KAMtD;AAED,IAAA,cAAc,CAAC,GAAW,EAAE,WAAA,GAAmB,EAAE,EAAA;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;AACzD,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,CAAG,EAAA,WAAW,CAAG,EAAA,GAAG,CAAE,CAAA,EAAE,WAAW,CAAC,CAAC;KAChE;AAED,IAAA,eAAe,CACX,GAAW,EACX,IAAgB,EAChB,cAAmB,EAAE,EAAA;QAErB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;AACzD,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,WAAW,CAAA,EAAG,GAAG,CAAA,CAAE,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;KACvE;AAED,IAAA,cAAc,CAAC,GAAW,EAAE,WAAA,GAAmB,EAAE,EAAA;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;AACzD,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,CAAG,EAAA,WAAW,CAAG,EAAA,GAAG,CAAE,CAAA,EAAE,WAAW,CAAC,CAAC;KAChE;AAED,IAAA,eAAe,CACX,GAAW,EACX,IAAgB,EAChB,cAAmB,EAAE,EAAA;QAErB,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;AACzD,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,WAAW,CAAA,EAAG,GAAG,CAAA,CAAE,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;KACvE;;2GAnLQ,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,cAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFX,MAAM,EAAA,CAAA,CAAA;2FAET,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACTD;;AAEE;MAIW,mBAAmB,CAAA;AAC5B,IAAA,WAAA,CACY,IAAgB;;;;;QAAhB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;;KAM3B;AAED,IAAA,0BAA0B,CAAC,SAAiC,EAAA;QACxD,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;KAC7D;AAED,IAAA,uBAAuB,CAAC,SAA2B,EAAE,YAAY,GAAG,UAAU,EAAA;QAC1E,IAAI,QAAQ,GAAG,IAAI,CAAC;AACpB,QAAA,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AACnC,QAAA,QAAQ,GAAG,SAAS,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpD,QAAA,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AAElD,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;;gBAEZ,MAAM,UAAU,GAAG,KAAK,GAAG,YAAY,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;AAC5D,gBAAA,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC;AAClE,aAAA;AACJ,SAAA;;QAGD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,GAAQ,KAAI;;AAE/C,SAAC,CAAC,CAAC;KACN;;gHAjCQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAN,IAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFhB,MAAM,EAAA,CAAA,CAAA;2FAET,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACID;;AAEE;MAIW,eAAe,CAAA;IAaxB,WACY,CAAA,cAAiC,EACjC,WAA2B,EAC3B,aAA+B,EAChC,gBAAqC,EACrC,WAA2B,EACd,KAAqB,EAAA;QALjC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;QACjC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgB;QAC3B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QAChC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAqB;QACrC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgB;QACd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QAlB5B,IAAgB,CAAA,gBAAA,GAAG,sCAAsC,CAAC;;QAE1D,IAAiC,CAAA,iCAAA,GAAG,4BAA4B,CAAC;QACjE,IAAuB,CAAA,uBAAA,GAAG,aAAa,CAAC;AACxC,QAAA,IAAA,CAAA,6BAA6B,GAAG,CAAG,EAAA,IAAI,CAAC,uBAAuB,QAAQ,CAAC;;KAiBxF;AAbD,IAAA,IAAY,SAAS,GAAA;QACjB,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,MAAM,GAAG,KAAK,CAAC;KAC7F;IAaO,wBAAwB,CAAC,OAAO,GAAG,KAAK,EAAA;AAC5C,QAAA,OAAO,OAAO;cACR,IAAI,CAAC,6BAA6B;AACpC,cAAE,IAAI,CAAC,uBAAuB,CAAC;KACtC;AAED,IAAA,oBAAoB,CAAC,SAAiB,EAAA;;AAE9B,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;AAC/F,QAAA,OAAO,gBAAgB,IAAI,gBAAgB,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;;;;KAIjG;IAED,oBAAoB,CAAC,IAAY,EAAE,SAAiB,EAAA;;AAE5C,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,CAAC,IAAI,EAAE,CAAC;AACrG,QAAA,gBAAgB,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;QACnC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,iCAAiC,EAAE,gBAAgB,CAAC,CAAC;;;;KAI/F;AAED,IAAA,gBAAgB,CAAC,SAAiB,EAAE,QAAQ,GAAG,EAAE,EAAE,OAAO,GAAG,KAAK,EAAE,aAAa,GAAG,IAAI,EAAA;AACpF,QAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,QAAQ,CAAA,CAAE,GAAG,EAAE,CAAC;;QAG5D,IAAG,IAAI,CAAC,SAAS,EAAE;AACf,YAAA,OAAO,CAAoB,iBAAA,EAAA,aAAa,CAAG,EAAA,SAAS,EAAE,CAAC;AAC1D,SAAA;AAAM,aAAA;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;AACrD,YAAA,OAAO,CAAG,EAAA,OAAO,CAAG,EAAA,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAI,CAAA,EAAA,SAAS,CAAG,EAAA,SAAS,EAAE,CAAC;AACzF,SAAA;KACJ;AAED,IAAA,eAAe,CACX,SAAiB,EACjB,QAAgB,EAChB,YAAoB,EACpB,WAAW,GAAG,EAAE,EAChB,OAAO,GAAG,KAAK,EAAA;;;;;;;AASf,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACxE,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA,EAAG,WAAW,CAAA,CAAA,EAAI,YAAY,CAAA,CAAE,EAAE,WAAW,CAAC,CAAC;KACtF;AAED,IAAA,gBAAgB,CACZ,SAAiB,EACjB,QAAgB,EAChB,YAAoB,EACpB,IAAI,GAAG,EAAE,EACT,WAAW,GAAG,EAAE,EAChB,OAAO,GAAG,KAAK,EAAA;;;;;;;;AAUf,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACxE,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAG,EAAA,WAAW,CAAI,CAAA,EAAA,YAAY,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;KAC7F;AAED,IAAA,MAAM,eAAe,CACjB,SAAiB,EACjB,GAAW,EAAA;QAEX,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;AACzC,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,WAAW,EAAE,GAAG;AACnB,SAAA,CAAC,CAAA;QAEF,IAAI,GAAG,CAAC,OAAO,EAAE;YACb,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAC/B,SAAA;AACI,aAAA;AACD,YAAA,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAC7B,SAAA;KACJ;AAED,IAAA,MAAM,gBAAgB,CAClB,SAAiB,EACjB,GAAW,EACX,IAAS,EAAA;QAET,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;AACzC,YAAA,SAAS,EAAE,SAAS;AACpB,YAAA,WAAW,EAAE,GAAG;AAChB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,IAAI,EAAE,IAAI;AACb,SAAA,CAAC,CAAA;QAEF,IAAI,GAAG,CAAC,OAAO,EAAE;YACb,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAC/B,SAAA;AACI,aAAA;AACD,YAAA,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAC7B,SAAA;KACJ;IAED,SAAS,CAAC,QAAgB,EAAE,SAAc,EAAA;AACtC,QAAA,OAAO,IAAI,OAAO,CAAC,OAAO,IAAG;AACzB,YAAA,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,YAAY,EAAE;AAC/C,gBAAA,MAAM,EAAE;oBACJ,QAAQ;AACR,oBAAA,SAAS,EAAE,SAAS;AACpB,oBAAA,UAAU,EAAE,OAAO;AACtB,iBAAA;AACJ,aAAA,CAAC,CAAC,CAAA;AACP,SAAC,CAAC,CAAA;KACL;;IAGD,KAAK,CAAC,KAAkB,EAAE,IAAkB,EAAA;AACxC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAE1B,QAAA,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,MAAK;AAC1C,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC9B,SAAC,CAAC,CAAC;KACN;AAED,IAAA,4BAA4B,CAAC,SAAiB,EAAE,OAAO,GAAG,SAAS,EAAA;QAC/D,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;AAC/D,QAAA,MAAM,gBAAgB,GAAW,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QACxG,MAAM,kBAAkB,GAAW,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAEzF,OAAO;AACH,YAAA,MAAM,EAAE,gBAAgB;AACxB,YAAA,MAAM,EAAE,kBAAkB;SAC7B,CAAC;KACL;AAED,IAAA,2BAA2B,CAAC,SAAiB,EAAA;QACzC,MAAM,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAC/D,MAAM,gBAAgB,GAAG,cAAc,CAAC;QAExC,OAAO;AACH,YAAA,MAAM,EAAE,iBAAiB,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,iBAAiB,CAAA,EAAG,gBAAgB,CAAE,CAAA,GAAG,CAAA,CAAA,EAAI,gBAAgB,CAAE,CAAA;AACzG,YAAA,MAAM,EAAE,OAAO;SAClB,CAAC;KACL;AAED,IAAA,uBAAuB,CAAC,SAA2B,EAAE,YAAY,GAAG,UAAU,EAAA;QAC1E,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;KAC1E;IAED,iBAAiB,GAAA;QACb,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAChC;AAED,IAAA,kBAAkB,CAAC,IAA2E,EAAA;AAC1F,QAAA,MAAM,SAAS,GAAG;AACd,YAAA,MAAM,EAAE,IAAI;SACf,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;AAClE,QAAA,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;KACrC;AAED,IAAA,mBAAmB,CAAC,WAAmB,EAAE,SAAoB,EAAE,QAAkB,EAAA;AAC7E,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AAClC,YAAA,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,mBAAmB,CAAC,SAAS,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC;;AAGzF,YAAA,eAAe,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,EAAE,EAAC,QAAQ,EAAE,QAAQ,EAAC,CAAC,CAAC;AAC7E,SAAA;KACJ;;AAGD,IAAA,qBAAqB,CAAC,WAAmB,EAAA;QACrC,MAAM,mBAAmB,GAAG,eAAe,CAAC,kBAAkB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAChF,MAAM,MAAM,GAAG,mBAAmB,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAEzD,QAAA,IAAI,MAAM,EAAE;YACR,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC5C,YAAA,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAClC,SAAA;KACJ;IAEM,OAAO,0BAA0B,CACpC,SAAiB,EACjB,YAA6B,EAC7B,QAAQ,GAAG,CAAC,SAAS,CAAC,EAAA;QAEtB,MAAM,0BAA0B,GAAG,EAAE,CAAC;AAEtC,QAAA,IAAI,QAAQ,EAAE,MAAM,GAAG,CAAC,EAAE;AACtB,YAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AAClD,gBAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChC,gBAAA,0BAA0B,CAAC,IAAI,CAAC,YAAY,CAAC,4BAA4B,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;AAClG,aAAA;AACJ,SAAA;QAED,MAAM,wBAAwB,GAAG,YAAY,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC;AAErF,QAAA,OAAO,YAAY,CAAC,gBAAgB,CAAC,0BAA0B,CAAC;AAC5D,YAAA,GAAG,0BAA0B;YAC7B,wBAAwB;AAC3B,SAAA,CAAC,CAAC;KACN;;AApOc,eAAA,CAAA,kBAAkB,GAAqB,IAAI,GAAG,EAAG,CAAA;4GAPvD,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAK,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFZ,MAAM,EAAA,CAAA,CAAA;2FAET,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;0BAoBQ,QAAQ;;;MCjBJ,eAAe,CAAA;AAH5B,IAAA,WAAA,GAAA;QAIa,IAAW,CAAA,WAAA,GAAG,eAAe,CAAC;QAC9B,IAA2B,CAAA,2BAAA,GAAG,kBAAkB,CAAC;QACjD,IAAqC,CAAA,qCAAA,GAAG,mBAAmB,CAAC;QAC5D,IAAyB,CAAA,yBAAA,GAAG,kBAAkB,CAAC;QAC/C,IAAmC,CAAA,mCAAA,GAAG,mBAAmB,CAAC;AA+dtE,KAAA;IA7dW,QAAQ,CAAC,IAAY,EAAE,IAAY,EAAA;AACvC,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACtD,QAAA,MAAM,EAAE,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtD,IAAI,EAAE,GAAG,EAAE,EAAE;YACT,OAAO,CAAC,EAAE,GAAG,IAAI,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;AACpC,SAAA;QAED,OAAO,CAAC,EAAE,GAAG,IAAI,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;KACpC;AAEO,IAAA,gCAAgC,CACpC,eAAuB,EACvB,UAAkB,EAClB,aAAqB,EAAA;AAErB,QAAA,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAElD,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC,IAAI,aAAa,EAAE;YAC7D,OAAO;AACH,gBAAA,KAAK,EAAE,eAAe;AACtB,gBAAA,SAAS,EAAE,CAAC;aACf,CAAC;AACL,SAAA;AAED,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAE5C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,aAAa,EAAE;AACrD,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QAED,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,GAAG,GAAG,CAAC,CAAC;AACZ,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACzC,QAAA,IAAI,YAAY,CAAC;AACjB,QAAA,IAAI,YAAY,CAAC;AACjB,QAAA,IAAI,KAAK,CAAC;AAEV,QAAA,OAAO,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,YAAY,EAAE;YAC3D,YAAY,GAAG,QAAQ,CAAC;YACxB,YAAY,GAAG,QAAQ,CAAC;YAExB,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;AACxB,YAAA,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAEnD,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC,GAAG,aAAa,EAAE;gBAC5D,GAAG,GAAG,KAAK,CAAC;AACZ,gBAAA,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/C,aAAA;AAAM,iBAAA;gBACH,GAAG,GAAG,KAAK,CAAC;AACZ,gBAAA,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/C,aAAA;AACJ,SAAA;QAED,OAAO;AACH,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,SAAS,EAAE,GAAG;SACjB,CAAC;KACL;AAEO,IAAA,iCAAiC,CACrC,eAAuB,EACvB,UAAkB,EAClB,aAAqB,EAAA;AAErB,QAAA,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAElD,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC,IAAI,aAAa,EAAE;YAC7D,OAAO;AACH,gBAAA,KAAK,EAAE,eAAe;AACtB,gBAAA,SAAS,EAAE,CAAC;aACf,CAAC;AACL,SAAA;AAED,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAE9C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,GAAG,aAAa,EAAE;AACrD,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QAED,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,IAAI,GAAG,GAAG,GAAG,CAAC;AACd,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACzC,QAAA,IAAI,YAAY,CAAC;AACjB,QAAA,IAAI,YAAY,CAAC;AACjB,QAAA,IAAI,KAAK,CAAC;AAEV,QAAA,OAAO,QAAQ,KAAK,YAAY,IAAI,QAAQ,KAAK,YAAY,EAAE;YAC3D,YAAY,GAAG,QAAQ,CAAC;YACxB,YAAY,GAAG,QAAQ,CAAC;YAExB,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;AACxB,YAAA,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAEnD,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAC,GAAG,aAAa,EAAE;gBAC5D,GAAG,GAAG,KAAK,CAAC;AACZ,gBAAA,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/C,aAAA;AAAM,iBAAA;gBACH,GAAG,GAAG,KAAK,CAAC;AACZ,gBAAA,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/C,aAAA;AACJ,SAAA;QAED,OAAO;AACH,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,SAAS,EAAE,GAAG;SACjB,CAAC;KACL;AAED;;;AAGG;AACH,IAAA,eAAe,CAAC,GAAW,EAAA;QACvB,IAAI,CAAC,GAAG,EAAE;AACN,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAED,QAAA,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAEjB,IAAI,IAAI,CAAC,mCAAmC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACpD,YAAA,OAAO,GAAG,CAAC;AACd,SAAA;QAED,IAAI,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC1C,OAAO,GAAG,GAAG,GAAG,CAAC;AACpB,SAAA;QAED,IAAI,IAAI,CAAC,qCAAqC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AACtD,YAAA,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACpE,SAAA;QAED,IAAI,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAC5C,YAAA,OAAO,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACpE,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACf;AAED;;;AAGG;AACH,IAAA,eAAe,CAAC,KAAmB,EAAA;QAC/B,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QAED,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/B,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC/B,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAE/B,QAAA,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;AAC3B,SAAA;AAED,QAAA,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;AAC3B,SAAA;AAED,QAAA,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC;AAC3B,SAAA;AAED,QAAA,OAAO,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC;KAC5C;AAED;;;AAGG;AACH,IAAA,OAAO,CAAC,GAAW,EAAA;QACf,IAAI,CAAC,GAAG,EAAE;AACN,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAE9C,IAAI,WAAW,KAAK,IAAI,EAAE;AACtB,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QAED,OAAO;AACH,YAAA,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACxC,YAAA,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;AACxC,YAAA,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;SAC3C,CAAC;KACL;AAED,IAAA,aAAa,CAAC,GAAW,EAAA;QACrB,IAAI,CAAC,GAAG,EAAE;AACN,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAED,QAAA,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;QAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAEtD,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QACpB,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACvD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;AAEvD,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KACpC;AAED,IAAA,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAgB,EAAA;QAC7B,CAAC,IAAI,GAAG,CAAC;QACT,CAAC,IAAI,GAAG,CAAC;QACT,CAAC,IAAI,GAAG,CAAC;;AAGT,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,QAAA,MAAM,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC;QAE1B,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,CAAC,GAAG,CAAC,CAAC;QAEV,IAAI,KAAK,KAAK,CAAC,EAAE;YACb,CAAC,GAAG,CAAC,CAAC;AACT,SAAA;aAAM,IAAI,IAAI,KAAK,CAAC,EAAE;AACnB,YAAA,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC7B,SAAA;aAAM,IAAI,IAAI,KAAK,CAAC,EAAE;YACnB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AAC3B,SAAA;AAAM,aAAA;YACH,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AAC3B,SAAA;QAED,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAEvB,IAAI,CAAC,GAAG,CAAC,EAAE;YACP,CAAC,IAAI,GAAG,CAAC;AACZ,SAAA;QAED,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC;QACtB,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACxD,QAAA,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAC1B,QAAA,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAE1B,QAAA,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACtB;AAED,IAAA,aAAa,CAAC,GAAW,EAAA;QACrB,IAAI,CAAC,GAAG,EAAE;AACN,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAED,QAAA,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;QAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAEtD,QAAA,IAAI,CAAC,GAAQ,MAAM,CAAC,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;QACrD,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;;QAGrD,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;AACvB,YAAA,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACjC,SAAA;aAAM,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;YAC9B,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/D,SAAA;aAAM,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;YAC/B,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;AACnD,SAAA;;QAGD,IAAI,CAAC,IAAI,GAAG,EAAE;YACV,CAAC,IAAI,GAAG,CAAC;AACZ,SAAA;;QAGD,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;YACrB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC3B,SAAA;;QAGD,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;YACrB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC3B,SAAA;AAED,QAAA,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACtB;AAED,IAAA,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAgB,EAAA;AAC7B,QAAA,IAAI,CAAC,CAAC;AACN,QAAA,IAAI,CAAC,CAAC;AACN,QAAA,IAAI,CAAC,CAAC;AAEN,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YACd,CAAC,GAAG,CAAC,CAAC;AACT,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YACd,CAAC,GAAG,CAAC,CAAC;AACT,SAAA;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;YACd,CAAC,GAAG,CAAC,CAAC;AACT,SAAA;QAED,CAAC,IAAI,EAAE,CAAC;QAER,IAAI,CAAC,GAAG,CAAC,EAAE;YACP,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AACpB,SAAA;QAED,CAAC,IAAI,CAAC,CAAC;AAEP,QAAA,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AACtC,QAAA,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;AAEtC,QAAA,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE1C,IAAI,CAAC,GAAG,CAAC,EAAE;YACP,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC;AACT,SAAA;aAAM,IAAI,CAAC,GAAG,CAAC,EAAE;YACd,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC;AACT,SAAA;aAAM,IAAI,CAAC,GAAG,CAAC,EAAE;YACd,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC;AACT,SAAA;aAAM,IAAI,CAAC,GAAG,CAAC,EAAE;YACd,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC;AACT,SAAA;aAAM,IAAI,CAAC,GAAG,CAAC,EAAE;YACd,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC;AACT,SAAA;AAAM,aAAA;YACH,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC;AACT,SAAA;AAED,QAAA,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACpB,QAAA,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;AAC9B,QAAA,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;AAC9B,QAAA,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC;AAE9B,QAAA,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACtB;AAED,IAAA,OAAO,CAAC,GAAW,EAAA;QACf,IAAI,CAAC,GAAG,EAAE;AACN,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAE9C,IAAI,WAAW,KAAK,IAAI,EAAE;AACtB,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAEtC,IAAI,GAAG,KAAK,IAAI,EAAE;AACd,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAED,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KAC5B;AAED,IAAA,OAAO,CAAC,GAAiB,EAAA;QACrB,IAAI,CAAC,GAAG,EAAE;AACN,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAE9B,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;KACpC;AAED,IAAA,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAgB,EAAA;QACvC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;AAC5B,YAAA,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YAEZ,IAAI,CAAC,IAAI,OAAO,EAAE;gBACd,OAAO,CAAC,GAAG,KAAK,CAAC;AACpB,aAAA;AAED,YAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,KAAK,EAAE,GAAG,CAAC,CAAC;AAC9C,SAAC,CAAC,CAAC;QAEH,OAAO,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC;KAC/C;AAED,IAAA,0BAA0B,CACtB,eAAuB,EACvB,UAAkB,EAClB,aAAqB,EAAA;AAErB,QAAA,MAAM,kBAAkB,GAAqB,IAAI,CAAC,gCAAgC,CAC9E,eAAe,EACf,UAAU,EACV,aAAa,CAChB,CAAC;AACF,QAAA,MAAM,mBAAmB,GAAqB,IAAI,CAAC,iCAAiC,CAChF,eAAe,EACf,UAAU,EACV,aAAa,CAChB,CAAC;QAEF,IAAI,kBAAkB,KAAK,IAAI,EAAE;YAC7B,IAAI,mBAAmB,KAAK,IAAI,EAAE;AAC9B,gBAAA,OAAO,IAAI,CAAC;AACf,aAAA;YAED,OAAO,mBAAmB,CAAC,KAAK,CAAC;AACpC,SAAA;QAED,IAAI,mBAAmB,KAAK,IAAI,EAAE;YAC9B,OAAO,kBAAkB,CAAC,KAAK,CAAC;AACnC,SAAA;QAED,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;AAE5C,QAAA,IACI,mBAAmB,CAAC,SAAS,GAAG,CAAC;AACjC,YAAA,CAAC,GAAG,kBAAkB,CAAC,SAAS,EAClC;YACE,OAAO,mBAAmB,CAAC,KAAK,CAAC;AACpC,SAAA;QAED,OAAO,kBAAkB,CAAC,KAAK,CAAC;KACnC;AAED,IAAA,qBAAqB,CAAC,GAAiB,EAAA;AACnC,QAAA,QACI,MAAM;AACN,aAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC;YACjC,IAAI;AACJ,YAAA,GAAG,CAAC,CAAC;YACL,KAAK;AACL,YAAA,GAAG,CAAC,CAAC;AACL,YAAA,IAAI,EACN;KACL;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;QAClB,IAAI,CAAC,GAAG,SAAS,CAAC;QAClB,IAAI,CAAC,GAAG,SAAS,CAAC;QAClB,IAAI,CAAC,GAAG,SAAS,CAAC;;AAGlB,QAAA,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;;AAErB,YAAA,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;AAElF,YAAA,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACb,YAAA,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACb,YAAA,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAChB,SAAA;AACI,aAAA;;YAED,KAAK,GAAG,EAAE,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CACnC,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,EAAE,MAAM,CACnC,CAAC,CAAC;AAEH,YAAA,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;AAChB,YAAA,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC;AACrB,YAAA,CAAC,GAAG,KAAK,GAAG,GAAG,CAAC;AACnB,SAAA;;AAGD,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CACjB,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAClB,CAAC;;AAGF,QAAA,OAAO,CAAC,GAAG,GAAG,KAAK,IAAI,OAAO,GAAG,MAAM,CAAC;KAC3C;;4GAneQ,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFZ,MAAM,EAAA,CAAA,CAAA;2FAET,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCTY,YAAY,CAAA;AAcrB,IAAA,WAAA,CACI,UAWI,EAAE,EAAA;AAEN,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;AACjC,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;AACnD,QAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;AACnC,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;AACvC,QAAA,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,gBAAgB,CAAC,IAAI,CAAC;QAC9D,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;KACpC;AACJ,CAAA;MACY,UAAU,CAAA;AAMtB,CAAA;MAKY,uBAAuB,CAAA;AAChC,IAAA,YAAY,CAAC,QAAoB,EAAA;AAC7B,QAAA,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC;AAElC,QAAA,IAAI,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,CAAC,EAAE;AAC9B,YAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC9B,YAAA,SAAS,CAAC,aAAa,GAAG,EAAE,CAAC;YAC7B,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,KAChB,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAC9D,CAAC;AACL,SAAA;AAED,QAAA,OAAO,SAAS,CAAC;KACpB;AAED,IAAA,eAAe,CAAC,QAAoB,EAAA;AAChC,QAAA,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;AACrC,QAAA,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;AACpB,QAAA,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;AACjB,QAAA,OAAO,CAAC,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;QAChC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAC1B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAChD,CAAC;AAEF,QAAA,OAAO,OAAO,CAAC;KAClB;AAED,IAAA,eAAe,CACX,SAAuB,EACvB,OAAO,GAAG,EAAE,EAAA;AAEZ,QAAA,MAAM,IAAI,GAAG,IAAI,KAAK,EAAkB,CAAC;AAEzC,QAAA,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,YAAA,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AACtB,gBAAA,MAAM,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;AACrC,gBAAA,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC;AACpB,gBAAA,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC;gBACjB,OAAO,CAAC,GAAG,GAAG,OAAO;AACjB,sBAAE,OAAO;sBACP,GAAG,CAAC,IAAI;0BACJ,GAAG,CAAC,IAAI;AACV,0BAAE,OAAO,CAAC,OAAO,EAAE,CAAC;AAC5B,gBAAA,IAAI,GAAG,CAAC,UAAU,KAAK,KAAK,EAAE;AAC1B,oBAAA,OAAO,CAAC,UAAU,GAAG,KAAK,CAAC;AAC9B,iBAAA;AACD,gBAAA,IAAI,GAAG,CAAC,sBAAsB,KAAK,KAAK,EAAE;AACtC,oBAAA,OAAO,CAAC,sBAAsB,GAAG,KAAK,CAAC;AAC1C,iBAAA;gBACD,IAAI,GAAG,CAAC,UAAU,EAAE;AAChB,oBAAA,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;AAC7B,iBAAA;gBACD,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KACrB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAChD,CAAC;AACF,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvB,aAAC,CAAC,CAAC;AACN,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACf;AAED,IAAA,iBAAiB,CAAC,KAAmB,EAAA;AACjC,QAAA,MAAM,YAAY,GAAG,IAAI,cAAc,EAAE,CAAC;AAC1C,QAAA,YAAY,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AACrC,QAAA,YAAY,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;AAEzC,QAAA,YAAY,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC;AAClC,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,KAAK,EAAE,CAAC;YACR,UAAU,EAAE,KAAK,CAAC,UAAU;AAC5B,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,UAAU,EAAE,CAAC;AAChB,SAAA,CAAC,CAAC;AAEH,QAAA,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AACjC,QAAA,YAAY,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,KAAK,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;AAC/D,QAAA,YAAY,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QAC7C,YAAY,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC;AAC1D,QAAA,OAAO,YAAY,CAAC;KACvB;AAED,IAAA,YAAY,CAAC,KAAmB,EAAA;AAC5B,QAAA,MAAM,SAAS,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAC3C,QAAA,SAAS,CAAC,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;AAClD,QAAA,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAClC,QAAA,SAAS,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,KAAK,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;AAC3D,QAAA,SAAS,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;AACtC,QAAA,SAAS,CAAC,cAAc;YACpB,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;AACnD,QAAA,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;AAC7B,QAAA,SAAS,CAAC,gBAAgB,GAAG,EAAE,CAAC;AAChC,QAAA,SAAS,CAAC,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;AAChD,QAAA,SAAS,CAAC,sBAAsB,GAAG,EAAE,CAAC;AACtC,QAAA,SAAS,CAAC,SAAS,GAAG,EAAE,CAAC;QACzB,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;AACzC,QAAA,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC;AACzB,QAAA,OAAO,SAAS,CAAC;KACpB;AAED,IAAA,cAAc,CACV,CAAS,EACT,KAAa,EACb,UAAkB,EAClB,CAAS,EACT,MAAc,EACd,UAAkB,EAClB,UAAkB,EAAA;AAElB,QAAA,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC;AAC3B,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,KAAK,EAAE,KAAK;AACZ,YAAA,UAAU,EAAE,UAAU;AACtB,YAAA,CAAC,EAAE,CAAC;AACJ,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,UAAU,EAAE,UAAU;AACtB,YAAA,UAAU,EAAE,UAAU;AACzB,SAAA,CAAC,CAAC;AAEH,QAAA,OAAO,MAAM,CAAC;KACjB;;oHAzHQ,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,uBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFpB,MAAM,EAAA,CAAA,CAAA;2FAET,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;MCjDY,mBAAmB,CAAA;AAU5B,IAAA,WAAA,CAAgC,YAA8B,IAAI,EAAA;QAAlC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAyB;;QARzD,IAAe,CAAA,eAAA,GAAG,UAAU,CAAC;QAC7B,IAAa,CAAA,aAAA,GAAG,YAAY,CAAC;QACtC,IAAe,CAAA,eAAA,GAAG,oBAAoB,CAAC;QACvC,IAAa,CAAA,aAAA,GAAG,sBAAsB,CAAC;QAC9B,IAAK,CAAA,KAAA,GAAG,4CAA4C,CAAC;QAE9D,IAAgB,CAAA,gBAAA,GAAG,GAAG,CAAC;QAGnB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,WAAW,IAAI,SAAS,CAAC,QAAQ,CAAC;;QAGtE,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;AAC3C,YAAA,wBAAwB,EAAE,CAAC;AAC9B,SAAA,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAChB,QAAA,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC;QAE3D,IAAI,CAAC,eAAe,GAAG,CAAA,QAAA,EAAW,IAAI,CAAC,gBAAgB,WAAW,CAAC;QACnE,IAAI,CAAC,aAAa,GAAG,CAAA,UAAA,EAAa,IAAI,CAAC,gBAAgB,WAAW,CAAC;KACtE;AAED;;AAEE;AACF,IAAA,OAAO,CAAC,MAAqC,EAAA;QACzC,OAAO,CAAC,OAAwB,KAAmC;YAC/D,IAAI,OAAO,CAAC,KAAK,EAAE;AACf,gBAAA,OAAO,MAAM,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;sBAC/B,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;sBAC1B,IAAI,CAAC;AACd,aAAA;AAAM,iBAAA;AACH,gBAAA,OAAO,IAAI,CAAC;AACf,aAAA;AACL,SAAC,CAAC;KACL;AAED,IAAA,aAAa,CAAC,MAAqC,EAAA;QAC/C,OAAO,CAAC,OAAwB,KAAmC;YAC/D,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE;AACnD,gBAAA,OAAO,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK;sBAC7B,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;sBAC5B,IAAI,CAAC;AACd,aAAA;iBAAM,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE;gBAC1D,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC9D,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAE5D,OAAO,gBAAgB,GAAG,iBAAiB;sBACrC,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;sBAC5B,IAAI,CAAC;AACd,aAAA;AAAM,iBAAA;AACH,gBAAA,OAAO,IAAI,CAAC;AACf,aAAA;AACL,SAAC,CAAC;KACL;AAED,IAAA,UAAU,CAAC,MAAqC,EAAA;QAC5C,OAAO,CAAC,OAAwB,KAAmC;YAC/D,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE;AACnD,gBAAA,OAAO,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK;sBAC7B,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;sBACzB,IAAI,CAAC;AACd,aAAA;iBAAM,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE;gBAC1D,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC9D,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAE5D,OAAO,gBAAgB,GAAG,iBAAiB;sBACrC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;sBACzB,IAAI,CAAC;AACd,aAAA;AAAM,iBAAA;AACH,gBAAA,OAAO,IAAI,CAAC;AACf,aAAA;AACL,SAAC,CAAC;KACL;AAED,IAAA,WAAW,CAAC,SAAkB,EAAA;QAC1B,OAAO,CAAC,OAAwB,KAAmC;YAC/D,IAAI,OAAO,CAAC,KAAK,EAAE;AACf,gBAAA,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,GAAG,GAAG,CAAC,CAAC;AAChE,gBAAA,MAAM,IAAI,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE;AAC7B,oBAAA,UAAU,CAAC,QAAQ;AACnB,oBAAA,UAAU,CAAC,KAAK;AACnB,iBAAA,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,GAAW,KAAI;AACxC,oBAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;oBACnB,OAAO,IAAI,CAAC,KAAK,CAAC;AACtB,iBAAC,CAAC,CAAC;AAEH,gBAAA,OAAO,CAAC,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC;AACvD,aAAA;AAAM,iBAAA;AACH,gBAAA,OAAO,IAAI,CAAC;AACf,aAAA;AACL,SAAC,CAAC;KACL;IAED,gBAAgB,GAAA;AACZ,QAAA,OAAO,UAAU,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;KAC3E;IAED,4BAA4B,GAAA;AACxB,QAAA,OAAO,UAAU,CAAC,OAAO,CACrB,qDAAqD,CACxD,CAAC;KACL;IAED,yCAAyC,GAAA;AACrC,QAAA,OAAO,UAAU,CAAC,OAAO,CACrB,kDAAkD,CACrD,CAAC;KACL;IAED,0CAA0C,GAAA;AACtC,QAAA,OAAO,UAAU,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;KAChD;IAED,aAAa,GAAA;AACT,QAAA,OAAO,UAAU,CAAC,OAAO,CACrB,wEAAwE,CAC3E,CAAC;KACL;IAED,eAAe,GAAA;AACX,QAAA,OAAO,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;KACzC;AAED;;AAEE;IACF,cAAc,CAAC,KAAa,EAAE,YAAqB,EAAA;;AAE/C,QAAA,IAAI,KAAa,CAAC;AAElB,QAAA,IAAI,YAAY,EAAE;AACd,YAAA,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;AAC9B,SAAA;AAAM,aAAA;AACH,YAAA,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;AAC9B,SAAA;;;QAID,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvC,QAAA,IAAI,cAAc,IAAI,IAAI,CAAC,gBAAgB;AAAE,YAAA,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC;;;AAI/D,QAAA,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACrD,QAAA,IAAI,aAAa,IAAI,IAAI,CAAC,gBAAgB;AAAE,YAAA,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;;;;AAK9D,QAAA,MAAM,KAAK,GAAY,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAErD,OAAO,KAAK,GAAG,KAAK,GAAG,IAAI,CAAC;KAC/B;AAED,IAAA,aAAa,CAAC,KAAa,EAAA;;AAEvB,QAAA,MAAM,KAAK,GAAY,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1D,QAAA,OAAO,KAAK,CAAC;KAChB;AAEO,IAAA,OAAO,CAAC,CAAC,EAAA;QACb,IAAI,CAAC,CAAC,GAAG,EAAE;YACP,OAAO,CAAC,CAAC,GAAG,CAAC;AAChB,SAAA;AAAM,aAAA;;AAEH,YAAA,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,YAAY,EAAE;gBAClC,QAAQ,CAAC,CAAC,OAAO;AACb,oBAAA,KAAK,CAAC;AACF,wBAAA,OAAO,WAAW,CAAC;AACvB,oBAAA,KAAK,CAAC;AACF,wBAAA,OAAO,KAAK,CAAC;AACjB,oBAAA,KAAK,EAAE;AACH,wBAAA,OAAO,QAAQ,CAAC;AACpB,oBAAA,KAAK,EAAE;AACH,wBAAA,OAAO,WAAW,CAAC;AACvB,oBAAA,KAAK,EAAE;AACH,wBAAA,OAAO,YAAY,CAAC;AACxB,oBAAA,KAAK,GAAG;AACJ,wBAAA,OAAO,GAAG,CAAC;AACf,oBAAA,KAAK,GAAG;AACJ,wBAAA,OAAO,GAAG,CAAC;AACf,oBAAA,KAAK,GAAG;wBACJ,OAAO,GAAG,CAAC;AACf,oBAAA,KAAK,GAAG;wBACJ,OAAO,GAAG,CAAC;AACf,oBAAA,KAAK,GAAG;wBACJ,OAAO,GAAG,CAAC;AACf,oBAAA;wBACI,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;AAC7C,iBAAA;AACJ,aAAA;AACJ,SAAA;KACJ;AAEO,IAAA,iCAAiC,CACrC,WAA0B,EAC1B,GAAW,EACX,gBAAyB,EAAA;AAEzB,QAAA,MAAM,kBAAkB,GAAG;YACvB,WAAW;YACX,WAAW;YACX,YAAY;YACZ,QAAQ;YACR,KAAK;YACL,MAAM;YACN,KAAK;YACL,QAAQ;SACX,CAAC;;QAGF,IACI,kBAAkB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrC,YAAA,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;;AAE9B,aAAC,GAAG,IAAI,GAAG,IAAI,gBAAgB,CAAC;;AAEhC,aAAC,GAAG,IAAI,GAAG,IAAI,gBAAgB,CAAC;;AAEhC,aAAC,GAAG,IAAI,GAAG,IAAI,gBAAgB,CAAC;;AAEhC,aAAC,GAAG,IAAI,GAAG,IAAI,gBAAgB,CAAC;AAChC,YAAA,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EACrB;;AAEE,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,KAAK,CAAC;AAChB,SAAA;KACJ;AAED,IAAA,OAAO,CAAC,CAAgB,EAAA;QACpB,MAAM,GAAG,GAAW,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACpC,QAAA,MAAM,gBAAgB,GAAG,CAAC,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;;AAGlE,QAAA,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;;QAGxD,IACI,IAAI,CAAC,iCAAiC,CAClC,WAAW,EACX,GAAG,EACH,gBAAgB,CACnB,EACH;AACE,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;;AAGD,QAAA,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACjD,QAAA,OAAO,OAAO,CAAC;KAClB;IAED,QAAQ,CAAC,CAAgB,EAAE,YAAqB,EAAA;QAC5C,MAAM,cAAc,GAAW,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC1D,MAAM,aAAa,GAAW,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,GAAG,GAAW,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACpC,QAAA,MAAM,gBAAgB,GAAG,CAAC,CAAC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC;QAClE,MAAM,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,eAAe,GAAG,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;;QAGtE,MAAM,WAAW,GAAG,EAAE,CAAC;;;;AAKvB,QAAA,MAAM,sBAAsB,GAAG,UAAU,IAAI,cAAc,IAAI,CAAC,CAAC;AACjE,QAAA,IAAI,YAAY,IAAI,CAAC,sBAAsB,IAAI,CAAC,eAAe,EAAE;AAC7D,YAAA,IAAI,IAAI,CAAC,gBAAgB,IAAI,GAAG;AAAE,gBAAA,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;AACnD,gBAAA,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,SAAA;;;;;;AAOD,QAAA,MAAM,yBAAyB,GAC3B,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,gBAAgB,CAAC;QACrD,IAAI,CAAC,UAAU,IAAI,yBAAyB,IAAI,cAAc,IAAI,CAAC,EAAE;AACjE,YAAA,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,SAAA;;QAGD,IACI,IAAI,CAAC,iCAAiC,CAClC,WAAW,EACX,GAAG,EACH,gBAAgB,CACnB,EACH;AACE,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;;AAGD,QAAA,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5D,QAAA,OAAO,QAAQ,CAAC;KACnB;;gHA9SQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFhB,MAAM,EAAA,CAAA,CAAA;2FAET,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;0BAWgB,QAAQ;;;MClBZ,yBAAyB,CAAA;AAIlC,IAAA,WAAA,GAAA;AACI,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5C;;IAGM,OAAO,GAAA;QACV,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC5C;;IAGM,MAAM,GAAA;QACT,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAC5C;;IAGO,iBAAiB,GAAA;QACrB,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAE9C,QAAA,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;AACxB,QAAA,KAAK,CAAC,YAAY,CACd,YAAY,EACZ,sCAAsC,CACzC,CAAC;QACF,KAAK,CAAC,WAAW,GAAG,CAAA;;;;SAInB,CAAC;AAEF,QAAA,OAAO,KAAK,CAAC;KAChB;;sHAlCQ,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,cAFtB,MAAM,EAAA,CAAA,CAAA;2FAET,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACJD;;AAEG;;ACFH;;AAEG;;ACFH;;AAEG;;ACFH;;AAEG;;ACcH;AACO,MAAM,4BAA4B,GAA2B,OAAO;AAI3E;AACO,MAAM,0BAA0B,GAAyB,MAAM;MAsCzD,YAAY,CAAA;;AA6BrB,IAAA,WAAA,CAAY,UAAgC,EAAE,EAAA;QAC1C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAErC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;;QAE7C,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QAE/B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC;QAEpC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,4BAA4B,CAAC;QACrE,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,0BAA0B,CAAC;QAEnE,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,CAAC,CAAC;QAC1D,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;QACtC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC;AAEtC,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KACxB;IAES,iBAAiB,CAAC,UAAU,GAAG,KAAK,EAAA;QAC1C,MAAM,UAAU,GAAG,EAAE,CAAC;AAEtB,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACpD,YAAA,IAAI,UAAU,EAAE;AACZ,gBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAC5C,aAAA;AAAM,iBAAA;AACH,gBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACxC,aAAA;AACJ,SAAA;AAAM,aAAA;AACH,YAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAC7C,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,EAAE;AAC7B,YAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAClE,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACrB;IAEM,aAAa,GAAA;AAChB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC5C,QAAA,OAAO,UAAU,CAAC;KACrB;AAEM,IAAA,MAAM,CAAC,OAA6B,EAAA;AACvC,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;AAC7C,QAAA,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;QAE/C,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;;KAE5C;AACJ,CAAA;AAEK,MAAO,mBAAoB,SAAQ,YAAY,CAAA;AAGjD,IAAA,WAAA,CAAY,UAAgC,EAAE,EAAA;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QAHnB,IAAW,CAAA,WAAA,GAAG,aAAa,CAAC;KAI3B;AACJ,CAAA;AAEK,MAAO,iBAAkB,SAAQ,YAAY,CAAA;AAG/C,IAAA,WAAA,CAAY,UAAgC,EAAE,EAAA;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QAHnB,IAAW,CAAA,WAAA,GAAG,WAAW,CAAC;KAIzB;AACJ,CAAA;AAEK,MAAO,kBAAmB,SAAQ,YAAY,CAAA;AAGhD,IAAA,WAAA,CAAY,UAAgC,EAAE,EAAA;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QAHnB,IAAW,CAAA,WAAA,GAAG,YAAY,CAAC;KAI1B;AACJ,CAAA;AAEK,MAAO,kBAAmB,SAAQ,YAAY,CAAA;AAGhD,IAAA,WAAA,CAAY,UAAgC,EAAE,EAAA;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QAHnB,IAAW,CAAA,WAAA,GAAG,YAAY,CAAC;KAI1B;AACJ,CAAA;AAiBK,MAAO,eAAgB,SAAQ,YAAY,CAAA;AAO7C,IAAA,WAAA,CAAY,UAAmC,EAAE,EAAA;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;QAPnB,IAAW,CAAA,WAAA,GAAG,SAAS,CAAC;QACxB,IAAI,CAAA,IAAA,GAAwB,MAAM,CAAC;;QAGnC,IAA6B,CAAA,6BAAA,GAAG,GAAG,CAAC;QAKhC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC;;AAGnC,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KACxB;AAEM,IAAA,MAAM,CAAC,OAAgC,EAAA;AAC1C,QAAA,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEtB,IAAI,CAAC,6BAA6B,GAAG,OAAO,CAAC,6BAA6B,IAAI,GAAG,CAAC;AAElF,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;;AAEtB,YAAA,IAAI,CAAC,cAAc;gBACf,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,KAAK;sBAC5C,IAAI,CAAC,cAAc;AACrB,sBAAE,IAAI,CAAC,KAAK,CAAC;AACxB,SAAA;KACJ;IAEM,aAAa,GAAA;AAChB,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,iBAAiB,EAAE,CAAC;AAE7C,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;YACvB,UAAU,CAAC,IAAI,CACX,UAAU,CAAC,OAAO,CACd,wJAAwJ,CAC3J,CACJ,CAAC;;AAEL,SAAA;AAAM,aAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;YAC9B,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC;AAChE,SAAA;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE;YACpD,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEtD,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACvB,gBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClD,aAAA;AAED,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACvB,gBAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;AAClD,aAAA;AACJ,SAAA;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE;AACpC,YAAA,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACnD,SAAA;AAED,QAAA,OAAO,UAAU,CAAC;KACrB;AACJ,CAAA;AAEK,MAAO,YAAa,SAAQ,YAAY,CAAA;AAI1C,IAAA,WAAA,CAAY,UAAgC,EAAE,EAAA;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,IAAW,CAAA,WAAA,GAAG,MAAM,CAAC;QACrB,IAAI,CAAA,IAAA,GAAwB,MAAM,CAAC;AAK/B,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KACxB;AAEM,IAAA,MAAM,CAAC,OAAgC,EAAA;AAC1C,QAAA,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;;;;;;;KASzB;AACJ,CAAA;AAEK,MAAO,gBAAiB,SAAQ,YAAY,CAAA;AAG9C,IAAA,WAAA,CAAY,UAAgC,EAAE,EAAA;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QAHnB,IAAW,CAAA,WAAA,GAAG,UAAU,CAAC;;KAKxB;AACJ,CAAA;AAMK,MAAO,wBAAyB,SAAQ,YAAY,CAAA;AAKtD,IAAA,WAAA,CAAY,UAAqC,EAAE,EAAA;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;QALnB,IAAW,CAAA,WAAA,GAAG,kBAAkB,CAAC;AAO7B,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,KAAK,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;AAClF,QAAA,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,KAAK,SAAS,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;KAC7G;AACJ,CAAA;AAKK,MAAO,iBAAkB,SAAQ,YAAY,CAAA;AAI/C,IAAA,WAAA,CAAY,UAAqC,EAAE,EAAA;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,IAAW,CAAA,WAAA,GAAG,WAAW,CAAC;QAC1B,IAAO,CAAA,OAAA,GAAiB,EAAE,CAAC;QAIvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;KACxC;AACJ,CAAA;AASK,MAAO,aAAc,SAAQ,YAAY,CAAA;AAQ3C,IAAA,WAAA,CAAY,UAAiC,EAAE,EAAA;QAC3C,KAAK,CAAC,OAAO,CAAC,CAAC;QARnB,IAAW,CAAA,WAAA,GAAG,OAAO,CAAC;QACtB,IAAgB,CAAA,gBAAA,GAAG,IAAI,CAAC;QACxB,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;QACvB,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QACjB,IAAO,CAAA,OAAA,GAAiB,EAAE,CAAC;QAC3B,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;QAIZ,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC;QACzD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,IAAI,CAAC;QACvD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,CAAC;KAC/C;AACJ,CAAA;AAKK,MAAO,cAAe,SAAQ,YAAY,CAAA;AAI5C,IAAA,WAAA,CAAY,UAAkC,EAAE,EAAA;QAC5C,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,IAAW,CAAA,WAAA,GAAG,QAAQ,CAAC;QACvB,IAAO,CAAA,OAAA,GAAiB,EAAE,CAAC;QAIvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;KACxC;AACJ,CAAA;AAYK,MAAO,wBAAyB,SAAQ,YAAY,CAAA;AAQtD,IAAA,WAAA,CAAY,UAA4C,EAAE,EAAA;QACtD,KAAK,CAAC,OAAO,CAAC,CAAC;QARnB,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;QAEnB,IAAgB,CAAA,gBAAA,GAAQ,EAAE,CAAC;QAG3B,IAA6B,CAAA,6BAAA,GAAG,GAAG,CAAC;AAKhC,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;AAEjC,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KACxB;AAEM,IAAA,MAAM,CAAC,OAAyC,EAAA;AACnD,QAAA,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEtB,IAAI,CAAC,6BAA6B,GAAG,OAAO,CAAC,6BAA6B,IAAI,GAAG,CAAC;QAElF,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,KAAK,CAAC;AAClD,QAAA,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;AACjD,QAAA,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC;KAC9B;AACJ,CAAA;AAMK,MAAO,YAAa,SAAQ,YAAY,CAAA;AAI1C,IAAA,WAAA,CAAY,UAAgC,EAAE,EAAA;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,IAAW,CAAA,WAAA,GAAG,MAAM,CAAC;QAMjB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC;KACtC;AACJ,CAAA;AAMK,MAAO,gBAAiB,SAAQ,YAAY,CAAA;AAI9C,IAAA,WAAA,CAAY,UAAoC,EAAE,EAAA;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,IAAW,CAAA,WAAA,GAAG,UAAU,CAAC;QAMrB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,UAAU,CAAC;KAC1C;IAEM,aAAa,GAAA;QAChB,MAAM,UAAU,GAAG,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;AACjD,QAAA,OAAO,UAAU,CAAC;KACrB;AACJ,CAAA;AAOK,MAAO,cAAe,SAAQ,YAAY,CAAA;AAM5C,IAAA,WAAA,CAAY,UAAkC,EAAE,EAAA;QAC5C,KAAK,CAAC,OAAO,CAAC,CAAC;QANnB,IAAW,CAAA,WAAA,GAAG,QAAQ,CAAC;QACvB,IAAO,CAAA,OAAA,GAAiB,EAAE,CAAC;QAMvB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC;AACrC,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;AAEvC,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KACxB;AAEM,IAAA,MAAM,CAAC,OAA+B,EAAA;AACzC,QAAA,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAEtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;KACxC;AACJ,CAAA;AAKK,MAAO,eAAgB,SAAQ,YAAY,CAAA;AAI7C,IAAA,WAAA,CAAY,UAAmC,EAAE,EAAA;QAC7C,KAAK,CAAC,OAAO,CAAC,CAAC;QAJnB,IAAW,CAAA,WAAA,GAAG,SAAS,CAAC;QACxB,IAAW,CAAA,WAAA,GAAmB,IAAI,CAAC;QAI/B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC;KAClD;AACJ,CAAA;AAYK,MAAO,sBAAuB,SAAQ,YAAY,CAAA;AAOpD,IAAA,WAAA,CAAY,UAA0C,EAAE,EAAA;QACpD,KAAK,CAAC,OAAO,CAAC,CAAC;QAPnB,IAAW,CAAA,WAAA,GAAG,QAAQ,CAAC;QAEvB,IAAsB,CAAA,sBAAA,GAAG,EAAE,CAAC;QAC5B,IAA2B,CAAA,2BAAA,GAAG,EAAE,CAAC;QAM7B,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,IAAI,CAAC;QAC/D,IAAI,CAAC,sBAAsB,GAAG,OAAO,CAAC,sBAAsB,IAAI,IAAI,CAAC;AACrE,QAAA,IAAI,CAAC,2BAA2B;AAC5B,YAAA,OAAO,CAAC,2BAA2B,IAAI,IAAI,CAAC;QAEhD,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC;KACxC;AACJ,CAAA;AAOK,MAAO,oBAAqB,SAAQ,YAAY,CAAA;AAMlD,IAAA,WAAA,CAAY,UAAwC,EAAE,EAAA;QAClD,KAAK,CAAC,OAAO,CAAC,CAAC;QANnB,IAAW,CAAA,WAAA,GAAG,cAAc,CAAC;QAC7B,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QACd,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QACd,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QAIZ,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;KAC9C;AACJ,CAAA;AAOK,MAAO,uBAAwB,SAAQ,YAAY,CAAA;AAKrD,IAAA,WAAA,CAAY,UAA2C,EAAE,EAAA;QACrD,KAAK,CAAC,OAAO,CAAC,CAAC;QALnB,IAAW,CAAA,WAAA,GAAG,iBAAiB,CAAC;QAChC,IAAU,CAAA,UAAA,GAAG,EAAE,CAAC;QAKZ,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;AAE3C,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KACxB;AAEM,IAAA,MAAM,CAAC,OAAwC,EAAA;AAClD,QAAA,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAEtB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;KACpC;AACJ,CAAA;AAMK,MAAO,oBAAqB,SAAQ,YAAY,CAAA;;AAKlD,IAAA,WAAA,CAAY,UAAwC,EAAE,EAAA;QAClD,KAAK,CAAC,OAAO,CAAC,CAAC;QALnB,IAAW,CAAA,WAAA,GAAG,MAAM,CAAC;QACrB,IAAO,CAAA,OAAA,GAAiB,EAAE,CAAC;QAKvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;;KAExC;AACJ;;ACljBD;;AAEG;;ACFH;;AAEG;;ACFH;;AAEG;;ACFH;;AAEG;;ACFH;;AAEG;;ACFH;;AAEG;;ACFH;;AAEG;;ACFH;;AAEG;;MCIU,kBAAkB,CAAA;IACpB,eAAe,CAClB,OAAyB,EACzB,QAAQ,GAAG,GAAG,EACd,GAAG,GAAG,CAAC,EAAA;AAEP,QAAA,MAAM,OAAO,GAAiB,IAAI,OAAO,EAAO,CAAC;AACjD,QAAA,IAAI,OAAO,YAAY,OAAO,IAAI,OAAO,YAAY,MAAM,EAAE;YACzD,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;AAC1D,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;AACzC,SAAA;AAED,QAAA,OAAO,OAAO,CAAC;KAClB;AAEO,IAAA,gBAAgB,CACpB,EAAoB,EACpB,QAAgB,EAChB,GAAW,EACX,OAAqB,EAAA;AAErB,QAAA,IAAI,EAAE,EAAE;AACJ,YAAA,IAAI,SAAiB,CAAC;YACtB,IAAI,EAAE,YAAY,MAAM,EAAE;AACtB,gBAAA,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;AAClC,aAAA;AAAM,iBAAA;AACH,gBAAA,MAAM,cAAc,GAAI,EAAc,CAAC,qBAAqB,EAAE,CAAC;AAC/D,gBAAA,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC;AAClC,aAAA;AACD,YAAA,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC3D,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;AACzC,SAAA;AAED,QAAA,OAAO,OAAO,CAAC;KAClB;IAEM,qBAAqB,CACxB,OAA6B,EAC7B,QAAQ,GAAG,GAAG,EACd,MAAM,GAAG,CAAC,EAAA;AAEV,QAAA,MAAM,OAAO,GAAiB,IAAI,OAAO,EAAO,CAAC;AACjD,QAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC7B,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAiB,CAAC,CAAC;YACrD,IAAI,CAAC,sBAAsB,CACvB,EAAiB,EACjB,QAAQ,EACR,MAAM,EACN,OAAO,CACV,CAAC;AACL,SAAA;aAAM,IAAI,OAAO,YAAY,WAAW,EAAE;YACvC,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACnE,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;AACzC,SAAA;AAED,QAAA,OAAO,OAAO,CAAC;KAClB;AAEO,IAAA,sBAAsB,CAC1B,EAAe,EACf,QAAgB,EAChB,MAAc,EACd,OAAqB,EAAA;AAErB,QAAA,IAAI,EAAE,EAAE;AACJ,YAAA,MAAM,cAAc,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;AAClD,YAAA,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;AACrC,YAAA,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,GAAG,SAAS,CAAC;AACjD,YAAA,IAAI,CAAC,WAAW,CACZ,MAAM,EACN,SAAS,EACT,SAAS,GAAG,MAAM,EAClB,QAAQ,EACR,OAAO,CACV,CAAC;AACL,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;AACzC,SAAA;AAED,QAAA,OAAO,OAAO,CAAC;KAClB;IAEO,WAAW,CACf,gBAAkC,EAClC,SAAiB,EACjB,QAAgB,EAChB,QAAgB,EAChB,OAAqB,EAAA;AAErB,QAAA,MAAM,IAAI,GAAG,QAAQ,GAAG,SAAS,CAAC;AAClC,QAAA,IAAI,KAAK,CAAC;AAEV,QAAA,qBAAqB,CAAC,SAAS,IAAI,CAAC,SAAS,EAAA;YACzC,KAAK,GAAG,CAAC,KAAK,GAAG,SAAS,GAAG,KAAK,CAAC;AAEnC,YAAA,MAAM,IAAI,GAAG,SAAS,GAAG,KAAK,CAAC;AAC/B,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC;YAE7C,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC;YAEzD,IAAI,IAAI,GAAG,QAAQ,EAAE;gBACjB,qBAAqB,CAAC,IAAI,CAAC,CAAC;AAC5B,gBAAA,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpB,aAAA;AAAM,iBAAA;gBACH,OAAO,CAAC,QAAQ,EAAE,CAAC;AACtB,aAAA;AACL,SAAC,CAAC,CAAC;KACN;;+GA9GQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,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,CAAA;2FAET,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACLD;;AAEG;;ACFH;;AAEG;;ACFH;;AAEG;;ACFH;;AAEG;;ACMH,MAAM,aAAa,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAM9C,MAAM,UAAU,GAAG,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,CAAC;AAiBpE,MAAM,QAAQ,GAAG;IACb,iBAAiB;IACjB,aAAa;IACb,aAAa;IACb,wBAAwB;IACxB,oBAAoB;IACpB,0BAA0B;IAC1B,eAAe;IACf,WAAW;IACX,qBAAqB;IACrB,eAAe;IACf,WAAW;CACd,CAAC;AAYF,MAAM,aAAa,GAAG;IAClB,0BAA0B;IAC1B,sBAAsB;IACtB,wBAAwB;IACxB,oBAAoB;IACpB,kBAAkB;;IAElB,6BAA6B;IAC7B,iBAAiB;IACjB,qBAAqB;CACxB,CAAC;AAKF,MAAM,UAAU,GAAG,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;MAkE/C,eAAe,CAAA;;4GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,iBAxGxB,iBAAiB;QACjB,aAAa;QACb,aAAa;QACb,wBAAwB;QACxB,oBAAoB;QACpB,0BAA0B;QAC1B,eAAe;QACf,WAAW;QACX,qBAAqB;QACrB,eAAe;AACf,QAAA,WAAW,EAcX,0BAA0B;QAC1B,sBAAsB;QACtB,wBAAwB;QACxB,oBAAoB;QACpB,kBAAkB;;QAElB,6BAA6B;QAC7B,iBAAiB;QACjB,qBAAqB,EAxDF,qBAAqB,EAMxB,oBAAoB,EAAE,wBAAwB,EAwD9C,kBAAkB,EAAE,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAgClD,YAAY;QACZ,gBAAgB;AAChB,QAAA,mBAAmB,aAxEvB,iBAAiB;QACjB,aAAa;QACb,aAAa;QACb,wBAAwB;QACxB,oBAAoB;QACpB,0BAA0B;QAC1B,eAAe;QACf,WAAW;QACX,qBAAqB;QACrB,eAAe;AACf,QAAA,WAAW,EAcX,0BAA0B;QAC1B,sBAAsB;QACtB,wBAAwB;QACxB,oBAAoB;QACpB,kBAAkB;;QAElB,6BAA6B;QAC7B,iBAAiB;QACjB,qBAAqB,EAxDF,qBAAqB,EAMxB,oBAAoB,EAAE,wBAAwB,EAwD9C,kBAAkB,EAAE,kBAAkB,EA0ClD,eAAe,CAAA,EAAA,CAAA,CAAA;AAwBV,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAtBb,SAAA,EAAA;QACP,wBAAwB;QACxB,eAAe;QACf,eAAe;QACf,gBAAgB;QAChB,uBAAuB;QACvB,cAAc;QACd,mBAAmB;QACnB,iBAAiB;QACjB,mBAAmB;QACnB,mBAAmB;QACnB,mBAAmB;QACnB,yBAAyB;QACzB,uBAAuB;QACvB,cAAc;QACd,gBAAgB;QAChB,gBAAgB;QAChB,gBAAgB;QAChB,kBAAkB;QAClB,WAAW;AACd,KAAA,EAAA,OAAA,EAAA,CAhCG,YAAY;QACZ,gBAAgB;AAChB,QAAA,mBAAmB,EAQnB,eAAe,CAAA,EAAA,CAAA,CAAA;2FAwBV,eAAe,EAAA,UAAA,EAAA,CAAA;kBA3C3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE;wBACV,QAAQ;wBACR,aAAa;wBACb,aAAa;wBACb,UAAU;wBACV,UAAU;AACb,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,gBAAgB;wBAChB,mBAAmB;AACtB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,QAAQ;wBACR,aAAa;wBACb,aAAa;wBACb,UAAU;wBACV,UAAU;wBACV,eAAe;AAClB,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACP,wBAAwB;wBACxB,eAAe;wBACf,eAAe;wBACf,gBAAgB;wBAChB,uBAAuB;wBACvB,cAAc;wBACd,mBAAmB;wBACnB,iBAAiB;wBACjB,mBAAmB;wBACnB,mBAAmB;wBACnB,mBAAmB;wBACnB,yBAAyB;wBACzB,uBAAuB;wBACvB,cAAc;wBACd,gBAAgB;wBAChB,gBAAgB;wBAChB,gBAAgB;wBAChB,kBAAkB;wBAClB,WAAW;AACd,qBAAA;AACJ,iBAAA,CAAA;;;ACvID;;AAEG;;ACFH;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"pepperi-addons-ngx-lib.mjs","sources":["../../../projects/ngx-lib/src/core/http/interceptors/error.interceptor.ts","../../../projects/ngx-lib/src/core/http/services/loader.service.ts","../../../projects/ngx-lib/src/core/http/interceptors/loader.interceptor.ts","../../../projects/ngx-lib/src/core/http/interceptors/profiler.interceptor.ts","../../../projects/ngx-lib/src/core/http/interceptors/index.ts","../../../projects/ngx-lib/src/core/clipboard/clipboard.directive.ts","../../../projects/ngx-lib/src/core/layout/layout.service.ts","../../../projects/ngx-lib/src/core/layout/rtl.directive.ts","../../../projects/ngx-lib/src/core/common/services/utilities.service.ts","../../../projects/ngx-lib/src/core/common/pipes/common-pipes.ts","../../../projects/ngx-lib/src/core/common/pipes/date-ago.pipe.ts","../../../projects/ngx-lib/src/core/common/directives/auto-width.directive.ts","../../../projects/ngx-lib/src/core/common/directives/button-blur.directive.ts","../../../projects/ngx-lib/src/core/common/directives/button-loader.directive.ts","../../../projects/ngx-lib/src/core/common/directives/menu-blur.directive.ts","../../../projects/ngx-lib/src/core/common/directives/data-qa.directive.ts","../../../projects/ngx-lib/src/core/common/directives/prevent-multi-click.directive.ts","../../../projects/ngx-lib/src/core/common/directives/print.directive.ts","../../../projects/ngx-lib/src/core/common/services/jwt-helper.service.ts","../../../projects/ngx-lib/src/core/common/services/session.service.ts","../../../projects/ngx-lib/src/core/common/services/file.service.ts","../../../projects/ngx-lib/src/core/customization/customization.service.ts","../../../projects/ngx-lib/src/core/common/directives/div-loader.directive.ts","../../../projects/ngx-lib/src/core/portal/portal.service.ts","../../../projects/ngx-lib/src/core/portal/attach.directive.ts","../../../projects/ngx-lib/src/core/portal/target.directive.ts","../../../projects/ngx-lib/src/core/clipboard/clipboard.service.ts","../../../projects/ngx-lib/src/core/clipboard/public-api.ts","../../../projects/ngx-lib/src/core/clipboard/index.ts","../../../projects/ngx-lib/src/core/common/directives/public-api.ts","../../../projects/ngx-lib/src/core/common/directives/index.ts","../../../projects/ngx-lib/src/core/common/model/papi.model.ts","../../../projects/ngx-lib/src/core/common/model/utilities.model.ts","../../../projects/ngx-lib/src/core/common/model/wapi.model.ts","../../../projects/ngx-lib/src/core/common/model/public-api.ts","../../../projects/ngx-lib/src/core/common/model/index.ts","../../../projects/ngx-lib/src/core/common/pipes/public-api.ts","../../../projects/ngx-lib/src/core/common/pipes/index.ts","../../../projects/ngx-lib/src/core/common/services/cookie.service.ts","../../../projects/ngx-lib/src/core/http/services/http.service.ts","../../../projects/ngx-lib/src/core/common/services/translate.service.ts","../../../projects/ngx-lib/src/core/common/services/addon.service.ts","../../../projects/ngx-lib/src/core/common/services/color.service.ts","../../../projects/ngx-lib/src/core/common/services/data-convertor.service.ts","../../../projects/ngx-lib/src/core/common/services/validator.service.ts","../../../projects/ngx-lib/src/core/common/services/window-scrolling.service.ts","../../../projects/ngx-lib/src/core/common/services/public-api.ts","../../../projects/ngx-lib/src/core/common/services/index.ts","../../../projects/ngx-lib/src/core/common/public-api.ts","../../../projects/ngx-lib/src/core/common/index.ts","../../../projects/ngx-lib/src/core/customization/customization.model.ts","../../../projects/ngx-lib/src/core/customization/public-api.ts","../../../projects/ngx-lib/src/core/customization/index.ts","../../../projects/ngx-lib/src/core/http/public-api.ts","../../../projects/ngx-lib/src/core/http/index.ts","../../../projects/ngx-lib/src/core/layout/public-api.ts","../../../projects/ngx-lib/src/core/layout/index.ts","../../../projects/ngx-lib/src/core/portal/public-api.ts","../../../projects/ngx-lib/src/core/portal/index.ts","../../../projects/ngx-lib/src/core/scroll-to/scroll-to.service.ts","../../../projects/ngx-lib/src/core/scroll-to/public-api.ts","../../../projects/ngx-lib/src/core/scroll-to/index.ts","../../../projects/ngx-lib/src/core/public-api.ts","../../../projects/ngx-lib/src/core/index.ts","../../../projects/ngx-lib/src/ngx-lib.module.ts","../../../projects/ngx-lib/src/public-api.ts","../../../projects/ngx-lib/src/pepperi-addons-ngx-lib.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport {\n HttpEvent,\n HttpRequest,\n HttpHandler,\n HttpInterceptor,\n HttpErrorResponse,\n} from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError, retry } from 'rxjs/operators';\n// import { ToastrService } from 'ngx-toastr';\n\n@Injectable()\nexport class PepErrorInterceptor implements HttpInterceptor {\n // constructor() {} // private toastr: ToastrService\n\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n // console.warn('ErrorInterceptor');\n\n return next.handle(req).pipe(\n // retry(2), TODO: Check if we want to retry\n catchError((error: HttpErrorResponse) => {\n // 401 handled in auth.interceptor\n if (error.status !== 401) {\n // TODO: Show error in dialog.\n // this.toastr.error(error.message);\n }\n return throwError(error);\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter, distinctUntilChanged, debounceTime } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepLoaderService {\n counter = 0;\n private showLoaderSubject: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(undefined);\n\n get onChanged$(): Observable<boolean> {\n return this.showLoaderSubject\n .asObservable()\n .pipe(\n debounceTime(500),\n filter(v => v !== undefined),\n distinctUntilChanged());\n }\n\n constructor() {\n // Raise custom event for showing the loader.\n this.onChanged$.subscribe((show) => {\n this.showLoaderChanged(show);\n });\n }\n\n private showLoaderChanged(show: boolean): void {\n const eventData = {\n detail: {\n showLoader: show,\n },\n };\n\n const event = new CustomEvent('toggleLoader', eventData);\n window.dispatchEvent(event);\n }\n\n show(): void {\n this.counter++;\n this.showLoaderSubject.next(true);\n }\n\n hide(): void {\n this.counter--;\n\n if (this.counter < 0) {\n this.counter = 0;\n }\n\n if (this.counter === 0) {\n this.showLoaderSubject.next(false);\n }\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport {\n HttpEvent,\n HttpRequest,\n HttpHandler,\n HttpInterceptor,\n HttpResponse,\n} from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { finalize, delay, map, catchError } from 'rxjs/operators';\nimport { PepLoaderService } from '../services/loader.service';\n\n@Injectable()\nexport class PepLoaderInterceptor implements HttpInterceptor {\n constructor(private injector: Injector) { }\n\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n // console.warn('LoaderInterceptor');\n const newVer = 2;\n const loaderService = this.injector.get(PepLoaderService);\n // console.log('show', req.url); \n loaderService.show();\n\n return next.handle(req).pipe(\n // delay(3000),\n catchError((err) => throwError(err)),\n finalize(() => loaderService.hide())\n );\n\n // return next.handle(req).pipe(map(event => {\n // if (event instanceof HttpResponse) {\n // loaderService.hide();\n // }\n\n // return event;\n // }));\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpEvent,\n HttpRequest,\n HttpHandler,\n HttpInterceptor,\n HttpResponse,\n} from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { tap, finalize } from 'rxjs/operators';\n\n@Injectable()\nexport class PepProfilerInterceptor implements HttpInterceptor {\n intercept(\n req: HttpRequest<any>,\n next: HttpHandler\n ): Observable<HttpEvent<any>> {\n // console.warn('ProfilerInterceptor');\n\n const started = Date.now();\n let ok: string;\n\n return next.handle(req).pipe(\n tap(\n // Succeeds when there is a response; ignore other events\n (event: HttpEvent<any>) => {\n if (event instanceof HttpResponse) {\n ok = 'succeeded';\n }\n },\n // Operation failed; error is an HttpErrorResponse\n (error) => (ok = 'failed')\n ),\n // Log when response observable either completes or errors\n finalize(() => {\n const elapsed = Date.now() - started;\n const msg = `${req.method} \"${req.urlWithParams}\" ${ok} in ${elapsed} ms.`;\n console.log(msg);\n })\n );\n }\n}\n","import { HTTP_INTERCEPTORS } from '@angular/common/http';\n\n// import { AuthInterceptor } from './auth.interceptor';\n// import { CacheInterceptor } from './cache.interceptor';\n// import { ConvertInterceptor } from './convert.interceptor';\nimport { PepErrorInterceptor } from './error.interceptor';\n// import { FakeInterceptor } from './fake.interceptor';\n// import { HeaderInterceptor } from './header.interceptor';\nimport { PepLoaderInterceptor } from './loader.interceptor';\nimport { PepProfilerInterceptor } from './profiler.interceptor';\n\nexport const httpInterceptorProviders = [\n // { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },\n // { provide: HTTP_INTERCEPTORS, useClass: CacheInterceptor, multi: true },\n // { provide: HTTP_INTERCEPTORS, useClass: ConvertInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: PepErrorInterceptor, multi: true },\n // { provide: HTTP_INTERCEPTORS, useClass: FakeInterceptor, multi: true },\n // { provide: HTTP_INTERCEPTORS, useClass: HeaderInterceptor, multi: true },\n { provide: HTTP_INTERCEPTORS, useClass: PepLoaderInterceptor, multi: true },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: PepProfilerInterceptor,\n multi: true,\n },\n];\n","// Import the core angular services.\nimport { Directive } from '@angular/core';\nimport { EventEmitter } from '@angular/core';\n\n// Import the application components and services.\n// import { PepClipboardService } from './clipboard.service';\n\n// This directive acts as a simple glue layer between the given [clipboard] property\n// and the underlying ClipboardService. Upon the (click) event, the [clipboard] value\n// will be copied to the ClipboardService and a (clipboardCopy) event will be emitted.\n@Directive({\n selector: '[pepClipboard]',\n inputs: ['value: clipboard'],\n outputs: ['copyEvent: clipboardCopy', 'errorEvent: clipboardError'],\n host: {\n '(click)': 'copyToClipboard()',\n },\n})\nexport class PepClipboardDirective {\n // public copyEvent: EventEmitter<string>;\n // public errorEvent: EventEmitter<Error>;\n // public value: string;\n // private clipboardService: ClipboardService;\n // // I initialize the clipboard directive.\n // constructor(clipboardService: ClipboardService) {\n // this.clipboardService = clipboardService;\n // this.copyEvent = new EventEmitter();\n // this.errorEvent = new EventEmitter();\n // this.value = '';\n // }\n // // ---\n // // PUBLIC METODS.\n // // ---\n // // I copy the value-input to the Clipboard. Emits success or error event.\n // public copyToClipboard(): void {\n // this.clipboardService\n // .copy(this.value)\n // .then((value: string): void => {\n // this.copyEvent.emit(value);\n // })\n // .catch((error: Error): void => {\n // this.errorEvent.emit(error);\n // });\n // }\n}\n","import { Injectable, Optional } from '@angular/core';\nimport { Observable, BehaviorSubject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { TranslateService } from '@ngx-translate/core';\n\n// Const BIDI_RTL_LANGS Array\n// BIDI_RTL_LANGS ref: http://en.wikipedia.org/wiki/Right-to-left\n// Table of scripts in Unicode: https://en.wikipedia.org/wiki/Script_(Unicode)\nconst _BIDI_RTL_LANGS = [\n 'ae' /* Avestan */,\n 'ar' /* 'العربية', Arabic */,\n 'arc' /* Aramaic */,\n 'bcc' /* 'بلوچی مکرانی', Southern Balochi */,\n 'bqi' /* 'بختياري', Bakthiari */,\n 'ckb' /* 'Soranî / کوردی', Sorani */,\n 'dv' /* Dhivehi */,\n 'fa' /* 'فارسی', Persian */,\n 'glk' /* 'گیلکی', Gilaki */,\n 'he' /* 'עברית', Hebrew */,\n 'ku' /* 'Kurdî / كوردی', Kurdish */,\n 'mzn' /* 'مازِرونی', Mazanderani */,\n 'nqo' /* N'Ko */,\n 'pnb' /* 'پنجابی', Western Punjabi */,\n 'ps' /* 'پښتو', Pashto, */,\n 'sd' /* 'سنڌي', Sindhi */,\n 'ug' /* 'Uyghurche / ئۇيغۇرچە', Uyghur */,\n 'ur' /* 'اردو', Urdu */,\n 'yi' /* 'ייִדיש', Yiddish */,\n];\n\nexport type PepOrientationType = 'landscape' | 'portrait';\n\nexport enum PepScreenSizeType {\n XL,\n LG,\n MD,\n SM,\n XS,\n}\n// export type PepScreenSizeType = 'xl' | 'lg' | 'md' | 'sm' | 'xs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepLayoutService {\n private resizeSubject: BehaviorSubject<PepScreenSizeType>;\n private deviceHasMouseSubject: BehaviorSubject<boolean>;\n\n get onResize$(): Observable<PepScreenSizeType> {\n return this.resizeSubject.asObservable().pipe(distinctUntilChanged());\n }\n\n get onMouseOver$(): Observable<boolean> {\n return this.deviceHasMouseSubject\n .asObservable()\n .pipe(distinctUntilChanged());\n }\n\n constructor(@Optional() private translate: TranslateService = null) {\n this.resizeSubject = new BehaviorSubject(PepScreenSizeType.LG);\n\n this.deviceHasMouseSubject = new BehaviorSubject(false);\n document.addEventListener(\n 'mouseover',\n this.documentMouseoverListener,\n false\n );\n // document.addEventListener('touchstart', this._documentTouchstartListener, false);\n }\n\n private documentMouseoverListener = (event: MouseEvent) => {\n this.deviceHasMouseSubject.next(true);\n this.deviceHasMouseSubject.complete();\n document.removeEventListener(\n 'mouseover',\n this.documentMouseoverListener,\n false\n );\n };\n\n // private _documentTouchstartListener = (event: TouchEvent) => {\n // debugger;\n // this.isTouchDevice = true;\n // document.removeEventListener('touchstart', this._documentTouchstartListener, false);\n // }\n\n /**\n * Set the current screen size.\n * @param size The size to change to.\n */\n onResize(size: PepScreenSizeType): void {\n this.resizeSubject.next(size);\n }\n\n getDeviceHasMouse(): boolean {\n return this.deviceHasMouseSubject.getValue();\n }\n\n getOrintation(): PepOrientationType {\n if (window.innerHeight > window.innerWidth) {\n return 'portrait';\n } else {\n return 'landscape';\n }\n }\n\n getScreenWidth(): number {\n let retVal = 250.0;\n switch (this.resizeSubject.getValue()) {\n case PepScreenSizeType.XS: {\n retVal = this.getOrintation() === 'landscape' ? 130.0 : 65.0;\n break;\n }\n case PepScreenSizeType.SM:\n case PepScreenSizeType.MD: {\n retVal = this.getOrintation() === 'landscape' ? 220.0 : 140.0;\n break;\n }\n case PepScreenSizeType.LG:\n case PepScreenSizeType.XL: {\n retVal = this.getOrintation() === 'landscape' ? 400.0 : 250.0;\n break;\n }\n }\n return retVal;\n }\n\n getScreenHeight(): number {\n let retVal = 250.0;\n switch (this.resizeSubject.getValue()) {\n case PepScreenSizeType.XS: {\n retVal = this.getOrintation() === 'landscape' ? 65.0 : 130.0;\n break;\n }\n case PepScreenSizeType.SM:\n case PepScreenSizeType.MD: {\n retVal = this.getOrintation() === 'landscape' ? 140.0 : 220.0;\n break;\n }\n case PepScreenSizeType.LG:\n case PepScreenSizeType.XL: {\n retVal = this.getOrintation() === 'landscape' ? 250.0 : 400.0;\n break;\n }\n }\n return retVal;\n }\n\n getScreenHeightPx(): number {\n return (\n window.innerHeight ||\n document.documentElement.clientHeight ||\n document.body.clientHeight\n );\n }\n\n getScreenWidthPx(): number {\n return (\n window.innerWidth ||\n document.documentElement.clientWidth ||\n document.body.clientWidth\n );\n }\n\n getScrollbarWidth() {\n // Creating invisible container\n const outer = document.createElement('div');\n outer.style.visibility = 'hidden';\n outer.style.overflow = 'scroll'; // forcing scrollbar to appear\n // outer.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps\n document.body.appendChild(outer);\n\n // Creating inner element and placing it in the container\n const inner = document.createElement('div');\n outer.appendChild(inner);\n\n // Calculating difference between container's full width and the child width\n const scrollbarWidth = (outer.offsetWidth - inner.offsetWidth);\n\n // Removing temporary elements from the DOM\n outer.parentNode.removeChild(outer);\n\n return scrollbarWidth;\n }\n\n getCurrentLanguage(): string {\n return this.translate?.getBrowserCultureLang() || navigator.language;\n }\n\n isRtl(): boolean {\n const userLang = this.getCurrentLanguage();\n const isRtl = _BIDI_RTL_LANGS.indexOf(userLang) >= 0;\n\n return isRtl;\n }\n}\n","import { Directive, Renderer2, ElementRef, OnInit } from '@angular/core';\nimport { PepLayoutService } from './layout.service';\n\n@Directive({\n selector: '[pepRtlClass]',\n})\nexport class PepRtlClassDirective implements OnInit {\n constructor(\n private layoutService: PepLayoutService,\n private renderer: Renderer2,\n private element: ElementRef\n ) {}\n\n ngOnInit(): void {\n const isRtl = this.layoutService.isRtl();\n\n if (isRtl) {\n this.renderer.addClass(this.element.nativeElement, 'rtl');\n }\n }\n}\n\n@Directive({\n selector: '[pepRtlDirection]',\n})\nexport class PepRtlDirectionDirective implements OnInit {\n constructor(\n private layoutService: PepLayoutService,\n private renderer: Renderer2,\n private element: ElementRef\n ) {}\n\n ngOnInit(): void {\n const isRtl = this.layoutService.isRtl();\n\n this.renderer.setAttribute(\n this.element.nativeElement,\n 'dir',\n isRtl ? 'rtl' : 'ltr'\n );\n }\n}\n","import { coerceNumberProperty, _isNumberValue } from '@angular/cdk/coercion';\nimport { formatCurrency, formatNumber, formatPercent } from '@angular/common';\nimport { Injectable, Optional } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepUtilitiesService {\n private culture = 'en-US';\n\n constructor(@Optional() private translate: TranslateService = null) {\n this.culture = this.translate?.getBrowserCultureLang() || 'en-US';\n\n // try {\n // import(`@angular/common/locales/global/${this.culture}`);\n // } catch {}\n }\n\n private prepareNumberToFormat(value: string, fallbackValue = 0): number {\n // If the decimal separator is ',' change it to '.'\n if (value?.length > 0) {\n // If the decimal separator is ',' change it to '.' for let the formatting works.\n value = this.changeDecimalSeparatorWhenItsComma(value);\n // console.log('coerceNumberProperty after change decimal separator value is', value);\n }\n\n return coerceNumberProperty(value, fallbackValue);\n }\n\n // adapted from https://github.com/sindresorhus/parse-ms.\n // moved to internal function because parse-ms is now pure ESM.\n private parseMs(milliseconds: number) {\n if (typeof milliseconds !== 'number') {\n throw new TypeError('Expected a number')\n }\n\n return {\n days: Math.trunc(milliseconds / 86400000),\n hours: Math.trunc(milliseconds / 3600000) % 24,\n minutes: Math.trunc(milliseconds / 60000) % 60,\n seconds: Math.trunc(milliseconds / 1000) % 60,\n milliseconds: Math.trunc(milliseconds) % 1000\n }\n }\n\n // adapted from https://github.com/rafaelrinaldi/add-zero.\n // moved to internal function b/c addZero is unmaintained (7+ years).\n // stripped out negative sign logic since we're already doing it elsewhere.\n private addZero(value: number, digits = 2) {\n digits = digits || 2\n\n let str = value.toString()\n let size = 0\n\n size = digits - str.length + 1\n str = new Array(size).join('0').concat(str)\n\n return str\n }\n\n private isCurrencyShouldBeOnRight(currencySymbol: string) {\n let res = false;\n\n if (currencySymbol == \"€\" ||\n currencySymbol == \"₪\" ||\n currencySymbol == \"Ft\" ||\n currencySymbol == \"Kč\" ||\n currencySymbol == \"руб\" ||\n currencySymbol == \"zł\" ||\n currencySymbol == \"kr.\") {\n res = true;\n }\n\n return res;\n }\n\n private cutValueByFractionDigits(value: string, maxFractionDigits: number): string {\n let res = value;\n maxFractionDigits = maxFractionDigits || 2;\n const decimalSeparator = this.getDecimalSeparator();\n\n if (value.includes(decimalSeparator)) {\n const valueArr = value.split(decimalSeparator);\n\n // if (valueArr[1].length < maxFractionDigits) {\n valueArr[1] = valueArr[1].padEnd(maxFractionDigits, '0');\n // }\n\n res = `${valueArr[0]}${decimalSeparator}${valueArr[1].slice(0, maxFractionDigits)}`;\n }\n\n return res;\n }\n\n parseDate(dateStr: string, showTime = false): Date {\n let retVal: Date = null;\n if (dateStr !== '') {\n retVal = new Date(dateStr);\n\n // Convert to date with no offset.\n if (!showTime) {\n const index = dateStr.indexOf('T');\n\n if (index > 0) {\n dateStr = dateStr.substring(0, index);\n }\n\n const dateText = dateStr.split('-');\n if (dateText.length === 3) {\n const year = Number(dateText[0]);\n const month = Number(dateText[1]) - 1;\n const day = Number(dateText[2]);\n retVal = new Date(year, month, day, 0, retVal.getTimezoneOffset() * -1);\n }\n } else {\n retVal = new Date(\n retVal.getFullYear(), retVal.getMonth(), retVal.getDate(), retVal.getHours(),\n retVal.getMinutes() + retVal.getTimezoneOffset() * -1, retVal.getSeconds());\n }\n }\n if (retVal && isNaN(retVal.getTime())) {\n retVal = null;\n }\n return retVal;\n }\n\n stringifyDate(date: Date, showTime = false): string {\n if (date) {\n if (showTime) {\n return date.toISOString(); // include - offset\n } else {\n const dateText = [];\n dateText.push(\n date.getFullYear(),\n '-',\n date.getMonth() + 1,\n '-',\n date.getDate()\n );\n return dateText.join('');\n }\n } else {\n return '';\n }\n }\n\n isValueHtml(value: string): boolean {\n let res = false;\n const REGEXP = /<\\/?[a-z][\\s\\S]*>/i;\n res = REGEXP.test(value);\n\n return res;\n }\n\n isJsonString(str: string): boolean {\n try {\n JSON.parse(str);\n } catch (e) {\n return false;\n }\n return true;\n }\n\n getSvgElementFromString(document, svgContent: string): SVGElement {\n const div = document.createElement('DIV');\n // div.className = 'svg-icon';\n // Add class svg-icon\n if (svgContent?.length > 0) {\n div.innerHTML = svgContent.replace('<svg ', '<svg class=\"svg-icon\" ');\n }\n return (\n div.querySelector('svg') ||\n document.createElementNS('http://www.w3.org/2000/svg', 'path')\n );\n }\n\n // formatPercent(value: any, digitsInfo = '1.0-2') {\n formatPercent(value: any, minFractionDigits = 0, maxFractionDigits = 2) {\n minFractionDigits = coerceNumberProperty(minFractionDigits, null);\n maxFractionDigits = coerceNumberProperty(maxFractionDigits, null);\n\n value = this.cutValueByFractionDigits(value?.toString(), Math.max(minFractionDigits, maxFractionDigits));\n const number = this.prepareNumberToFormat(value);\n\n if (number === 0) {\n return '0%';\n } else {\n // return formatPercent(number / 100, this.culture, digitsInfo);\n return new Intl.NumberFormat(this.culture, {\n style: 'percent',\n minimumFractionDigits: minFractionDigits || 0,\n maximumFractionDigits: maxFractionDigits || Math.max(2, minFractionDigits),\n }).format(number / 100);\n }\n }\n\n // formatCurrency(value: any, currencySign = '', digitsInfo = '1.2-2') {\n formatCurrency(value: any, currencySign = '', minFractionDigits = 2, maxFractionDigits = 2, useGrouping = true) {\n minFractionDigits = coerceNumberProperty(minFractionDigits, null);\n maxFractionDigits = coerceNumberProperty(maxFractionDigits, null);\n\n let res = '';\n\n // If the decimal separator is the last digit\n // if (value.length > 0 && value.indexOf(this.getDecimalSeparator()) === value.length -1) {\n // res = value;\n // } else {\n value = this.cutValueByFractionDigits(value?.toString(), Math.max(minFractionDigits, maxFractionDigits));\n const number = this.prepareNumberToFormat(value);\n const styleOptions = {\n // style: 'currency',\n // currencySign: currencySign,\n useGrouping: useGrouping,\n minimumFractionDigits: minFractionDigits || Math.min(2, maxFractionDigits || 2),\n maximumFractionDigits: maxFractionDigits || Math.max(2, minFractionDigits),\n };\n \n if (number === 0) {\n // return formatCurrency(0, this.culture, currencySign, undefined, digitsInfo);\n res = new Intl.NumberFormat(this.culture, styleOptions).format(0);\n } else {\n // return formatCurrency(value, this.culture, currencySign, undefined, digitsInfo);\n res = new Intl.NumberFormat(this.culture, styleOptions).format(number);\n }\n \n if (currencySign.length > 0) {\n res = this.isCurrencyShouldBeOnRight(currencySign) ? `${res} ${currencySign}` : `${currencySign} ${res}`\n }\n // }\n\n return res;\n }\n\n // formatDecimal(value: any, digitsInfo = '1.2-2') {\n formatDecimal(value: any, minFractionDigits = 2, maxFractionDigits = 2, useGrouping = true) {\n minFractionDigits = coerceNumberProperty(minFractionDigits, null);\n // console.log('formatDecimal minFractionDigits value is', minFractionDigits);\n maxFractionDigits = coerceNumberProperty(maxFractionDigits, null);\n // console.log('formatDecimal minFractionDigits value is', maxFractionDigits);\n\n value = this.cutValueByFractionDigits(value?.toString(), Math.max(minFractionDigits, maxFractionDigits));\n const number = this.prepareNumberToFormat(value);\n \n // console.log('number value is', number);\n\n if (number === 0) {\n return '0';\n } else {\n // return formatNumber(value, this.culture, digitsInfo);\n const res = new Intl.NumberFormat(this.culture, {\n useGrouping: useGrouping,\n minimumFractionDigits: minFractionDigits || Math.min(2, maxFractionDigits || 2),\n maximumFractionDigits: maxFractionDigits || Math.max(2, minFractionDigits),\n }).format(number);\n \n // console.log('Intl.NumberFormat value is', res);\n\n return res;\n }\n }\n\n // formatNumber(value: any, digitsInfo = '1.0-0'): string {\n formatNumber(value: any, useGrouping = true): string {\n const number = this.prepareNumberToFormat(value);\n\n if (number === 0) {\n return '0';\n } else {\n // return formatNumber(value, this.culture, digitsInfo);\n return new Intl.NumberFormat(this.culture, {\n useGrouping: useGrouping,\n minimumFractionDigits: 0,\n maximumFractionDigits: 0,\n }).format(number)\n }\n }\n\n /**\n * Convert a number in milliseconds to a standard duration string.\n * @param {number} value - duration in milliseconds\n * @param {object} options - formatDuration options object\n * @param {boolean} [options.leading=false] - add leading zero\n * @returns string - formatted duration string\n */\n formatDuration(value, options: { leading?: boolean, duration?: 'milliseconds' | 'seconds' } = {}): string {\n const isNumber = _isNumberValue(value);\n\n if (!isNumber) {\n return value;\n } else {\n let number = this.prepareNumberToFormat(value);\n\n const leading = options?.leading || true;\n const duration = options?.duration || 'milliseconds';\n if (duration === 'seconds') {\n number = number * 1000;\n }\n\n const unsignedMs = number < 0 ? -number : number;\n const sign = number <= -1000 ? '-' : '';\n const t = this.parseMs(unsignedMs);\n const seconds = this.addZero(t.seconds);\n\n if (t.days) {\n return sign + t.days + ':' + this.addZero(t.hours) + ':' + this.addZero(t.minutes) + ':' + seconds\n }\n\n if (t.hours) {\n return sign + (leading ? this.addZero(t.hours) : t.hours) + ':' + this.addZero(t.minutes) + ':' + seconds\n }\n\n return sign + (leading ? this.addZero(t.minutes) : t.minutes) + ':' + seconds\n }\n }\n\n incrementNumber(value: any): string {\n let numberValue = coerceNumberProperty(value, 0);\n return (++numberValue).toString();\n }\n\n decrementNumber(value: any): string {\n let numberValue = coerceNumberProperty(value, 0);\n return (--numberValue).toString();\n }\n\n getDecimalSeparator(): string {\n const numberWithDecimalSeparator = 1.1;\n\n return numberWithDecimalSeparator\n .toLocaleString(this.culture)\n .substring(1, 2);\n }\n\n changeDecimalSeparatorWhenItsComma(value: string, reverse = false): string {\n // If the decimal separator is ','\n if (this.getDecimalSeparator() === ',') {\n // In case that the value isn't string.\n value = value?.toString() || '';\n\n // If reverse change the number from '.' to ',' else do the opposite.\n value = reverse ? value.replace('.', ',') : value.replace(',', '.');\n }\n\n return value;\n }\n\n isEqualNumber(numberAsString: string, numberAsString2: string): boolean {\n const number = this.prepareNumberToFormat(numberAsString);\n const number2 = this.prepareNumberToFormat(numberAsString2);\n\n return number === number2;\n }\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport {\n DomSanitizer,\n SafeHtml,\n SafeStyle,\n SafeScript,\n SafeUrl,\n SafeResourceUrl,\n} from '@angular/platform-browser';\nimport { PepUtilitiesService } from '../services/utilities.service';\n\n@Pipe({ name: 'pepCapitalize' })\nexport class PepCapitalizePipe implements PipeTransform {\n transform(value: any) {\n if (value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n }\n return value;\n }\n}\n\n@Pipe({ name: 'pepEncode' })\nexport class PepEncodePipe implements PipeTransform {\n transform(value: any) {\n if (value) {\n const v = btoa(value);\n return v;\n }\n return value;\n }\n}\n\ndeclare function escape(s: string): string;\n\n@Pipe({ name: 'pepEscape' })\nexport class PepEscapePipe implements PipeTransform {\n transform(value: any) {\n if (value) {\n const v = escape(value);\n return v;\n }\n return value;\n }\n}\n\n@Pipe({ name: 'pepReplaceLineBreaks' })\nexport class PepReplaceLineBreaksPipe implements PipeTransform {\n transform(value: string): string {\n const newValue = value.replace(/(<br\\ ?\\/?>)/g, ' ');\n return newValue;\n }\n}\n\n@Pipe({ name: 'pepDateFormatter' })\nexport class PepDateFormatterPipe implements PipeTransform {\n transform(value: Date, culture: any, showTime = false): string {\n let res = '';\n value = new Date(value);\n if (value) {\n res = value.toLocaleDateString(culture || 'en-US');\n if (showTime) {\n res +=\n ' ' +\n value.toLocaleTimeString(culture || 'en-US', {\n hour: '2-digit',\n minute: '2-digit',\n });\n }\n }\n return res;\n }\n}\n\n@Pipe({ name: 'pepDateStringFormatter' })\nexport class PepDateStringFormatterPipe implements PipeTransform {\n transform(value: string, culture: any, showTime = false): string {\n let res = '';\n const tmpDate = new Date(value);\n if (value) {\n res = tmpDate.toLocaleDateString(culture || 'en-US');\n if (showTime) {\n res += ' ' + tmpDate.toLocaleTimeString(culture || 'en-US');\n }\n }\n return res;\n }\n}\n\n@Pipe({ name: 'pepSafeHtml' })\nexport class PepSafeHtmlPipe implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) {}\n\n transform(html) {\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n\n@Pipe({ name: 'pepSafe' })\nexport class PepSafePipe implements PipeTransform {\n constructor(protected sanitizer: DomSanitizer) {}\n\n public transform(\n value: any,\n type: string\n ): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n switch (type) {\n case 'html':\n return this.sanitizer.bypassSecurityTrustHtml(value);\n\n case 'style':\n return this.sanitizer.bypassSecurityTrustStyle(value);\n\n case 'script':\n return this.sanitizer.bypassSecurityTrustScript(value);\n\n case 'url':\n return this.sanitizer.bypassSecurityTrustUrl(value);\n\n case 'resourceUrl':\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n\n default:\n throw new Error(`Invalid safe type specified: ${type}`);\n }\n }\n}\n\n@Pipe({ name: 'pepSplitUppercase' })\nexport class PepSplitUppercasePipe implements PipeTransform {\n transform(value: string): string {\n const newValue = value.replace(/([a-z])([A-Z])/g, '$1 $2');\n return newValue;\n }\n}\n\n@Pipe({ name: 'pepToNumber' })\nexport class PepToNumberPipe implements PipeTransform {\n constructor(private utilitiesService: PepUtilitiesService) {}\n\n transform(value: string): number {\n const decimalSeparator = this.utilitiesService.getDecimalSeparator();\n // We need to remove the thousands separator so - If the decimal separator is '.' we need to remove the ',' from the value else we remove the '.'.\n value = decimalSeparator === '.' ? value.replace(/,/g, '') : value.replace(/./g, '');\n const numberValue = coerceNumberProperty(value);\n return numberValue;\n // return parseInt(value);\n }\n}\n","import {Pipe, PipeTransform} from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Pipe({\r\n name: 'dateAgo'\r\n})\r\nexport class DateAgoPipe implements PipeTransform {\r\n constructor(private translateService: TranslateService) {}\r\n\r\n private getCounterTranslation(counter: number, key: string) {\r\n const intervalText = this.translateService.get(`DATE_AGO.${key.toUpperCase()}`) || key;\r\n const agoText = this.translateService.get(counter === 1 ? 'DATE_AGO.SINGULAR' : 'DATE_AGO.PLURAL') || counter === 1 ? ' ago' : 's ago';\r\n return `${intervalText}${agoText}`;\r\n }\r\n\r\n transform(value: any, args?: any): any {\r\n if (value) {\r\n const seconds = Math.floor((+new Date() - +new Date(value)) / 1000);\r\n if (seconds < 29) // less than 30 seconds ago will show as 'Just now'\r\n return this.translateService.get('DATE_AGO.JUST_NOW') || 'Just now';\r\n const intervals: { [key: string]: number } = {\r\n 'year': 31536000,\r\n 'month': 2592000,\r\n 'week': 604800,\r\n 'day': 86400,\r\n 'hour': 3600,\r\n 'minute': 60,\r\n 'second': 1\r\n };\r\n let counter;\r\n for (const i in intervals) {\r\n counter = Math.floor(seconds / intervals[i]);\r\n if (counter > 0) {\r\n this.getCounterTranslation(counter, i);\r\n }\r\n }\r\n }\r\n return value;\r\n }\r\n\r\n}","import {\n AfterViewInit,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n Renderer2,\n} from '@angular/core';\n\n@Directive({\n selector: '[pepAutoWidth]',\n})\nexport class PepInputAutoWidthDirective implements AfterViewInit, OnDestroy {\n @Input() includePadding = true;\n\n private input: any = null;\n\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngAfterViewInit(): void {\n if (this.el.nativeElement.tagName.toLowerCase() === 'input') {\n this.input = this.el;\n } else {\n const list = this.el.nativeElement.querySelectorAll('input');\n this.input = list.length > 0 ? list[0] : null;\n }\n\n if (this.input) {\n this.input.addEventListener(\n 'blur',\n this.setWidthUsingText.bind(this)\n );\n this.input.addEventListener(\n 'keyup',\n this.setWidthUsingText.bind(this)\n );\n }\n\n this.setWidthUsingText();\n }\n\n ngOnDestroy() {\n this.input.removeEventListener(\n 'blur',\n this.setWidthUsingText.bind(this)\n );\n this.input.removeEventListener(\n 'keyup',\n this.setWidthUsingText.bind(this)\n );\n }\n\n get paddingWidth(): number {\n return this.includePadding\n ? this._sumPropertyValues(['padding-left', 'padding-right'])\n : 0;\n }\n\n get style() {\n return getComputedStyle(this.input, '');\n }\n\n setWidth(width: number): void {\n this.renderer.setStyle(this.input, 'width', width + 'px');\n }\n\n setWidthUsingText(): void {\n if (this.input) {\n const text = this.input.value;\n this.setWidth(this.textWidth(text) + this.paddingWidth);\n }\n }\n\n private _sumPropertyValues(properties: string[]): number {\n return properties\n .map((property) =>\n parseInt(this.style.getPropertyValue(property), 10)\n )\n .reduce((a, b) => a + b, 0);\n }\n\n private textWidth(value: string): number {\n const ctx = this.renderer.createElement('canvas').getContext('2d');\n const {\n fontStyle,\n fontVariant,\n fontWeight,\n fontSize,\n fontFamily,\n } = this.style;\n\n // font string format: {normal, normal, 700, 20px, Roboto, \"Helvetica Neue\", sans-serif}\n ctx.font =\n fontStyle +\n ' ' +\n fontVariant +\n ' ' +\n fontWeight +\n ' ' +\n fontSize +\n ' ' +\n fontFamily;\n return ctx ? ctx.measureText(value).width : 0;\n }\n}\n","import { Directive, HostListener, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[pepButtonBlur]',\n})\nexport class PepButtonBlurDirective {\n constructor(private element: ElementRef) {}\n\n @HostListener('click')\n onClick(): void {\n setTimeout(() => {\n this.element.nativeElement.blur();\n }, 0);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n OnInit,\n Optional,\n Renderer2,\n} from '@angular/core';\nimport { PepUtilitiesService } from '../services/utilities.service';\n\n@Directive({\n selector: '[pepButtonLoader]',\n})\nexport class PepButtonLoaderDirective implements OnInit {\n @Input() loaderTime = 0;\n @Input() loaderColor = null;\n @Input() loaderWidth = '1.5rem';\n @Input() loaderHeight = 'inherit';\n @Input() ignoreDisabledStyle = false;\n\n private _isLoading = false;\n private _finish = null;\n @Input()\n set finish(value: boolean) {\n this._finish = value;\n\n if (this._isLoading && value) {\n this.toggleLoading(false);\n }\n }\n\n private svgIcon: SVGElement;\n\n constructor(\n private renderer: Renderer2,\n private element: ElementRef,\n private utilitiesService: PepUtilitiesService,\n @Optional() @Inject(DOCUMENT) private document: any\n ) {}\n\n @HostListener('click', ['$event'])\n clickEvent(event): void {\n this.toggleLoading(true);\n\n // In case that the finish input is supplied - init it.\n if (this._finish !== null) {\n this._finish = false;\n } else {\n // Init loaderTime if is not supplied (3000 - default 3 seconds).\n if (this.loaderTime === 0) {\n this.loaderTime = 3000;\n }\n }\n\n if (this.loaderTime > 0) {\n setTimeout(() => {\n this.toggleLoading(false);\n }, this.loaderTime);\n }\n }\n\n ngOnInit(): void {\n this.setButtonStyle();\n const svgData =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\" preserveAspectRatio=\"xMidYMid\" class=\"lds-ripple\" style=\"background:0 0; \"><circle cx=\"64\" cy=\"64\" r=\"0\" fill=\"none\" stroke-width=\"10\"><animate attributeName=\"r\" calcMode=\"spline\" values=\"0;59\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0 0.3 0.8 0.8\" begin=\"-1.6s\" repeatCount=\"indefinite\"/><animate attributeName=\"opacity\" calcMode=\"spline\" values=\"1;0\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0.3 0 0.8 1\" begin=\"-1.6s\" repeatCount=\"indefinite\"/></circle><circle cx=\"64\" cy=\"64\" r=\"0\" fill=\"none\" stroke-width=\"10\"><animate attributeName=\"r\" calcMode=\"spline\" values=\"0;59\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0 0.3 0.8 0.8\" begin=\"-0.8s\" repeatCount=\"indefinite\"/><animate attributeName=\"opacity\" calcMode=\"spline\" values=\"1;0\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0.3 0 0.8 1\" begin=\"-0.8s\" repeatCount=\"indefinite\"/></circle><circle cx=\"64\" cy=\"64\" r=\"0\" fill=\"none\" stroke-width=\"10\"><animate attributeName=\"r\" calcMode=\"spline\" values=\"0;59\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0 0.3 0.8 0.8\" begin=\"0s\" repeatCount=\"indefinite\"/><animate attributeName=\"opacity\" calcMode=\"spline\" values=\"1;0\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0.3 0 0.8 1\" begin=\"0s\" repeatCount=\"indefinite\"/></circle></svg>';\n this.svgIcon = this.utilitiesService.getSvgElementFromString(\n this.document,\n svgData\n );\n this.setIconStyle();\n }\n\n private setButtonStyle(): void {\n this.renderer.setStyle(this.element.nativeElement, 'display', 'flex');\n this.renderer.setStyle(\n this.element.nativeElement,\n 'justify-content',\n 'center'\n );\n this.renderer.setStyle(\n this.element.nativeElement,\n 'align-items',\n 'center'\n );\n\n if (this.ignoreDisabledStyle) {\n this.renderer.addClass(\n this.element.nativeElement,\n 'ignore-disabled'\n );\n }\n }\n\n private setIconStyle(): void {\n if (this.loaderColor) {\n this.renderer.setStyle(this.svgIcon, 'stroke', this.loaderColor);\n }\n\n this.renderer.setStyle(this.svgIcon, 'width', this.loaderWidth);\n this.renderer.setStyle(this.svgIcon, 'height', this.loaderHeight);\n this.renderer.setStyle(this.svgIcon, 'margin-inline-start', '0.5rem');\n this.renderer.addClass(this.svgIcon, 'svg-icon');\n this.renderer.addClass(this.svgIcon, 'stroke');\n }\n\n private toggleLoading(show: boolean): void {\n if (show) {\n this._isLoading = true;\n this.renderer.appendChild(this.element.nativeElement, this.svgIcon);\n this.renderer.setAttribute(\n this.element.nativeElement,\n 'disabled',\n 'true'\n );\n this.renderer.addClass(this.element.nativeElement, 'lock-events');\n } else {\n if (this._isLoading) {\n this._isLoading = false;\n this.renderer.removeChild(\n this.element.nativeElement,\n this.svgIcon\n );\n this.renderer.removeAttribute(\n this.element.nativeElement,\n 'disabled'\n );\n this.renderer.removeClass(\n this.element.nativeElement,\n 'lock-events'\n );\n }\n }\n }\n}\n","import { Directive, HostListener, ElementRef } from '@angular/core';\n\n@Directive({\n selector: '[pepMenuBlur]',\n})\nexport class PepMenuBlurDirective {\n constructor(private element: ElementRef) {}\n\n @HostListener('menuClosed')\n menuClosedEvent(): void {\n setTimeout(() => {\n this.element.nativeElement.blur();\n }, 0);\n }\n\n @HostListener('menuOpened')\n menuOpenedEvent(): void {\n setTimeout(() => {\n this.element.nativeElement.blur();\n }, 0);\n }\n}\n","import {\n Directive,\n HostListener,\n ElementRef,\n Renderer2,\n OnInit,\n Input,\n} from '@angular/core';\n\n@Directive({\n selector: '[pepDataQa]',\n})\nexport class PepDataQaDirective implements OnInit {\n @Input('pepDataQa') dataQa: string;\n\n constructor(private renderer: Renderer2, private element: ElementRef) {}\n\n ngOnInit(): void {\n this.renderer.setAttribute(\n this.element.nativeElement,\n 'data-qa',\n this.dataQa\n );\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: '[pepPreventMultiClick]',\n})\nexport class PepPreventMultiClickDirective {\n @Input() disabledTime = 1000;\n\n @HostListener('click', ['$event'])\n clickEvent(event): void {\n event.srcElement.setAttribute('disabled', true);\n setTimeout(() => {\n event.srcElement.removeAttribute('disabled');\n }, this.disabledTime);\n }\n}\n","import { Directive, HostListener, Input } from '@angular/core';\r\n@Directive({\r\n selector: \"[pepPrint]\"\r\n})\r\nexport class PepPrintDirective {\r\n\r\n public _printStyle = [];\r\n\r\n /**\r\n * @memberof PepPrintDirective\r\n */\r\n @Input() printSectionId: string;\r\n\r\n /**\r\n * @memberof PepPrintDirective\r\n */\r\n @Input() printTitle: string;\r\n\r\n /**\r\n * @memberof PepPrintDirective\r\n */\r\n @Input() useExistingCss = true;\r\n\r\n /**\r\n * A delay in milliseconds to force the print dialog to wait before opened. Default: 0\r\n * \r\n * @memberof PepPrintDirective\r\n */\r\n @Input() printDelay = 0;\r\n\r\n /**\r\n * @memberof PepPrintDirective\r\n */\r\n @Input()\r\n set printStyle(values: { [key: string]: { [key: string]: string } }) {\r\n for (const key in values) {\r\n if (values.hasOwnProperty(key)) {\r\n this._printStyle.push((key + JSON.stringify(values[key])).replace(/['\"]+/g, ''));\r\n }\r\n }\r\n this.returnStyleValues();\r\n }\r\n\r\n /**\r\n *\r\n *\r\n * @returns the string that create the stylesheet which will be injected\r\n * later within <style></style> tag.\r\n *\r\n * - join/replace to transform an array objects to css-styled string\r\n * @memberof PepPrintDirective\r\n */\r\n public returnStyleValues() {\r\n return `<style> ${this._printStyle.join(' ').replace(/,/g, ';')} </style>`;\r\n }\r\n\r\n /**\r\n * @returns html for the given tag\r\n *\r\n * @memberof PepPrintDirective\r\n */\r\n private _styleSheetFile = '';\r\n\r\n /**\r\n * @memberof PepPrintDirective\r\n * @param cssList\r\n */\r\n @Input()\r\n set styleSheetFile(cssList: string) {\r\n const linkTagFn = function (cssFileName) {\r\n return `<link rel=\"stylesheet\" type=\"text/css\" href=\"${cssFileName}\">`;\r\n }\r\n if (cssList.indexOf(',') !== -1) {\r\n const valueArr = cssList.split(',');\r\n for (const val of valueArr) {\r\n this._styleSheetFile = this._styleSheetFile + linkTagFn(val);\r\n }\r\n } else {\r\n this._styleSheetFile = linkTagFn(cssList);\r\n }\r\n }\r\n\r\n /**\r\n * @returns string which contains the link tags containing the css which will\r\n * be injected later within <head></head> tag.\r\n *\r\n */\r\n private returnStyleSheetLinkTags() {\r\n return this._styleSheetFile;\r\n }\r\n private getElementTag(tag: keyof HTMLElementTagNameMap): string {\r\n const html: string[] = [];\r\n const elements = document.getElementsByTagName(tag);\r\n for (let index = 0; index < elements.length; index++) {\r\n html.push(elements[index].outerHTML);\r\n }\r\n return html.join('\\r\\n');\r\n }\r\n\r\n /**\r\n * \r\n * @param data the html element collection to save defaults to\r\n * \r\n */\r\n private getFormData(data: any) {\r\n for (let i = 0; i < data.length; i++) {\r\n data[i].defaultValue = data[i].value;\r\n if (data[i].checked) {\r\n data[i].defaultChecked = true;\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @returns html section to be printed along with some associated inputs\r\n * \r\n */\r\n private getHtmlContents() {\r\n const printContents = document.getElementById(this.printSectionId);\r\n const innards = printContents.getElementsByTagName('input');\r\n this.getFormData(innards);\r\n\r\n const txt = printContents.getElementsByTagName('textarea');\r\n this.getFormData(txt);\r\n\r\n return printContents.innerHTML;\r\n }\r\n\r\n /**\r\n * @memberof PepPrintDirective\r\n */\r\n @HostListener('click')\r\n public print(): void {\r\n let styles = '', links = '';\r\n const baseTag = this.getElementTag('base');\r\n\r\n if (this.useExistingCss) {\r\n styles = this.getElementTag('style');\r\n links = this.getElementTag('link');\r\n }\r\n\r\n const printContents = this.getHtmlContents();\r\n const popupWin = window.open(\"\", \"_blank\", \"top=0,left=0,height=auto,width=auto\");\r\n popupWin.document.open();\r\n popupWin.document.write(`\r\n <html>\r\n <head>\r\n <title>${this.printTitle ? this.printTitle : \"\"}</title>\r\n ${baseTag}\r\n ${this.returnStyleValues()}\r\n ${this.returnStyleSheetLinkTags()}\r\n ${styles}\r\n ${links}\r\n </head>\r\n <body>\r\n ${printContents}\r\n <script defer>\r\n function triggerPrint(event) {\r\n window.removeEventListener('load', triggerPrint, false);\r\n setTimeout(function() {\r\n closeWindow(window.print());\r\n }, ${this.printDelay});\r\n }\r\n function closeWindow(){\r\n window.close();\r\n }\r\n window.addEventListener('load', triggerPrint, false);\r\n </script>\r\n </body>\r\n </html>`\r\n );\r\n popupWin.document.close();\r\n }\r\n}","import { HttpRequest } from '@angular/common/http';\nimport { Injectable, Inject } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepJwtHelperService {\n public urlBase64Decode(str: string): string {\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\n switch (output.length % 4) {\n case 0: {\n break;\n }\n case 2: {\n output += '==';\n break;\n }\n case 3: {\n output += '=';\n break;\n }\n default: {\n throw new Error('Illegal base64url string!');\n }\n }\n return this.b64DecodeUnicode(output);\n }\n\n // credits for decoder goes to https://github.com/atk\n private b64decode(str: string): string {\n const chars =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n let output = '';\n\n str = String(str).replace(/=+$/, '');\n\n if (str.length % 4 === 1) {\n throw new Error(\n \"'atob' failed: The string to be decoded is not correctly encoded.\"\n );\n }\n\n for (\n // initialize result and counters\n let bc = 0, bs: any, buffer: any, idx = 0;\n // get next character\n (buffer = str.charAt(idx++));\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer &&\n ((bs = bc % 4 ? bs * 64 + buffer : buffer),\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4)\n ? (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6))))\n : 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n }\n\n private b64DecodeUnicode(str: any): string {\n return decodeURIComponent(\n Array.prototype.map\n .call(this.b64decode(str), (c: any) => {\n return (\n '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\n );\n })\n .join('')\n );\n }\n\n public decodeToken(token: string): any {\n if (!token || token === '') {\n return null;\n }\n\n const parts = token.split('.');\n\n if (parts.length !== 3) {\n throw new Error(\n \"The inspected token doesn't appear to be a JWT. Check to make sure it has three parts and see https://jwt.io for more.\"\n );\n }\n\n const decoded = this.urlBase64Decode(parts[1]);\n if (!decoded) {\n throw new Error('Cannot decode the token.');\n }\n\n return JSON.parse(decoded);\n }\n\n public getTokenExpirationDate(token: string): Date | null {\n const decoded = this.decodeToken(token);\n\n if (!decoded || !decoded.hasOwnProperty('exp')) {\n return null;\n }\n\n const date = new Date(0);\n date.setUTCSeconds(decoded.exp);\n\n return date;\n }\n\n public isTokenExpired(token: string, offsetSeconds?: number): boolean {\n if (!token || token === '') {\n return true;\n }\n const date = this.getTokenExpirationDate(token);\n offsetSeconds = offsetSeconds || 0;\n\n if (date === null) {\n return false;\n }\n\n return !(date.valueOf() > new Date().valueOf() + offsetSeconds * 1000);\n }\n\n public getAuthScheme(\n authScheme: (request: HttpRequest<any>) => any | string | undefined,\n request: HttpRequest<any>\n ): string {\n if (typeof authScheme === 'function') {\n return authScheme(request);\n }\n\n return authScheme;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { PepJwtHelperService } from './jwt-helper.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepSessionService {\n private readonly IDP_TOKEN_KEY = 'idp_token';\n private readonly PAPI_BASE_URL_KEY = 'pepperi.baseurl';\n // private readonly API_BASE_URL_KEY = 'pepperi.publicapibaseurl';\n // private readonly WAPI_TOKEN_KEY = 'auth_token';\n private readonly WAPI_BASE_URL_KEY = 'serverHostURL'; // pepperi.webapibaseurl\n // private readonly PEPPERI_CONSUMER_TOKEN: 'YY2pAwx6Exo2LWXrUllF9xzSfWF53wqc';\n\n constructor(private jwtHelper: PepJwtHelperService) {}\n\n private getParseToken(): any {\n // debugger;\n // const tokenTest = \"eyJhbGciOiJSUzI1NiIsImtpZCI6IjRiYTFjNzJmMTI3NThjYzEzMzg3ZWQ3YTBiZjNlODg3IiwidHlwIjoiSldUIn0.eyJuYmYiOjE1OTY3MjU5NjksImV4cCI6MTU5NjcyNjI2OSwiaXNzIjoiaHR0cHM6Ly9pZHAuc2FuZGJveC5wZXBwZXJpLmNvbSIsImF1ZCI6InBlcHBlcmkud2ViYXBwLmFwcC5zYW5kYm94LnBlcHBlcmkuY29tIiwiaWF0IjoxNTk2NzI1OTY5LCJhdF9oYXNoIjoiSGtmRXJ0Q2JzQ3NzOTVKUm05VmJTdyIsInNpZCI6IjJkNzFiM2JiNWUyNjRiNDk2Y2JmZDkzNmYyNTNhNWIzIiwic3ViIjoiZTJkZmQ0MDYtZDM4Yy00ZmYwLThhZGItMWRlMjI3ODIzYWEyIiwiYXV0aF90aW1lIjoxNTk2NzE4ODA5LCJpZHAiOiJsb2NhbCIsIm5hbWUiOiJkYW5pZWwgZGF2aWRvZmYiLCJlbWFpbCI6ImRhbmllbC5kQHBlcHBlcml0ZXN0LmNvbSIsInBlcHBlcmkuaWQiOjg2OTAzMDQsInBlcHBlcmkudXNlcnV1aWQiOiJlMmRmZDQwNi1kMzhjLTRmZjAtOGFkYi0xZGUyMjc4MjNhYTIiLCJwZXBwZXJpLmRpc3RyaWJ1dG9yaWQiOjMwMDEyMzUxLCJwZXBwZXJpLmRpc3RyaWJ1dG9ydXVpZCI6IjBiZDBlZDc5LThlOWUtNDRmYi05NmY0LThlNTNlZDljZTgyYiIsInBlcHBlcmkuZGF0YWNlbnRlciI6InNhbmRib3giLCJwZXBwZXJpLmtlZXBsb2dpbiI6ZmFsc2UsInBlcHBlcmkuaWRsZXRpbWV3ZWIiOjEyMCwidXBkYXRlZF9hdCI6MTU5NjcwMjgwMCwiZ2l2ZW5fbmFtZSI6ImRhbmllbCIsImZhbWlseV9uYW1lIjoiZGF2aWRvZmYiLCJwZXBwZXJpLmFwaW50YmFzZXVybCI6Imh0dHBzOi8vcmVzdGFwaS5zYW5kYm94LnBlcHBlcmkuY29tIiwicGVwcGVyaS53ZWJhcGliYXNldXJsIjoiaHR0cHM6Ly93ZWJhcGkuc2FuZGJveC5wZXBwZXJpLmNvbS9WMTZfNTAvV2ViQXBwXzYiLCJwZXBwZXJpLnB1YmxpY2FwaWJhc2V1cmwiOiJodHRwczovL2FwaS1zYW5kYm94LnBlcHBlcmkuY29tIiwicGVwcGVyaS5iYXNldXJsIjoiaHR0cHM6Ly9wYXBpLnNhbmRib3gucGVwcGVyaS5jb20vVjEuMCIsInBlcHBlcmkuZW1wbG95ZWV0eXBlIjoxLCJhbXIiOlsicHdkIl19.tNtZT3Cl4dMmTQftoaO2KP5BvHOlWGIP-5GpHrAhZoymBkxBSxpKprQGqr0ATtQlNHjX3gDV1W6k_avaSkyJgDiB2hcwr1tNRilasNuMzNV93gxLC9Oh_HdkIN4cZ0hahIcJvf_17PHpS8zD_MRwvGG_i45wRYJAtiGXChxCMzooethRsLOq5TEwuNbE3MxdjZOpImGYyytmsfdsdJRWQn1LQwQBt95ssuypcUzBsVB34P5XuFttjAe9dhTwHIfgsPG-VdfAWH_r-hVe834wKpKrplSWlC_MucgS0X4XP_tN4CtLnHO2wXKPsojqSTH2NQycfqh6YvT6rzRDBEdQIQ\";\n const token = this.getIdpToken();\n // token = token || tokenTest;\n\n const decodedToken = this.jwtHelper.decodeToken(token);\n // const expirationDate = this.jwtHelper.getTokenExpirationDate(token);\n // const isExpired = this.jwtHelper.isTokenExpired(token);\n\n return decodedToken;\n }\n\n setObject<T>(key: string, object: T): void {\n const stringifiedObject =\n typeof object === 'string' || object instanceof String\n ? object\n : JSON.stringify(object);\n\n sessionStorage.setItem(key, stringifiedObject.toString());\n }\n\n getObject<T = any>(key: string): T {\n let result = null;\n const item = sessionStorage.getItem(key);\n\n try {\n result = item ? (JSON.parse(item) as T) : item;\n } catch {\n result = item;\n }\n\n return result;\n }\n\n // setObject(key: string, value: string): void {\n // sessionStorage.setItem(key, value);\n // }\n\n // getObject(key: string): string | null {\n // return sessionStorage.getItem(key);\n // }\n\n removeObject(key: string): void {\n sessionStorage.removeItem(key);\n }\n\n // getWapiToken(): string {\n // return this.getObject(this.WAPI_TOKEN_KEY);\n // }\n\n getWapiBaseUrl(): string {\n return this.getObject(this.WAPI_BASE_URL_KEY);\n }\n\n getIdpToken(): string {\n return this.getObject(this.IDP_TOKEN_KEY);\n }\n\n getPapiBaseUrl(): string {\n const tokenObj = this.getParseToken();\n return tokenObj ? tokenObj[this.PAPI_BASE_URL_KEY] : null;\n }\n\n // getApiBaseUrl(): string {\n // const tokenObj = this.getParseToken();\n // return tokenObj ? tokenObj[this.API_BASE_URL_KEY] : null;\n // }\n}\n","import { Injectable } from '@angular/core';\n\nexport type PepFileType = 'script' | 'style';\n\nexport interface IPepExternalFileModel {\n path: string;\n type: PepFileType;\n}\n\ndeclare let document: any;\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepFileService {\n private scripts: Map<string, { loaded: boolean; src: string }>;\n private styles: Map<string, { loaded: boolean; src: string }>;\n\n constructor() {\n this.scripts = new Map<string, { loaded: boolean; src: string }>();\n this.styles = new Map<string, { loaded: boolean; src: string }>();\n }\n\n loadFiles(files: IPepExternalFileModel[]): Promise<any[]> {\n const promises: any[] = [];\n files.forEach((file) => {\n if (file.type === 'style') {\n promises.push(this.loadStyle(file.path));\n } else if (file.type === 'script') {\n promises.push(this.loadScript(file.path));\n }\n });\n return Promise.all(promises);\n }\n\n removeFiles(files: IPepExternalFileModel[]): void {\n for (\n let index = 0;\n index < files.length &&\n files[index].path &&\n files[index].path.trim() !== '';\n index++\n ) {\n const name = this.getFileName(files[index].path, true);\n const element = document.getElementById(name);\n element.parentNode.removeChild(element);\n\n if (files[index].type === 'script' && this.scripts.has(name)) {\n this.scripts.delete(name);\n } else if (files[index].type === 'style' && this.styles.has(name)) {\n this.styles.delete(name);\n }\n }\n }\n\n loadScript(path: string): Promise<any> {\n return new Promise((resolve, reject) => {\n const name = this.getFileName(path, true);\n\n // If the script isn't exist add it.\n if (!this.scripts.has(name)) {\n this.scripts.set(name, { loaded: false, src: path });\n }\n\n const scriptItem = this.scripts.get(name);\n\n // Resolve if already loaded\n if (scriptItem.loaded) {\n resolve({\n script: name,\n loaded: true,\n status: 'Already Loaded',\n });\n } else {\n // Load script\n const script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = scriptItem.src;\n script.setAttribute('id', name);\n script.async = false;\n\n if (script.readyState) {\n // IE\n script.onreadystatechange = () => {\n if (\n script.readyState === 'loaded' ||\n script.readyState === 'complete'\n ) {\n script.onreadystatechange = null;\n scriptItem.loaded = true;\n resolve({\n path,\n type: 'script',\n loaded: true,\n status: 'Loaded',\n });\n }\n };\n } else {\n // Others\n script.onload = () => {\n scriptItem.loaded = true;\n resolve({\n path,\n type: 'script',\n loaded: true,\n status: 'Loaded',\n });\n };\n }\n script.onerror = (error: any) =>\n resolve({\n path,\n type: 'script',\n loaded: false,\n status: 'Loaded',\n });\n document.getElementsByTagName('head')[0].appendChild(script);\n }\n });\n }\n\n loadStyle(path: string): Promise<any> {\n return new Promise((resolve, reject) => {\n const name = this.getFileName(path, true);\n\n // If the style isn't exist add it.\n if (!this.styles.has(name)) {\n this.styles.set(name, { loaded: false, src: path });\n }\n\n const styleItem = this.styles.get(name);\n\n // Resolve if already loaded\n if (styleItem.loaded) {\n resolve({\n path,\n type: 'style',\n loaded: true,\n status: 'Already Loaded',\n });\n } else {\n // Load style\n const style = document.createElement('link');\n style.type = 'text/css';\n style.rel = 'stylesheet';\n style.href = styleItem.src;\n style.media = 'all';\n style.setAttribute('id', name);\n\n styleItem.loaded = true;\n resolve({\n path,\n type: 'style',\n loaded: true,\n status: 'Loaded',\n });\n\n document.getElementsByTagName('head')[0].appendChild(style);\n }\n });\n }\n\n loadFontStyle(styleId: string, href: string): void {\n const head = document.getElementsByTagName('head')[0];\n\n const styleElement = document.getElementById(\n styleId\n ) as HTMLLinkElement;\n\n if (styleElement) {\n styleElement.href = href;\n } else {\n const style = document.createElement('link');\n style.id = styleId;\n style.rel = 'stylesheet';\n style.href = `${href}`;\n\n head.appendChild(style);\n }\n }\n\n getFileName(filePath: string, withExtenstion = false): string {\n const lastIndex = withExtenstion\n ? filePath.length - 1\n : filePath.lastIndexOf('.');\n\n return filePath.substr(filePath.lastIndexOf('/') + 1, lastIndex);\n }\n\n getFileExtension(filename: string): string {\n const extension = filename.substring(filename.lastIndexOf('.') + 1, filename.length);\n return extension;\n }\n\n /* Returns true if url is valid */\n isValidUrl(url: string): boolean {\n /* Try creating a valid URL */\n try {\n const tmp = new URL(url);\n return true;\n } catch (e) {\n return false;\n }\n }\n \n convertFromb64toArrayBuffer(base64String: string): ArrayBuffer {\n const base64 = base64String.slice(base64String.indexOf(',') + 1);\n const binary_string = window.atob(base64);\n const len = binary_string.length;\n const bytes = new Uint8Array(len);\n \n for (let i = 0; i < len; i++) {\n bytes[i] = binary_string.charCodeAt(i);\n }\n return bytes.buffer;\n }\n\n convertFromb64toBlob(base64String: any): Blob {\n // const byteCharacters = window.atob(b64Data);\n const byteArrays = this.convertFromb64toArrayBuffer(base64String);\n\n const fileStrArr = base64String.split(';');\n const contentType = fileStrArr[0].split(':')[1];\n\n const blob = new Blob([byteArrays], { type: contentType });\n return blob;\n }\n\n getBase64FileSize(base64String: string): number {\n let fileSize: number;\n\n try {\n base64String = base64String.slice(base64String.indexOf(',') + 1);\n fileSize = window.atob(base64String).length;\n } catch (e) {\n fileSize = -1;\n }\n\n return fileSize; // return size in bytes;\n }\n\n fileToBase64(file: File) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => resolve(reader.result);\n reader.onerror = (error) => reject(error);\n });\n }\n\n isValidFileExtension(\n fileExtension,\n acceptedExtensions\n ): boolean {\n const extensionOK =\n acceptedExtensions === '' ||\n acceptedExtensions.indexOf(fileExtension.toLowerCase()) !== -1;\n \n return extensionOK;\n }\n\n isValidFileSize(\n fileStr,\n sizeLimitMB = 5\n ): boolean {\n const file: any = fileStr;\n let fileSize = 0;\n // check if got file as Base64\n if (typeof fileStr === 'string' && fileStr.indexOf('data:') > -1) {\n fileSize = this.getBase64FileSize(fileStr);\n } else {\n fileSize = file.size;\n }\n // check the size\n const sizeOK: boolean = fileSize !== -1 && file != null && fileSize < sizeLimitMB * 1048576;\n return sizeOK;\n }\n\n getAssetsPath(assetsDomain = '', libName = 'ngx-lib'): string {\n const concatChar =\n assetsDomain === '' || assetsDomain.endsWith('/') ? '' : '/';\n return `${assetsDomain}${concatChar}assets/${libName}/`;\n }\n\n getAssetsTranslationsSuffix(libName = 'ngx-lib'): string {\n return `.${libName}.json`;\n }\n\n getAssetsTranslationsPath(assetsDomain = '', libName = 'ngx-lib'): string {\n return `${this.getAssetsPath(assetsDomain, libName)}i18n/`;\n }\n\n getAssetsImagesPath(assetsDomain = '', image = '', libName = 'ngx-lib'): string {\n return `${this.getAssetsPath(assetsDomain, libName)}images/${image}`;\n }\n\n getSvgAsImageSrc(svg: string): string {\n const blob = new Blob([svg], { type: 'image/svg+xml' });\n const url = URL.createObjectURL(blob);\n return url;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { PepSessionService } from '../common/services/session.service';\nimport { PepFileService } from '../common/services/file.service';\nimport { PepStyleType, PepFieldBase } from './customization.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepCustomizationService {\n static STAND_ALONE_FIELD_CLASS_NAME = 'pep-field';\n static STAND_ALONE_FIELD_NO_SPACING_CLASS_NAME = 'pep-field-no-spacing';\n\n static REM_STRING = 'rem';\n static PX_STRING = 'px';\n static USER_THEME = 'user_theme';\n static USER_COLOR = 'user_color';\n static USER_THEME_VARIABLES = 'user_theme_variables';\n\n // Header height\n static HEADER_HEIGHT_KEY = '--pep-header-height';\n\n // Side bar variables keys\n static SIDE_BAR_WIDTH_KEY = '--pep-side-bar-width';\n\n // Settings width\n static SETTINGS_WIDTH_KEY = '--pep-settings-bar-width';\n\n // Top bar variables keys\n static TOP_BAR_SPACING_TOP_KEY = '--pep-top-bar-spacing-top';\n static TOP_BAR_SPACING_BOTTOM_KEY = '--pep-top-bar-spacing-bottom';\n static TOP_BAR_FIELD_HEIGHT_KEY = '--pep-top-bar-field-height';\n\n // Footer variables keys\n static FOOTER_HEIGHT_KEY = '--pep-footer-bar-height';\n static FOOTER_BAR_SPACING_TOP_KEY = '--pep-footer-bar-spacing-top';\n static FOOTER_BAR_SPACING_BOTTOM_KEY = '--pep-footer-bar-spacing-bottom';\n\n // Main container height\n static MAIN_HEIGHT_KEY = '--pep-main-height';\n\n // Colors variables keys\n static COLOR_USER_PRIMARY_KEY = '--pep-color-user-primary';\n static COLOR_USER_SECONDARY_KEY = '--pep-color-user-secondary';\n static COLOR_SYSTEM_PRIMARY_INVERT_KEY =\n '--pep-color-system-primary-invert';\n static COLOR_SYSTEM_PRIMARY_KEY = '--pep-color-system-primary';\n static COLOR_TEXT_LINK_KEY = '--pep-color-text-link';\n static COLOR_SYSTEM_CAUTION_KEY = '--pep-color-system-caution';\n static COLOR_SYSTEM_SUCCESS_KEY = '--pep-color-system-success';\n static COLOR_STRONG_KEY = '--pep-color-strong';\n static COLOR_REGULAR_KEY = '--pep-color-regular';\n static COLOR_WEAK_KEY = '--pep-color-weak';\n\n // Top header variables keys\n static COLOR_TOP_HEADER_KEY = '--pep-color-top-header';\n static STYLE_TOP_HEADER_KEY = '--pep-style-top-header';\n\n // QS variables keys\n static COLOR_QS_KEY = '--pep-color-qs';\n static STYLE_QS_KEY = '--pep-style-qs';\n\n // Fonts variables keys\n static FONT_FAMILY_TITLE_KEY = '--pep-font-family-title';\n static FONT_FAMILY_TITLE_NORMAL_URL_KEY =\n '--pep-font-family-title-normal-url';\n static FONT_FAMILY_TITLE_BOLD_URL_KEY = '--pep-font-family-title-bold-url';\n static FONT_FAMILY_BODY_KEY = '--pep-font-family-body';\n static FONT_FAMILY_BODY_NORMAL_URL_KEY =\n '--pep-font-family-body-normal-url';\n static FONT_FAMILY_BODY_BOLD_URL_KEY = '--pep-font-family-body-bold-url';\n\n // Border radius variables keys\n static BORDER_RADIUS_KEY = '--pep-border-radius';\n static BORDER_RADIUS_SM_KEY =\n PepCustomizationService.BORDER_RADIUS_KEY + '-sm';\n static BORDER_RADIUS_MD_KEY =\n PepCustomizationService.BORDER_RADIUS_KEY + '-md';\n static BORDER_RADIUS_LG_KEY =\n PepCustomizationService.BORDER_RADIUS_KEY + '-lg';\n static BORDER_RADIUS_XL_KEY =\n PepCustomizationService.BORDER_RADIUS_KEY + '-xl';\n\n // Fonts variables keys\n static FONT_SIZE_2XS_KEY = '--pep-font-size-2xs';\n static FONT_SIZE_XS_KEY = '--pep-font-size-xs';\n static FONT_SIZE_SM_KEY = '--pep-font-size-sm';\n static FONT_SIZE_MD_KEY = '--pep-font-size-md';\n static FONT_SIZE_LG_KEY = '--pep-font-size-lg';\n static FONT_SIZE_XL_KEY = '--pep-font-size-xl';\n static FONT_SIZE_2XL_KEY = '--pep-font-size-2xl';\n\n // Line height variables keys\n static LINE_HEIGHT_2XS_KEY = '--pep-line-height-2xs';\n static LINE_HEIGHT_XS_KEY = '--pep-line-height-xs';\n static LINE_HEIGHT_SM_KEY = '--pep-line-height-sm';\n static LINE_HEIGHT_MD_KEY = '--pep-line-height-md';\n static LINE_HEIGHT_LG_KEY = '--pep-line-height-lg';\n static LINE_HEIGHT_XL_KEY = '--pep-line-height-xl';\n static LINE_HEIGHT_2XL_KEY = '--pep-line-height-2xl';\n\n // Shadows offset variables keys\n static SHADOW_NONE_OFFSET_KEY = '--pep-shadow-none-offset';\n static SHADOW_XS_OFFSET_KEY = '--pep-shadow-xs-offset';\n static SHADOW_SM_OFFSET_KEY = '--pep-shadow-sm-offset';\n static SHADOW_MD_OFFSET_KEY = '--pep-shadow-md-offset';\n static SHADOW_LG_OFFSET_KEY = '--pep-shadow-lg-offset';\n static SHADOW_XL_OFFSET_KEY = '--pep-shadow-xl-offset';\n\n // Spacing variables keys\n static SPACING_SIZE_2XS_KEY = '--pep-spacing-2xs';\n static SPACING_SIZE_XS_KEY = '--pep-spacing-xs';\n static SPACING_SIZE_SM_KEY = '--pep-spacing-sm';\n static SPACING_SIZE_MD_KEY = '--pep-spacing-md';\n static SPACING_SIZE_LG_KEY = '--pep-spacing-lg';\n static SPACING_SIZE_XL_KEY = '--pep-spacing-xl';\n static SPACING_SIZE_2XL_KEY = '--pep-spacing-2xl';\n static SPACING_SIZE_3XL_KEY = '--pep-spacing-3xl';\n static SPACING_SIZE_4XL_KEY = '--pep-spacing-4xl';\n static SPACING_SIZE_5XL_KEY = '--pep-spacing-5xl';\n static SPACING_SIZE_6XL_KEY = '--pep-spacing-6xl';\n static SPACING_SIZE_7XL_KEY = '--pep-spacing-7xl';\n static SPACING_SIZE_8XL_KEY = '--pep-spacing-8xl';\n static SPACING_SIZE_9XL_KEY = '--pep-spacing-9xl';\n\n // Form variables keys\n static FORM_FIELD_HEIGHT_KEY = '--pep-form-field-height';\n static FORM_FIELD_TITLE_HEIGHT_KEY = '--pep-form-field-title-height';\n static FORM_FIELD_SPACEING_KEY = '--pep-form-field-spacing';\n static FORM_SPACEING_KEY = '--pep-form-spacing';\n\n // Card variables keys\n static CARD_FIELD_HEIGHT_KEY = '--pep-card-field-height';\n static CARD_SPACEING_KEY = '--pep-card-spacing';\n static CARD_SHADOW_OFFSET_KEY = '--pep-shadow-card-offset';\n static CARD_BORDER_RADIUS_KEY = '--pep-card-border-radius';\n\n // Table variables keys\n static TABLE_FIELD_HEIGHT_KEY = '--pep-table-field-height';\n static TABLE_SPACEING_KEY = '--pep-table-spacing';\n static TABLE_BORDER_RADIUS_KEY = '--pep-table-border-radius';\n\n // // Branding keys\n // static BRANDING_LOGO_SRC = '--pep-branding-logo-src';\n // static FAV_ICON_SRC = '--pep-favicon-src';\n\n static DEFAULT_HEADER_HEIGHT = 64; // Default\n\n static DEFAULT_SPINNER_COLOR = '#78aa00';\n static DEFAULT_BRANDING_COLOR = '#fff';\n\n public hasCustomHomepage: boolean = null;\n public hasCustomHeader: boolean = null;\n public customHeaderHeight = PepCustomizationService.DEFAULT_HEADER_HEIGHT;\n public mainContHeight = 0;\n public footerHeight = new BehaviorSubject<number>(0);\n public settingsWidth = new BehaviorSubject<number>(0);\n\n constructor(\n private sessionService: PepSessionService,\n private fileService: PepFileService,\n public fb: FormBuilder\n ) {\n this.hideFooter();\n //\n }\n\n getDefaultFromGroup(field: PepFieldBase, withValidators = true): FormGroup {\n const validators = withValidators ? field.getValidators() : [];\n const group = {};\n group[field.key] = [\n { value: field.value, disabled: field.disabled },\n validators,\n ];\n return this.fb.group(group);\n }\n\n getFormControl(\n form: FormGroup,\n fieldKey: string,\n parentFieldKey: string = null\n ): any {\n let formControl = null;\n\n if (form && form.controls) {\n if (parentFieldKey === null) {\n formControl = form.controls[fieldKey];\n } else {\n formControl = form.controls[parentFieldKey]?.get(fieldKey);\n }\n }\n\n return formControl;\n }\n\n updateFormFieldValue(\n form: FormGroup,\n fieldKey: string,\n value = '',\n parentFieldKey: string = null\n ): void {\n const formControl = this.getFormControl(form, fieldKey, parentFieldKey);\n if (formControl) {\n formControl.setValue(value);\n }\n }\n\n updateFormField(\n form: FormGroup,\n field: PepFieldBase,\n value = '',\n parentField: PepFieldBase = null\n ): void {\n const formControl: FormControl = this.getFormControl(\n form,\n field.key,\n parentField?.key\n );\n if (formControl) {\n formControl.setValue(value);\n\n // If disabled has changed.\n if (formControl.disabled !== field.disabled) {\n field.disabled ? formControl.disable() : formControl.enable();\n \n const validators = field.getValidators();\n formControl.setValidators(validators);\n formControl.updateValueAndValidity();\n }\n }\n }\n\n calculateFormFieldHeight(\n withTitle = true,\n rowSpan = 1,\n standAlone = false\n ): number {\n const themeVars = this.getThemeVariables();\n const rowFieldHeight = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.FORM_FIELD_HEIGHT_KEY\n );\n const rowFieldTitleHeight = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.FORM_FIELD_TITLE_HEIGHT_KEY\n );\n const rowFieldSpacingBottom = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.FORM_SPACEING_KEY\n );\n\n let fieldHeight = 0;\n if (rowSpan === 1) {\n fieldHeight =\n (withTitle ? rowFieldTitleHeight : 0) + rowFieldHeight;\n } else {\n const rowSpanCalc = withTitle ? rowSpan : rowSpan - 1;\n fieldHeight =\n rowSpan * rowFieldHeight +\n rowSpanCalc * rowFieldTitleHeight +\n (standAlone ? 0 : rowSpanCalc * rowFieldSpacingBottom);\n }\n\n return fieldHeight;\n }\n\n calculateCardRowsHeight(rowsCount = 1, withSpacing = true): number {\n const themeVars = this.getThemeVariables();\n const cardFieldHeight = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.CARD_FIELD_HEIGHT_KEY\n );\n const cardFieldSpacing = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.CARD_SPACEING_KEY\n );\n\n const fieldHeight =\n rowsCount * cardFieldHeight +\n (rowsCount - 1) * (withSpacing ? cardFieldSpacing : 0);\n return fieldHeight;\n }\n\n calculateTableRowsHeight(rowsCount = 1, withSpacing = true): number {\n const themeVars = this.getThemeVariables();\n const tableFieldHeight = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.TABLE_FIELD_HEIGHT_KEY\n );\n const tableFieldSpacing = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.TABLE_SPACEING_KEY\n );\n\n const fieldHeight =\n rowsCount *\n (tableFieldHeight + (withSpacing ? tableFieldSpacing * 2 : 0));\n return fieldHeight;\n }\n\n calculateFieldHeight(layoutType = 'form', rowSpan, standAlone): string {\n let fieldHeight = 'inherit'; // Default for card (with no title)\n if (layoutType === 'table') {\n fieldHeight = this.getThemeVariable(\n PepCustomizationService.TABLE_FIELD_HEIGHT_KEY\n );\n } else if (layoutType === 'card') {\n fieldHeight =\n this.calculateCardRowsHeight(rowSpan, !standAlone) +\n PepCustomizationService.REM_STRING;\n } else {\n // Form\n fieldHeight =\n this.calculateFormFieldHeight(false, rowSpan, standAlone) +\n PepCustomizationService.REM_STRING;\n }\n\n return fieldHeight;\n }\n\n getBrandingTheme(): string {\n const themeObj = this.sessionService.getObject(\n PepCustomizationService.USER_THEME\n );\n return (themeObj && themeObj.Theme) || 'default-theme'; // 'light-theme';\n }\n\n getDefaultThemeLayoutVariables(themeVars: any): void {\n // Declare default screen sizes.\n themeVars['--pep-screen-max-size-2xs'] =\n '460' + PepCustomizationService.PX_STRING;\n themeVars['--pep-screen-max-size-xs'] =\n '767' + PepCustomizationService.PX_STRING;\n themeVars['--pep-screen-max-size-sm'] =\n '991' + PepCustomizationService.PX_STRING;\n themeVars['--pep-screen-max-size-md'] =\n '1199' + PepCustomizationService.PX_STRING;\n themeVars['--pep-screen-max-size-lg'] =\n '1366' + PepCustomizationService.PX_STRING;\n themeVars['--pep-screen-max-size-xl'] =\n '1920' + PepCustomizationService.PX_STRING;\n\n // Declare default top bar.\n themeVars[PepCustomizationService.SIDE_BAR_WIDTH_KEY] =\n '16' + PepCustomizationService.REM_STRING;\n\n // Declare default top bar.\n themeVars[PepCustomizationService.TOP_BAR_SPACING_TOP_KEY] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.TOP_BAR_SPACING_BOTTOM_KEY] =\n '0.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.TOP_BAR_FIELD_HEIGHT_KEY] =\n '2.5' + PepCustomizationService.REM_STRING;\n\n // Declare default footer.\n themeVars[PepCustomizationService.FOOTER_BAR_SPACING_TOP_KEY] =\n '0.75' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FOOTER_BAR_SPACING_BOTTOM_KEY] =\n '1.25' + PepCustomizationService.REM_STRING;\n }\n\n getDefaultThemeBorderRadiusVariables(themeVars: any): void {\n themeVars[PepCustomizationService.BORDER_RADIUS_SM_KEY] =\n '0.125' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.BORDER_RADIUS_MD_KEY] =\n '0.25' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.BORDER_RADIUS_LG_KEY] =\n '0.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.BORDER_RADIUS_XL_KEY] =\n '1' + PepCustomizationService.REM_STRING;\n }\n\n getDefaultThemeSpacingVariables(themeVars: any): void {\n themeVars[PepCustomizationService.SPACING_SIZE_2XS_KEY] =\n '0.125' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_XS_KEY] =\n '0.25' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_SM_KEY] =\n '0.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_MD_KEY] =\n '0.75' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_LG_KEY] =\n '1' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_XL_KEY] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_2XL_KEY] =\n '2' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_3XL_KEY] =\n '2.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_4XL_KEY] =\n '3' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_5XL_KEY] =\n '3.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_6XL_KEY] =\n '5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_7XL_KEY] =\n '6' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_8XL_KEY] =\n '8' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.SPACING_SIZE_9XL_KEY] =\n '16' + PepCustomizationService.REM_STRING;\n }\n\n getDefaultThemeFontsVariables(themeVars: any): void {\n // Title font family\n themeVars[PepCustomizationService.FONT_FAMILY_TITLE_KEY] = 'Nexa';\n\n // Body font family\n themeVars[PepCustomizationService.FONT_FAMILY_BODY_KEY] = 'Inter';\n\n // Font sizes\n themeVars[PepCustomizationService.FONT_SIZE_2XS_KEY] =\n '0.625' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FONT_SIZE_XS_KEY] =\n '0.75' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FONT_SIZE_SM_KEY] =\n '0.875' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FONT_SIZE_MD_KEY] =\n '1' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FONT_SIZE_LG_KEY] =\n '1.125' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FONT_SIZE_XL_KEY] =\n '1.25' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FONT_SIZE_2XL_KEY] =\n '1.5' + PepCustomizationService.REM_STRING;\n\n // Line height\n themeVars[PepCustomizationService.LINE_HEIGHT_2XS_KEY] =\n '0.75' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.LINE_HEIGHT_XS_KEY] =\n '1' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.LINE_HEIGHT_SM_KEY] =\n '1.25' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.LINE_HEIGHT_MD_KEY] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.LINE_HEIGHT_LG_KEY] =\n '1.75' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.LINE_HEIGHT_XL_KEY] =\n '2' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.LINE_HEIGHT_2XL_KEY] =\n '2.25' + PepCustomizationService.REM_STRING;\n\n // Font weight\n themeVars['--pep-font-weight-normal'] = 400;\n themeVars['--pep-font-weight-bold'] = 600;\n themeVars['--pep-font-weight-bolder'] = 800;\n }\n\n getDefaultThemeButtonsVariables(themeVars: any): void {\n themeVars['--pep-button-2xs-horizontal-spacing'] =\n '0.25' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-2xs-min-width'] =\n '1' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-2xs-height'] =\n '1' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-2xs-font-size'] =\n 'var(' + PepCustomizationService.FONT_SIZE_2XS_KEY + ')';\n // themeVars['--pep-button-2xs-icon-horizontal-spacing'] = '0.125' + PepCustomizationService.REM_STRING;\n\n themeVars['--pep-button-xs-horizontal-spacing'] =\n '0.5' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-xs-min-width'] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-xs-height'] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-xs-font-size'] =\n 'var(' + PepCustomizationService.FONT_SIZE_XS_KEY + ')';\n // themeVars['--pep-button-xs-icon-horizontal-spacing'] = '0.25' + PepCustomizationService.REM_STRING;\n\n themeVars['--pep-button-sm-horizontal-spacing'] =\n '0.75' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-sm-min-width'] =\n '2' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-sm-height'] =\n '2' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-sm-font-size'] =\n 'var(' + PepCustomizationService.FONT_SIZE_SM_KEY + ')';\n // themeVars['--pep-button-sm-icon-horizontal-spacing'] = '0.5' + PepCustomizationService.REM_STRING;\n\n themeVars['--pep-button-md-horizontal-spacing'] =\n '1' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-md-min-width'] =\n '2.5' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-md-height'] =\n '2.5' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-md-font-size'] =\n 'var(' + PepCustomizationService.FONT_SIZE_MD_KEY + ')';\n // themeVars['--pep-button-md-icon-horizontal-spacing'] = '0.5' + PepCustomizationService.REM_STRING;\n\n themeVars['--pep-button-lg-horizontal-spacing'] =\n '1' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-lg-min-width'] =\n '3' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-lg-height'] =\n '3' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-lg-font-size'] =\n 'var(' + PepCustomizationService.FONT_SIZE_LG_KEY + ')';\n // themeVars['--pep-button-lg-icon-horizontal-spacing'] = '0.75' + PepCustomizationService.REM_STRING;\n\n themeVars['--pep-button-xl-horizontal-spacing'] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-xl-min-width'] =\n '4' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-xl-height'] =\n '4' + PepCustomizationService.REM_STRING;\n themeVars['--pep-button-xl-font-size'] =\n 'var(' + PepCustomizationService.FONT_SIZE_XL_KEY + ')';\n // themeVars['--pep-button-xl-icon-horizontal-spacing'] = '1' + PepCustomizationService.REM_STRING;\n }\n\n getSystemPrimaryInvertColorsVariables(themeVars: any): void {\n themeVars[\n PepCustomizationService.COLOR_SYSTEM_PRIMARY_INVERT_KEY + '-h'\n ] = '255';\n themeVars[\n PepCustomizationService.COLOR_SYSTEM_PRIMARY_INVERT_KEY + '-s'\n ] = '100%';\n themeVars[\n PepCustomizationService.COLOR_SYSTEM_PRIMARY_INVERT_KEY + '-l'\n ] = '100%';\n }\n\n getSystemPrimaryColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-h'] =\n '0';\n themeVars[PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-s'] =\n '0%';\n themeVars[PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-l'] =\n '10%';\n }\n\n getSystemSuccessColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_SYSTEM_SUCCESS_KEY + '-h'] =\n '100';\n themeVars[PepCustomizationService.COLOR_SYSTEM_SUCCESS_KEY + '-s'] =\n '100%';\n themeVars[PepCustomizationService.COLOR_SYSTEM_SUCCESS_KEY + '-l'] =\n '25%';\n }\n\n getSystemCautionColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_SYSTEM_CAUTION_KEY + '-h'] =\n '360';\n themeVars[PepCustomizationService.COLOR_SYSTEM_CAUTION_KEY + '-s'] =\n '100%';\n themeVars[PepCustomizationService.COLOR_SYSTEM_CAUTION_KEY + '-l'] =\n '40%';\n }\n\n getUserPrimaryColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_USER_PRIMARY_KEY + '-h'] = '78';\n themeVars[PepCustomizationService.COLOR_USER_PRIMARY_KEY + '-s'] =\n '87%';\n themeVars[PepCustomizationService.COLOR_USER_PRIMARY_KEY + '-l'] =\n '27%';\n }\n\n getUserSecondaryColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_USER_SECONDARY_KEY + '-h'] =\n '36';\n themeVars[PepCustomizationService.COLOR_USER_SECONDARY_KEY + '-s'] =\n '100%';\n themeVars[PepCustomizationService.COLOR_USER_SECONDARY_KEY + '-l'] =\n '50%';\n }\n\n getWeakColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_WEAK_KEY + '-h'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-h)';\n themeVars[PepCustomizationService.COLOR_WEAK_KEY + '-s'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-s)';\n themeVars[PepCustomizationService.COLOR_WEAK_KEY + '-l'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-l)';\n }\n\n getRegularColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_REGULAR_KEY + '-h'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-h)';\n themeVars[PepCustomizationService.COLOR_REGULAR_KEY + '-s'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-s)';\n themeVars[PepCustomizationService.COLOR_REGULAR_KEY + '-l'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-l)';\n }\n\n getStrongColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_STRONG_KEY + '-h'] =\n 'var(' + PepCustomizationService.COLOR_USER_PRIMARY_KEY + '-h)';\n themeVars[PepCustomizationService.COLOR_STRONG_KEY + '-s'] =\n 'var(' + PepCustomizationService.COLOR_USER_PRIMARY_KEY + '-s)';\n themeVars[PepCustomizationService.COLOR_STRONG_KEY + '-l'] =\n 'var(' + PepCustomizationService.COLOR_USER_PRIMARY_KEY + '-l)';\n }\n\n getTextColorsVariables(themeVars: any): void {\n themeVars[PepCustomizationService.COLOR_TEXT_LINK_KEY + '-h'] = '207';\n themeVars[PepCustomizationService.COLOR_TEXT_LINK_KEY + '-s'] = '76%';\n themeVars[PepCustomizationService.COLOR_TEXT_LINK_KEY + '-l'] = '37%';\n }\n\n getDefaultThemeColorsVariables(themeVars: any): void {\n // System primary invert colors.\n this.getSystemPrimaryInvertColorsVariables(themeVars);\n // System primary colors.\n this.getSystemPrimaryColorsVariables(themeVars);\n // System success colors.\n this.getSystemSuccessColorsVariables(themeVars);\n // System caution colors.\n this.getSystemCautionColorsVariables(themeVars);\n // User primary colors.\n this.getUserPrimaryColorsVariables(themeVars);\n // User secondary colors.\n this.getUserSecondaryColorsVariables(themeVars);\n\n // Weak colors.\n this.getWeakColorsVariables(themeVars);\n // Regular colors.\n this.getRegularColorsVariables(themeVars);\n // Strong colors.\n this.getStrongColorsVariables(themeVars);\n\n // Text colors.\n this.getTextColorsVariables(themeVars);\n }\n\n getDefaultThemeShadowsVariables(themeVars: any): void {\n const noneOffset = '0';\n themeVars[PepCustomizationService.SHADOW_NONE_OFFSET_KEY] = noneOffset;\n\n const xsOffset = '0 0.125rem 0.25rem 0';\n themeVars[PepCustomizationService.SHADOW_XS_OFFSET_KEY] = xsOffset;\n\n const smOffset = '0 0.25rem 0.5rem 0';\n themeVars[PepCustomizationService.SHADOW_SM_OFFSET_KEY] = smOffset;\n\n const mdOffset = '0 0.5rem 1rem 0';\n themeVars[PepCustomizationService.SHADOW_MD_OFFSET_KEY] = mdOffset;\n\n const lgOffset = '0 1rem 2rem 0';\n themeVars[PepCustomizationService.SHADOW_LG_OFFSET_KEY] = lgOffset;\n\n const xlOffset = '0 2rem 4rem 0';\n themeVars[PepCustomizationService.SHADOW_XL_OFFSET_KEY] = xlOffset;\n }\n\n getDefaultThemeFormCustomizationVariables(themeVars: any): void {\n const formFieldSpacing = 1;\n themeVars[PepCustomizationService.FORM_FIELD_HEIGHT_KEY] =\n '2.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FORM_FIELD_TITLE_HEIGHT_KEY] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FORM_SPACEING_KEY] =\n formFieldSpacing + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.FORM_FIELD_SPACEING_KEY] =\n formFieldSpacing + PepCustomizationService.REM_STRING;\n }\n\n getDefaultThemeCardCustomizationVariables(themeVars: any): void {\n themeVars[PepCustomizationService.CARD_FIELD_HEIGHT_KEY] =\n '1.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.CARD_SPACEING_KEY] =\n 'var(' + PepCustomizationService.SPACING_SIZE_XS_KEY + ')';\n\n themeVars[PepCustomizationService.CARD_BORDER_RADIUS_KEY] =\n 'var(' + PepCustomizationService.BORDER_RADIUS_MD_KEY + ')';\n themeVars[PepCustomizationService.CARD_SHADOW_OFFSET_KEY] =\n 'var(' + PepCustomizationService.SHADOW_MD_OFFSET_KEY + ')';\n }\n\n getDefaultThemeTableCustomizationVariables(themeVars: any): void {\n themeVars[PepCustomizationService.TABLE_FIELD_HEIGHT_KEY] =\n '2' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.TABLE_SPACEING_KEY] =\n '0.5' + PepCustomizationService.REM_STRING;\n themeVars[PepCustomizationService.TABLE_BORDER_RADIUS_KEY] =\n 'var(' + PepCustomizationService.BORDER_RADIUS_MD_KEY + ')';\n }\n\n getDefaultThemeQSCustomizationVariables(themeVars: any): void {\n const qsState: PepStyleType = 'regular';\n themeVars[PepCustomizationService.STYLE_QS_KEY] = qsState;\n\n themeVars[PepCustomizationService.COLOR_QS_KEY + '-h'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-h)';\n themeVars[PepCustomizationService.COLOR_QS_KEY + '-s'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-s)';\n themeVars[PepCustomizationService.COLOR_QS_KEY + '-l'] =\n 'var(' + PepCustomizationService.COLOR_SYSTEM_PRIMARY_KEY + '-l)';\n }\n\n getDefaultThemeTopHeaderCustomizationVariables(themeVars: any): void {\n const topHeaderState: PepStyleType = 'strong';\n themeVars[\n PepCustomizationService.STYLE_TOP_HEADER_KEY\n ] = topHeaderState;\n\n themeVars[PepCustomizationService.COLOR_TOP_HEADER_KEY + '-h'] = '';\n themeVars[PepCustomizationService.COLOR_TOP_HEADER_KEY + '-s'] = '';\n themeVars[PepCustomizationService.COLOR_TOP_HEADER_KEY + '-l'] = '';\n }\n\n // getDefaultThemeBrandingCustomizationVariables(themeVars: any): void {\n // themeVars[PepCustomizationService.BRANDING_LOGO_SRC] = '/assets/images/Pepperi-Logo-HiRes.png';\n // themeVars[PepCustomizationService.FAV_ICON_SRC] = '/assets/favicon.ico';\n // }\n\n getDefaultThemeVariables(): any {\n const themeVars = {};\n\n // Declare default layout.\n this.getDefaultThemeLayoutVariables(themeVars);\n\n // Declare default border radius.\n this.getDefaultThemeBorderRadiusVariables(themeVars);\n\n // Declare default spacing.\n this.getDefaultThemeSpacingVariables(themeVars);\n\n // Declare default fonts size & line height.\n this.getDefaultThemeFontsVariables(themeVars);\n\n // Declare default buttons.\n this.getDefaultThemeButtonsVariables(themeVars);\n\n // Declare default colors.\n this.getDefaultThemeColorsVariables(themeVars);\n\n // Declare default shadows.\n this.getDefaultThemeShadowsVariables(themeVars);\n\n // Declare default form customization.\n this.getDefaultThemeFormCustomizationVariables(themeVars);\n\n // Declare default card customization.\n this.getDefaultThemeCardCustomizationVariables(themeVars);\n\n // Declare default table customization.\n this.getDefaultThemeTableCustomizationVariables(themeVars);\n\n // Declare default qs customization.\n this.getDefaultThemeQSCustomizationVariables(themeVars);\n\n // Declare default top header customization.\n this.getDefaultThemeTopHeaderCustomizationVariables(themeVars);\n\n // // Declare default branding logo's customization\n // this.getDefaultThemeBrandingCustomizationVariables(themeVars);\n\n return themeVars;\n }\n\n getThemeVariables(): any {\n const ret = this.getDefaultThemeVariables();\n const themeVars = this.sessionService.getObject(\n PepCustomizationService.USER_THEME_VARIABLES\n );\n\n // Override defaults.\n if (themeVars) {\n for (const key in themeVars) {\n ret[key] = themeVars[key];\n }\n }\n\n return ret;\n }\n\n setThemeVariables(themeVariablesToSet = null): void {\n const themeVariables = this.getThemeVariables();\n\n // Override defaults.\n if (themeVariablesToSet) {\n for (const key in themeVariablesToSet) {\n themeVariables[key] = themeVariablesToSet[key];\n }\n }\n\n this.sessionService.setObject(\n PepCustomizationService.USER_THEME_VARIABLES,\n JSON.stringify(themeVariables)\n );\n\n for (const key in themeVariables) {\n if (this.isFontUrlKey(key)) {\n this.fileService.loadFontStyle(key, themeVariables[key]);\n } else {\n document.documentElement.style.setProperty(\n key,\n themeVariables[key]\n );\n }\n }\n }\n\n isFontUrlKey(key: string): boolean {\n let res = false;\n\n if (\n key === PepCustomizationService.FONT_FAMILY_TITLE_NORMAL_URL_KEY ||\n key === PepCustomizationService.FONT_FAMILY_TITLE_BOLD_URL_KEY ||\n key === PepCustomizationService.FONT_FAMILY_BODY_NORMAL_URL_KEY ||\n key === PepCustomizationService.FONT_FAMILY_BODY_BOLD_URL_KEY\n ) {\n res = true;\n }\n\n return res;\n }\n\n getThemeVariable(key: string): string {\n const themeVars = this.getThemeVariables();\n\n if (themeVars.hasOwnProperty(key)) {\n return themeVars[key];\n } else {\n return '';\n }\n }\n\n getNumberThemeVariable(themeVars, key: string): number {\n if (themeVars && themeVars.hasOwnProperty(key)) {\n // If it's reference to another key.\n if (themeVars[key].indexOf('var(') === 0) {\n key = themeVars[key].substr(4).split(')')[0];\n }\n\n const tmp = Number(\n themeVars[key].replace(PepCustomizationService.REM_STRING, '')\n );\n return tmp;\n } else {\n return 0;\n }\n }\n\n private setFooterHeight(height): void {\n if (this.footerHeight.getValue() !== height) {\n // it is publishing this value to all the subscribers that have already subscribed to this message\n setTimeout(() => {\n this.footerHeight.next(height);\n }, 0);\n }\n document.documentElement.style.setProperty(\n PepCustomizationService.FOOTER_HEIGHT_KEY,\n height + PepCustomizationService.REM_STRING\n );\n }\n\n hideFooter(): void {\n this.setFooterHeight(0);\n }\n\n showFooter(): void {\n const themeVars = this.getThemeVariables();\n\n const res =\n this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.FOOTER_BAR_SPACING_TOP_KEY\n ) +\n this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.FOOTER_BAR_SPACING_BOTTOM_KEY\n ) +\n this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.TOP_BAR_FIELD_HEIGHT_KEY\n );\n\n this.setFooterHeight(res);\n }\n\n private setSettingsWidth(width): void {\n if (this.settingsWidth.getValue() !== width) {\n // it is publishing this value to all the subscribers that have already subscribed to this message\n setTimeout(() => {\n this.settingsWidth.next(width);\n }, 0);\n }\n document.documentElement.style.setProperty(\n PepCustomizationService.SETTINGS_WIDTH_KEY,\n width + PepCustomizationService.REM_STRING\n );\n }\n\n hideSettings(): void {\n this.setSettingsWidth(0);\n }\n\n showSettings(): void {\n const themeVars = this.getThemeVariables();\n\n const res = this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.SIDE_BAR_WIDTH_KEY\n );\n\n this.setSettingsWidth(res);\n }\n\n getTopBarHeight(): number {\n const themeVars = this.getThemeVariables();\n\n const res =\n this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.TOP_BAR_SPACING_TOP_KEY\n ) +\n this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.TOP_BAR_SPACING_BOTTOM_KEY\n ) +\n this.getNumberThemeVariable(\n themeVars,\n PepCustomizationService.TOP_BAR_FIELD_HEIGHT_KEY\n );\n\n return res;\n }\n\n setOldUserTheme(res: any): void {\n // Added user theme.\n const themeObj = {\n Theme: res.Theme || 'default-theme',\n };\n\n this.sessionService.setObject(\n PepCustomizationService.USER_THEME,\n JSON.stringify(themeObj)\n );\n\n let spinnerColor;\n let brandingFontColor;\n\n if (this.isLightColor(res.BrandingMainColor)) {\n spinnerColor = PepCustomizationService.DEFAULT_SPINNER_COLOR;\n brandingFontColor = '#222';\n } else {\n spinnerColor = res.BrandingMainColor;\n brandingFontColor = PepCustomizationService.DEFAULT_BRANDING_COLOR;\n }\n\n const color = {\n BrandingSecondaryColor: res.BrandingSecondaryColor,\n BrandingMainColor: res.BrandingMainColor,\n BrandingFontColor: brandingFontColor,\n SpinnerColor: spinnerColor,\n };\n\n this.sessionService.setObject(\n PepCustomizationService.USER_COLOR,\n JSON.stringify(color)\n );\n\n this.hasCustomHeader =\n res.TopHeaderFiles &&\n res.TopHeaderFiles.length > 0 &&\n res.TopHeaderFiles[0] !== ''\n ? true\n : false;\n this.hasCustomHomepage =\n res.UserRole === 'Buyer' &&\n res.TopHeaderFiles &&\n res.TopHeaderFiles.length > 1 &&\n res.TopHeaderFiles[1] !== '';\n }\n\n isLegacyColor(): boolean {\n const h = document.documentElement.style.getPropertyValue(\n PepCustomizationService.COLOR_TOP_HEADER_KEY + '-h'\n );\n const s = document.documentElement.style.getPropertyValue(\n PepCustomizationService.COLOR_TOP_HEADER_KEY + '-s'\n );\n const l = document.documentElement.style.getPropertyValue(\n PepCustomizationService.COLOR_TOP_HEADER_KEY + '-l'\n );\n\n return !(h && s && l);\n }\n\n getLoadingSpinnerColor(): string {\n let spinnerColor = '';\n\n if (this.isLegacyColor()) {\n const color = this.sessionService.getObject(\n PepCustomizationService.USER_COLOR\n );\n\n if (color && color.SpinnerColor) {\n spinnerColor = color.SpinnerColor;\n } else {\n spinnerColor = PepCustomizationService.DEFAULT_SPINNER_COLOR;\n }\n }\n\n return spinnerColor;\n }\n\n getBrandingMainColor(): string {\n let brandingMainColor = '';\n\n if (this.isLegacyColor()) {\n const color = this.sessionService.getObject(\n PepCustomizationService.USER_COLOR\n );\n\n if (color && color.BrandingMainColor) {\n brandingMainColor = color.BrandingMainColor;\n } else {\n brandingMainColor =\n PepCustomizationService.DEFAULT_BRANDING_COLOR;\n }\n }\n\n return brandingMainColor;\n }\n\n isLightColor(hexColor): boolean {\n if (!hexColor) {\n return;\n }\n\n let isBright = false;\n let sum = 0;\n const c = hexColor.replace(/^#/, '');\n\n sum = parseInt(c[0] + c[1], 16);\n sum += parseInt(c[2] + c[3], 16);\n sum += parseInt(c[4] + c[5], 16);\n\n if (sum > 382.6) {\n // it's bright color\n isBright = true;\n }\n\n return isBright;\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport {\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n OnInit,\n Optional,\n Renderer2,\n} from '@angular/core';\nimport { PepCustomizationService } from '../../customization/customization.service';\nimport { PepUtilitiesService } from '../services/utilities.service';\n\n@Directive({\n selector: '[pepDivLoader]',\n})\nexport class PepDivLoaderDirective implements OnInit {\n @Input() loaderColor = null;\n @Input() loaderWidth = '5rem';\n @Input() loaderHeight = 'inherit';\n \n private svgIcon: SVGElement;\n\n constructor(\n private renderer: Renderer2,\n private element: ElementRef,\n private utilitiesService: PepUtilitiesService,\n private customizationService: PepCustomizationService,\n @Optional() @Inject(DOCUMENT) private document: any\n ) {}\n\n ngOnInit(): void {\n if (!this.loaderColor) {\n this.loaderColor = this.customizationService?.getLoadingSpinnerColor();\n }\n\n this.setDivStyle();\n const svgData =\n '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 128 128\" preserveAspectRatio=\"xMidYMid\" class=\"lds-ripple\" style=\"background:0 0; \"><circle cx=\"64\" cy=\"64\" r=\"0\" fill=\"none\" stroke-width=\"10\"><animate attributeName=\"r\" calcMode=\"spline\" values=\"0;59\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0 0.3 0.8 0.8\" begin=\"-1.6s\" repeatCount=\"indefinite\"/><animate attributeName=\"opacity\" calcMode=\"spline\" values=\"1;0\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0.3 0 0.8 1\" begin=\"-1.6s\" repeatCount=\"indefinite\"/></circle><circle cx=\"64\" cy=\"64\" r=\"0\" fill=\"none\" stroke-width=\"10\"><animate attributeName=\"r\" calcMode=\"spline\" values=\"0;59\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0 0.3 0.8 0.8\" begin=\"-0.8s\" repeatCount=\"indefinite\"/><animate attributeName=\"opacity\" calcMode=\"spline\" values=\"1;0\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0.3 0 0.8 1\" begin=\"-0.8s\" repeatCount=\"indefinite\"/></circle><circle cx=\"64\" cy=\"64\" r=\"0\" fill=\"none\" stroke-width=\"10\"><animate attributeName=\"r\" calcMode=\"spline\" values=\"0;59\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0 0.3 0.8 0.8\" begin=\"0s\" repeatCount=\"indefinite\"/><animate attributeName=\"opacity\" calcMode=\"spline\" values=\"1;0\" keyTimes=\"0;1\" dur=\"2.4\" keySplines=\"0.3 0 0.8 1\" begin=\"0s\" repeatCount=\"indefinite\"/></circle></svg>';\n this.svgIcon = this.utilitiesService.getSvgElementFromString(\n this.document,\n svgData\n );\n\n this.setIconStyle();\n this.renderer.appendChild(this.element.nativeElement, this.svgIcon);\n }\n\n private setDivStyle(): void {\n this.renderer.setStyle(this.element.nativeElement, 'display', 'flex');\n this.renderer.setStyle(\n this.element.nativeElement,\n 'justify-content',\n 'center'\n );\n this.renderer.setStyle(\n this.element.nativeElement,\n 'align-items',\n 'center'\n );\n }\n\n private setIconStyle(): void {\n if (this.loaderColor) {\n this.renderer.setStyle(this.svgIcon, 'stroke', this.loaderColor);\n }\n\n this.renderer.setStyle(this.svgIcon, 'width', this.loaderWidth);\n this.renderer.setStyle(this.svgIcon, 'height', this.loaderHeight);\n this.renderer.addClass(this.svgIcon, 'svg-icon');\n this.renderer.addClass(this.svgIcon, 'stroke');\n }\n}\n","import { Injectable, TemplateRef, ViewContainerRef } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepPortalService {\n private targets: Map<string, ViewContainerRef>;\n\n constructor() {\n this.targets = new Map<string, ViewContainerRef>();\n }\n\n addTarget(targetName: string, viewContainer: ViewContainerRef): void {\n this.targets.set(targetName, viewContainer);\n }\n\n attach(targetName: string, template: TemplateRef<any>): void {\n const target = this.getTarget(targetName);\n\n if (target) {\n target.createEmbeddedView(template);\n }\n }\n\n clear(targetName: string): void {\n const target = this.getTarget(targetName);\n\n if (target) {\n target.clear();\n }\n }\n\n private getTarget(targetName: string): ViewContainerRef {\n return this.targets.has(targetName)\n ? this.targets.get(targetName)\n : null;\n }\n}\n","import {\n Directive,\n OnInit,\n OnDestroy,\n Input,\n TemplateRef,\n} from '@angular/core';\nimport { PepPortalService } from './portal.service';\n\n@Directive({\n selector: '[pepAttach]',\n})\nexport class PepAttachDirective implements OnInit, OnDestroy {\n @Input('pepAttach') targetName: string;\n\n constructor(\n private portalService: PepPortalService,\n private templateRef: TemplateRef<any>\n ) {}\n\n ngOnInit(): void {\n this.portalService.attach(this.targetName, this.templateRef);\n }\n\n ngOnDestroy(): void {\n this.portalService.clear(this.targetName);\n }\n}\n","import { Directive, OnInit, Input, ViewContainerRef } from '@angular/core';\nimport { PepPortalService } from './portal.service';\n\n@Directive({\n selector: '[pepTarget]',\n})\nexport class PepTargetDirective implements OnInit {\n @Input('pepTarget') targetName: string;\n\n constructor(\n private portalService: PepPortalService,\n private viewContainer: ViewContainerRef\n ) {}\n\n ngOnInit(): void {\n this.portalService.addTarget(this.targetName, this.viewContainer);\n }\n}\n","// Import the core angular services.\nimport { Inject, Injectable, Optional } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepClipboardService {\n // private dom: Document;\n // // I initialize the Clipboard service.\n // // --\n // // CAUTION: This service is tightly couped to the browser DOM (Document Object Model).\n // // But, by injecting the \"document\" reference rather than trying to reference it\n // // globally, we can at least pretend that we are trying to lower the tight coupling.\n // constructor(@Optional() @Inject(DOCUMENT) dom: Document) {\n // this.dom = dom;\n // }\n // // ---\n // // PUBLIC METHODS.\n // // ---\n // // I copy the given value to the user's system clipboard. Returns a promise that\n // // resolves to the given value on success or rejects with the raised Error.\n // public copy(value: string): Promise<any> {\n // const promise = new Promise(\n // (resolve, reject): void => {\n // let textarea = null;\n // try {\n // // In order to execute the \"Copy\" command, we actually have to have\n // // a \"selection\" in the currently rendered document. As such, we're\n // // going to inject a Textarea element and .select() it in order to\n // // force a selection.\n // // --\n // // NOTE: This Textarea is being rendered off-screen.\n // textarea = this.dom.createElement('textarea');\n // textarea.style.height = '0px';\n // textarea.style.left = '-100px';\n // textarea.style.opacity = '0';\n // textarea.style.position = 'fixed';\n // textarea.style.top = '-100px';\n // textarea.style.width = '0px';\n // this.dom.body.appendChild(textarea);\n // // Set and select the value (creating an active Selection range).\n // textarea.value = value;\n // textarea.select();\n // // Ask the browser to copy the current selection to the clipboard.\n // this.dom.execCommand('copy');\n // resolve(value);\n // } finally {\n // // Cleanup - remove the Textarea from the DOM if it was injected.\n // if (textarea && textarea.parentNode) {\n // textarea.parentNode.removeChild(textarea);\n // }\n // }\n // }\n // );\n // return (promise);\n // }\n}\n","/*\n * Public API Surface of ngx-lib/core/clipboard\n */\nexport * from './clipboard.service';\nexport * from './clipboard.directive';\n","/*\n * export from ngx-lib/core/clipboard\n */\nexport * from './public-api';\n","/*\n * Public API Surface of ngx-lib/core/common/directives\n */\nexport * from './auto-width.directive';\nexport * from './button-blur.directive';\nexport * from './button-loader.directive';\nexport * from './data-qa.directive';\nexport * from './menu-blur.directive';\n// export * from './debounce-click.directive';\nexport * from './prevent-multi-click.directive';\nexport * from './print.directive';\nexport * from './div-loader.directive';\n","/*\n * export from ngx-lib/core/common/directives\n */\nexport * from './public-api';\n","export class Test {}\n","export class PepGuid {\n private static pad4(num: number): string {\n let ret: string = num.toString(16);\n while (ret.length < 4) {\n ret = '0' + ret;\n }\n return ret;\n }\n\n private static random4(): string {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n\n public static newGuid(): string {\n // This is not build for -prod\n // return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\n // const r = Math.random() * 16 | 0;\n // const v = c === 'x' ? r : (r & 0x3 | 0x8);\n // return v.toString(16);\n // });\n\n // If we have a cryptographically secure PRNG, use that\n if (\n typeof window !== 'undefined' &&\n typeof window.crypto !== 'undefined' &&\n typeof window.crypto.getRandomValues !== 'undefined'\n ) {\n const buf: Uint16Array = new Uint16Array(8);\n window.crypto.getRandomValues(buf);\n return (\n this.pad4(buf[0]) +\n this.pad4(buf[1]) +\n '-' +\n this.pad4(buf[2]) +\n '-' +\n this.pad4(buf[3]) +\n '-' +\n this.pad4(buf[4]) +\n '-' +\n this.pad4(buf[5]) +\n this.pad4(buf[6]) +\n this.pad4(buf[7])\n );\n } else {\n // Otherwise, just use Math.random\n return (\n this.random4() +\n this.random4() +\n '-' +\n this.random4() +\n '-' +\n this.random4() +\n '-' +\n this.random4() +\n '-' +\n this.random4() +\n this.random4() +\n this.random4()\n );\n }\n }\n}\n","export enum FIELD_TYPE {\n // specify text field\n 'Default' = 0,\n 'TextBox' = 1,\n 'LimitedLengthTextBox' = 2,\n // specify text area field\n 'TextArea' = 3,\n 'TextHeader' = 4,\n // specify date field\n 'Date' = 5,\n // specify date & time field\n 'DateAndTime' = 6,\n // specify integer field\n 'NumberInteger' = 7,\n // specify decimal field\n 'NumberReal' = 8,\n // specify currency field\n 'Currency' = 9,\n // specify boolean field\n 'Boolean' = 10,\n // specify multiple options field\n 'ComboBox' = 11,\n // specify multiple options field\n 'MultiTickBox' = 12,\n // specify separator (view only) field\n 'Separator' = 13,\n // specify address field\n 'Address' = 14,\n // specify percentage field\n 'Percentage' = 15,\n 'EmptyComboBox' = 16, // For Category, CPIPriceList, Special Price List (ComboBox Without Values)\n 'InternalLink' = 17, // for reps, Contacts, Locations & Catalogs\n // specify email field\n 'Email' = 18,\n 'LimitedDate' = 19,\n // specify image field\n 'Image' = 20,\n 'MultiTickBoxToComboBox' = 21,\n 'EmptyMultiTickBox' = 22,\n 'Totals' = 23,\n // specify attachment field\n 'Attachment' = 24,\n 'Signature' = 25,\n // specify link field\n 'Link' = 26,\n // specify image url field\n 'ImageURL' = 27,\n 'NumberIntegerQuantitySelector' = 28, // hack for quantity selector in case of integer\n 'NumberRealQuantitySelector' = 29, // hack for quantity selector in case of double\n 'NumberIntegerForMatrix' = 30, // hack for integer in matrix\n 'NumberRealForMatrix' = 31, // hack for double in matrix\n 'Images' = 32, // hack for Images (for filmstrip and variants)\n 'Indicators' = 33, // Indicators is like address (group field that conains boolean fields).\n 'CalculatedReal' = 34,\n 'CalculatedInt' = 35,\n 'CalculatedString' = 36,\n 'CalculatedDate' = 37,\n 'CalculatedBool' = 38,\n 'MapDataDropDown' = 39,\n 'MapDataReal' = 40,\n 'MapDataString' = 41,\n 'MapDataInt' = 42,\n 'Sum' = 43,\n 'Phone' = 44,\n 'UrlForApi' = 45,\n 'ManyToManyUrlForApi' = 46,\n 'ReferenceType' = 47,\n 'GuidReferenceType' = 48,\n 'Button' = 49,\n 'InternalPage' = 50, // The old value was 45 - in the cpi project the \"InternalPage\" value is 50 so i fixed it!!!\n 'Duration' = 51,\n 'ListOfObjects' = 52,\n 'Package' = 53, // Package Quantity Selector\n 'RelatedObjectsCards' = 54,\n 'BooleanText' = 55, // Boolean that return a string defined by the user in case of true/false\n 'RichTextHTML' = 56, // Html Text\n}\n\nexport enum X_ALIGNMENT_TYPE {\n None = 0,\n Left = 1,\n Right = 2,\n Center = 3,\n}\n\nexport enum Y_ALIGNMENT_TYPE {\n None = 0,\n Top = 1,\n Bottom = 2,\n Center = 3,\n}\n\nexport class FieldLayout {\n X: number;\n Width: number;\n XAlignment: X_ALIGNMENT_TYPE;\n Y: Y_ALIGNMENT_TYPE;\n Height: number;\n YAlignment: Y_ALIGNMENT_TYPE;\n LineNumber: number;\n\n // constructor(\n // x = 0,\n // width = 1,\n // xAlignment: X_ALIGNMENT_TYPE = 1, y: Y_ALIGNMENT_TYPE = 0, height = 1, yAlignment = 1, lineNumber = 1) {\n // this.X = x;\n // this.Width = width;\n // this.XAlignment = xAlignment;\n // this.Y = y;\n // this.Height = height;\n // this.YAlignment = yAlignment;\n // this.LineNumber = lineNumber;\n // }\n\n constructor(data: Partial<FieldLayout>) {\n Object.assign(this, data);\n }\n}\n\nexport class UIControlField {\n Title: string;\n MandatoryField = false;\n Mandatory = false;\n ReadOnlyField: boolean;\n ReadOnly: boolean;\n FieldConditions: any;\n CustomField: any;\n ApiName: string;\n FieldType: FIELD_TYPE;\n OptionalValues: Array<KeyValuePair<string>>;\n MinValue: number;\n MaxValue: number;\n MaxCharacters: number;\n MaxFieldCharacters: number;\n MaxLines: number;\n Layout: FieldLayout; // { X: number; Height: number; Y: number; Width: number; XAlignment: number; YAlignment: number };\n ColumnWidth: number;\n ColumnWidthType: number;\n FieldName: string;\n DefaultValue: string;\n Hidden: boolean;\n ObjectTypeReference: any;\n ParentField: string;\n WrntyFieldName: string;\n Editor: any;\n minFieldWidth = 45;\n calcColumnWidth = 10;\n calcTitleColumnWidthString = '100%';\n calcColumnWidthString = '100%';\n}\n\nexport class UIControl {\n ObjectID: any;\n Type: string;\n DisplayName: string;\n ControlFields: Array<UIControlField>;\n Columns: number;\n}\n\nexport class ObjectsDataRowCell {\n Accessory?: string;\n AdditionalValue?: string;\n ApiName: string;\n BackgroundColor?: string;\n Enabled?: boolean;\n FieldType: number;\n FormattedValue: any;\n GroupFields?: Array<ObjectsDataRowCell>;\n Highlighted?: boolean;\n NotificationInfo?: string;\n OptionalValues?: Array<KeyValuePair<string>>;\n ReferenceObjectInternalType?: string;\n ReferenceObjectSubType?: string;\n ReferenceObjectType?: string;\n TextColor?: string;\n UiPageKey?: string;\n UIPageInfo?: any;\n // Type?: string; // This is in the object??\n Value: any;\n Visible?: boolean; \n DigitsNumberAfterDecimalPoint?: number;\n}\n\nexport class ObjectsDataRow {\n AdditionalData?: any;\n BackgroundColor?: string;\n ExtraInfo?: Array<{ Key: string; Value: string }>;\n Fields: Array<ObjectsDataRowCell>;\n IsEditable = true;\n IsSelected = false;\n IsSelectableForActions = true;\n MainAction?: string;\n Profile?: any;\n Type: number;\n UID: any;\n Key: string;\n}\n\nexport class ObjectSingleData {\n Data: ObjectsDataRow;\n ErrorCode: string;\n ErrorMessage: string;\n IsEditable: boolean;\n Success: boolean;\n Type: string;\n UIControl: UIControl;\n\n constructor(uiControl: UIControl = null, data: ObjectsDataRow = null) {\n this.Success = true;\n this.ErrorMessage = '';\n this.Type = '';\n\n this.UIControl = uiControl;\n this.Data = data;\n }\n}\n\nexport class ObjectsData {\n DateFilter?: string;\n ErrorCode: string;\n ErrorMessage: string;\n Rows: Array<ObjectsDataRow>;\n SearchCode?: string;\n SecSmartSearchList?: [];\n SmartSearchList: Array<SmartSearchResponse>;\n Success: boolean;\n TotalRows: number;\n UIControl: UIControl;\n // AllRows: Array<ObjectsDataRow>;\n // TotalAmount: any;\n // CurrencySymbol: any;\n\n constructor() {\n this.ErrorMessage = '';\n this.Success = true;\n // this.TotalAmount = '0';\n // this.CurrencySymbol = '$';\n }\n}\n\nexport class SmartSearchValues {\n ApiName: string;\n ComparisonType: string;\n Value: string;\n ValueRange: { Start: string; End: string };\n Values: Array<string>;\n}\n\nexport class SmartSearchResponse {\n ApiName: string;\n FieldType: any;\n Title: string;\n Values: Array<KeyValuePair<string>>;\n SmartSearchData: SmartSearchValues;\n}\n\nexport class KeyValuePair<T> {\n Key: string;\n Value: T;\n}\n","/*\n * Public API Surface of ngx-lib/core/common/model\n */\nexport * from './papi.model';\nexport * from './utilities.model';\nexport * from './wapi.model';\n","/*\n * export from ngx-lib/core/common/model\n */\nexport * from './public-api';\n","/*\n * Public API Surface of ngx-lib/core/common/pipes\n */\nexport * from './common-pipes';\nexport * from './date-ago.pipe';\n","/*\n * export from ngx-lib/core/common/pipes\n */\nexport * from './public-api';\n","import {\n Injectable,\n Inject,\n PLATFORM_ID,\n InjectionToken,\n Optional,\n} from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepCookieService {\n private readonly documentIsAccessible: boolean;\n\n constructor(\n @Optional() @Inject(DOCUMENT) private document: any,\n @Inject(PLATFORM_ID) private platformId: InjectionToken<any>\n ) {\n this.documentIsAccessible = isPlatformBrowser(this.platformId);\n }\n\n /**\n * @param name Cookie name\n * @returns boolean - whether cookie with specified name exists\n */\n check(name: string): boolean {\n if (!this.documentIsAccessible) {\n return false;\n }\n\n name = encodeURIComponent(name);\n\n const regExp: RegExp = this.getCookieRegExp(name);\n const exists: boolean = regExp.test(this.document.cookie);\n\n return exists;\n }\n\n /**\n * @param name Cookie name\n * @returns property value\n */\n get(name: string): string {\n if (this.documentIsAccessible && this.check(name)) {\n name = encodeURIComponent(name);\n\n const regExp: RegExp = this.getCookieRegExp(name);\n const result: RegExpExecArray = regExp.exec(this.document.cookie);\n\n return this.safeDecodeURIComponent(result[1]);\n } else {\n return '';\n }\n }\n\n /**\n * @returns all the cookies in json\n */\n getAll(): { [key: string]: string } {\n if (!this.documentIsAccessible) {\n return {};\n }\n\n const cookies: { [key: string]: string } = {};\n const document: any = this.document;\n\n if (document.cookie && document.cookie !== '') {\n document.cookie.split(';').forEach((currentCookie) => {\n const [cookieName, cookieValue] = currentCookie.split('=');\n cookies[\n this.safeDecodeURIComponent(cookieName.replace(/^ /, ''))\n ] = this.safeDecodeURIComponent(cookieValue);\n });\n }\n\n return cookies;\n }\n\n /**\n * @param name Cookie name\n * @param value Cookie value\n * @param expires Number of days until the cookies expires or an actual `Date`\n * @param path Cookie path\n * @param domain Cookie domain\n * @param secure Secure flag\n * @param sameSite OWASP samesite token `Lax`, `None`, or `Strict`. Defaults to `Lax`\n */\n set(\n name: string,\n value: string,\n expires?: number | Date,\n path?: string,\n domain?: string,\n secure?: boolean,\n sameSite: 'Lax' | 'None' | 'Strict' = 'Lax'\n ): void {\n if (!this.documentIsAccessible) {\n return;\n }\n\n let cookieString: string =\n encodeURIComponent(name) + '=' + encodeURIComponent(value) + ';';\n\n if (expires) {\n if (typeof expires === 'number') {\n const dateExpires: Date = new Date(\n new Date().getTime() + expires * 1000 * 60 * 60 * 24\n );\n\n cookieString += 'expires=' + dateExpires.toUTCString() + ';';\n } else {\n cookieString += 'expires=' + expires.toUTCString() + ';';\n }\n }\n\n if (path) {\n cookieString += 'path=' + path + ';';\n }\n\n if (domain) {\n cookieString += 'domain=' + domain + ';';\n }\n\n if (secure === false && sameSite === 'None') {\n secure = true;\n }\n\n if (secure) {\n cookieString += 'secure;';\n }\n\n cookieString += 'sameSite=' + sameSite + ';';\n\n this.document.cookie = cookieString;\n }\n\n /**\n * @param name Cookie name\n * @param path Cookie path\n * @param domain Cookie domain\n */\n delete(\n name: string,\n path?: string,\n domain?: string,\n secure?: boolean,\n sameSite: 'Lax' | 'None' | 'Strict' = 'Lax'\n ): void {\n if (!this.documentIsAccessible) {\n return;\n }\n\n this.set(\n name,\n '',\n new Date('Thu, 01 Jan 1970 00:00:01 GMT'),\n path,\n domain,\n secure,\n sameSite\n );\n }\n\n /**\n * @param path Cookie path\n * @param domain Cookie domain\n */\n deleteAll(\n path?: string,\n domain?: string,\n secure?: boolean,\n sameSite: 'Lax' | 'None' | 'Strict' = 'Lax'\n ): void {\n if (!this.documentIsAccessible) {\n return;\n }\n\n const cookies: any = this.getAll();\n\n for (const cookieName in cookies) {\n if (cookies.hasOwnProperty(cookieName)) {\n this.delete(cookieName, path, domain, secure, sameSite);\n }\n }\n }\n\n /**\n * @param name Cookie name\n * @returns property RegExp\n */\n private getCookieRegExp(name: string): RegExp {\n const escapedName: string = name.replace(\n /([\\[\\]\\{\\}\\(\\)\\|\\=\\;\\+\\?\\,\\.\\*\\^\\$])/gi,\n '\\\\$1'\n );\n\n return new RegExp(\n '(?:^' + escapedName + '|;\\\\s*' + escapedName + ')=(.*?)(?:;|$)',\n 'g'\n );\n }\n\n private safeDecodeURIComponent(encodedURIComponent: string): string {\n try {\n return decodeURIComponent(encodedURIComponent);\n } catch {\n // probably it is not uri encoded. return as is\n return encodedURIComponent;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n HttpClient,\n HttpErrorResponse,\n HttpParams,\n HttpHeaders,\n} from '@angular/common/http';\nimport { throwError, Observable } from 'rxjs';\nimport { retry, catchError, tap } from 'rxjs/operators';\nimport { PepSessionService } from '../../common/services/session.service';\nimport { PepCookieService } from '../../common/services/cookie.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepHttpService {\n private readonly AUTH_HEADER = 'Authorization';\n private readonly PEPPERI_TOKEN_HEADER = 'PepperiSessionToken';\n private readonly WAPI_TOKEN_KEY = 'auth_token';\n private readonly PEPPERI_TOKEN_COOKIE = 'PepperiUserSettings';\n\n constructor(\n private sessionService: PepSessionService,\n private cookieService: PepCookieService,\n private http: HttpClient\n ) {}\n\n private handleError(response: HttpErrorResponse): Observable<never> {\n let errorMessage = 'Unknown error!';\n if (response.error instanceof ErrorEvent) {\n // Client-side errors\n errorMessage = `Error: ${response.error.message}`;\n } else {\n // Server-side errors\n errorMessage = this.getServerErrorMessage(response);\n }\n\n return throwError(errorMessage);\n }\n\n private getServerErrorMessage(response: HttpErrorResponse): string {\n if (response?.error?.fault?.faultstring) {\n return `${response.error.fault.faultstring}`;\n } else {\n switch (response.status) {\n case 404: {\n return `Not Found: ${response.message}`;\n }\n case 403: {\n return `Access Denied: ${response.message}`;\n }\n case 500: {\n return `Internal Server Error: ${response.message}`;\n }\n default: {\n return `Unknown Server Error\\nError Code: ${response.status}\\nMessage: ${response.message}`;\n }\n }\n }\n }\n\n // Add authorization token if the token exist.\n private addAuthorizationToken(httpOptions: any = {}): any {\n if (!httpOptions.headers.has(this.AUTH_HEADER)) {\n const idpToken = this.sessionService.getIdpToken();\n\n if (idpToken) {\n httpOptions.headers = httpOptions.headers.set(\n this.AUTH_HEADER,\n `Bearer ${idpToken}`\n );\n }\n }\n\n return httpOptions;\n }\n\n // Add web api token if calling to wapi domain.\n private addWebApiToken(url: string, httpOptions: any = {}): any {\n if (!httpOptions.headers.has(this.PEPPERI_TOKEN_HEADER)) {\n const wapiBaseUrl = this.sessionService.getWapiBaseUrl();\n\n if (wapiBaseUrl && url.match(new RegExp(wapiBaseUrl, 'g'))) {\n // TODO:\n // const webApiToken = this.sessionService.getWapiToken();\n try {\n const userSettingCookie = this.cookieService.get(\n this.PEPPERI_TOKEN_COOKIE\n );\n const webApiToken = JSON.parse(userSettingCookie).values\n .items[this.WAPI_TOKEN_KEY];\n if (webApiToken) {\n httpOptions.headers = httpOptions.headers.set(\n this.PEPPERI_TOKEN_HEADER,\n webApiToken\n );\n }\n } catch {\n // Do nothing.\n }\n }\n }\n\n return httpOptions;\n }\n\n private setDefaultHeaderOptions(url: string, httpOptions: any = {}): any {\n if (!httpOptions.headers) {\n httpOptions.headers = new HttpHeaders();\n }\n\n // Add content type\n if (!httpOptions.headers.has('Content-Type')) {\n httpOptions.headers = httpOptions.headers.set(\n 'Content-Type',\n 'application/json'\n );\n }\n\n httpOptions = this.addAuthorizationToken(httpOptions);\n httpOptions = this.addWebApiToken(url, httpOptions);\n\n return httpOptions;\n }\n\n // getTextFile(filename: string): void {\n // // The Observable returned by get() is of type Observable<string>\n // // because a text response was specified.\n // // There's no need to pass a <string> type parameter to get().\n // // return this.http.get(filename, {responseType: 'text'})\n // // .pipe(\n // // tap( // Log the result or error\n // // data => this.log(filename, data),\n // // error => this.logError(filename, error)\n // // )\n // // );\n // }\n\n getHttpCall(url: string, httpOptions: any = {}): Observable<any> {\n httpOptions = this.setDefaultHeaderOptions(url, httpOptions);\n\n return this.http\n .get(url, httpOptions)\n .pipe(catchError(this.handleError.bind(this)));\n // .subscribe(\n // (res) => console.log(''),\n // (error) => console.log(''),\n // () => {}\n // );\n }\n\n postHttpCall(\n url: string,\n body: any | null,\n httpOptions: any = {}\n ): Observable<any> {\n httpOptions = this.setDefaultHeaderOptions(url, httpOptions);\n\n return this.http\n .post(url, body, httpOptions)\n .pipe(catchError(this.handleError.bind(this)));\n // .subscribe(\n // (res) => console.log(''),\n // (error) => console.log(''),\n // () => {}\n // );\n }\n\n getWapiApiCall(url: string, httpOptions: any = {}): Observable<any> {\n const wapiBaseUrl = this.sessionService.getWapiBaseUrl();\n return this.getHttpCall(`${wapiBaseUrl}${url}`, httpOptions);\n }\n\n postWapiApiCall(\n url: string,\n body: any | null,\n httpOptions: any = {}\n ): Observable<any> {\n const wapiBaseUrl = this.sessionService.getWapiBaseUrl();\n return this.postHttpCall(`${wapiBaseUrl}${url}`, body, httpOptions);\n }\n\n getPapiApiCall(url: string, httpOptions: any = {}): Observable<any> {\n const papiBaseUrl = this.sessionService.getPapiBaseUrl();\n return this.getHttpCall(`${papiBaseUrl}${url}`, httpOptions);\n }\n\n postPapiApiCall(\n url: string,\n body: any | null,\n httpOptions: any = {}\n ): Observable<any> {\n const papiBaseUrl = this.sessionService.getPapiBaseUrl();\n return this.postHttpCall(`${papiBaseUrl}${url}`, body, httpOptions);\n }\n\n // getApiCall(url: string, httpOptions: any = {}): Observable<any> {\n // const apiBaseUrl = this.sessionService.getApiBaseUrl();\n // return this.getHttpCall(`${apiBaseUrl}${url}`, httpOptions);\n // }\n\n // postApiCall(\n // url: string,\n // body: any | null,\n // httpOptions: any = {}\n // ): Observable<any> {\n // const apiBaseUrl = this.sessionService.getApiBaseUrl();\n // return this.postHttpCall(`${apiBaseUrl}${url}`, body, httpOptions);\n // }\n}\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ITranslationResource, MultiTranslateHttpLoader } from 'ngx-translate-multi-http-loader';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n/*\r\n This service is the webapp api for addon usege.\r\n*/\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PepTranslateService {\r\n constructor(\r\n private http: HttpClient\r\n // private sessionService: PepSessionService,\r\n // private httpService: PepHttpService,\r\n // private loaderService: PepLoaderService\r\n ) {\r\n //\r\n }\r\n\r\n createMultiTranslateLoader(resources: ITranslationResource[]) {\r\n return new MultiTranslateHttpLoader(this.http, resources);\r\n }\r\n\r\n setDefaultTranslateLang(translate: TranslateService, urlLangParam = 'userLang') {\r\n let userLang = 'en';\r\n translate.setDefaultLang(userLang);\r\n userLang = translate.getBrowserLang().split('-')[0]; // use navigator lang if available\r\n\r\n if (urlLangParam.length > 0) {\r\n const index = location.href.indexOf(urlLangParam);\r\n\r\n if (index > -1) {\r\n // urlLangParam=XX\r\n const startIndex = index + urlLangParam.length + '='.length;\r\n userLang = location.href.substring(startIndex, startIndex + 2);\r\n }\r\n }\r\n\r\n // the lang to use, if the lang isn't available, it will use the current loader to get them\r\n translate.use(userLang).subscribe((res: any) => {\r\n // In here you can put the code you want. At this point the lang will be loaded\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable, Injector, Optional, Type } from '@angular/core';\nimport { createCustomElement } from '@angular/elements';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { PepSessionService } from './session.service';\nimport { PepFileService } from './file.service';\nimport { PepHttpService } from '../../http/services/http.service';\nimport { PepLoaderService } from '../../http/services/loader.service';\nimport { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ITranslationResource } from 'ngx-translate-multi-http-loader';\nimport { PepTranslateService } from './translate.service';\nimport { connectRouter } from '@angular-architects/module-federation-tools';\n\n/*\n This service is the webapp api for addon usege.\n*/\n@Injectable({\n providedIn: 'root',\n})\nexport class PepAddonService {\n private readonly PAGES_ADDON_UUID = '50062e0c-9967-4ed4-9102-f2bc50602d41';\n // private readonly ADDON_ASSETS_PATH_KEY = 'AddonAssetsPath';\n private readonly ADDONS_DICTIONARY_ASSETS_PATH_KEY = 'AddonsDictionaryAssetsPath';\n private readonly ADDON_API_RELATIVE_PATH = '/addons/api';\n private readonly ADDON_API_ASYNC_RELATIVE_PATH = `${this.ADDON_API_RELATIVE_PATH}/async`;\n\n private static _customElementsMap: Map<string, any> = new Map();\n\n private get devServer() {\n return this.route ? this.route.snapshot.queryParamMap.get('devServer') === 'true' : false;\n }\n\n constructor(\n private sessionService: PepSessionService,\n private httpService: PepHttpService,\n private loaderService: PepLoaderService,\n public translateService: PepTranslateService,\n public fileService: PepFileService,\n @Optional() private route: ActivatedRoute,\n ) {\n //\n }\n\n private getAddonBaseRelativePath(isAsync = false): string {\n return isAsync\n ? this.ADDON_API_ASYNC_RELATIVE_PATH\n : this.ADDON_API_RELATIVE_PATH;\n }\n\n getAddonStaticFolder(addonUUID: string): string {\n // if (addonUUID.length > 0) {\n const addonsDictionary = this.sessionService.getObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY);\n return addonsDictionary && addonsDictionary[addonUUID] ? addonsDictionary[addonUUID] : '';\n // } else {\n // return this.sessionService.getObject(this.ADDON_ASSETS_PATH_KEY) || '';\n // }\n }\n\n setAddonStaticFolder(path: string, addonUUID: string): void {\n // if (addonUUID.length > 0) {\n const addonsDictionary = this.sessionService.getObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY) ?? {};\n addonsDictionary[addonUUID] = path;\n this.sessionService.setObject(this.ADDONS_DICTIONARY_ASSETS_PATH_KEY, addonsDictionary);\n // } else {\n // return this.sessionService.setObject(this.ADDON_ASSETS_PATH_KEY, path);\n // }\n }\n\n getServerBaseUrl(addonUUID: string, fileName = '', isAsync = false, localhostPort = 4500): string {\n const fileToAdd = fileName.length > 0 ? `/${fileName}` : '';\n \n // For devServer run server on localhost.\n if(this.devServer) {\n return `http://localhost:${localhostPort}${fileToAdd}`;\n } else {\n const baseUrl = this.sessionService.getPapiBaseUrl();\n return `${baseUrl}${this.getAddonBaseRelativePath(isAsync)}/${addonUUID}${fileToAdd}`;\n }\n }\n\n getAddonApiCall(\n addonUUID: string,\n fileName: string,\n functionName: string,\n httpOptions = {},\n isAsync = false\n ): Observable<any> {\n // return this.httpService.getPapiApiCall(\n // `${this.getAddonBaseRelativePath(\n // isAsync\n // )}/${addonUUID}/${fileName}/${functionName}`,\n // httpOptions\n // );\n\n const papiBaseUrl = this.getServerBaseUrl(addonUUID, fileName, isAsync);\n return this.httpService.getHttpCall(`${papiBaseUrl}/${functionName}`, httpOptions);\n }\n\n postAddonApiCall(\n addonUUID: string,\n fileName: string,\n functionName: string,\n body = {},\n httpOptions = {},\n isAsync = false\n ): Observable<any> {\n // return this.httpService.postPapiApiCall(\n // `${this.getAddonBaseRelativePath(\n // isAsync\n // )}/${addonUUID}/${fileName}/${functionName}`,\n // body,\n // httpOptions\n // );\n\n const papiBaseUrl = this.getServerBaseUrl(addonUUID, fileName, isAsync);\n return this.httpService.postHttpCall(`${papiBaseUrl}/${functionName}`, body, httpOptions);\n }\n\n async getAddonCPICall(\n addonUUID: string,\n url: string\n ) {\n const res = await this.emitEvent(\"AddonAPI\", {\n AddonUUID: addonUUID,\n RelativeURL: url,\n })\n\n if (res.Success) {\n return JSON.parse(res.Value)\n }\n else {\n throw new Error(res.Value)\n }\n }\n\n async postAddonCPICall(\n addonUUID: string,\n url: string,\n body: any\n ) {\n const res = await this.emitEvent(\"AddonAPI\", {\n AddonUUID: addonUUID,\n RelativeURL: url,\n Method: 'POST',\n Body: body\n })\n\n if (res.Success) {\n return JSON.parse(res.Value)\n }\n else {\n throw new Error(res.Value)\n }\n } \n\n emitEvent(eventKey: string, eventData: any): Promise<any> {\n return new Promise(resolve => {\n window.dispatchEvent(new CustomEvent('emit-event', {\n detail: {\n eventKey,\n eventData: eventData,\n completion: resolve\n }\n }))\n })\n }\n\n // TODO: need to chek this if the loader is working.\n fetch(input: RequestInfo, init?: RequestInit): Promise<Response> {\n this.loaderService.show();\n\n return window.fetch(input, init).finally(() => {\n this.loaderService.hide();\n });\n }\n\n getNgxLibTranslationResource(addonUUID: string, libName = 'ngx-lib'): ITranslationResource {\n const addonStaticFolder = this.getAddonStaticFolder(addonUUID);\n const translationsPath: string = this.fileService.getAssetsTranslationsPath(addonStaticFolder, libName);\n const translationsSuffix: string = this.fileService.getAssetsTranslationsSuffix(libName);\n\n return {\n prefix: translationsPath,\n suffix: translationsSuffix,\n };\n }\n\n getAddonTranslationResource(addonUUID: string): ITranslationResource {\n const addonStaticFolder = this.getAddonStaticFolder(addonUUID);\n const defaultSubFolder = 'assets/i18n/';\n\n return {\n prefix: addonStaticFolder.length > 0 ? `${addonStaticFolder}${defaultSubFolder}` : `/${defaultSubFolder}`,\n suffix: '.json',\n };\n }\n\n setDefaultTranslateLang(translate: TranslateService, urlLangParam = 'userLang') {\n this.translateService.setDefaultTranslateLang(translate, urlLangParam);\n }\n\n getPagesAddonUUID() {\n return this.PAGES_ADDON_UUID;\n }\n\n setShellRouterData(data: { addPadding?: boolean, showSidebar?: boolean, showHeader?: boolean }) {\n const eventData = {\n detail: data,\n };\n\n const customEvent = new CustomEvent('set-router-data', eventData);\n window.dispatchEvent(customEvent);\n }\n\n defineCustomElement(elementName: string, component: Type<any>, injector: Injector) {\n if (!customElements.get(elementName)) { \n customElements.define(elementName, createCustomElement(component, {injector: injector}));\n \n // Set the elementName in the _customElementsMap (Fix internal routing bug).\n PepAddonService._customElementsMap.set(elementName, {injector: injector});\n }\n }\n\n // Fix internal routing bug.\n connectInternalRouter(elementName: string) {\n const customElementObject = PepAddonService._customElementsMap.get(elementName);\n const router = customElementObject?.injector.get(Router);\n\n if (router) {\n const useHash = location.href.includes('#');\n connectRouter(router, useHash);\n }\n }\n\n public static createMultiTranslateLoader(\n addonUUID: string,\n addonService: PepAddonService,\n libsName = ['ngx-lib'],\n ) {\n const ngxLibTranslationResources = [];\n\n if (libsName?.length > 0) {\n for (let index = 0; index < libsName.length; index++) {\n const libName = libsName[index];\n ngxLibTranslationResources.push(addonService.getNgxLibTranslationResource(addonUUID, libName));\n }\n }\n\n const addonTranslationResource = addonService.getAddonTranslationResource(addonUUID);\n\n return addonService.translateService.createMultiTranslateLoader([\n ...ngxLibTranslationResources,\n addonTranslationResource\n ]);\n }\n}\n","import { Injectable } from '@angular/core';\n\nexport interface IPepRgbColor {\n r?: any;\n g?: any;\n b?: any;\n}\n\nexport interface IPepHslColor {\n h?: any;\n s?: any;\n l?: any;\n}\n\nexport interface IPepClosestColor {\n color: string;\n lightness: number;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepColorService {\n readonly FLOAT_REGEX = /^\\d+(\\.\\d+)?$/;\n readonly THREE_DIGIT_HEX_COLOR_REGEX = /^[0-9a-fA-F]{3}$/;\n readonly THREE_DIGIT_HEX_COLOR_WITH_HASH_REGEX = /^#[0-9a-fA-F]{3}$/;\n readonly SIX_DIGIT_HEX_COLOR_REGEX = /^[0-9a-fA-F]{6}$/;\n readonly SIX_DIGIT_HEX_COLOR_WITH_HASH_REGEX = /^#[0-9a-fA-F]{6}$/;\n\n private contrast(str1: string, str2: string): number {\n const L1 = this.relativeLuminance(this.hex2rgb(str1));\n const L2 = this.relativeLuminance(this.hex2rgb(str2));\n\n if (L1 < L2) {\n return (L2 + 0.05) / (L1 + 0.05);\n }\n\n return (L1 + 0.05) / (L2 + 0.05);\n }\n\n private findClosestAccessibleDarkerColor(\n adjustableColor: string,\n otherColor: string,\n contrastRatio: number\n ): IPepClosestColor {\n const { h, s, l } = this.hex2hsl(adjustableColor);\n\n if (this.contrast(adjustableColor, otherColor) >= contrastRatio) {\n return {\n color: adjustableColor,\n lightness: l,\n };\n }\n\n let minColor = this.hsl2hex({ h, s, l: 0 });\n\n if (this.contrast(minColor, otherColor) < contrastRatio) {\n return null;\n }\n\n let min = 0;\n let max = l;\n let maxColor = this.hsl2hex({ h, s, l });\n let lastMinColor;\n let lastMaxColor;\n let lTemp;\n\n while (minColor !== lastMinColor || maxColor !== lastMaxColor) {\n lastMinColor = minColor;\n lastMaxColor = maxColor;\n\n lTemp = (min + max) / 2;\n adjustableColor = this.hsl2hex({ h, s, l: lTemp });\n\n if (this.contrast(adjustableColor, otherColor) < contrastRatio) {\n max = lTemp;\n maxColor = this.hsl2hex({ h, s, l: lTemp });\n } else {\n min = lTemp;\n minColor = this.hsl2hex({ h, s, l: lTemp });\n }\n }\n\n return {\n color: minColor,\n lightness: min,\n };\n }\n\n private findClosestAccessibleLighterColor(\n adjustableColor: string,\n otherColor: string,\n contrastRatio: number\n ): IPepClosestColor {\n const { h, s, l } = this.hex2hsl(adjustableColor);\n\n if (this.contrast(adjustableColor, otherColor) >= contrastRatio) {\n return {\n color: adjustableColor,\n lightness: l,\n };\n }\n\n let maxColor = this.hsl2hex({ h, s, l: 100 });\n\n if (this.contrast(maxColor, otherColor) < contrastRatio) {\n return null;\n }\n\n let min = l;\n let max = 100;\n let minColor = this.hsl2hex({ h, s, l });\n let lastMinColor;\n let lastMaxColor;\n let lTemp;\n\n while (minColor !== lastMinColor || maxColor !== lastMaxColor) {\n lastMinColor = minColor;\n lastMaxColor = maxColor;\n\n lTemp = (min + max) / 2;\n adjustableColor = this.hsl2hex({ h, s, l: lTemp });\n\n if (this.contrast(adjustableColor, otherColor) < contrastRatio) {\n min = lTemp;\n minColor = this.hsl2hex({ h, s, l: lTemp });\n } else {\n max = lTemp;\n maxColor = this.hsl2hex({ h, s, l: lTemp });\n }\n }\n\n return {\n color: maxColor,\n lightness: max,\n };\n }\n\n /**\n * Convert hex string to 6 digits hex string.\n * @param str The string to convert.\n */\n hex2sixDigitHex(str: string): string {\n if (!str) {\n return null;\n }\n\n str = str.trim();\n\n if (this.SIX_DIGIT_HEX_COLOR_WITH_HASH_REGEX.test(str)) {\n return str;\n }\n\n if (this.SIX_DIGIT_HEX_COLOR_REGEX.test(str)) {\n return '#' + str;\n }\n\n if (this.THREE_DIGIT_HEX_COLOR_WITH_HASH_REGEX.test(str)) {\n return '#' + str[1] + str[1] + str[2] + str[2] + str[3] + str[3];\n }\n\n if (this.THREE_DIGIT_HEX_COLOR_REGEX.test(str)) {\n return '#' + str[0] + str[0] + str[1] + str[1] + str[2] + str[2];\n }\n\n return null;\n }\n\n /**\n * Convert rgb color to 6 digits hex string.\n * @param color The rgb color to convert.\n */\n rgb2sixDigitHex(color: IPepRgbColor): string {\n if (!color) {\n return null;\n }\n\n color.r = color.r.toString(16);\n color.g = color.g.toString(16);\n color.b = color.b.toString(16);\n\n if (color.r.length === 1) {\n color.r = '0' + color.r;\n }\n\n if (color.g.length === 1) {\n color.g = '0' + color.g;\n }\n\n if (color.b.length === 1) {\n color.b = '0' + color.b;\n }\n\n return '#' + color.r + color.g + color.b;\n }\n\n /**\n * Convert hex string to rgb color.\n * @param str The hex string to convert.\n */\n hex2rgb(str: string): IPepRgbColor {\n if (!str) {\n return null;\n }\n\n const sixDigitHex = this.hex2sixDigitHex(str);\n\n if (sixDigitHex === null) {\n return null;\n }\n\n return {\n r: parseInt(sixDigitHex.slice(1, 3), 16),\n g: parseInt(sixDigitHex.slice(3, 5), 16),\n b: parseInt(sixDigitHex.slice(5, 7), 16),\n };\n }\n\n rgbString2hsl(str: string): IPepHslColor {\n if (!str) {\n return null;\n }\n\n const sep = str.indexOf(',') > -1 ? ',' : ' ';\n const rgbArr = str.substr(4).split(')')[0].split(sep);\n\n const r = rgbArr[0];\n const g = rgbArr[1].substr(0, rgbArr[1].length).trim();\n const b = rgbArr[2].substr(0, rgbArr[2].length).trim();\n\n return this.rgb2hsl({ r, g, b });\n }\n\n rgb2hsl({ r, g, b }: IPepRgbColor): IPepHslColor {\n r /= 255;\n g /= 255;\n b /= 255;\n\n // Find greatest and smallest channel values\n const cmin = Math.min(r, g, b);\n const cmax = Math.max(r, g, b);\n const delta = cmax - cmin;\n\n let h = 0;\n let s = 0;\n let l = 0;\n\n if (delta === 0) {\n h = 0;\n } else if (cmax === r) {\n h = ((g - b) / delta) % 6;\n } else if (cmax === g) {\n h = (b - r) / delta + 2;\n } else {\n h = (r - g) / delta + 4;\n }\n\n h = Math.round(h * 60);\n\n if (h < 0) {\n h += 360;\n }\n\n l = (cmax + cmin) / 2;\n s = delta === 0 ? 0 : delta / (1 - Math.abs(2 * l - 1));\n s = +(s * 100).toFixed(1);\n l = +(l * 100).toFixed(1);\n\n return { h, s, l };\n }\n\n hslString2hsl(str: string): IPepHslColor {\n if (!str) {\n return null;\n }\n\n const sep = str.indexOf(',') > -1 ? ',' : ' ';\n const hslArr = str.substr(4).split(')')[0].split(sep);\n\n let h: any = hslArr[0];\n let s = hslArr[1].substr(0, hslArr[1].length).trim();\n let l = hslArr[2].substr(0, hslArr[2].length).trim();\n\n // Strip label and convert to degrees (if necessary)\n if (h.indexOf('deg') > -1) {\n h = h.substr(0, h.length - 3);\n } else if (h.indexOf('rad') > -1) {\n h = Math.round(h.substr(0, h.length - 3) * (180 / Math.PI));\n } else if (h.indexOf('turn') > -1) {\n h = Math.round(h.substr(0, h.length - 4) * 360);\n }\n\n // Keep hue fraction of 360 if ending up over\n if (h >= 360) {\n h %= 360;\n }\n\n // Remove the %\n if (s.indexOf('%') > -1) {\n s = s.replace(/%/g, '');\n }\n\n // Remove the %\n if (l.indexOf('%') > -1) {\n l = l.replace(/%/g, '');\n }\n\n return { h, s, l };\n }\n\n hsl2rgb({ h, s, l }: IPepHslColor): IPepRgbColor {\n let r;\n let g;\n let b;\n\n if (!isFinite(h)) {\n h = 0;\n }\n\n if (!isFinite(s)) {\n s = 0;\n }\n\n if (!isFinite(l)) {\n l = 0;\n }\n\n h /= 60;\n\n if (h < 0) {\n h = 6 - (-h % 6);\n }\n\n h %= 6;\n\n s = Math.max(0, Math.min(1, s / 100));\n l = Math.max(0, Math.min(1, l / 100));\n\n const c = (1 - Math.abs(2 * l - 1)) * s;\n const x = c * (1 - Math.abs((h % 2) - 1));\n\n if (h < 1) {\n r = c;\n g = x;\n b = 0;\n } else if (h < 2) {\n r = x;\n g = c;\n b = 0;\n } else if (h < 3) {\n r = 0;\n g = c;\n b = x;\n } else if (h < 4) {\n r = 0;\n g = x;\n b = c;\n } else if (h < 5) {\n r = x;\n g = 0;\n b = c;\n } else {\n r = c;\n g = 0;\n b = x;\n }\n\n const m = l - c / 2;\n r = Math.round((r + m) * 255);\n g = Math.round((g + m) * 255);\n b = Math.round((b + m) * 255);\n\n return { r, g, b };\n }\n\n hex2hsl(str: string): IPepHslColor {\n if (!str) {\n return null;\n }\n\n const sixDigitHex = this.hex2sixDigitHex(str);\n\n if (sixDigitHex === null) {\n return null;\n }\n\n const rgb = this.hex2rgb(sixDigitHex);\n\n if (rgb === null) {\n return null;\n }\n\n return this.rgb2hsl(rgb);\n }\n\n hsl2hex(hsl: IPepHslColor): string {\n if (!hsl) {\n return null;\n }\n\n const rgb = this.hsl2rgb(hsl);\n\n return this.rgb2sixDigitHex(rgb);\n }\n\n relativeLuminance({ r, g, b }: IPepRgbColor): number {\n [r, g, b] = [r, g, b].map((c) => {\n c = c / 255;\n\n if (c <= 0.03928) {\n return c / 12.92;\n }\n\n return Math.pow((c + 0.055) / 1.055, 2.4);\n });\n\n return 0.2126 * r + 0.7152 * g + 0.0722 * b;\n }\n\n findClosestAccessibleColor(\n adjustableColor: string,\n otherColor: string,\n contrastRatio: number\n ): string {\n const closestDarkerColor: IPepClosestColor = this.findClosestAccessibleDarkerColor(\n adjustableColor,\n otherColor,\n contrastRatio\n );\n const closestLighterColor: IPepClosestColor = this.findClosestAccessibleLighterColor(\n adjustableColor,\n otherColor,\n contrastRatio\n );\n\n if (closestDarkerColor === null) {\n if (closestLighterColor === null) {\n return null;\n }\n\n return closestLighterColor.color;\n }\n\n if (closestLighterColor === null) {\n return closestDarkerColor.color;\n }\n\n const { l } = this.hex2hsl(adjustableColor);\n\n if (\n closestLighterColor.lightness - l <\n l - closestDarkerColor.lightness\n ) {\n return closestLighterColor.color;\n }\n\n return closestDarkerColor.color;\n }\n\n convertHslToStringHsl(hsl: IPepHslColor): string {\n return (\n 'hsl(' +\n (hsl.h < 0 ? hsl.h + 360 : hsl.h) +\n ', ' +\n hsl.s +\n '%, ' +\n hsl.l +\n '%)'\n );\n }\n\n lightOrDark(color: any): 'light' | 'dark' {\n let r = undefined;\n let g = undefined;\n let b = undefined;\n\n // Check the format of the color, HEX or RGB?\n if (color.match(/^rgb/)) {\n // If HEX --> store the red, green, blue values in separate variables\n color = color.match(/^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/);\n \n r = color[1];\n g = color[2];\n b = color[3];\n } \n else {\n // If RGB --> Convert it to HEX: http://gist.github.com/983661\n color = +(\"0x\" + color.slice(1).replace( \n color.length < 5 && /./g, '$&$&'\n ));\n \n r = color >> 16;\n g = color >> 8 & 255;\n b = color & 255;\n }\n \n // HSP (Highly Sensitive Poo) equation from http://alienryderflex.com/hsp.html\n const hsp = Math.sqrt(\n 0.299 * (r * r) +\n 0.587 * (g * g) +\n 0.114 * (b * b)\n );\n \n // Using the HSP value, determine whether the color is light or dark\n return (hsp > 127.5) ? 'light' : 'dark';\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n FieldLayout,\n ObjectsDataRow,\n UIControl,\n UIControlField,\n ObjectsDataRowCell,\n FIELD_TYPE,\n X_ALIGNMENT_TYPE,\n} from '../model/wapi.model';\nimport { PepGuid } from '../model/utilities.model';\n\nexport class PepFieldData {\n ApiName: string;\n Enabled?: boolean;\n Value: string;\n FormattedValue?: string;\n FieldType: FIELD_TYPE;\n ReadOnly?: boolean;\n ColumnWidth: number;\n ColumnWidthType?: number;\n XAlignment: X_ALIGNMENT_TYPE;\n Title: string;\n AdditionalValue?: string;\n OptionalValues?: any;\n\n constructor(\n options: {\n ApiName?: string;\n Enabled?: boolean;\n Value?: string;\n FormattedValue?: string;\n FieldType?: FIELD_TYPE;\n ReadOnly?: boolean;\n ColumnWidth?: number;\n ColumnWidthType?: number;\n XAlignment?: X_ALIGNMENT_TYPE;\n Title?: string;\n } = {}\n ) {\n this.ApiName = options.ApiName;\n this.Enabled = !!options.Enabled;\n this.Value = options.Value;\n this.FormattedValue = options.FormattedValue || '';\n this.FieldType = options.FieldType;\n this.ReadOnly = !!options.ReadOnly;\n this.ColumnWidth = options.ColumnWidth;\n this.ColumnWidthType = options.ColumnWidthType;\n this.XAlignment = options.XAlignment || X_ALIGNMENT_TYPE.Left;\n this.Title = options.Title || '';\n }\n}\nexport class PepRowData {\n UUID?: string;\n IsEditable?: boolean;\n IsSelected?: boolean;\n IsSelectableForActions?: boolean;\n Fields: PepFieldData[];\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepDataConvertorService {\n getUiControl(formData: PepRowData): UIControl {\n const uiControl = new UIControl();\n\n if (formData?.Fields?.length > 0) {\n const uiRow = formData.Fields;\n uiControl.ControlFields = [];\n uiRow.forEach((field) =>\n uiControl.ControlFields.push(this.setUIControlField(field))\n );\n }\n\n return uiControl;\n }\n\n convertFormData(formData: PepRowData): ObjectsDataRow {\n const rowData = new ObjectsDataRow();\n rowData.Fields = [];\n rowData.Type = 0;\n rowData.UID = PepGuid.newGuid();\n formData.Fields.forEach((field) =>\n rowData.Fields.push(this.setDataField(field))\n );\n\n return rowData;\n }\n\n convertListData(\n tableData: PepRowData[],\n rowUUID = ''\n ): Array<ObjectsDataRow> {\n const rows = new Array<ObjectsDataRow>();\n\n if (tableData.length > 0) {\n tableData.forEach((row) => {\n const rowData = new ObjectsDataRow();\n rowData.Fields = [];\n rowData.Type = 0;\n rowData.UID = rowUUID\n ? rowUUID\n : row.UUID\n ? row.UUID\n : PepGuid.newGuid();\n if (row.IsEditable === false) {\n rowData.IsEditable = false;\n }\n if (row.IsSelectableForActions === false) {\n rowData.IsSelectableForActions = false;\n }\n if (row.IsSelected) {\n rowData.IsSelected = true;\n }\n row.Fields.forEach((field) =>\n rowData.Fields.push(this.setDataField(field))\n );\n rows.push(rowData);\n });\n }\n\n return rows;\n }\n\n setUIControlField(field: PepFieldData): UIControlField {\n const controlField = new UIControlField();\n controlField.ApiName = field.ApiName;\n controlField.FieldType = field.FieldType;\n\n controlField.Layout = new FieldLayout({\n X: 1,\n Width: 1,\n XAlignment: field.XAlignment,\n Y: 1,\n Height: 1,\n YAlignment: 1,\n });\n\n controlField.Title = field.Title;\n controlField.ReadOnly = field.ReadOnly === true ? true : false;\n controlField.ColumnWidth = field.ColumnWidth;\n controlField.ColumnWidthType = field.ColumnWidthType || 1;\n return controlField;\n }\n\n setDataField(field: PepFieldData): ObjectsDataRowCell {\n const dataField = new ObjectsDataRowCell();\n dataField.AdditionalValue = field.AdditionalValue;\n dataField.ApiName = field.ApiName;\n dataField.Enabled = field.Enabled === false ? false : true;\n dataField.FieldType = field.FieldType;\n dataField.FormattedValue =\n field.FormattedValue || field.Value.toString();\n dataField.GroupFields = null;\n dataField.NotificationInfo = '';\n dataField.OptionalValues = field.OptionalValues;\n dataField.ReferenceObjectSubType = '';\n dataField.TextColor = '';\n dataField.Value = field.Value.toString();\n dataField.Visible = true;\n return dataField;\n }\n\n setFieldLayout(\n x: number,\n width: number,\n xAlignment: number,\n y: number,\n height: number,\n yAlignment: number,\n lineNumber: number\n ): FieldLayout {\n const layout = new FieldLayout({\n X: x,\n Width: width,\n XAlignment: xAlignment,\n Y: y,\n Height: height,\n YAlignment: yAlignment,\n LineNumber: lineNumber,\n });\n\n return layout;\n }\n}\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Injectable, Optional } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n AbstractControl,\n ValidatorFn,\n FormControl,\n Validators,\n} from '@angular/forms';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepValidatorService {\n // Regular expressions\n readonly integerUnsigned = '^[0-9]*$';\n readonly integerSigned = '^-?[0-9]+$';\n decimalUnsigned = '^[0-9]+(.[0-9]+)?$';\n decimalSigned = '^-?[0-9]+(.[0-9]+)?$';\n readonly phone = '^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-s./0-9]*$';\n\n decimalSeparator = '.';\n\n constructor(@Optional() private translate: TranslateService = null) {\n const currentLang = this.translate?.currentLang || navigator.language;\n\n // Check for number with thousands separator and if === ',' then the decimal separator is '.' else ','\n const tmp = new Intl.NumberFormat(currentLang, {\n maximumSignificantDigits: 2,\n }).format(1000);\n this.decimalSeparator = tmp.indexOf(',') === 1 ? '.' : ',';\n\n this.decimalUnsigned = `^[0-9]+(${this.decimalSeparator}[0-9]+)?$`;\n this.decimalSigned = `^-?[0-9]+(${this.decimalSeparator}[0-9]+)?$`;\n }\n\n /*\n ValidatorFn functions\n */\n isEqual(target: FormControl | AbstractControl): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } | null => {\n if (control.value) {\n return target.value !== control.value\n ? { equal: { value: true } }\n : null;\n } else {\n return null;\n }\n };\n }\n\n isGreaterThan(target: FormControl | AbstractControl): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } | null => {\n if (control.value && typeof target.value === 'number') {\n return target.value > control.value\n ? { greater: { value: true } }\n : null;\n } else if (control.value && typeof target.value === 'string') {\n const controlValueNumer = coerceNumberProperty(control.value);\n const targetValueNumer = coerceNumberProperty(target.value);\n\n return targetValueNumer > controlValueNumer\n ? { greater: { value: true } }\n : null;\n } else {\n return null;\n }\n };\n }\n\n isLessThan(target: FormControl | AbstractControl): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } | null => {\n if (control.value && typeof target.value === 'number') {\n return target.value < control.value\n ? { less: { value: true } }\n : null;\n } else if (control.value && typeof target.value === 'string') {\n const controlValueNumer = coerceNumberProperty(control.value);\n const targetValueNumer = coerceNumberProperty(target.value);\n\n return targetValueNumer < controlValueNumer\n ? { less: { value: true } }\n : null;\n } else {\n return null;\n }\n };\n }\n\n checkEmails(separator?: string): ValidatorFn {\n return (control: AbstractControl): { [key: string]: any } | null => {\n if (control.value) {\n const emails = control.value.split(separator ? separator : ',');\n const ctrl = new FormControl('', [\n Validators.required,\n Validators.email,\n ]);\n const result = emails.every((val: string) => {\n ctrl.setValue(val);\n return ctrl.valid;\n });\n\n return !result ? { emails: { value: true } } : null;\n } else {\n return null;\n }\n };\n }\n\n zipCodeValidator(): ValidatorFn {\n return Validators.pattern(/^(\\d{5}(-\\d{4})?|[A-Z]\\d[A-Z] *\\d[A-Z]\\d)$/);\n }\n\n allowableCharactersValidator(): ValidatorFn {\n return Validators.pattern(\n /^[a-zA-Z0-9`~!@#$%^&*()_+}{|\":?><,./;'\\\\\\]\\[=\\- ]+$/\n );\n }\n\n allowableCharactersWithoutNumberValidator(): ValidatorFn {\n return Validators.pattern(\n /^[a-zA-Z`~!@#$%^&*()_+}{|\":?><,./;'\\\\\\]\\[=\\- ]+$/\n );\n }\n\n allowableCharactersWithoutSpecialValidator(): ValidatorFn {\n return Validators.pattern(/^[a-zA-Z0-9 ]+$/);\n }\n\n dateValidator(): ValidatorFn {\n return Validators.pattern(\n /^(?:(0[1-9]|1[012])[\\/.](0[1-9]|[12][0-9]|3[01])[\\/.](19|20)[0-9]{2})$/\n );\n }\n\n numberValidator(): ValidatorFn {\n return Validators.pattern(/^[0-9]*$/);\n }\n\n /*\n RegExp functions\n */\n validateNumber(value: string, allowDecimal: boolean): string {\n // choose the appropiate regular expression\n let regex: string;\n\n if (allowDecimal) {\n regex = this.decimalSigned;\n } else {\n regex = this.integerSigned;\n }\n\n // when a numbers begins with a decimal separator,\n // fix it adding a zero in the beginning\n const firstCharacter = value.charAt(0);\n if (firstCharacter == this.decimalSeparator) value = 0 + value;\n\n // when a numbers ends with a decimal separator,\n // fix it adding a zero in the end\n const lastCharacter = value.charAt(value.length - 1);\n if (lastCharacter == this.decimalSeparator) value = value + 0;\n\n // test number with regular expression, when\n // number is invalid, replace it with a zero\n // console.log(`regex is ${regex} and value is ${value}`);\n const valid: boolean = new RegExp(regex).test(value);\n\n return valid ? value : null;\n }\n\n validatePhone(value: string): boolean {\n // test phone with regular expression\n const valid: boolean = new RegExp(this.phone).test(value);\n return valid;\n }\n\n private getName(e): string {\n if (e.key) {\n return e.key;\n } else {\n // for old browsers\n if (e.keyCode && String.fromCharCode) {\n switch (e.keyCode) {\n case 8:\n return 'Backspace';\n case 9:\n return 'Tab';\n case 27:\n return 'Escape';\n case 37:\n return 'ArrowLeft';\n case 39:\n return 'ArrowRight';\n case 188:\n return ',';\n case 190:\n return '.';\n case 109:\n return '-'; // minus in numbpad\n case 173:\n return '-'; // minus in alphabet keyboard in firefox\n case 189:\n return '-'; // minus in alphabet keyboard in chrome\n default:\n return String.fromCharCode(e.keyCode);\n }\n }\n }\n }\n\n private allowKeyboardNonNumericCharacters(\n allowedKeys: Array<string>,\n key: string,\n controlOrCommand: boolean\n ): boolean {\n const defaultAllowedKeys = [\n 'Backspace',\n 'ArrowLeft',\n 'ArrowRight',\n 'Escape',\n 'Tab',\n 'Home',\n 'End',\n 'Delete',\n ];\n\n // allow some non-numeric characters\n if (\n defaultAllowedKeys.indexOf(key) != -1 ||\n allowedKeys.indexOf(key) != -1 ||\n // Allow: Ctrl+A and Command+A\n (key == 'a' && controlOrCommand) ||\n // Allow: Ctrl+C and Command+C\n (key == 'c' && controlOrCommand) ||\n // Allow: Ctrl+V and Command+V\n (key == 'v' && controlOrCommand) ||\n // Allow: Ctrl+X and Command+X\n (key == 'x' && controlOrCommand) ||\n key.startsWith('F')\n ) {\n // let it happen, don't do anything\n return true;\n } else {\n return false;\n }\n }\n\n isPhone(e: KeyboardEvent): boolean {\n const key: string = this.getName(e);\n const controlOrCommand = e.ctrlKey === true || e.metaKey === true;\n\n // allowed keys apart from numeric characters\n const allowedKeys = ['.', '-', '+', '(', ')', '*', '#'];\n\n // allow some non-numeric characters\n if (\n this.allowKeyboardNonNumericCharacters(\n allowedKeys,\n key,\n controlOrCommand\n )\n ) {\n return true;\n }\n\n // allow phone characters only\n const isPhone = new RegExp(this.phone).test(key);\n return isPhone;\n }\n\n isNumber(e: KeyboardEvent, allowDecimal: boolean): boolean {\n const cursorPosition: number = e.target['selectionStart'];\n const originalValue: string = e.target['value'];\n const key: string = this.getName(e);\n const controlOrCommand = e.ctrlKey === true || e.metaKey === true;\n const signExists = originalValue.includes('-');\n const separatorExists = originalValue.includes(this.decimalSeparator);\n\n // allowed keys apart from numeric characters\n const allowedKeys = [];\n\n // when decimals are allowed, add\n // decimal separator to allowed codes when\n // its position is not close to the the sign (-. and .-)\n const separatorIsCloseToSign = signExists && cursorPosition <= 1;\n if (allowDecimal && !separatorIsCloseToSign && !separatorExists) {\n if (this.decimalSeparator == '.') allowedKeys.push('.');\n else allowedKeys.push(',');\n }\n\n // when minus sign is allowed, add its\n // key to allowed key only when the\n // cursor is in the first position, and\n // first character is different from\n // decimal separator\n const firstCharacterIsSeparator =\n originalValue.charAt(0) != this.decimalSeparator;\n if (!signExists && firstCharacterIsSeparator && cursorPosition == 0) {\n allowedKeys.push('-');\n }\n\n // allow some non-numeric characters\n if (\n this.allowKeyboardNonNumericCharacters(\n allowedKeys,\n key,\n controlOrCommand\n )\n ) {\n return true;\n }\n\n // allow number characters only\n const isNumber = new RegExp(this.integerUnsigned).test(key);\n return isNumber;\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepWindowScrollingService {\n // Inject a STYLE element for overrides the scroll behavior, this way we can add | remove it in order to the behavior.\n private styleTag: HTMLStyleElement;\n\n constructor() {\n this.styleTag = this.buildStyleElement();\n }\n\n // Disable the scrolling feature on the main viewport.\n public disable(): void {\n document.body.appendChild(this.styleTag);\n }\n\n // Re-enable the scrolling feature on the main viewport.\n public enable(): void {\n document.body.removeChild(this.styleTag);\n }\n\n // Return a Style element that will prevent scrolling on the body.\n private buildStyleElement(): HTMLStyleElement {\n const style = document.createElement('style');\n\n style.type = 'text/css';\n style.setAttribute(\n 'data-debug',\n 'Injected by WindowScrolling service.'\n );\n style.textContent = `\n body {\n overflow: hidden !important ;\n }\n `;\n\n return style;\n }\n}\n","/*\n * Public API Surface of ngx-lib/core/common/services\n */\nexport * from './addon.service';\nexport * from './color.service';\nexport * from './cookie.service';\nexport * from './data-convertor.service';\nexport * from './file.service';\nexport * from './jwt-helper.service';\nexport * from './session.service';\nexport * from './translate.service';\nexport * from './utilities.service';\nexport * from './validator.service';\nexport * from './window-scrolling.service';\n","/*\n * export from ngx-lib/core/common/services\n */\nexport * from './public-api';\n","/*\n * Public API Surface of ngx-lib/core/common\n */\nexport * from './directives/index';\nexport * from './model/index';\nexport * from './pipes/index';\nexport * from './services/index';\n","/*\n * export from ngx-lib/core/common\n */\nexport * from './public-api';\n","import { ValidatorFn, Validators } from '@angular/forms';\n\n/** Allowed layout options */\nexport type PepLayoutType = 'form' | 'card' | 'table';\n\n/** Allowed style options */\nexport type PepStyleType = 'weak' | 'weak-invert' | 'weak-special' | 'regular' | 'strong';\n\n/** Allowed style state options */\nexport type PepStyleStateType = 'system' | 'caution' | 'success';\n\n/** Allowed size options */\nexport type PepSizeType = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\n/** Allowed horizontal alignment options */\nexport type PepHorizontalAlignment = 'left' | 'center' | 'right';\n/** Default horizontal alignment. */\nexport const DEFAULT_HORIZONTAL_ALIGNMENT: PepHorizontalAlignment = 'left';\n\n/** Allowed vertical alignment options */\nexport type PepVerticalAlignment = 'top' | 'middle' | 'bottom';\n/** Default horizontal alignment. */\nexport const DEFAULT_VERTICAL_ALIGNMENT: PepVerticalAlignment = 'top';\nexport interface IPepOption {\n key: string;\n value: string;\n}\n\n// export type PepFieldBaseType = '' | PepInternalButtonFieldType | PepTextboxFieldType |\n// PepQuantitySelectorFieldType | PepDateFieldType | PepCheckboxFieldType | PepSelectFieldType;\ninterface IPepFieldBaseOptions {\n value?: any;\n formattedValue?: any;\n additionalValue?: string;\n key?: string;\n label?: string;\n accessory?: string;\n mandatory?: boolean;\n readonly?: boolean;\n disabled?: boolean;\n order?: number;\n controlType?: string;\n // type?: PepFieldBaseType;\n placeholder?: string;\n hidden?: boolean;\n row?: number;\n rowSpan?: number;\n col?: number;\n colSpan?: number;\n xAlignment?: PepHorizontalAlignment;\n yAlignment?: PepVerticalAlignment;\n maxFieldCharacters?: number;\n minValue?: number;\n maxValue?: number;\n textColor?: string;\n visible?: boolean; \n emptyOption?: boolean; \n // lastFocusField?: any;\n digitsNumberAfterDecimalPoint?: number;\n}\nexport class PepFieldBase {\n value: any;\n formattedValue: any;\n additionalValue: string;\n key: string;\n label: string;\n accessory: string;\n mandatory: boolean;\n readonly: boolean;\n disabled: boolean;\n order: number;\n // type: string;\n controlType: string;\n placeholder: string;\n hidden: boolean;\n row: number;\n rowSpan: number;\n col: number;\n colSpan: number;\n xAlignment: PepHorizontalAlignment;\n yAlignment: PepVerticalAlignment;\n groupFields: PepFieldBase[];\n maxFieldCharacters: number;\n minValue: number;\n maxValue: number;\n textColor: string;\n visible: boolean; \n // lastFocusField: any;\n\n constructor(options: IPepFieldBaseOptions = {}) {\n this.key = options.key || '';\n this.label = options.label || '';\n this.accessory = options.accessory || '';\n this.mandatory = !!options.mandatory;\n\n this.order = options.order ?? 1;\n this.controlType = options.controlType || '';\n // this.type = options.type || '';\n this.placeholder = options.placeholder || '';\n this.hidden = !!options.hidden;\n\n this.row = options.row ?? 1;\n this.rowSpan = options.rowSpan ?? 1;\n this.col = options.col ?? 1;\n this.colSpan = options.colSpan ?? 1;\n\n this.xAlignment = options.xAlignment ?? DEFAULT_HORIZONTAL_ALIGNMENT;\n this.yAlignment = options.yAlignment ?? DEFAULT_VERTICAL_ALIGNMENT;\n\n this.maxFieldCharacters = options.maxFieldCharacters ?? 0;\n this.minValue = options.minValue ?? 0;\n this.maxValue = options.maxValue ?? 0;\n\n this.update(options);\n }\n\n protected getBaseValidators(isCheckbox = false): ValidatorFn[] {\n const validators = [];\n\n if (this.mandatory && !this.readonly && !this.disabled) {\n if (isCheckbox) {\n validators.push(Validators.requiredTrue);\n } else {\n validators.push(Validators.required);\n }\n } else {\n validators.push(Validators.nullValidator);\n }\n\n if (this.maxFieldCharacters > 0) {\n validators.push(Validators.maxLength(this.maxFieldCharacters));\n } \n\n if (this.minValue) {\n validators.push(Validators.min(this.minValue));\n }\n\n if (this.maxValue) {\n validators.push(Validators.max(this.maxValue));\n }\n\n return validators;\n }\n\n public getValidators(): ValidatorFn[] {\n const validators = this.getBaseValidators();\n return validators;\n }\n\n public update(options: IPepFieldBaseOptions): void {\n this.value = options.value;\n this.formattedValue = options.formattedValue;\n this.additionalValue = options.additionalValue;\n\n this.readonly = !!options.readonly;\n this.disabled = !!options.disabled;\n this.visible = !!options.visible;\n this.textColor = options.textColor || '';\n // this.lastFocusField = options.lastFocusField || null;\n }\n}\n\nexport class PepPlaceholderField extends PepFieldBase {\n controlType = 'placeholder';\n\n constructor(options: IPepFieldBaseOptions = {}) {\n super(options);\n }\n}\n\nexport class PepSeparatorField extends PepFieldBase {\n controlType = 'separator';\n \n constructor(options: IPepFieldBaseOptions = {}) {\n super(options); \n }\n}\n\nexport class PepAttachmentField extends PepFieldBase {\n controlType = 'attachment';\n\n constructor(options: IPepFieldBaseOptions = {}) {\n super(options);\n }\n}\n\nexport class PepIndicatorsField extends PepFieldBase {\n controlType = 'indicators';\n\n constructor(options: IPepFieldBaseOptions = {}) {\n super(options);\n }\n}\n\nexport type PepTextboxFieldType =\n | 'text'\n | 'link'\n | 'email'\n | 'phone'\n | 'duration'\n | 'int'\n | 'percentage'\n | 'currency'\n | 'real';\ninterface IPepTextboxFieldOptions extends IPepFieldBaseOptions {\n type?: PepTextboxFieldType;\n regex?: string | RegExp;\n // regexError?: string;\n}\nexport class PepTextboxField extends PepFieldBase {\n controlType = 'textbox';\n type: PepTextboxFieldType = 'text';\n regex?: string | RegExp;\n // regexError?: string;\n digitsNumberAfterDecimalPoint = NaN;\n\n constructor(options: IPepTextboxFieldOptions = {}) {\n super(options);\n\n this.type = options.type || 'text';\n this.regex = options.regex ?? null;\n // this.regexError = options.regexError ?? null;\n\n this.update(options);\n }\n\n public update(options: IPepTextboxFieldOptions): void {\n super.update(options);\n\n this.digitsNumberAfterDecimalPoint = options.digitsNumberAfterDecimalPoint ?? NaN;\n\n if (this.type === 'link') {\n // DI-11292 - add changes for link field for the \"Read Only display value\" prop\n this.formattedValue =\n this.disabled && this.formattedValue && this.value\n ? this.formattedValue\n : this.value;\n }\n }\n\n public getValidators(): ValidatorFn[] {\n const validators = super.getBaseValidators();\n\n if (this.type === 'email') {\n validators.push(\n Validators.pattern(\n /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n )\n );\n // validators.push(Validators.email);\n } else if (this.type === 'phone') {\n validators.push(Validators.pattern(/^[\\d\\.\\-\\+\\(\\)\\*\\#]+$/));\n } else if (this.type === 'int' || this.type === 'real') {\n validators.push(Validators.pattern(/^[\\.,\\-\\+\\d]+$/));\n\n if (!isNaN(this.minValue)) {\n validators.push(Validators.min(this.minValue));\n }\n\n if (!isNaN(this.maxValue)) {\n validators.push(Validators.max(this.maxValue));\n }\n }\n\n if (this.type === 'text' && this.regex) {\n validators.push(Validators.pattern(this.regex));\n }\n\n return validators;\n }\n}\n\nexport class PepLinkField extends PepFieldBase {\n controlType = 'link';\n type: PepTextboxFieldType = 'link';\n\n constructor(options: IPepFieldBaseOptions = {}) {\n super(options);\n\n this.update(options);\n }\n\n public update(options: IPepTextboxFieldOptions): void {\n super.update(options);\n \n // DI-23167 - Comment this.\n // // DI-11292 - add changes for link field for the \"Read Only display value\" prop\n // this.formattedValue =\n // this.disabled && this.formattedValue && this.value\n // ? this.formattedValue\n // : this.value;\n\n }\n}\n\nexport class PepTextareaField extends PepFieldBase {\n controlType = 'textarea';\n\n constructor(options: IPepFieldBaseOptions = {}) {\n super(options);\n // this.type = 'textarea';\n }\n}\n\ninterface IPepSignatureFieldOptions extends IPepFieldBaseOptions {\n renderTitle?: boolean;\n renderEnlargeButton?: boolean;\n}\nexport class PepRichHtmlTextareaField extends PepFieldBase {\n controlType = 'richhtmltextarea'; \n renderTitle: boolean;\n renderEnlargeButton: boolean;\n\n constructor(options: IPepSignatureFieldOptions = {}) {\n super(options);\n\n this.renderTitle = options.renderTitle !== undefined ? options.renderTitle : true;\n this.renderEnlargeButton = options.renderEnlargeButton !== undefined ? options.renderEnlargeButton : true;\n }\n}\n\ninterface IPepSignatureFieldOptions extends IPepFieldBaseOptions {\n options?: IPepOption[];\n}\nexport class PepSignatureField extends PepFieldBase {\n controlType = 'signature';\n options: IPepOption[] = [];\n\n constructor(options: IPepSignatureFieldOptions = {}) {\n super(options);\n this.options = options.options || [];\n }\n}\n\ninterface IPepImageFieldOptions extends IPepFieldBaseOptions {\n hasCampaignField?: any;\n indicatorsField?: any;\n menuField?: any;\n options?: IPepOption[];\n sizeLimitMB?: number;\n}\nexport class PepImageField extends PepFieldBase {\n controlType = 'image';\n hasCampaignField = null;\n indicatorsField = null;\n menuField = null;\n options: IPepOption[] = [];\n sizeLimitMB = 5;\n\n constructor(options: IPepImageFieldOptions = {}) {\n super(options);\n this.hasCampaignField = options.hasCampaignField || null;\n this.indicatorsField = options.indicatorsField || null;\n this.menuField = options.menuField || null;\n this.options = options.options || [];\n this.sizeLimitMB = options.sizeLimitMB || 5;\n }\n}\n\ninterface IPepImagesFieldOptions extends IPepFieldBaseOptions {\n options?: IPepOption[];\n}\nexport class PepImagesField extends PepFieldBase {\n controlType = 'images';\n options: IPepOption[] = [];\n\n constructor(options: IPepImagesFieldOptions = {}) {\n super(options);\n this.options = options.options || [];\n }\n}\n\nexport type PepQuantitySelectorFieldType =\n | 'button'\n | 'packageButton'\n | 'qs'\n | 'qsForMatrix';\ninterface IPepQuantitySelectorFieldOptions extends IPepFieldBaseOptions {\n allowDecimal?: boolean;\n notificationInfo?: any;\n type?: PepQuantitySelectorFieldType;\n}\nexport class PepQuantitySelectorField extends PepFieldBase {\n controlType = 'qs';\n allowDecimal: boolean;\n notificationInfo: any = {};\n updatedDataCount: number;\n type: PepQuantitySelectorFieldType;\n digitsNumberAfterDecimalPoint = NaN;\n\n constructor(options: IPepQuantitySelectorFieldOptions = {}) {\n super(options);\n\n this.updatedDataCount = 0;\n this.type = options.type || 'qs';\n\n this.update(options);\n }\n\n public update(options: IPepQuantitySelectorFieldOptions): void {\n super.update(options);\n \n this.digitsNumberAfterDecimalPoint = options.digitsNumberAfterDecimalPoint ?? NaN;\n\n this.allowDecimal = options.allowDecimal || false;\n this.notificationInfo = options.notificationInfo;\n this.updatedDataCount += 1;\n }\n}\n\nexport type PepDateFieldType = 'datetime' | 'date';\ninterface IPepDateFieldOptions extends IPepFieldBaseOptions {\n type?: PepDateFieldType;\n}\nexport class PepDateField extends PepFieldBase {\n controlType = 'date';\n type: PepDateFieldType;\n\n constructor(options: IPepDateFieldOptions = {}) {\n super(options);\n\n this.type = options.type || 'date';\n }\n}\n\nexport type PepCheckboxFieldType = 'checkbox' | 'booleanText';\ninterface IPepCheckboxFieldOptions extends IPepFieldBaseOptions {\n type?: PepCheckboxFieldType;\n}\nexport class PepCheckboxField extends PepFieldBase {\n controlType = 'checkbox';\n type: PepCheckboxFieldType;\n\n constructor(options: IPepCheckboxFieldOptions = {}) {\n super(options);\n\n this.type = options.type || 'checkbox';\n }\n\n public getValidators(): ValidatorFn[] {\n const validators = super.getBaseValidators(true);\n return validators;\n }\n}\n\nexport type PepSelectFieldType = 'select' | 'multi';\ninterface IPepSelectFieldOptions extends IPepFieldBaseOptions {\n options?: IPepOption[];\n type?: PepSelectFieldType;\n}\nexport class PepSelectField extends PepFieldBase {\n controlType = 'select';\n options: IPepOption[] = []; \n type: PepSelectFieldType; \n emptyOption: boolean;\n\n constructor(options: IPepSelectFieldOptions = {}) {\n super(options);\n this.type = options.type || 'select';\n this.emptyOption = options.emptyOption;\n\n this.update(options);\n }\n\n public update(options: IPepSelectFieldOptions): void {\n super.update(options);\n\n this.options = options.options || [];\n }\n}\n\ninterface IPepAddressFieldOptions extends IPepFieldBaseOptions {\n groupFields?: PepFieldBase[];\n}\nexport class PepAddressField extends PepFieldBase {\n controlType = 'address';\n groupFields: PepFieldBase[] = null;\n\n constructor(options: IPepAddressFieldOptions = {}) {\n super(options);\n this.groupFields = options.groupFields || null;\n }\n}\n\nexport type PepInternalButtonFieldType =\n | 'button'\n | 'reference'\n | 'listofobjects';\ninterface IPepInternalButtonFieldOptions extends IPepFieldBaseOptions {\n referenceObjectType?: any;\n referenceObjectSubType?: string;\n referenceObjectInternalType?: string;\n type?: PepInternalButtonFieldType;\n}\nexport class PepInternalButtonField extends PepFieldBase {\n controlType = 'button';\n referenceObjectType;\n referenceObjectSubType = '';\n referenceObjectInternalType = '';\n type: PepInternalButtonFieldType;\n\n constructor(options: IPepInternalButtonFieldOptions = {}) {\n super(options);\n\n this.referenceObjectType = options.referenceObjectType || null;\n this.referenceObjectSubType = options.referenceObjectSubType || null;\n this.referenceObjectInternalType =\n options.referenceObjectInternalType || null;\n\n this.type = options.type || 'button';\n }\n}\n\ninterface IPepInternalPageFieldOptions extends IPepFieldBaseOptions {\n objectId?: string;\n parentId?: string;\n searchCode?: string;\n}\nexport class PepInternalPageField extends PepFieldBase {\n controlType = 'internalPage';\n objectId = '';\n parentId = '';\n searchCode = '';\n\n constructor(options: IPepInternalPageFieldOptions = {}) {\n super(options);\n this.objectId = options.objectId || '';\n this.parentId = options.parentId || '';\n this.searchCode = options.searchCode || '';\n }\n}\n\n\ninterface IPepInternalCaruselFieldOptions extends IPepFieldBaseOptions {\n searchCode?: string;\n pageInfo?: any;\n}\nexport class PepInternalCaruselField extends PepFieldBase {\n controlType = 'internalCarusel';\n searchCode = '';\n pageInfo;\n\n constructor(options: IPepInternalCaruselFieldOptions = {}) {\n super(options);\n this.searchCode = options.searchCode || '';\n\n this.update(options);\n }\n\n public update(options: IPepInternalCaruselFieldOptions): void {\n super.update(options);\n\n this.pageInfo = options.pageInfo;\n }\n}\n\n\ninterface IPepInternalMenuFieldOptions extends IPepFieldBaseOptions {\n options?: IPepOption[];\n}\nexport class PepInternalMenuField extends PepFieldBase {\n controlType = 'menu';\n options: IPepOption[] = [];\n // hasSubMenu: boolean = false;\n\n constructor(options: IPepInternalMenuFieldOptions = {}) {\n super(options);\n this.options = options.options || [];\n // this.hasSubMenu = options['hasSubMenu'];\n }\n}\n\nexport interface IPepFieldValueChangeEvent {\n key: string;\n value: string;\n controlType?: string;\n}\n\nexport interface IPepFieldClickEvent {\n key: string;\n value?: string;\n controlType?: string;\n eventWhich?: any;\n otherData?: any;\n}\n","/*\n * Public API Surface of ngx-lib/core/customizatin\n */\nexport * from './customization.model';\nexport * from './customization.service';\n","/*\n * export from ngx-lib/core/customization\n */\nexport * from './public-api';\n","/*\n * Public API Surface of ngx-lib/core/http\n */\nexport * from './services/http.service';\nexport * from './services/loader.service';\n","/*\n * export from ngx-lib/core/http\n */\nexport * from './public-api';\n","/*\n * Public API Surface of ngx-lib/core/layout\n */\nexport * from './layout.service';\nexport * from './rtl.directive';\n","/*\n * export from ngx-lib/core/layout\n */\nexport * from './public-api';\n","/*\n * Public API Surface of ngx-lib/core/portal\n */\nexport * from './attach.directive';\nexport * from './target.directive';\nexport * from './portal.service';\n","/*\n * export from ngx-lib/core/portal\n */\nexport * from './public-api';\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class PepScrollToService {\n public scrollElementTo(\n element: Element | Window,\n duration = 500,\n top = 0\n ): Observable<any> {\n const subject: Subject<any> = new Subject<any>();\n if (element instanceof Element || element instanceof Window) {\n this._scrollElementTo(element, duration, top, subject);\n } else {\n subject.error(\"I don't find element\");\n }\n\n return subject;\n }\n\n private _scrollElementTo(\n el: Element | Window,\n duration: number,\n top: number,\n subject: Subject<any>\n ): Observable<any> {\n if (el) {\n let startingY: number;\n if (el instanceof Window) {\n startingY = window.pageYOffset;\n } else {\n const viewportOffset = (el as Element).getBoundingClientRect();\n startingY = viewportOffset.top;\n }\n this.doScrolling(el, startingY, top, duration, subject);\n } else {\n subject.error(\"I don't find element\");\n }\n\n return subject;\n }\n\n public scrollWindowToElement(\n element: string | HTMLElement,\n duration = 500,\n offset = 0\n ): Observable<any> {\n const subject: Subject<any> = new Subject<any>();\n if (typeof element === 'string') {\n const el = document.querySelector(element as string);\n this._scrollWindowToElement(\n el as HTMLElement,\n duration,\n offset,\n subject\n );\n } else if (element instanceof HTMLElement) {\n this._scrollWindowToElement(element, duration, offset, subject);\n } else {\n subject.error(\"I don't find element\");\n }\n\n return subject;\n }\n\n private _scrollWindowToElement(\n el: HTMLElement,\n duration: number,\n offset: number,\n subject: Subject<any>\n ): Observable<any> {\n if (el) {\n const viewportOffset = el.getBoundingClientRect();\n const startingY = window.pageYOffset;\n const offsetTop = viewportOffset.top + startingY;\n this.doScrolling(\n window,\n startingY,\n offsetTop + offset,\n duration,\n subject\n );\n } else {\n subject.error(\"I don't find element\");\n }\n\n return subject;\n }\n\n private doScrolling(\n scrollingElement: Element | Window,\n startingY: number,\n elementY: number,\n duration: number,\n subject: Subject<any>\n ): void {\n const diff = elementY - startingY;\n let start;\n\n requestAnimationFrame(function step(timestamp) {\n start = !start ? timestamp : start;\n\n const time = timestamp - start;\n const percent = Math.min(time / duration, 1);\n\n scrollingElement.scrollTo(0, startingY + diff * percent);\n\n if (time < duration) {\n requestAnimationFrame(step);\n subject.next({});\n } else {\n subject.complete();\n }\n });\n }\n}\n","/*\n * Public API Surface of ngx-lib/core/scroll-to\n */\n// export * from './scroll-to.directive';\nexport * from './scroll-to.service';\n","/*\n * export from ngx-lib/core/scroll-to\n */\nexport * from './public-api';\n","/*\n * Public API Surface of ngx-lib/core\n */\nexport * from './clipboard/index';\nexport * from './common/index';\nexport * from './customization/index';\nexport * from './http/index';\nexport * from './layout/index';\nexport * from './portal/index';\nexport * from './scroll-to/index';\n","/*\n * export from ngx-lib/core\n */\nexport * from './public-api';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule, HttpClient } from '@angular/common/http';\nimport { FormBuilder, ReactiveFormsModule } from '@angular/forms';\n\nimport { httpInterceptorProviders } from './core/http/interceptors/index';\n\nimport { PepClipboardDirective } from './core/clipboard/clipboard.directive';\nconst clipboardList = [PepClipboardDirective];\n\nimport {\n PepRtlClassDirective,\n PepRtlDirectionDirective,\n} from './core/layout/rtl.directive';\nconst layoutList = [PepRtlClassDirective, PepRtlDirectionDirective];\n\nimport {\n PepCapitalizePipe,\n PepEncodePipe,\n PepEscapePipe,\n PepReplaceLineBreaksPipe,\n PepDateFormatterPipe,\n PepDateStringFormatterPipe,\n PepSafeHtmlPipe,\n PepSafePipe,\n PepSplitUppercasePipe,\n PepToNumberPipe,\n} from './core/common/pipes/common-pipes';\n\nimport { DateAgoPipe } from './core/common/pipes/date-ago.pipe';\n\nconst pipeList = [\n PepCapitalizePipe,\n PepEncodePipe,\n PepEscapePipe,\n PepReplaceLineBreaksPipe,\n PepDateFormatterPipe,\n PepDateStringFormatterPipe,\n PepSafeHtmlPipe,\n PepSafePipe,\n PepSplitUppercasePipe,\n PepToNumberPipe,\n DateAgoPipe\n];\n\nimport { PepInputAutoWidthDirective } from './core/common/directives/auto-width.directive';\nimport { PepButtonBlurDirective } from './core/common/directives/button-blur.directive';\nimport { PepButtonLoaderDirective } from './core/common/directives/button-loader.directive';\nimport { PepMenuBlurDirective } from './core/common/directives/menu-blur.directive';\nimport { PepDataQaDirective } from './core/common/directives/data-qa.directive';\n// import { PreventDoubleClickDirective } from './core/common/directives/debounce-click.directive';\nimport { PepPreventMultiClickDirective } from './core/common/directives/prevent-multi-click.directive';\nimport { PepPrintDirective } from './core/common/directives/print.directive';\nimport { PepDivLoaderDirective } from './core/common/directives/div-loader.directive';\n\nconst utilitiesList = [\n PepInputAutoWidthDirective,\n PepButtonBlurDirective,\n PepButtonLoaderDirective,\n PepMenuBlurDirective,\n PepDataQaDirective,\n // PreventDoubleClickDirective,\n PepPreventMultiClickDirective,\n PepPrintDirective,\n PepDivLoaderDirective,\n];\n\nimport { PepAttachDirective } from './core/portal/attach.directive';\nimport { PepTargetDirective } from './core/portal/target.directive';\n\nconst portalList = [PepAttachDirective, PepTargetDirective];\n\nimport { TranslateModule, TranslateService, TranslateStore } from '@ngx-translate/core';\nimport { \n PepAddonService,\n PepColorService,\n PepCookieService,\n PepDataConvertorService,\n PepFileService,\n PepJwtHelperService,\n PepSessionService,\n PepTranslateService,\n PepUtilitiesService,\n PepValidatorService,\n PepWindowScrollingService,\n PepCustomizationService,\n PepHttpService,\n PepLoaderService,\n PepLayoutService,\n PepPortalService,\n PepScrollToService,\n} from './core/index';\n\n@NgModule({\n declarations: [\n pipeList,\n utilitiesList,\n clipboardList,\n layoutList,\n portalList,\n ],\n imports: [\n CommonModule,\n HttpClientModule,\n ReactiveFormsModule,\n ],\n exports: [\n pipeList,\n utilitiesList,\n clipboardList,\n layoutList,\n portalList,\n TranslateModule,\n ],\n providers: [\n httpInterceptorProviders,\n PepAddonService,\n PepColorService,\n PepCookieService,\n PepDataConvertorService,\n PepFileService,\n PepJwtHelperService,\n PepSessionService,\n PepTranslateService,\n PepUtilitiesService,\n PepValidatorService,\n PepWindowScrollingService,\n PepCustomizationService,\n PepHttpService,\n PepLoaderService,\n PepLayoutService,\n PepPortalService,\n PepScrollToService,\n FormBuilder\n ]\n})\nexport class PepNgxLibModule {\n // static forRoot(): ModuleWithProviders<PepNgxLibModule> {\n // return {\n // ngModule: PepNgxLibModule,\n // providers: [PepCustomizationService]\n // };\n // }\n // static forRoot() {\n // return {\n // ngModule: PepNgxLibModule,\n // providers: [ PepCustomizationService ]\n // }\n // }\n}\n","/*\n * Public API Surface of ngx-lib\n */\nexport * from './ngx-lib.module';\nexport * from './core/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PepLayoutService","i1","i2.PepUtilitiesService","i1.PepJwtHelperService","i1.PepSessionService","i2.PepFileService","i1.PepPortalService","i2.PepCookieService","i3","i2.PepHttpService","i3.PepLoaderService","i4.PepTranslateService","i5.PepFileService"],"mappings":"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"}
|