@unipin/angular-applet 18.6.18 → 18.6.20
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/esm2022/lib/components/containers/list-container/list-pagination-container/list-pagination-container.component.mjs +3 -3
- package/esm2022/lib/components/filter/filter.component.mjs +4 -2
- package/fesm2022/unipin-angular-applet.mjs +5 -3
- package/fesm2022/unipin-angular-applet.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unipin-angular-applet.mjs","sources":["../../../projects/unipin-angular/src/lib/components/buttons/loading/btn-loading.component.ts","../../../projects/unipin-angular/src/lib/components/buttons/loading/btn-loading.component.html","../../../projects/unipin-angular/src/lib/components/buttons/group/btn-group.component.ts","../../../projects/unipin-angular/src/lib/components/buttons/group/btn-group.component.html","../../../projects/unipin-angular/src/lib/components/containers/applet-container/provide-applet-config.util.ts","../../../projects/unipin-angular/src/lib/modules/micro-frontend/utils/mf-global-state.util.ts","../../../projects/unipin-angular/src/lib/modules/micro-frontend/utils/mf-bootstrap.util.ts","../../../projects/unipin-angular/src/lib/modules/permission/pages/loading/provide-loading-config.util.ts","../../../projects/unipin-angular/src/lib/modules/permission/services/permission.service.ts","../../../projects/unipin-angular/src/lib/modules/permission/pages/loading/loading.page.ts","../../../projects/unipin-angular/src/lib/modules/permission/pages/loading/loading.page.html","../../../projects/unipin-angular/src/lib/modules/permission/directive/permission.directive.ts","../../../projects/unipin-angular/src/lib/modules/permission/guards/permission.guard.ts","../../../projects/unipin-angular/src/lib/modules/permission/pages/401/unauthorized.page.ts","../../../projects/unipin-angular/src/lib/modules/permission/pages/401/unauthorized.page.html","../../../projects/unipin-angular/src/lib/components/containers/applet-container/applet-container.component.ts","../../../projects/unipin-angular/src/lib/components/containers/applet-container/applet-container.component.html","../../../projects/unipin-angular/src/lib/components/containers/column-container/directives/lazy-route.directive.ts","../../../projects/unipin-angular/src/lib/components/containers/column-container/column-container.component.ts","../../../projects/unipin-angular/src/lib/components/containers/column-container/column-container.component.html","../../../projects/unipin-angular/src/lib/components/containers/colum-header-container/column-header-container.component.ts","../../../projects/unipin-angular/src/lib/components/containers/colum-header-container/column-header-container.component.html","../../../projects/unipin-angular/src/lib/components/containers/modal-container/modal-container.component.ts","../../../projects/unipin-angular/src/lib/components/containers/modal-container/modal-container.component.html","../../../projects/unipin-angular/src/lib/utils/format-capitalize/format-capitalize.util.ts","../../../projects/unipin-angular/src/lib/utils/form-error-message/form-error-message.util.ts","../../../projects/unipin-angular/src/lib/utils/contrast-color-generator/contrast-color-generator.util.ts","../../../projects/unipin-angular/src/lib/components/forms/date/form-date.component.ts","../../../projects/unipin-angular/src/lib/components/forms/date/form-date.component.html","../../../projects/unipin-angular/src/lib/components/forms/input/form-input.component.ts","../../../projects/unipin-angular/src/lib/components/forms/input/form-input.component.html","../../../projects/unipin-angular/src/lib/components/forms/number/pipes/locale-number.pipe.ts","../../../projects/unipin-angular/src/lib/components/forms/number/form-number.component.ts","../../../projects/unipin-angular/src/lib/components/forms/number/form-number.component.html","../../../projects/unipin-angular/src/lib/components/forms/password/form-password.component.ts","../../../projects/unipin-angular/src/lib/components/forms/password/form-password.component.html","../../../projects/unipin-angular/src/lib/components/forms/searchable-select/form-searchable-select.component.ts","../../../projects/unipin-angular/src/lib/components/forms/searchable-select/form-searchable-select.component.html","../../../projects/unipin-angular/src/lib/components/forms/select/form-select.component.ts","../../../projects/unipin-angular/src/lib/components/forms/select/form-select.component.html","../../../projects/unipin-angular/src/lib/components/forms/textarea/form-textarea.component.ts","../../../projects/unipin-angular/src/lib/components/forms/textarea/form-textarea.component.html","../../../projects/unipin-angular/src/lib/components/forms/image-picker/directives/drag-n-drop.directive.ts","../../../projects/unipin-angular/src/lib/components/forms/image-picker/form-image-picker.component.ts","../../../projects/unipin-angular/src/lib/components/forms/image-picker/form-image-picker.component.html","../../../projects/unipin-angular/src/graphql/generated.ts","../../../projects/unipin-angular/src/lib/services/profile/profile.service.ts","../../../projects/unipin-angular/src/lib/services/auth/auth.service.ts","../../../projects/unipin-angular/src/lib/services/currency/currency.service.ts","../../../projects/unipin-angular/src/lib/services/country/country.service.ts","../../../projects/unipin-angular/src/lib/components/forms/currency-input/form-currency-input.component.ts","../../../projects/unipin-angular/src/lib/components/forms/currency-input/form-currency-input.component.html","../../../projects/unipin-angular/src/lib/components/forms/country-input/form-country-input.component.ts","../../../projects/unipin-angular/src/lib/components/forms/country-input/form-country-input.component.html","../../../projects/unipin-angular/src/lib/components/filter/filter.component.ts","../../../projects/unipin-angular/src/lib/components/filter/filter.component.html","../../../projects/unipin-angular/src/lib/components/grids/services/grid.service.ts","../../../projects/unipin-angular/src/lib/components/grids/grid-snapshot/grid-snapshot.component.ts","../../../projects/unipin-angular/src/lib/components/grids/grid-snapshot/grid-snapshot.component.html","../../../projects/unipin-angular/src/lib/components/grids/grid-pagination/grid-pagination.component.ts","../../../projects/unipin-angular/src/lib/components/grids/grid-pagination/grid-pagination.component.html","../../../projects/unipin-angular/src/lib/components/containers/list-container/list-pagination-container/list-pagination-container.component.ts","../../../projects/unipin-angular/src/lib/components/containers/list-container/list-pagination-container/list-pagination-container.component.html","../../../projects/unipin-angular/src/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.component.ts","../../../projects/unipin-angular/src/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.component.html","../../../projects/unipin-angular/src/lib/components/tabs/tab-content/tab-content.component.ts","../../../projects/unipin-angular/src/lib/components/tabs/tab-content/tab-content.component.html","../../../projects/unipin-angular/src/lib/components/tabs/tab-group/tab-group.component.ts","../../../projects/unipin-angular/src/lib/components/tabs/tab-group/tab-group.component.html","../../../projects/unipin-angular/src/lib/components/audit/service/audit.service.ts","../../../projects/unipin-angular/src/lib/components/audit/list/audit-list.component.ts","../../../projects/unipin-angular/src/lib/components/audit/list/audit-list.component.html","../../../projects/unipin-angular/src/lib/components/audit/detail/audit-detail.component.ts","../../../projects/unipin-angular/src/lib/components/audit/detail/audit-detail.component.html","../../../projects/unipin-angular/src/lib/components/approval/list/provide-approval-entities.util.ts","../../../projects/unipin-angular/src/lib/components/approval/services/approval.service.ts","../../../projects/unipin-angular/src/lib/components/approval/list/approval-list.component.ts","../../../projects/unipin-angular/src/lib/components/approval/list/approval-list.component.html","../../../projects/unipin-angular/src/lib/components/approval/form/approval-form.component.ts","../../../projects/unipin-angular/src/lib/components/approval/form/approval-form.component.html","../../../projects/unipin-angular/src/lib/components/approval/detail/approval-detail.component.ts","../../../projects/unipin-angular/src/lib/components/approval/detail/approval-detail.component.html","../../../projects/unipin-angular/src/lib/components/infinite-scroll/directive/infinite-scroll.directive.ts","../../../projects/unipin-angular/src/lib/components/infinite-scroll/infinite-scroll.component.ts","../../../projects/unipin-angular/src/lib/components/infinite-scroll/infinite-scroll.component.html","../../../projects/unipin-angular/src/lib/resolvers/auth/auth.resolver.ts","../../../projects/unipin-angular/src/lib/guards/auth/auth.guard.ts","../../../projects/unipin-angular/src/lib/interceptors/header/header.interceptor.ts","../../../projects/unipin-angular/src/lib/interceptors/refresh-token/refresh-token.interceptor.ts"],"sourcesContent":["import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { IonButton, IonicModule } from '@ionic/angular';\n\n@Component({\n standalone: true,\n selector: 'up-btn-loading',\n styleUrl: './btn-loading.component.scss',\n templateUrl: './btn-loading.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n IonicModule\n ]\n})\nexport class ButtonLoadingComponent {\n\n /**\n * An input variable that used to control showed button. When set the value to true, the button\n * will be disabled and cannot be pressed. When set the value to false, the button will be enabled\n * and can be pressed. Default value is false.\n * @type {boolean}\n */\n @Input() public disabled: boolean = false;\n\n /**\n * An input variable that used to set form of ion-button.\n * @type {HTMLFormElement | string | undefined}\n */\n @Input() public form: HTMLFormElement | string | undefined;\n\n /**\n * An input variable that used to set type of ion-button. Default value is 'button'.\n * @type {'button' | 'reset' | 'submit'}\n */\n @Input() public type?: 'button' | 'reset' | 'submit' = 'button';\n\n /**\n * An input variable that used to set fill of ion-button. Default value is 'solid'.\n * @type {'clear' | 'default' | 'outline' | 'solid'}\n */\n @Input() public fill: 'clear' | 'default' | 'outline' | 'solid' = 'solid';\n\n /**\n * An input variable that used to set color of ion-button. Default value is 'primary'.\n * @type {'danger' | 'dark' | 'light' | 'medium' | 'primary' | 'secondary' | 'success' | 'tertiary' | 'warning' | string}\n */\n @Input() public color?: 'danger' | 'dark' | 'light' | 'medium' | 'primary' | 'secondary' | 'success' | 'tertiary' | 'warning' | string = 'primary';\n\n /**\n * An output variable that used to emits event of type ButtonLoadingComponent when clicked. This\n * output variable, when subscribed to, emits events containing instances of ButtonLoadingComponent\n * or its subclass.\n * @type {EventEmitter<ButtonLoadingComponent>}\n */\n @Output() public onClick: EventEmitter<ButtonLoadingComponent> = new EventEmitter();\n @ViewChild(IonButton) protected btn!: IonButton;\n\n /**\n * A flag variable that used to control showed button. When set the value to true, the button\n * will replaced to ion-spinner for marking the application still loading. When set the value\n * to false, it will shown the button. Default value is false.\n * @type {boolean}\n */\n public isLoading: boolean = false;\n\n constructor(\n protected readonly ch: ChangeDetectorRef,\n ) { }\n\n /**\n * A method that emit onClick variable and call toggleLoading function after a button is clicked.\n */\n public clickBtn(): void{\n this.onClick.emit(this);\n this.toggleLoading();\n }\n\n /**\n * A method when it's called, it'll make either the button is in loading state or in normal state.\n * If the current condition is normal state, the button will be in loading state and vice versa.\n */\n public toggleLoading(): void{\n this.isLoading = !this.isLoading;\n this.btn.disabled = !this.btn.disabled;\n\n this.ch.markForCheck();\n }\n}\n","<ion-button type=\"{{ type }}\" fill=\"{{ fill }}\" color=\"{{ color }}\" expand=\"block\" mode=\"md\" [disabled]=\"disabled\" [form]=\"form\" (click)=\"clickBtn()\">\n @if (isLoading) {\n <ion-spinner />\n } @else {\n <ng-content select=\"ion-icon\" />\n }\n \n <ng-content />\n</ion-button>\n","import { Attribute, ChangeDetectionStrategy, Component, HostBinding, input, InputSignal, SimpleChanges } from '@angular/core';\nimport { IonicModule, PopoverController } from '@ionic/angular';\nimport { ButtonGroupConfig } from './interfaces/btn-group-config.interface';\nimport { ButtonLoadingComponent } from '../loading/btn-loading.component';\n\n@Component({\n standalone: true,\n selector: 'up-btn-group',\n styleUrl: './btn-group.component.scss',\n templateUrl: './btn-group.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n IonicModule,\n ButtonLoadingComponent\n ]\n})\nexport class ButtonGroupComponent {\n\n /**\n * An input variable that used to configuration object for customizing button group properties. This\n * object defined by ButtonGroupConfig interface allows specifying button such as icon,\n * color, description, disabled, form, label, and type\n * @type {ButtonGroupConfig[]}\n */\n public readonly config: InputSignal<ButtonGroupConfig[]> = input.required();\n @HostBinding('class.d-none') protected isHidden: boolean = false;\n\n /**\n * A flag variable that used to control showed button. When set a new value, current button\n * is hidden and and a new button is shown. Default value is 0.\n * @type {number}\n */\n public activeIndex: number = 0;\n\n constructor(\n /**\n * An identifier that used to uniquely identify an HTML element such as a ion-button and\n * a ion-popover.\n * @type {string}\n */\n @Attribute('id') public id: string,\n protected readonly popoverCtrl: PopoverController\n ) { }\n\n public ngOnChanges(changes: SimpleChanges): void{\n if (changes['config']) {\n this.isHidden = this.config().length <= 0;\n this.activeIndex = 0;\n }\n }\n\n /**\n * A method that executes another method inside active button defined within ButtonGroupConfig\n * interface after a button is clicked. It receives a ButtonLoadingComponent as a parameter\n * allowing modification of the active button.\n * @param {ButtonLoadingComponent} b - Contain values from current button.\n */\n public clickBtn(b: ButtonLoadingComponent): void{\n this.config()[this.activeIndex].onClick(b);\n }\n\n /**\n * A method that change variable activeIndex value to current index of the active button and dismiss\n * popover. It receives a number variable as a parameter and the value of the parameter will be set\n * to variable activeIndex.\n * @param {number} i - New index of the active button.\n */\n public change(i: number): void{\n this.activeIndex = i;\n this.popoverCtrl.dismiss();\n }\n}\n","@if (config().length > 0) {\n @let c = config();\n\n <up-btn-loading class=\"flex-grow-1\" [class.multi]=\"config.length > 1\" [type]=\"c[activeIndex].type\" [disabled]=\"c[activeIndex].disabled\" [form]=\"c[activeIndex].form\" [color]=\"c[activeIndex].color\" (onClick)=\"clickBtn($event);\">\n @if (c[activeIndex].icon) {\n <ion-icon class=\"me-2\" name=\"{{ c[activeIndex].icon }}\" />\n }\n {{ c[activeIndex].label }}\n </up-btn-loading>\n\n @defer (when config().length > 1) {\n @if (config().length > 1) {\n <ion-button class=\"flex-shrink-0\" id=\"btn-{{ id }}\" [color]=\"c[activeIndex].color\">\n <ion-icon name=\"caret-down-outline\" />\n </ion-button>\n\n <ion-popover trigger=\"btn-{{ id }}\" triggerAction=\"click\">\n <ng-template>\n @for (c of c; track $index; let i = $index) {\n <div class=\"item px-2 py-3 cursor-pointer border-bottom d-flex gap-2\" (click)=\"change(i);\">\n <div class=\"icon flex-shrink-0\">\n @if (i === activeIndex) {\n <ion-icon name=\"checkmark\" />\n }\n </div>\n\n <div class=\"flex-grow-1\">\n <div class=\"fw-medium\">{{ c.label }}</div>\n\n @if (c.description) {\n <div class=\"f12 pt-1\">\n {{ c.description }}\n </div>\n }\n </div>\n </div>\n }\n </ng-template>\n </ion-popover>\n }\n }\n}\n","import { InjectionToken, Provider } from '@angular/core';\n\nexport const APPLET_CONFIG = new InjectionToken<AppletConfig>('APPLET_CONFIG');\n\nexport interface AppletConfig {\n icon: string;\n name: string;\n version: string;\n enabledSetting?: boolean;\n containers: {\n icon: string;\n label: string;\n permModule: string;\n path: `/${ string }`;\n }[];\n}\n\nexport function provideAppletConfig(config: AppletConfig): Provider{\n return { \n provide: APPLET_CONFIG, \n useValue: config \n };\n}\n","export const packageNamespace = '@angular-architects/module-federation-tools';\n\nfunction getGlobalState<T>(): T {\n const globalState = window as unknown as { [packageNamespace]: T };\n globalState[packageNamespace] = globalState[packageNamespace] || ({} as unknown as T);\n \n return globalState[packageNamespace];\n}\n\nexport function getGlobalStateSlice<T>(): T;\nexport function getGlobalStateSlice<T, R>(selector: (globalState: T) => R): R;\n\nexport function getGlobalStateSlice<T, R>(selector?: (globalState: T) => R): R | T {\n const globalState = getGlobalState<T>();\n return selector? selector(globalState) : globalState;\n}\n\nexport function setGlobalStateSlice<T extends object>(slice: T): T {\n return Object.assign(getGlobalState<T>(), slice);\n}\n","import { ApplicationConfig, enableProdMode, Injector, NgZone, Type } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { bootstrapApplication, createApplication } from '@angular/platform-browser';\nimport { getGlobalStateSlice, setGlobalStateSlice } from './mf-global-state.util';\nimport { createCustomElement } from '@angular/elements';\n\nexport type AppType = 'shell' | 'microfrontend';\n\nexport type Options = {\n production: boolean;\n appType: AppType;\n elementName?: string;\n};\n\nfunction getNgZone(): NgZone{\n return (getGlobalStateSlice((state: { ngZone: NgZone }) => state.ngZone));\n}\n\nexport function shareNgZone(zone: NgZone): void{\n setGlobalStateSlice({ ngZone: zone });\n}\n\nexport function bootstrap<M>(component: Type<M>, options: Options, config: ApplicationConfig): void{\n options.production && enableProdMode();\n\n if (options.appType === 'shell') {\n bootstrapApplication(component, config).then((ref) => {\n shareShellZone(ref.injector);\n });\n return;\n }\n\n if (!getNgZone() && isLocalhost()) {\n bootstrapApplication(component, config).then((ref) => {\n connectMicroFrontendRouter(ref.injector);\n });\n return;\n }\n \n (async () => {\n config.providers.push({ provide: NgZone, useValue: getNgZone() });\n\n const app = await createApplication(config);\n customElements.define(<string> options.elementName, createCustomElement(component, { injector: app.injector }));\n\n connectMicroFrontendRouter(app.injector);\n })();\n}\n\nfunction shareShellZone(injector: Injector): void{\n const ngZone = injector.get(NgZone, null);\n if (!ngZone) {\n console.warn('No NgZone to share found');\n return;\n }\n shareNgZone(ngZone);\n}\n\nfunction connectMicroFrontendRouter(injector: Injector): void{\n const router = injector.get(Router);\n const location = injector.get(Location);\n\n if (!router) {\n console.warn('No router to connect found');\n return;\n }\n router.navigateByUrl(location.path() + window.location.hash);\n}\n\nfunction isLocalhost(): boolean{\n const hostname = window.location.hostname;\n return hostname === 'localhost' || hostname === '127.0.0.1';\n}\n","import { InjectionToken, Provider } from '@angular/core';\nimport { FetchPolicy } from '@apollo/client/core';\n\nexport const LOADING_CONFIG = new InjectionToken<LoadingConfig>('LOADING_CONFIG');\n\nexport interface LoadingConfig {\n\tpermTypes: string[];\n permModules: string[];\n\tfetchPolicy?: FetchPolicy;\n\tsubjectGuidStorageKey?: string;\n}\n\nexport function provideLoadingConfig(config: LoadingConfig): Provider{\n return {\n provide: LOADING_CONFIG,\n useValue: config\n };\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { ApolloQueryResult, FetchPolicy } from '@apollo/client/core';\nimport { Apollo, gql } from 'apollo-angular';\nimport { AppPermDfn, PermissionFilter } from '../../../../graphql/generated';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionService {\n\n /**\n * A readonly variable that used to store permission modules in an applet then check if the user\n * has the permission or not. This variable controls menu's icon visibility on the sidebar. The\n * icon will appear if the user has the permission that menu's needed and it will disappear if\n * the user don't have the permission.\n * @type {Subject<string[]>}\n */\n public readonly permModules: Subject<string[]> = new Subject<string[]>();\n\n /**\n * A flag variable that used to know if the applet already initiated or not. Default value is\n * false.\n * @type {boolean}\n */\n public isInitiated: boolean = false;\n protected permissions: Map<string, boolean> = new Map();\n\n constructor(\n protected readonly apollo: Apollo\n ) { }\n\n /**\n * A method that set the permissions and permission modules.\n * @param {string[]} permCodes - Contain list of permission codes.\n * @param {string[]} permModules - Contain list of permission modules. Default value [].\n */\n public setPermission(permCodes: string[], permModules: string[] = []): void{\n for (let i = 0; i < permCodes.length; i++) this.permissions.set(permCodes[i], true);\n this.permModules.next(permModules);\n }\n\n /**\n * A method that checking if the user has the permission or not based on the params value.\n * @param {string} scope - Contain scope of the user's permission.\n * @param {string} module - Contain module of the user's permission.\n * @param {string} type - Contain type of the user's permission.\n * @returns {boolean} Contain boolean value that tells the user has the permission or not.\n */\n public checkPermission(scope: string, module: string, type: string): boolean{\n if (this.permissions.has(`${ scope }.${ module }.ADMIN`)) return true;\n if (this.permissions.has(`${ scope }.${ module }.${ type }`)) return true;\n\n return false;\n }\n\n /**\n * A method that get the query value with authMsPermission as the object.\n * @param {PermissionFilter} filter - Contain filter as a conditions for the query.\n * @returns {Observable<ApolloQueryResult<{ authMsPermission: { data: AppPermDfn[] }}>>} Contain query value.\n */\n public getPermissions(filter: PermissionFilter, fetchPolicy?: FetchPolicy): Observable<ApolloQueryResult<{ authMsPermission: { data: AppPermDfn[] }}>>{\n return this.apollo.query({\n fetchPolicy,\n variables: { filter },\n query: gql`\n query QueryPermission($filter: PermissionFilter!) {\n authMsPermission(filter: $filter) {\n data { permCode }\n }\n }\n `\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { IonicModule } from '@ionic/angular';\nimport { PermissionService } from '../../services/permission.service';\nimport { LOADING_CONFIG, LoadingConfig } from './provide-loading-config.util';\n\n@Component({\n standalone: true,\n selector: 'up-loading',\n styleUrl: './loading.page.scss',\n templateUrl: './loading.page.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-flex flex-column align-items-center justify-content-center h-100 w-75 mx-auto'\n },\n imports: [\n IonicModule\n ]\n})\nexport class LoadingPage implements OnInit, OnDestroy {\n\n protected sub?: Subscription;\n\n constructor(\n @Inject(LOADING_CONFIG) public readonly config: LoadingConfig,\n protected readonly router: Router,\n protected readonly route: ActivatedRoute,\n protected readonly permissionService: PermissionService\n ) { }\n\n public ngOnInit(): void{\n const subjectGuid = localStorage.getItem(this.config.subjectGuidStorageKey || 'userGuid');\n if (!subjectGuid) {\n this.router.navigate([ '401' ]);\n return;\n }\n \n const permCodeList: string[] = [];\n this.sub = this.permissionService.getPermissions({ \n subjectGuid, \n pageSize: 1000,\n permModule: this.config.permModules, \n permType: this.config.permTypes \n }, this.config.fetchPolicy).subscribe({\n error: () => {\n this.router.navigate([ '401' ]);\n },\n next: ({ data: { authMsPermission: { data }}}) => {\n data.forEach(({ permCode }) => {\n if (!permCode) return;\n\n permCodeList.push(permCode);\n });\n\n this.permissionService.isInitiated = true;\n this.permissionService.setPermission(permCodeList, this.config.permModules);\n\n this.router.navigateByUrl(this.route.snapshot.queryParamMap.get('url')?? '');\n }\n });\n }\n\n public ngOnDestroy(): void{\n this.sub?.unsubscribe();\n }\n}\n","<ion-spinner class=\"mb-4\" />\n<h3 class=\"text-center\">Please wait, we're preparing the applet. Drink water or coffee while waiting.</h3>\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { PermissionService } from '../services/permission.service';\n\n/**\n * The `PermissionDirective` is a directive that conditionally renders content based on user permissions.\n * `Scope` param is default to `GLOBAL`\n * @selector '[hasPermission]'\n * @example\n * ```html\n * <div *hasPermission=\"'POST_AUDIT'; type: 'READ'; scope: 'MERCHANT'\"></div>\n * ```\n */\n@Directive({\n standalone: true,\n selector: '[hasPermission]'\n})\nexport class PermissionDirective {\n \n /**\n * The module name for which permissions are being checked.\n * @type {string}\n * @default {null}\n */\n protected module!: string;\n\n /**\n * The permission scope.\n * @type {string}\n * @default {'GLOBAL'}\n */\n protected scope: string = 'GLOBAL';\n\n /**\n * Sets the module name for which permissions are being checked.\n * @example 'POST_AUDIT'.\n * @param {string} m - The module name.\n */\n @Input() set hasPermission(m: string) {\n this.module = m; \n }\n\n /**\n * Sets the permission scope. Default is 'GLOBAL'.\n * @param {string} s - The permission scope.\n */\n @Input() set hasPermissionScope(s: string) { \n this.scope = s; \n }\n\n /**\n * Sets the permission type and conditionally renders content based on user permissions.\n * @param {string} t - The permission type, e.g., 'READ', 'WRITE'.\n */\n @Input() set hasPermissionType(t: string) {;\n if (this.permissionService.checkPermission(this.scope, this.module, t)) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n return;\n }\n\n this.viewContainer.clear();\n }\n\n constructor(\n protected readonly templateRef: TemplateRef<any>,\n protected readonly viewContainer: ViewContainerRef,\n protected readonly permissionService: PermissionService\n ) { }\n}\n","import { inject } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { ActivatedRouteSnapshot, CanActivateFn, Router } from '@angular/router';\nimport { PermissionService } from '../services/permission.service';\n\nexport const PermissionGuard: CanActivateFn = (route: ActivatedRouteSnapshot): boolean => {\n \n const router: Router = inject(Router);\n const location: Location = inject(Location);\n const permissionService: PermissionService = inject(PermissionService);\n\n const permissions: { scope: string, module: string, type: string }[] = route.data['requiredPermissions'];\n \n if (!permissions || permissions.length === 0) throw new Error('Invalid config: requiredPermissions is a required parameter in route data for PermissionGuard');\n\n if (!permissionService.isInitiated) {\n router.navigate([ 'loading' ], { queryParams: { url: `${ location.path() + window.location.hash }` } });\n return false;\n }\n\n if (permissions) {\n for (let i = 0; i < permissions.length; i++) {\n const { scope, module, type } = permissions[i];\n if (permissionService.checkPermission(scope, module, type)) return true;\n }\n }\n\n router.navigate([ '401' ]);\n return false;\n};\n","import { Component } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\n\n@Component({\n standalone: true,\n selector: 'up-unauthorized',\n templateUrl: './unauthorized.page.html',\n styleUrls: ['./unauthorized.page.scss'],\n host: {\n class: 'd-flex flex-column align-items-center justify-content-center h-100 w-75 mx-auto'\n },\n imports: [ IonicModule ]\n})\nexport class UnauthorizedPage { }\n","<ion-icon name=\"lock-closed\" class=\"mb-4\" />\n<h3 class=\"text-center\">Oops! You're not authorized to access this page.</h3>\n<p class=\"text-center\">Please log in or re-check your permissions.</p>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { IonicModule } from '@ionic/angular';\nimport { Subscription, fromEvent } from 'rxjs';\nimport { PermissionService } from '../../../modules';\nimport { APPLET_CONFIG, AppletConfig } from './provide-applet-config.util';\n\n@Component({\n standalone: true,\n selector: 'up-applet-container',\n styleUrl: './applet-container.component.scss',\n templateUrl: './applet-container.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-flex h-100 w-100'\n },\n imports: [\n IonicModule,\n RouterLink,\n RouterLinkActive\n ]\n})\nexport class AppletContainerComponent implements OnInit, OnDestroy {\n\n /**\n * A flag variable that used to control sidebar. When set the the value to true, the component will open the sidebar.\n * when set the value to false, the component will close the sidebar.\n * @type {boolean}\n */\n public isCollapsed: boolean = false;\n\n /**\n * A flag variable that used to control sidebar menu. When set value to true, the component will hide the sidebar menu.\n * When set false, the component will show the sidebar menu.\n * @type {boolean[]}\n */\n public isHidden: boolean[] = Array(this.config.containers.length).fill(true);\n \n /**\n * A flag variable for indicates whether the sidebar menu is active or not in mobile view.\n * When set false the sidebar menu will be hidden\n * @type {boolean[]}\n */\n public isMenuActive: boolean = false;\n protected sub!: Subscription;\n protected subEvent!: Subscription;\n\n constructor(\n @Inject(APPLET_CONFIG) public readonly config: AppletConfig,\n protected readonly ch: ChangeDetectorRef,\n protected readonly permissionService: PermissionService\n ) { }\n\n /**\n * Lifecycle hook to initialize the components.\n * Subscribes to permission changes and window events.\n */\n public ngOnInit(): void{\n this.sub = this.permissionService.permModules.subscribe((listPermModule: string[]) => {\n this.isHidden = this.config.containers.map(({ permModule }) => {\n return !listPermModule.includes(permModule);\n });\n });\n\n this.subEvent = fromEvent(window, 'menuEvent').subscribe((event: any) => {\n this.isMenuActive = event.detail.isActive;\n this.ch.markForCheck();\n });\n }\n\n /**\n * Lifecycle hook to handle component destruction.\n * Cleans up subscriptions to prevent memory leaks\n */\n public ngOnDestroy(): void{ \n this.sub.unsubscribe();\n this.subEvent.unsubscribe();\n }\n\n /**\n * When the method is called, it will change the value of isCollapsed to its opposite value. \n * If isCollapsed is currently true, it will be set to false, and if it is currently false, it will be set to true. \n * This method is typically used to toggle the visibility of a side navigation menu.\n */\n public toggleSidenav(): void{\n this.isCollapsed = !this.isCollapsed;\n }\n\n /**\n * Handles menu selection by dispatching a custom event.\n * This method is called when a sidebar menu item is selected.\n * It dispatches a custom 'menuEvent' with detail indicating the menu is inactive.\n * This event is typically used to close the sidebar menu.\n */\n public selectMenu(): void{\n dispatchEvent(new CustomEvent('menuEvent', { detail: { isActive: false } }));\n }\n}\n","<div class=\"sidenav flex-shrink-0 h-100 py-4 d-flex flex-column\" [class.collapsed]=\"isCollapsed\" [class.show]=\"isMenuActive\">\n <div class=\"logo-container px-3 pb-3 border-bottom flex-shrink-0 position-relative d-flex align-items-center gap-3 d-none d-md-flex\">\n <img alt=\"Applet Icon\" width=\"44px\" height=\"44px\" class=\"rounded\" [src]=\"config.icon\" />\n\n <div class=\"info w-75 pe-2\">\n <div class=\"name fw-medium text-truncate\">{{ config.name }}</div>\n \n <div class=\"tenant pt-1 fw-medium\">\n v{{ config.version }}\n </div>\n </div>\n\n <button class=\"btn-close cursor-pointer position-absolute border-0 rounded-circle d-none d-md-block\" (click)=\"toggleSidenav()\">\n <ion-icon name=\"chevron-forward\" class=\"mt-1\" />\n </button>\n </div>\n\n <div class=\"flex-grow-1 px-3 pt-3 overflow-y-auto d-none d-md-block\" (click)=\"selectMenu()\">\n @for (c of config.containers; track $index) {\n <a class=\"nav align-items-center text-decoration-none gap-2 rounded mb-1 {{ isHidden[$index]? 'd-none' : 'd-flex' }}\" routerLinkActive=\"fw-medium\" title=\"{{ c.label }}\" [routerLink]=\"c.path\">\n <ion-icon name=\"{{ c.icon }}\" />\n <div class=\"text-truncate\">{{ c.label }}</div>\n </a>\n }\n </div>\n\n @if (config.enabledSetting) {\n <div class=\"flex-shrink-0 px-3 pt-3 border-top d-none d-md-block\" (click)=\"selectMenu()\">\n <a class=\"nav d-flex align-items-center text-decoration-none gap-2 rounded\" title=\"Setting\" routerLink=\"setting\" routerLinkActive=\"fw-medium\">\n <ion-icon name=\"settings\" />\n <div class=\"text-truncate\">Setting</div>\n </a>\n </div>\n }\n</div>\n\n<div class=\"flex-grow-1 w-100 overflow-y-auto\">\n <ng-content />\n</div>\n","import { Directive, Input, OnInit, ViewContainerRef } from '@angular/core';\n\n/**\n * The `LazyRouteDirective` is a directive that enables lazy loading of components based on a specified route.\n * Use this directive on an HTML element with the `[loadRoute]` attribute to dynamically load a component when the route is activated.\n * @example\n * ```html\n * <div [loadRoute]=\"routeConfig\"></div>\n * ```\n */\n@Directive({\n standalone: true,\n selector: '[loadRoute]'\n})\nexport class LazyRouteDirective implements OnInit {\n \n /**\n * An input public variable as configuration object containing the `loadComponent` method.\n * @type {any}\n */\n @Input({ required: true }) public loadRoute: any;\n\n constructor(\n protected readonly vcr: ViewContainerRef\n ){}\n \n /**\n * Lifecycle hook that is called after the directive's data-bound properties have been initialized.\n * Dynamically loads the component using the `loadComponent` method and creates it within the directive's view container.\n */\n public ngOnInit(): void{\n this.loadRoute.loadComponent().then((m: any) => this.vcr.createComponent(m));\n }\n}\n","import { Component, HostListener, OnDestroy } from '@angular/core';\nimport { NavigationEnd, Router, ActivatedRoute, Route } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { AngularSplitModule } from 'angular-split';\nimport { LazyRouteDirective } from './directives/lazy-route.directive';\n\n/**\n * The `ColumnContainerComponent` is a component representing a container with dynamic columns that\n * are loaded based on route navigation.\n * * It uses lazy loading with the `LazyRouteDirective` to load components dynamically.\n * @example\n * ```html\n * <up-column-container></up-column-container>\n * ```\n */\n@Component({\n standalone: true,\n selector: 'up-column-container',\n styleUrl: './column-container.component.scss',\n templateUrl: './column-container.component.html',\n host: {\n class: 'd-block h-100 w-100'\n },\n imports: [\n AngularSplitModule,\n LazyRouteDirective\n ]\n})\nexport class ColumnContainerComponent implements OnDestroy {\n\n /**\n * An array of objects representing the columns, each containing a visibility flag and the associated route.\n * @type {{ visible: boolean, route: Route }[]}\n * @default {[]}\n */\n public readonly areas: { visible: boolean, route: Route }[] = [];\n\n /**\n * The default size for the split area: 100 means it will be full width, and 50 means it will be divided in half.\n */\n public colSize: number = 50;\n\n /**\n * An object to keep track of the position of opened areas based on their route paths.\n * @type {{ [key: string]: number }}\n * @default {{}}\n */\n protected readonly openedArea: { [key: string]: number } = {};\n\n /**\n * Subscription to router events for dynamic navigation handling.\n */\n protected sub!: Subscription;\n\n constructor(\n protected readonly router: Router,\n protected readonly activeRoute: ActivatedRoute\n ) { }\n\n /**\n * Lifecycle hook called after the component has been initialized.\n * Subscribes to router events, initializes columns based on the initial route, and sets up the first visible column.\n */\n public ngOnInit(): void{\n this.checkScreen();\n\n this.sub = this.router.events.subscribe((e) => {\n if (e instanceof NavigationEnd) this.navigate();\n });\n\n const url: string | undefined = this.activeRoute.firstChild?.routeConfig?.path;\n const routeList: Route[] = ((this.activeRoute.snapshot.routeConfig) as any)._loadedRoutes;\n\n this.next(routeList[0]);\n\n for (let i = 1; i < routeList.length; i++) {\n if (url?.startsWith(<string> routeList[i].path)) this.next(routeList[i]);\n }\n }\n\n /**\n * Lifecycle hook called when the component is about to be destroyed.\n * Unsubscribes from the router events to prevent memory leaks.\n */\n public ngOnDestroy(): void{ this.sub.unsubscribe(); }\n\n /**\n * Handles router navigation events and adjusts the display of columns accordingly.\n */\n protected navigate(): void{\n const route: Route = this.activeRoute.firstChild!.routeConfig!;\n \n if (this.openedArea[`r-${ route.path }`] <= this.areas.length) this.previous(this.openedArea[`r-${ route.path }`]);\n else this.next(route); \n }\n\n /**\n * Adds a new column to the container and updates visibility based on the route navigation.\n * @param {Route} route - Contain next route.\n */\n protected next(route: Route): void{\n if (this.colSize === 100 && this.areas.length >= 1) {\n this.areas[this.areas.length - 1].visible = false;\n } else if (this.areas.length >= 2) {\n this.areas[this.areas.length - 2].visible = false;\n }\n\n this.areas.push({ visible: true, route });\n this.openedArea[`r-${ route.path }`] = this.areas.length;\n }\n\n /**\n * Removes columns from the container based on the route navigation.\n * @param {number} pos - Contain position of the last active area index.\n */\n protected previous(pos: number): void{\n this.areas.splice(pos);\n\n if (this.colSize === 100) {\n this.areas[this.areas.length - 1].visible = true;\n return;\n }\n \n if (this.areas.length === 1) this.areas[0].visible = true;\n else {\n this.areas[pos - 1].visible = true;\n this.areas[pos - 2].visible = true;\n }\n }\n\n /**\n * Event listener for the window resize event. Adjusts the default size of the split area based on the screen width.\n * @param {Event} event - The resize event.\n */\n @HostListener('window:resize', ['$event'])\n protected checkScreen(): void{\n this.colSize = window.innerWidth <= 768? 100 : 50;\n }\n}\n","<as-split \n [gutterSize]=\"0\"\n [disabled]=\"true\" \n [useTransition]=\"true\" \n>\n @for (a of areas; track $index; let i = $index) {\n <as-split-area \n class=\"border-start\"\n [attr.order]=\"i\"\n [size]=\"colSize\" \n [visible]=\"a.visible\"\n >\n <ng-container [loadRoute]=\"a.route\" />\n </as-split-area>\n }\n</as-split>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { RouterLink } from '@angular/router';\n\n@Component({\n standalone: true,\n selector: 'up-column-header-container',\n styleUrl: './column-header-container.component.scss',\n templateUrl: './column-header-container.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n class: 'd-flex flex-column h-100' \n },\n imports: [ \n IonicModule,\n RouterLink\n ]\n})\nexport class ColumnHeaderContainerComponent {\n\n /**\n * An input variable that used to set header text.\n *@type {string}\n */\n @Input() public header?: string;\n\n /**\n * An input variable that used to set prevUrl.\n *@type {string}\n */\n @Input() public prevUrl!: string;\n}\n","<div class=\"d-flex justify-content-between align-items-center border-bottom py-1 ps-1 pe-4 flex-shrink-0\">\n\t<div class=\"flex-grow-1 d-flex align-items-center pe-3\">\n\t\t<ion-buttons class=\"flex-shrink-0\">\n\t\t\t<ion-button routerLink=\"{{ prevUrl }}\">\n\t\t\t\t<ion-icon slot=\"icon-only\" name=\"close\" />\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\n\t\t<div class=\"f20 fw-medium flex-grow-1 text-truncate\">{{ header }}</div>\n\t</div>\n\n\t<ng-content select=\"[button]\" />\n</div>\n\n<div class=\"p-1 flex-grow-1 overflow-auto\">\n\t<ng-content/>\n</div>\n","import { ChangeDetectionStrategy, Component, HostListener, Input, OnInit } from '@angular/core';\nimport { IonicModule, ModalController } from '@ionic/angular';\n\n/**\n * `ModalContainerComponent` is a container to display a modal dialog\n * this component provide the modal header.\n * @example\n * ```html\n * <up-modal-container header=\"The title\">\n * The content\n * </up-modal-container>\n * ```\n */\n@Component({\n standalone: true,\n selector: 'up-modal-container',\n styleUrl: './modal-container.component.scss',\n templateUrl: './modal-container.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n IonicModule\n ]\n})\nexport class ModalContainerComponent implements OnInit {\n\n /**\n * An input public variable to set the modal header text visible on top left of the modal.\n * Considered as modal title represent what is the modal for.\n * @type {string}\n * @default {null}\n * @required\n */\n @Input({ required: true }) public header!: string;\n\n /**\n * An input public variable to set the disabled state of the modal's interactive elements.\n * When set to true, buttons and other interactive elements within the modal will be disabled.\n * This is useful for preventing user actions while the modal is in a specific state or when\n * certain conditions are met (e.g., when 'suggestedLogin' is 'ChangePassword').\n * @type {boolean}\n * @default false\n */\n @Input() public disabled: boolean = false;\n\n /**\n * A protected variable to set the key for window state purpose.\n * @type {string}\n * @default {null}\n */\n protected key!: string;\n\n constructor(\n protected readonly modalCtrl: ModalController\n ) { }\n\n /**\n * Lifecycle hook to initialize the component.\n * Set key use the header and replaicng the empty space with `-`.\n * Push state to the window history.\n */\n public ngOnInit(): void{\n this.key = this.header.replace(/ /g, '-');\n history.pushState({ [this.key]: true }, '');\n }\n\n /**\n * Lifecycle hook to handle componen destruction.\n * Check if the state history exist then navigate to previous state.\n */\n public ngOnDestroy(): void{\n if (history.state[this.key]) history.back();\n }\n\n /**\n * This procedure is a listener for the 'popstate' event on the window.\n * It is to handle browser navigation changes (e.g., back or forward button clicks).\n * @param {PopStateEvent} ev - The PopStateEvent object containing information about the state change.\n */\n @HostListener('window:popstate', [ '$event' ])\n public popState(ev: PopStateEvent): void{\n if (!ev.state[this.key]) this.modalCtrl.dismiss();\n }\n\n /**\n * A porcedure to dismiss the modal.\n */\n public close(): void{ this.modalCtrl.dismiss(); }\n}\n","<ion-header class=\"ion-no-border\">\n <ion-toolbar>\n <ion-buttons slot=\"start\">\n <ion-button [disabled]=\"disabled\" (click)=\"close()\">\n <ion-icon slot=\"icon-only\" name=\"close\" />\n </ion-button>\n </ion-buttons>\n\n <ion-title class=\"p-0 fs-5\">{{ header }}</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<div class=\"p-4\">\n <ng-content />\n</div>\n","/**\n * A function that create a capitalize word.\n * @param {string | string[]} str - Word that want to be capitalized.\n * @param {boolean} [eachWord=false] - Determine whether each word will be capitalize or not by a certain separator. If the first param is not array, this parameter will be ignored. Default to `false`.\n * @param {string} [separator=\" \"] - A string used to separate one element of the words from the next in the resulting string. If the first param is not array, this parameter will be ignored. If omitted, words are separated with a space.\n * @returns {string} Capitalized word string\n */\nexport function formatCapitalize(str: string | string[], eachWord: boolean = false, separator: string = ' '): string{\n if (!str) return str;\n if (typeof str === 'string') return `${ str.at(0)!.toUpperCase() }${ str.substring(1).toLowerCase() }`;\n\n str[0] = `${ str[0].at(0)!.toUpperCase() }${ str[0].substring(1).toLowerCase() }`;\n for (let i = 1; i < str.length; i++) {\n if (!str[i]) continue;\n\n if (!eachWord) str[i] = str[i].toLowerCase();\n else {\n str[i] = `${ str[i].at(0)!.toUpperCase() }${ str[i].substring(1).toLowerCase() }`;\n }\n }\n return str.join(separator);\n}\n","import { ValidationErrors } from '@angular/forms';\n\nconst errMessage: { [k: string]: (l: string, arg?: number) => string } = {\n email: (label: string) => `${ label } is not a valid email`,\n required: (label: string) => `${ label } is required`,\n minlength: (label: string, length?: number) => `${ label } must be at least ${ length } characters`,\n maxlength: (label: string, length?: number) => `${ label } must not exceed ${ length } characters`,\n max: (label: string, max?: number) => `${ label } value must be lower than ${ max }`,\n min: (label: string, min?: number) => `${ label } value must be larger than ${ min }`,\n};\n\nconst extraParamKey: { [k: string]: string } = {\n minlength: 'requiredLength',\n maxlength: 'requiredLength',\n max: 'max',\n min: 'min'\n};\n\n/**\n * A function that get detail error description based on param err.\n * @param {ValidationErrors | null} err - Contain error from the form input.\n * @param {string} label - Contain label name of the form input.\n * @returns {string} Contain either detail error description or empty string ('')\n */\nexport function getFormErrorMessage(err: ValidationErrors | null, label?: string): string{\n if (!err) return '';\n\n const key = Object.keys(err)[0];\n return errMessage[key](label?? 'Column', err[key][extraParamKey[key]]);\n}\n","/**\n * A function that generate random background and text color for badge based on given string. The text color has 2 values, either white [for dark background] or black [for light background].\n * The first char will act as red color.\n * The second char will act as green color.\n * The third char will act as blue color.\n * And the final char will act as opacity value.\n * @param {string} str - A string that acts as the random seeder. String length should not exceeding 8 characters. String length will be truncated to 8 if the given string length is exceeding 8 chars.\n * @returns {Object} generatedColor - Generated random color object\n * @property {string} generatedColor.background - Generated background hex color\n * @property {string} generatedColor.color - Generated text hex color\n */\nexport function generateContrastColor(str: string): { background: `#${ string }`, color: `#${ string }` }{\n if (str.length > 4) str = str.substring(0, 4);\n\n let res = '';\n let total = 0;\n\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i).toString(16);\n \n res += c;\n total += +c;\n }\n return {\n background: `#${ res }`,\n color: total > 187? '#000' : '#fff'\n }\n}\n","import { Attribute, ChangeDetectorRef, ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { IonicModule } from '@ionic/angular';\nimport { getFormErrorMessage } from '../../../utils';\n\n@Component({\n standalone: true,\n selector: 'up-date',\n styleUrl: './form-date.component.scss',\n templateUrl: './form-date.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-block position-relative'\n },\n imports: [\n DatePipe,\n IonicModule\n ],\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: FormDateComponent\n },\n {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: FormDateComponent\n }\n ]\n})\nexport class FormDateComponent implements ControlValueAccessor, Validator, OnInit {\n\n /**\n * Input variable for the label associated with the date input.\n * @type {string | undefined}\n */\n @Input() public label?: string;\n\n /**\n * Input variable to determine whether the date input is required.\n * @type {boolean}\n * @default false\n */\n @Input() public required: boolean = false;\n\n /**\n * Input variable to determine whether the date input is disabled.\n * @type {boolean}\n * @default false\n */\n @Input() public disabled: boolean = false;\n\n /**\n * Input variable to determine whether the date picker is date only or date and time.\n * @type {string}\n * @default 'date'\n */\n @Input() public presentation: 'date' | 'date-time' = 'date';\n\n /**\n * Input variable to determine what is the minimum date allowed.\n * @type {string}\n */\n @Input() public minDate?: string;\n\n /**\n * Input variable to determine what is the maximum date allowed.\n * @type {string}\n */\n @Input() public maxDate?: string;\n\n /**\n * Boolean flag indicating whether the date input has been touched.\n * @type {boolean}\n * @default false\n */\n public isTouched: boolean = false;\n\n /**\n * The value of the date input.\n * @type {string}\n * @default ''\n */\n public value: string = '';\n\n /**\n * The value of the localization date.\n * @type {string}\n * @default ''\n */\n public localValue: string= '';\n\n /**\n * The format of date.\n * @type {string}\n * @default 'dd LLL yyyy'\n */\n public dateFormat: string = 'dd LLL yyyy';\n\n /**\n * Error message associated with the date input.\n * @type {string}\n * @default undefined\n */\n public errorMsg!: string;\n\n /**\n * The form control associated with the date input.\n * @type {AbstractControl}\n */\n protected formControl!: AbstractControl;\n\n /**\n * Callback function to handle value changes in the date input.\n * @type {(_val: any) => void}\n */\n protected onChange: (_val: any) => void = (_val: any) => {};\n\n /**\n * Callback function to handle touch events in the date input.\n * @type {() => void}\n */\n protected onTouched: () => void = () => {};\n\n constructor(\n @Attribute('name') public name: string,\n @Attribute('placeholder') public placeholder: string,\n protected readonly ch: ChangeDetectorRef\n ) {}\n\n /**\n * Lifecycle hook called a moment before the component is created.\n * Check if the presentation is 'date-time' then the date format should be changed to dd LLL yyyy HH:mm.\n */\n public ngOnInit(): void{\n if (this.presentation === 'date-time') this.dateFormat = `${ this.dateFormat } HH:mm`;\n }\n\n /**\n * Registers a callback function to be called when the date input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{ this.onChange = fn; }\n\n /**\n * Registers a callback function to be called when the date input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{ this.onTouched = fn; }\n\n /**\n * Writes a new value to the date input.\n * Calculate and writes the local value for ionic datetime picker.\n * @param {*} val - The new value to be set.\n */\n public writeValue(val: any): void{ \n this.value = val;\n if (!val) {\n this.ch.markForCheck();\n return;\n };\n\n let localTime = new Date(val);\n\n localTime = new Date(localTime.getTime() - (localTime.getTimezoneOffset() * 60000));\n this.localValue = localTime.toISOString();\n\n this.ch.markForCheck();\n }\n\n /**\n * Sets the disabled state of the date input.\n * @param {boolean} d - Whether the date input should be disabled or not.\n */\n public setDisabledState?(d: boolean): void{ \n this.disabled = d; \n this.ch.markForCheck();\n }\n\n /**\n * Validates the date input.\n * @param {AbstractControl} control - The abstract control representing the date input.\n * @returns {(ValidationErrors | null)} - Validation errors if any, otherwise null.\n */\n public validate(control: AbstractControl): ValidationErrors | null{\n this.formControl = control;\n return null;\n }\n\n /**\n * Event handler for date changes in the date input.\n * If not touched, marks the input as touched.\n * If not disabled, updates the value, triggers change detection, and emits the change event.\n * Updates the error message based on form control errors and label.\n * @param {any} param0 - Event detail containing the new date value.\n */\n public changeDate({ detail: { value }}: any): void{\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled) {\n this.value = this.localValue = value;\n this.ch.markForCheck();\n\n this.onChange(this.value);\n this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);\n }\n }\n}\n","<label class=\"form-label d-flex align-items-center\">\n <ng-content select=\"[icon]\" />\n <span>{{ label }}</span>\n</label>\n\n<input readonly type=\"text\" id=\"{{ name }}-date\" placeholder=\"{{ placeholder }}\" class=\"form-control cursor-pointer\" [disabled]=\"disabled\" [required]=\"required\" [value]=\"value | date:dateFormat \">\n<ion-icon name=\"calendar\" class=\"position-absolute fs-4 cursor-pointer\" />\n\n<ion-modal trigger=\"{{ name }}-date\">\n <ng-template>\n <ion-datetime \n mode=\"md\" \n hourCycle=\"h23\" \n value=\"{{ localValue }}\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [showDefaultButtons]=\"true\" \n [presentation]=\"presentation\"\n (ionChange)=\"changeDate($event)\" \n />\n </ng-template>\n</ion-modal>\n\n@if (errorMsg) {\n <label class=\"is-invalid\">{{ errorMsg }}</label>\n}\n","import { Attribute, ChangeDetectorRef, ChangeDetectionStrategy, Component, Input, Output, EventEmitter } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { getFormErrorMessage } from '../../../utils';\n\n@Component({\n standalone: true,\n selector: 'up-input',\n styleUrl: './form-input.component.scss',\n templateUrl: './form-input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-block'\n },\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: FormInputComponent\n },\n {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: FormInputComponent\n }\n ]\n})\nexport class FormInputComponent implements ControlValueAccessor, Validator {\n\n /**\n * Input variable for the label associated with the input.\n * @type {string | undefined}\n */\n @Input() public label?: string;\n\n /**\n * Input variable for the initial value of the input.\n * @type {string | null | undefined}\n */\n @Input() public value?: string | null;\n\n /**\n * Input variable to determine whether the input is required.\n * @type {boolean}\n * @default false\n */\n @Input() public required: boolean = false;\n\n /**\n * Input variable to determine whether the input is disabled.\n * @type {boolean}\n * @default false\n */\n @Input() public disabled: boolean = false;\n\n /**\n * Output variable for emitting input events.\n * @type {EventEmitter<any>}\n */\n @Output() public onInput: EventEmitter<any> = new EventEmitter<any>();\n\n /**\n * Boolean flag indicating whether the input has been touched.\n * @type {boolean}\n * @default false\n */\n public isTouched: boolean = false;\n\n /**\n * Error message associated with the input.\n * @type {string}\n * @default undefined\n */\n public errorMsg!: string;\n\n /**\n * The form control associated with the input.\n * @type {AbstractControl}\n */\n protected formControl!: AbstractControl;\n\n /**\n * Callback function to handle value changes in the input.\n * @type {(_val: any) => void}\n */\n protected onChange: (_val: any) => void = (_val: any) => {};\n\n /**\n * Callback function to handle touch events in the input.\n * @type {() => void}\n */\n protected onTouched: () => void = () => {};\n\n constructor(\n @Attribute('placeholder') public placeholder: string,\n @Attribute('type') public type: 'email' | 'hidden' | 'number' | 'search' | 'tel' | 'text' | 'url',\n @Attribute('autocomplete') public autocomplete: 'name' | 'email' | 'tel' | 'url' | 'on' | 'off' | 'honorific-prefix' | 'given-name' | 'additional-name' | 'family-name' | 'honorific-suffix' | 'nickname' | 'username' | 'one-time-code' | 'organization-title' | 'organization' | 'street-address' | 'address-line1' | 'address-line2' | 'address-line3' | 'address-level4' | 'address-level3' | 'address-level2' | 'address-level1' | 'country' | 'country-name' | 'postal-code' | 'cc-name' | 'cc-given-name' | 'cc-additional-name' | 'cc-family-name' | 'cc-number' | 'cc-exp' | 'cc-exp-month' | 'cc-exp-year' | 'cc-csc' | 'cc-type' | 'transaction-currency' | 'transaction-amount' | 'language' | 'bday' | 'bday-day' | 'bday-month' | 'bday-year' | 'sex' | 'tel-country-code' | 'tel-national' | 'tel-area-code' | 'tel-local' | 'tel-extension',\n protected readonly ch: ChangeDetectorRef\n ) { }\n\n /**\n * Registers a callback function to be called when the input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{ this.onChange = fn; }\n\n /**\n * Registers a callback function to be called when the input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{ this.onTouched = fn; } \n\n /**\n * Emits an input event when the input value changes.\n * @param {any} val - The new value of the input.\n */\n public input(val: any): void{ this.onInput.emit(val); }\n\n /**\n * Writes a new value to the input.\n * @param {*} val - The new value to be set.\n */\n public writeValue(val: any): void{\n this.value = val; \n this.ch.markForCheck();\n }\n\n /**\n * Sets the disabled state of the input.\n * @param {boolean} d - Whether the input should be disabled or not.\n */\n public setDisabledState?(d: boolean): void{ \n this.disabled = d; \n this.ch.markForCheck();\n }\n\n /**\n * Validates the input.\n * @param {AbstractControl} control - The abstract control representing the input.\n * @returns {(ValidationErrors | null)} - Validation errors if any, otherwise null.\n */\n public validate(control: AbstractControl): ValidationErrors | null{\n this.formControl = control;\n return null;\n }\n\n /**\n * Event handler for input changes in the input.\n * If not touched, marks the input as touched.\n * If not disabled, updates the value, triggers change detection, and emits the input event.\n * Updates the error message based on form control errors and label.\n * @param {any} param0 - Event detail containing the new input value.\n */\n public change({ value }: any): void{\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled) {\n this.value = value;\n this.onChange(this.value);\n this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);\n }\n }\n}\n","<label class=\"form-label d-flex align-items-center\">\n <ng-content select=\"[icon]\" />\n <span>{{ label }}</span>\n</label>\n\n<input type=\"{{ type }}\" autocomplete=\"{{ autocomplete }}\" placeholder=\"{{ placeholder }}\" class=\"form-control\" [required]=\"required\" [disabled]=\"disabled\" [value]=\"value\" (change)=\"change($event.target)\" (input)=\"input($event)\" />\n\n@if (errorMsg) {\n <label class=\"is-invalid\">{{ errorMsg }}</label>\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n standalone: true,\n name: 'localeNumber',\n pure: true\n})\nexport class LocaleNumberPipe implements PipeTransform {\n\n public transform(value: string | null | undefined, locale: string): string{\n if (!value) return '';\n \n if (!/[.,]/.test(value)) return Number(value).toLocaleString(locale);\n else {\n if (/,/.test(value) && /\\./.test(value)) {\n const seperator = this.extractSeperator(value);\n const splitValue = value.split(seperator[seperator.length -1] === ','? /,/ : /\\./);\n\n return Number(splitValue[0].replaceAll(/[,.]/g, '')).toLocaleString(locale) + seperator[seperator.length -1] + splitValue[1];\n }\n return Number(value.replaceAll(/[,.]/g, '')).toLocaleString(locale);\n }\n }\n\n protected extractSeperator(input: string): string[]{\n const seperators: string[] = [];\n\n for (let i = 0; i < input.length; i++) {\n const char = input[i];\n if (char === '.' || char === ',') seperators.push(char);\n }\n return seperators;\n }\n}\n","import { Attribute, ChangeDetectorRef, ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { getFormErrorMessage } from '../../../utils';\nimport { LocaleNumberPipe } from './pipes/locale-number.pipe';\n\n@Component({\n standalone: true,\n selector: 'up-number',\n styleUrl: './form-number.component.scss',\n templateUrl: './form-number.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-block'\n },\n imports: [ \n FormsModule, \n LocaleNumberPipe \n ],\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: FormNumberComponent\n },\n {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: FormNumberComponent\n }\n ]\n})\nexport class FormNumberComponent implements ControlValueAccessor, Validator {\n\n /**\n * Input variable for the label associated with the input.\n * @type {string | undefined}\n */\n @Input() public label?: string;\n \n /**\n * Input variable for the initial value of the input.\n * @type {string | null | undefined}\n */\n @Input() public value?: string | null;\n \n /**\n * Input variable to determine whether the input is required.\n * @type {boolean}\n * @default false\n */\n @Input() public required: boolean = false;\n\n /**\n * Input variable to determine whether the input is disabled.\n * @type {boolean}\n * @default false\n */\n @Input() public disabled: boolean = false;\n\n /**\n * Input variable specifying the locale to be used for masking numbers based on locale.\n * @type {string}\n * @default navigator.language\n */\n @Input() public locale: string = navigator.language;\n \n /**\n * Boolean flag indicating whether the input has been touched.\n * @type {boolean}\n * @default false\n */\n public isTouched: boolean = false;\n\n /**\n * Error message associated with the input.\n * @type {string}\n * @default undefined\n */\n public errorMsg!: string;\n\n /**\n * The form control associated with the input.\n * @type {AbstractControl}\n */\n protected formControl!: AbstractControl;\n\n /**\n * Callback function to handle value changes in the input.\n * @type {(_val: any) => void}\n */\n protected onChange: (_val: any) => void = (_val: any) => {};\n\n /**\n * Callback function to handle touch events in the input.\n * @type {() => void}\n */\n protected onTouched: () => void = () => {};\n\n constructor(\n @Attribute('placeholder') public placeholder: string,\n protected readonly ch: ChangeDetectorRef\n ) { }\n\n /**\n * Registers a callback function to be called when the input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{ this.onChange = fn; }\n\n /**\n * Registers a callback function to be called when the input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{ this.onTouched = fn; } \n\n /**\n * Writes a new value to the input.\n * @param {*} val - The new value to be set.\n */\n public writeValue(val: any): void{\n this.value = val; \n this.ch.markForCheck();\n }\n\n /**\n * Sets the disabled state of the input.\n * @param {boolean} d - Whether the input should be disabled or not.\n */\n public setDisabledState?(d: boolean): void{ \n this.disabled = d; \n this.ch.markForCheck();\n }\n\n /**\n * Validates the input.\n * @param {AbstractControl} control - The abstract control representing the input.\n * @returns {(ValidationErrors | null)} - Validation errors if any, otherwise null.\n */\n public validate(control: AbstractControl): ValidationErrors | null{\n this.formControl = control;\n return null;\n }\n\n /**\n * Event handler for input changes in the input.\n * If not touched, marks the input as touched.\n * If not disabled, updates the value, triggers change detection, and emits the input event.\n * Updates the error message based on form control errors and label.\n * @param {any} param - Event detail containing the new input value.\n */\n public change({ value }: any): void{\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled) {\n this.value = value; \n this.onChange(this.value);\n this.errorMsg = getFormErrorMessage(this.formControl?.errors, this.label);\n }\n }\n\n /**\n * Event handler for keydown events in the input.\n * Prevents input of non-numeric characters except for specific allowed keys.\n * @param {KeyboardEvent} event - The keyboard event object.\n */\n public onKeyDown(ev: KeyboardEvent): void{\n const allowedKeys = new Set(['Backspace', 'Delete', 'ArrowLeft', 'ArrowRight', 'Tab', 'Home', 'End', ',', '.']);\n const key = ev.key;\n\n if (allowedKeys.has(key)) return;\n if (!/^\\d$/.test(key)) ev.preventDefault();\n }\n}\n","<label class=\"form-label\">{{ label }}</label>\n<input type=\"text\" placeholder=\"{{ placeholder }}\" class=\"form-control\" [required]=\"required\" [disabled]=\"disabled\" [value]=\"value | localeNumber:locale\" (keydown)=\"onKeyDown($event)\" (change)=\"change($event.target)\" />\n\n@if (errorMsg) {\n <label class=\"is-invalid\">{{ errorMsg }}</label>\n}\n","import { Attribute, ChangeDetectorRef, ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { IonicModule } from '@ionic/angular';\nimport { getFormErrorMessage } from '../../../utils';\n\n@Component({\n standalone: true,\n selector: 'up-password',\n styleUrl: './form-password.component.scss',\n templateUrl: './form-password.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-block position-relative'\n },\n imports: [\n IonicModule\n ],\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: FormPasswordComponent\n },\n {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: FormPasswordComponent\n }\n ]\n})\nexport class FormPasswordComponent implements ControlValueAccessor, Validator {\n\n /**\n * Input variable to determine whether the password is required.\n * @type {boolean}\n * @default false\n */\n @Input() public required: boolean = false;\n\n /**\n * Input variable to determine whether the password must be the same as another input.\n * @type {boolean}\n * @default false\n */\n @Input() public mustSame: boolean = false;\n\n /**\n * Boolean flag indicating whether the password input has been touched.\n * @type {boolean}\n * @default false\n */\n public isTouched: boolean = false;\n\n /**\n * The type of the password input (text or password).\n * @type {'text' | 'password'}\n * @default 'password'\n */\n public type: 'text' | 'password' = 'password';\n\n /**\n * The value of the password input.\n * @type {string}\n * @default ''\n */\n public value: string = '';\n\n /**\n * Error message associated with the password input.\n * @type {string}\n * @default undefined\n */\n public errorMsg!: string;\n\n /**\n * The form control associated with the password input.\n * @type {AbstractControl}\n */\n protected formControl!: AbstractControl;\n\n /**\n * Callback function to handle value changes in the password input.\n * @type {(_val: any) => void}\n */\n protected onChange: (_val: any) => void = (_val: any) => {};\n\n /**\n * Callback function to handle touch events in the password input.\n * @type {() => void}\n */\n protected onTouched: () => void = () => {};\n\n constructor(\n @Attribute('label') public label: string,\n @Attribute('autocomplete') public autocomplete: 'current-password' | 'new-password',\n protected readonly ch: ChangeDetectorRef\n ) { }\n\n /**\n * Registers a callback function to be called when the password input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{ this.onChange = fn; }\n\n /**\n * Registers a callback function to be called when the password input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{ this.onTouched = fn; } \n\n /**\n * Toggles the type of the password input between text and password.\n */\n public changeType(): void{ \n this.type = this.type === 'text'? 'password' : 'text';\n }\n\n /**\n * Writes a new value to the password input.\n * @param {*} val - The new value to be set.\n */\n public writeValue(val: any): void{ \n this.value = val; \n this.ch.markForCheck();\n }\n\n /**\n * Validates the password input.\n * @param {AbstractControl} control - The abstract control representing the password input.\n * @returns {(ValidationErrors | null)} - Validation errors if any, otherwise null.\n */\n public validate(control: AbstractControl): ValidationErrors | null{\n this.formControl = control;\n return null;\n }\n\n /**\n * Event handler to handle touch status.\n * If the passsword input got focused, it will retrigger get error message to show the error message properly\n * \n * @returns {void}\n */\n public touch(): void{\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n }\n this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);\n }\n\n /**\n * Event handler for changes in the password input.\n * If not touched, marks the input as touched.\n * Updates the value, triggers change detection, and handles validation based on form control errors and label.\n * @param {any} param0 - Event detail containing the new password input value.\n */\n public change({ value }: any): void{\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n }\n\n this.value = value;\n this.onChange(this.value);\n\n if (this.formControl.parent?.errors) {\n if (this.mustSame && this.formControl.parent.hasError('isNotEqual')) {\n this.errorMsg = `${ this.label } is not the same`;\n return;\n }\n\n this.errorMsg = this.formControl.parent?.errors!['message'] || `${ this.label } has an invalid value`;\n return;\n }\n this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);\n }\n}\n","<label class=\"form-label d-flex align-items-center\">\n <ng-content select=\"[icon]\"/>\n <span>{{ label }}</span>\n</label>\n\n<input [type]=\"type\" autocomplete=\"{{ autocomplete }}\" [required]=\"required\" class=\"form-control pe-5\" [value]=\"value\" (change)=\"change($event.target)\" (focus)=\"touch()\" />\n<ion-icon name=\"{{ type === 'password'? 'eye' : 'eye-off' }}\" class=\"position-absolute fs-4 cursor-pointer\" (click)=\"changeType()\"></ion-icon>\n\n@if (errorMsg) {\n <label class=\"is-invalid\">{{ errorMsg }}</label>\n}\n","import { Attribute, ChangeDetectorRef, ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges, Output, EventEmitter } from '@angular/core';\nimport { AsyncPipe } from '@angular/common';\nimport { AbstractControl, ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { Observable, Subject, catchError, concat, debounceTime, distinctUntilChanged, map, of, switchMap, tap } from 'rxjs';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { getFormErrorMessage } from '../../../utils';\n\n@Component({\n standalone: true,\n selector: 'up-searchable-select',\n styleUrl: './form-searchable-select.component.scss',\n templateUrl: './form-searchable-select.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n class: 'd-block' \n },\n imports: [\n AsyncPipe,\n FormsModule,\n NgSelectModule\n ],\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: FormSearchableSelectComponent\n },\n {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: FormSearchableSelectComponent\n }\n ]\n})\nexport class FormSearchableSelectComponent implements ControlValueAccessor, Validator, OnChanges {\n\n /**\n * Input variable for the function to retrieve items based on a search keyword.\n * @type {(keyword: string) => Observable<any>}\n * @required\n */\n @Input({ required: true }) public queryFunc!: (keyword: string) => Observable<any>;\n\n /**\n * Input variable to determine whether the select input is clearable.\n * @type {boolean}\n * @default true\n */\n @Input() public clearable: boolean = true;\n\n /**\n * Input variable for the label associated with the select input.\n * @type {string}\n * @default ''\n */\n @Input() public label: string = '';\n\n /**\n * Input variable for the initial items to be displayed in the select input.\n * @type {any[]}\n * @default []\n */\n @Input() public initialItems: any[] = [];\n\n /**\n * Input variable to determine whether the select input is required.\n * @type {boolean}\n * @default false\n */\n @Input() public required: boolean = false;\n\n /**\n * Input variable to determine whether tags can be added to the select input.\n * @type {boolean}\n * @default false\n */\n @Input() public addTag: boolean = false;\n\n /**\n * Input variable to determine whether the select input is disabled.\n * @type {boolean}\n * @default false\n */\n @Input() public disabled: boolean = false;\n\n /**\n * Input variable to determine whether the select input allows multiple selections.\n * @type {boolean}\n * @default false\n */\n @Input() public multiple: boolean = false;\n\n /**\n * Input variable specifying the property to bind as the label for items in the select input.\n * @type {string}\n * @default 'label'\n */\n @Input() public bindLabel: string = 'label';\n\n /**\n * Input variable specifying the property to bind as the value for items in the select input.\n * @type {string}\n * @default 'value'\n */\n @Input() public bindValue: string = 'value';\n\n /**\n * Input variable specifying append dropdown to body or any other element using css selector. For correct positioning body should have position:relative.\n * @type {string}\n * @default ''\n */\n @Input() public appendTo: string = '';\n\n /**\n * Output variable to emit changes when the select input value changes.\n * @type {EventEmitter<any>}\n */\n @Output() public onChange: EventEmitter<any> = new EventEmitter<any>();\n\n /**\n * Subject for handling typeahead events to trigger item queries based on the search keyword.\n * @type {Subject<string>}\n */\n public readonly typeahead: Subject<string> = new Subject<string>();\n\n /**\n * Observable for handling item queries based on the search keyword.\n * @type {Observable<any[]>}\n */\n protected readonly query$: Observable<any[]> = this.typeahead.pipe(\n distinctUntilChanged(),\n debounceTime(300),\n tap(() => this.isLoading = true),\n switchMap((k: string) => this.queryFunc(k).pipe(\n map((result: any[]) => result.length === 0? this.initialItems : result),\n catchError(() => of(this.initialItems))\n )),\n tap(() => this.isLoading = false)\n );\n\n /**\n * Observable for displaying items in the select input.\n * @type {Observable<any[]>}\n */\n public items$: Observable<any[]> = this.query$;\n\n /**\n * Boolean flag indicating whether the select input is loading.\n * @type {boolean}\n * @default false\n */\n public isLoading: boolean = false;\n\n /**\n * Boolean flag indicating whether the select input has been touched.\n * @type {boolean}\n * @default false\n */\n public isTouched: boolean = false;\n\n /**\n * The value of the select input.\n * @type {any | null}\n * @default null\n */\n public value: any | null = null;\n\n /**\n * Error message associated with the select input.\n * @type {string}\n * @default undefined\n */\n public errorMsg!: string;\n\n /**\n * The form control associated with the select input.\n * @type {AbstractControl}\n */\n protected formControl!: AbstractControl;\n\n /**\n * Callback function to handle value changes in the select input.\n * @type {(_val: any) => void}\n */\n protected changed: (_val: any) => void = (_val: any) => {};\n\n /**\n * Callback function to handle touch events in the select input.\n * @type {() => void}\n */\n protected onTouched: () => void = () => {};\n\n constructor(\n @Attribute('placeholder') public placeholder: string,\n protected readonly ch: ChangeDetectorRef\n ) { }\n\n /**\n * Lifecycle hook called when changes occur to input properties.\n * Updates the items$ observable when the initialItems input changes.\n * @param {SimpleChanges} changes - Object containing the changed properties.\n */\n public ngOnChanges(changes: SimpleChanges): void{\n if (changes['initialItems']) this.items$ = concat(of(this.initialItems), this.query$);\n }\n\n /**\n * Registers a callback function to be called when the select input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{ this.changed = fn; }\n \n /**\n * Registers a callback function to be called when the select input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{ this.onTouched = fn; } \n \n /**\n * Writes a new value to the select input.\n * @param {*} val - The new value to be set.\n */\n public writeValue(val: any): void{ \n this.value = val; \n this.ch.markForCheck();\n }\n \n /**\n * Sets the disabled state of the select input.\n * @param {boolean} d - The new disabled state.\n */\n public setDisabledState?(d: boolean): void{ \n this.disabled = d; \n this.ch.markForCheck();\n }\n\n /**\n * Validates the select input.\n * @param {AbstractControl} control - The abstract control representing the select input.\n * @returns {(ValidationErrors | null)} - Validation errors if any, otherwise null.\n */\n public validate(control: AbstractControl): ValidationErrors | null{ \n this.formControl = control;\n return null;\n }\n\n /**\n * Event handler for changes in the select input.\n * Emits the onChange event, updates the initialItems, and handles validation based on form control errors and label.\n * @param {any} e - The event containing the new select input value.\n */\n public change(e?: any): void{\n this.onChange.emit(e);\n this.initialItems = e;\n\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n }\n \n if (!this.disabled) {\n if (!e) this.value = null;\n else {\n this.value = !this.multiple? e[this.bindValue] : e.map((o: any) => o[this.bindValue]);\n }\n\n this.changed(this.value);\n this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);\n }\n }\n}\n","<label class=\"form-label d-flex align-items-center\" [class.required]=\"required\">\n <ng-content select=\"[icon]\" />\n <span>{{ label }}</span>\n</label>\n\n<ng-select \n typeToSearchText=\"Please enter 3 or more characters\"\n bindLabel=\"{{ bindLabel }}\"\n bindValue=\"{{ bindValue }}\"\n placeholder=\"{{ placeholder }}\"\n [minTermLength]=\"3\"\n [virtualScroll]=\"true\"\n [editableSearchTerm]=\"true\"\n [ngModel]=\"value\" \n [addTag]=\"addTag\"\n [multiple]=\"multiple\"\n [readonly]=\"disabled\" \n [loading]=\"isLoading\"\n [appendTo]=\"appendTo\" \n [clearable]=\"clearable\"\n [typeahead]=\"typeahead\"\n [items]=\"items$ | async\"\n (change)=\"change($event);\"\n/>\n\n@if (errorMsg) {\n <label class=\"is-invalid\">{{ errorMsg }}</label>\n}\n","import { Attribute, ChangeDetectorRef, ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { getFormErrorMessage } from '../../../utils';\n\n@Component({\n standalone: true,\n selector: 'up-select',\n styleUrl: './form-select.component.scss',\n templateUrl: './form-select.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n class: 'd-block' \n },\n imports: [\n FormsModule,\n NgSelectModule\n ],\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: FormSelectComponent\n },\n {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: FormSelectComponent\n }\n ]\n})\nexport class FormSelectComponent implements ControlValueAccessor, Validator {\n\n /**\n * Input variable for the items to be displayed in the select input.\n * @type {any[]}\n * @required\n */\n @Input({ required: true }) public items!: any[];\n\n /**\n * Input variable to determine whether the select input is clearable.\n * @type {boolean}\n * @default true\n */\n @Input() public clearable: boolean = true;\n\n /**\n * Input variable for the label associated with the select input.\n * @type {string}\n * @default ''\n */\n @Input() public label: string = '';\n\n /**\n * Input variable to determine whether the select input allows multiple selections.\n * @type {boolean}\n * @default false\n */\n @Input() public multiple: boolean = false;\n\n /**\n * Input variable to determine whether the select input is required.\n * @type {boolean}\n * @default false\n */\n @Input() public required: boolean = false;\n\n /**\n * Input variable to determine whether tags can be added to the select input.\n * @type {boolean}\n * @default false\n */\n @Input() public addTag: boolean = false;\n \n /**\n * Input variable to determine whether the select input is disabled.\n * @type {boolean}\n * @default false\n */\n @Input() public disabled: boolean = false;\n\n /**\n * Input variable to determine whether the select input is searchable.\n * @type {boolean}\n * @default false\n */\n @Input() public searchable: boolean = false;\n\n /**\n * Input variable specifying the property to bind as the label for items in the select input.\n * @type {string}\n * @default 'label'\n */\n @Input() public bindLabel: string = 'label';\n\n /**\n * Input variable specifying the property to bind as the value for items in the select input.\n * @type {string}\n * @default 'value'\n */\n @Input() public bindValue: string = 'value';\n\n /**\n * Input variable specifying append dropdown to body or any other element using css selector. For correct positioning body should have position:relative.\n * @type {string}\n * @default ''\n */\n @Input() public appendTo: string = '';\n\n /**\n * Boolean flag indicating whether the select input has been touched.\n * @type {boolean}\n * @default false\n */\n public isTouched: boolean = false;\n\n /**\n * The value of the select input.\n * @type {any | null}\n * @default null\n */\n public value: any | null = null;\n\n /**\n * Error message associated with the select input.\n * @type {string}\n * @default undefined\n */\n public errorMsg!: string;\n\n /**\n * The form control associated with the select input.\n * @type {AbstractControl}\n */\n protected formControl!: AbstractControl;\n\n /**\n * Callback function to handle value changes in the select input.\n * @type {(_val: any) => void}\n */\n protected onChange: (_val: any) => void = (_val: any) => {};\n\n /**\n * Callback function to handle touch events in the select input.\n * @type {() => void}\n */\n protected onTouched: () => void = () => {};\n\n constructor(\n @Attribute('placeholder') public placeholder: string,\n protected readonly ch: ChangeDetectorRef\n ) { }\n\n /**\n * Registers a callback function to be called when the select input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{ this.onChange = fn; }\n\n /**\n * Registers a callback function to be called when the select input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{ this.onTouched = fn; }\n\n /**\n * Writes a new value to the select input.\n * @param {*} val - The new value to be set.\n */\n public writeValue(val: any): void{\n this.value = val;\n this.ch.markForCheck();\n }\n\n /**\n * Sets the disabled state of the select input.\n * @param {boolean} d - The new disabled state.\n */\n public setDisabledState?(d: boolean): void{ \n this.disabled = d;\n this.ch.markForCheck();\n }\n\n /**\n * Validates the select input.\n * @param {AbstractControl} control - The abstract control representing the select input.\n * @returns {(ValidationErrors | null)} - Validation errors if any, otherwise null.\n */\n public validate(control: AbstractControl): ValidationErrors | null{\n this.formControl = control;\n return null;\n }\n\n /**\n * Event handler for changes in the select input.\n * Emits the onChange event and handles validation based on form control errors and label.\n * @param {any} e - The event containing the new select input value.\n */\n public change(e?: any): void{\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled) {\n if (!e) this.value = null;\n else {\n this.value = !this.multiple? e[this.bindValue] : e.map((o: any) => o[this.bindValue]);\n }\n \n this.onChange(this.value);\n this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);\n }\n }\n}\n","<label class=\"form-label d-flex align-items-center\" [class.required]=\"required\">\n <ng-content select=\"[icon]\"/>\n <span>{{ label }}</span>\n</label>\n\n<ng-select\n bindLabel=\"{{ bindLabel }}\"\n bindValue=\"{{ bindValue }}\"\n placeholder=\"{{ placeholder }}\"\n [virtualScroll]=\"true\"\n [items]=\"items\"\n [ngModel]=\"value\"\n [addTag]=\"addTag\"\n [multiple]=\"multiple\"\n [readonly]=\"disabled\"\n [appendTo]=\"appendTo\"\n [clearable]=\"clearable\"\n [searchable]=\"searchable\"\n (change)=\"change($event);\"\n/>\n\n@if (errorMsg) {\n <label class=\"is-invalid\">{{ errorMsg }}</label>\n}\n","import { Attribute, ChangeDetectorRef, ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { getFormErrorMessage } from '../../../utils';\n\n@Component({\n standalone: true,\n selector: 'up-textarea',\n styleUrl: './form-textarea.component.scss',\n templateUrl: './form-textarea.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-block'\n },\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: FormTextareaComponent\n },\n {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: FormTextareaComponent\n }\n ]\n})\nexport class FormTextareaComponent implements ControlValueAccessor, Validator {\n\n /**\n * Input variable to determine the initial value of the textarea.\n * @type {(string | null)}\n * @default undefined\n */\n @Input() public value?: string | null;\n\n /**\n * Input variable to determine whether the textarea is required.\n * @type {boolean}\n * @default false\n */\n @Input() public required: boolean = false;\n\n /**\n * Input variable to determine whether the textarea is disabled.\n * @type {boolean}\n * @default false\n */\n @Input() public disabled: boolean = false;\n\n /**\n * Boolean flag indicating whether the textarea has been touched.\n * @type {boolean}\n * @default false\n */\n public isTouched: boolean = false;\n\n /**\n * Error message associated with the textarea.\n * @type {string}\n * @default undefined\n */\n public errorMsg!: string;\n\n /**\n * The form control associated with the textarea.\n * @type {AbstractControl}\n */\n protected formControl!: AbstractControl;\n\n /**\n * Callback function to handle value changes in the textarea.\n * @type {(_val: any) => void}\n */\n protected onChange: (_val: any) => void = (_val: any) => {};\n\n /**\n * Callback function to handle touch events in the textarea.\n * @type {() => void}\n */\n protected onTouched: () => void = () => {};\n\n constructor(\n @Attribute('label') public label: string,\n @Attribute('placeholder') public placeholder: string,\n @Attribute('autocomplete') public autocomplete: 'url' | 'on' | 'off' | 'street-address' | 'address-line1' | 'address-line2' | 'address-line3' | 'address-level4' | 'address-level3' | 'address-level2' | 'address-level1',\n protected readonly ch: ChangeDetectorRef\n ) { }\n\n /**\n * Registers a callback function to be called when the textarea value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{ this.onChange = fn; }\n\n /**\n * Registers a callback function to be called when the textarea is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{ this.onTouched = fn; }\n\n /**\n * Writes a new value to the textarea.\n * @param {*} val - The new value to be set.\n */\n public writeValue(val: any): void{ \n this.value = val; \n this.ch.markForCheck();\n }\n\n /**\n * Sets the disabled state of the textarea.\n * @param {boolean} d - The new disabled state.\n */\n public setDisabledState?(d: boolean): void{ \n this.disabled = d; \n this.ch.markForCheck();\n }\n\n /**\n * Validates the textarea.\n * @param {AbstractControl} control - The abstract control representing the textarea.\n * @returns {(ValidationErrors | null)} - Validation errors if any, otherwise null.\n */\n public validate(control: AbstractControl): ValidationErrors | null{\n this.formControl = control;\n return null;\n }\n\n /**\n * Event handler for changes in the textarea.\n * Emits the onChange event and handles validation based on form control errors and label.\n * @param {any} value - The new textarea value.\n */\n public change({ value }: any): void{\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled) {\n this.value = value;\n this.onChange(this.value);\n this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);\n }\n }\n}\n","<label class=\"form-label d-flex align-items-center\">\n <ng-content select=\"[icon]\"/>\n <span>{{ label }}</span>\n</label>\n<textarea autocomplete=\"{{ autocomplete }}\" placeholder=\"{{ placeholder }}\" rows=\"3\" class=\"form-control\" [required]=\"required\" [disabled]=\"disabled\" [value]=\"value\" (change)=\"change($event.target)\"></textarea>\n\n@if (errorMsg) {\n <label class=\"is-invalid\">{{ errorMsg }}</label>\n}\n","import { Directive, Output, EventEmitter, HostListener } from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: '[upDragNDrop]'\n})\nexport class DragNDropDirective {\n\n @Output() public fileDropped = new EventEmitter<any>();\n\n @HostListener('dragover', [ '$event' ]) \n public onDragOver(evt: any): void{\n evt.preventDefault();\n evt.stopPropagation();\n\n const target = evt.target as HTMLImageElement;\n target.classList.add('dragging');\n }\n\n @HostListener('dragleave', [ '$event' ]) \n public onDragLeave(evt: any): void{\n evt.preventDefault();\n evt.stopPropagation();\n\n const target = evt.target as HTMLImageElement;\n target.classList.remove('dragging');\n }\n\n @HostListener('drop', [ '$event' ]) \n public onDrop(evt: any): void{\n evt.preventDefault();\n evt.stopPropagation();\n\n const target = evt.target as HTMLImageElement;\n target.classList.remove('dragging');\n\n const files = evt.dataTransfer.files;\n if (files.length > 0) this.fileDropped.emit(files);\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';\nimport { NgStyle } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IonicModule } from '@ionic/angular';\nimport { DragNDropDirective } from './directives/drag-n-drop.directive';\n\n@Component({\n standalone: true,\n selector: 'up-image-picker',\n templateUrl: './form-image-picker.component.html',\n styleUrls: ['./form-image-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-block'\n },\n imports: [\n IonicModule,\n NgStyle,\n DragNDropDirective\n ],\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: FormImagePickerComponent\n },\n ]\n})\nexport class FormImagePickerComponent implements ControlValueAccessor {\n\n /**\n * A public input variable to adjust image container aspect ratio by css, to keep the image width and height proportional.\n * The common aspect ratio namely 1/1, 4/3, 16/9 etc.\n * @type {string}\n * @default `16/9`\n */\n @Input() public ratio: string = '16/9';\n /**\n * A public input variable to set the form label.\n * @type {string}\n * @default undefined\n */\n @Input() public label?: string;\n /**\n * A public input variable to show or hide astr (*) sign.\n * It will show if the value is true mean the field is can not be empty and hide if the value is false.\n * @type {boolean}\n * @default false\n */\n @Input() public required: boolean = false;\n /**\n * A public output variable to emit the File to the parent component.\n * @type {EventEmitter<File>}\n */\n @Output() public onChange: EventEmitter<File> = new EventEmitter<File>();\n /**\n * A public variable contain temporary image url shown on the preview.\n * @type {string}\n * @default undefined\n */\n public imgSrc!: string;\n /**\n * Both two methods are mandatory as implementation of ControlValueAccessor.\n */\n protected onChanged: (_val: any) => void = (_val: any) => {};\n protected onTouched: () => void = () => {};\n\n constructor(\n protected readonly ch: ChangeDetectorRef\n ) { }\n\n /**\n * Both two methods are mandatory as implementation of ControlValueAccessor.\n */\n public registerOnChange(fn: any): void{ this.onChanged = fn; }\n \n public registerOnTouched(fn: any): void{ this.onTouched = fn; }\n\n /**\n * A procedure called to clear the image preview.\n */\n public clear(ev?: Event): void{\n this.writeValue('');\n ev?.stopPropagation();\n }\n\n /**\n * A procedure called when the image was set previously in the parent formControlName component and the user want to change with another one.\n * It is mandatory as an implementation of ControlValueAccessor.\n * @param {any} val - contain image url.\n */\n public writeValue(val: any): void{\n this.imgSrc = val;\n this.ch.markForCheck();\n }\n\n /**\n * A procedure called when user pick or drag and drop image.\n * @param {any} files - files?.target?.files to check if image come from drag and drop and files[0] from normal pick image.\n */\n public selectPhoto(files: any): void{\n if (files?.target?.files) files = files.target.files;\n\n if (files && files[0]) {\n this.imgSrc = URL.createObjectURL((files[0]));\n this.onChange.emit(files[0]);\n }\n }\n}\n","<div class=\"flex-shrink-0 mb-4\">\n <label class=\"mb-2 d-flex align-items-center form-label\">\n @if (required) {\n <span class=\"text-danger me-2\">*</span>\n }\n \n <ng-content select=\"[icon]\"/>\n <span>{{ label }}</span>\n </label>\n \n <div class=\"img-container position-relative border rounded\" [ngStyle]=\"{ 'aspect-ratio': ratio }\" upDragNDrop (fileDropped)=\"selectPhoto($event)\"> \n @if (imgSrc) {\n <img alt=\"{{ label }}\" class=\"rounded\" width=\"100%\" height=\"100%\" src=\"{{ imgSrc }}\" />\n }\n \n <div class=\"upload-icon rounded position-absolute text-white align-items-center justify-content-center px-3 py-2 w-100\" [ngStyle]=\"{ 'aspect-ratio': ratio }\" (click)=\"file.click();\">\n @if (!imgSrc) {\n <ion-icon class=\"upload-icon\" name=\"cloud-upload\" title=\"Drop file or click to browse\" />\n } \n @else {\n <div class=\"position-absolute display-flex justify-content-center rounded p-1 d-btn\">\n <ion-icon name=\"trash\" class=\"text-red-600\" title=\"Clear Image\" (click)=\"clear($event)\" />\n </div>\n }\n </div>\n \n <input type=\"file\" hidden accept=\"image/png, image/jpeg, image/jpg\" multiple=\"false\" (change)=\"selectPhoto($event)\" #file />\n </div>\n</div>\n","export type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\nexport type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };\nexport type MakeEmpty<T extends { [key: string]: unknown }, K extends keyof T> = { [_ in K]?: never };\nexport type Incremental<T> = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string; }\n String: { input: string; output: string; }\n Boolean: { input: boolean; output: boolean; }\n Int: { input: number; output: number; }\n Float: { input: number; output: number; }\n /** An RFC-3339 compliant Full Date Scalar */\n Date: { input: any; output: any; }\n /** A slightly refined version of RFC-3339 compliant DateTime Scalar */\n DateTime: { input: any; output: any; }\n Double: { input: any; output: any; }\n /** A JSON scalar */\n JSON: { input: any; output: any; }\n /** A 64-bit signed integer */\n Long: { input: any; output: any; }\n /** An object scalar */\n Object: { input: any; output: any; }\n /** A custom scalar that represents files */\n Upload: { input: any; output: any; }\n};\n\nexport type ActivityHistory = {\n __typename?: 'ActivityHistory';\n board?: Maybe<Board>;\n boardGuid?: Maybe<Scalars['String']['output']>;\n card?: Maybe<Card>;\n cardAttachmentGuid?: Maybe<Scalars['String']['output']>;\n cardExt?: Maybe<CardExt>;\n cardGuid?: Maybe<Scalars['String']['output']>;\n changedValue?: Maybe<Scalars['JSON']['output']>;\n comment?: Maybe<Comment>;\n commentAttachmentGuid?: Maybe<Scalars['String']['output']>;\n commentExt?: Maybe<CommentExt>;\n commentGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n request?: Maybe<Request>;\n requestAttachmentGuid?: Maybe<Scalars['String']['output']>;\n requestExt?: Maybe<RequestExt>;\n requestGuid?: Maybe<Scalars['String']['output']>;\n showOnRequest?: Maybe<Scalars['Boolean']['output']>;\n type?: Maybe<ActivityHistoryType>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ActivityHistoryCriteria = {\n boardGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n cardAttachmentGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n cardGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n commentAttachmentGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n commentGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n requestAttachmentGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n requestGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n showOnRequest?: InputMaybe<Scalars['Boolean']['input']>;\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n type?: InputMaybe<ActivityHistoryType>;\n};\n\nexport type ActivityHistoryRs = {\n __typename?: 'ActivityHistoryRs';\n data?: Maybe<Array<Maybe<ActivityHistory>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum ActivityHistoryType {\n AttachmentAdd = 'ATTACHMENT_ADD',\n AttachmentRemove = 'ATTACHMENT_REMOVE',\n BoardIn = 'BOARD_IN',\n BoardOut = 'BOARD_OUT',\n CardMove = 'CARD_MOVE',\n CommentAdd = 'COMMENT_ADD',\n CommentEdit = 'COMMENT_EDIT',\n CommentRemove = 'COMMENT_REMOVE'\n}\n\nexport type AddDenomToDenomGroupRq = {\n denomGroupGuid: Scalars['String']['input'];\n denomGuids: Array<Scalars['String']['input']>;\n};\n\nexport enum AggregationTypeEnum {\n CountValue = 'COUNT_VALUE',\n SumValue = 'SUM_VALUE'\n}\n\nexport type Agreement = {\n __typename?: 'Agreement';\n code?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type AgreementQueryCriteria = {\n code?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n countryCode?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport enum AlertTypeEnum {\n Fcm = 'FCM',\n PasswordReset = 'PASSWORD_RESET',\n RequestNeeded = 'REQUEST_NEEDED'\n}\n\nexport type ApiCredential = {\n __typename?: 'ApiCredential';\n accessKey?: Maybe<Scalars['String']['output']>;\n activeAt?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['String']['output']>;\n deletedAt?: Maybe<Scalars['String']['output']>;\n expiredAt?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n merchantContractGuid?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n permission?: Maybe<Array<Maybe<AppPermDfn>>>;\n status?: Maybe<Scalars['String']['output']>;\n transactionalUser?: Maybe<AppLoginSubject>;\n version?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ApiCredentialFilterRq = {\n accessKey?: InputMaybe<Scalars['String']['input']>;\n activeAt?: InputMaybe<Scalars['String']['input']>;\n createdAt?: InputMaybe<Scalars['String']['input']>;\n expiredAt?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantContractGuid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n permissionCode?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: Status;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n version?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type ApiCredentialFilterRs = {\n __typename?: 'ApiCredentialFilterRs';\n data?: Maybe<Array<Maybe<ApiCredential>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type ApiCredentialPrivate = {\n __typename?: 'ApiCredentialPrivate';\n guid?: Maybe<Scalars['String']['output']>;\n secret?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ApiCredentialRole = {\n __typename?: 'ApiCredentialRole';\n apiCredentialGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['String']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n roleGuid?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ApiCredentialRoleFilterRq = {\n apiCredentialGuid?: InputMaybe<Scalars['String']['input']>;\n createdAt?: InputMaybe<Scalars['String']['input']>;\n createdBy?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n roleGuid?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n updatedAt?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type ApiCredentialSpecialFilter = {\n accessKey?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\nexport type AppLoginPrincipal = {\n __typename?: 'AppLoginPrincipal';\n /** ... date time when user created */\n createdDate?: Maybe<Scalars['Date']['output']>;\n /** ... user creadential */\n credential?: Maybe<Scalars['String']['output']>;\n /** ... user principal identifier */\n guid?: Maybe<Scalars['String']['output']>;\n /** ... user principal id to store email or phone number */\n principalId?: Maybe<Scalars['String']['output']>;\n /** ... user principal type [EMAIL_USERNAME, MOBILE_USERNAME] */\n principalType?: Maybe<Scalars['String']['output']>;\n /** ... data version */\n revision?: Maybe<Scalars['String']['output']>;\n /** ... user valid date end */\n sourcePlatform?: Maybe<SourcePlatform>;\n /** ... user status */\n status?: Maybe<PrincipalStatus>;\n /** ... date time when user last updated */\n updatedDate?: Maybe<Scalars['Date']['output']>;\n /** ... user valid date end */\n validDateEnd?: Maybe<Scalars['Date']['output']>;\n /** ... user valid date */\n validDateStart?: Maybe<Scalars['Date']['output']>;\n};\n\nexport type AppLoginRole = {\n __typename?: 'AppLoginRole';\n code?: Maybe<Scalars['String']['output']>;\n createdBy?: Maybe<AppLoginSubject>;\n createdDate?: Maybe<Scalars['String']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n isInternal?: Maybe<Scalars['Boolean']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Status>;\n updatedBy?: Maybe<AppLoginSubject>;\n updatedDate?: Maybe<Scalars['String']['output']>;\n};\n\nexport type AppLoginSubject = {\n __typename?: 'AppLoginSubject';\n /** ... user extension */\n appLoginExt?: Maybe<Array<Maybe<AppLoginSubjectExt>>>;\n /** ... user principal */\n appLoginPrincipal?: Maybe<Array<Maybe<AppLoginPrincipal>>>;\n /** ... date with format YYYY-MM-DD */\n birthday?: Maybe<Scalars['Date']['output']>;\n /** ... user category */\n category?: Maybe<Scalars['String']['output']>;\n /** ... user company if any */\n company?: Maybe<Company>;\n /** ... date time when user created */\n createdDate?: Maybe<Scalars['String']['output']>;\n /** ... user gender */\n gender?: Maybe<Gender>;\n /** ... user unique identifier */\n guid?: Maybe<Scalars['String']['output']>;\n merchants?: Maybe<Array<Maybe<Merchant>>>;\n /** ... user full name */\n name?: Maybe<Scalars['String']['output']>;\n /** ... data version */\n revision?: Maybe<Scalars['String']['output']>;\n /** ... user roles */\n roles?: Maybe<Array<Maybe<AppLoginRole>>>;\n /** ... soure platfrom where user registered */\n sourcePlatform?: Maybe<SourcePlatform>;\n /** ... user status */\n status?: Maybe<Status>;\n /** ... date time when user last updated */\n updatedDate?: Maybe<Scalars['String']['output']>;\n};\n\n/** AppLoginSubject Connection */\nexport type AppLoginSubjectConnection = {\n __typename?: 'AppLoginSubjectConnection';\n /** Field edges */\n edges?: Maybe<Array<Maybe<AppLoginSubjectEdge>>>;\n /** Field pageInfo */\n pageInfo: PageInfo;\n};\n\n/** AppLoginSubject Edge */\nexport type AppLoginSubjectEdge = {\n __typename?: 'AppLoginSubjectEdge';\n /** Field cursor */\n cursor?: Maybe<Scalars['String']['output']>;\n /** Field node */\n node?: Maybe<AppLoginSubject>;\n};\n\nexport type AppLoginSubjectExt = {\n __typename?: 'AppLoginSubjectExt';\n /** ... date time when extension created */\n createdDate?: Maybe<Scalars['String']['output']>;\n /** ... user extension code */\n extCode?: Maybe<Scalars['String']['output']>;\n /** ... user extension option */\n extOption?: Maybe<Scalars['String']['output']>;\n /** ... user extension type */\n extType?: Maybe<Scalars['String']['output']>;\n file?: Maybe<FetchFileResponse>;\n /** ... unique user extension identifier */\n guid?: Maybe<Scalars['String']['output']>;\n /** ... user guid to link column */\n loginSubjectGuid?: Maybe<Scalars['String']['output']>;\n /** ... user extension parameter code */\n paramCode?: Maybe<Scalars['String']['output']>;\n /** ... user extension parameter name */\n paramName?: Maybe<Scalars['String']['output']>;\n /** ... user extension parameter type */\n paramType?: Maybe<Scalars['String']['output']>;\n /** ... data version */\n revision?: Maybe<Scalars['String']['output']>;\n /** ... user extension status */\n status?: Maybe<Status>;\n /** ... date time when extension last updated */\n updatedDate?: Maybe<Scalars['String']['output']>;\n /** ... can store datetime value */\n valueDatetime?: Maybe<Scalars['String']['output']>;\n /** ... can store file value */\n valueFile?: Maybe<Scalars['String']['output']>;\n /** ... can store json value */\n valueJson?: Maybe<Scalars['String']['output']>;\n /** ... can store numeric value */\n valueNumeric?: Maybe<Scalars['Int']['output']>;\n /** ... can store string value */\n valueString?: Maybe<Scalars['String']['output']>;\n};\n\nexport type AppLoginSubjectExtRq = {\n /** ... user extension code */\n extCode?: InputMaybe<Scalars['String']['input']>;\n /** ... user extension option */\n extOption?: InputMaybe<Scalars['String']['input']>;\n /** ... user extension type */\n extType?: InputMaybe<Scalars['String']['input']>;\n /** ... user extension parameter code */\n paramCode?: InputMaybe<Scalars['String']['input']>;\n /** ... user extension parameter name */\n paramName?: InputMaybe<Scalars['String']['input']>;\n /** ... user extension parameter type */\n paramType?: InputMaybe<Scalars['String']['input']>;\n /** ... can store datetime value */\n valueDatetime?: InputMaybe<Scalars['String']['input']>;\n /** ... can store file value */\n valueFile?: InputMaybe<Scalars['String']['input']>;\n /** ... can store json value */\n valueJson?: InputMaybe<Scalars['String']['input']>;\n /** ... can store numeric value */\n valueNumeric?: InputMaybe<Scalars['Int']['input']>;\n /** ... can store string value */\n valueString?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum AppLoginSubjectSortByEnum {\n CreatedDate = 'createdDate',\n UpdatedDate = 'updatedDate'\n}\n\nexport type AppPermDfn = {\n __typename?: 'AppPermDfn';\n createdBy?: Maybe<AppLoginSubject>;\n createdDate?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n parentId?: Maybe<Scalars['String']['output']>;\n permCode?: Maybe<Scalars['String']['output']>;\n permDescription?: Maybe<Scalars['String']['output']>;\n permModule?: Maybe<Scalars['String']['output']>;\n permName?: Maybe<Scalars['String']['output']>;\n permScope?: Maybe<Scalars['String']['output']>;\n permType?: Maybe<Scalars['String']['output']>;\n relatedMf?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Status>;\n updatedBy?: Maybe<AppLoginSubject>;\n updatedDate?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ApplyVacancyRq = {\n email?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n reason?: InputMaybe<Scalars['String']['input']>;\n vacancyGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type Approval = {\n __typename?: 'Approval';\n approvalGroup?: Maybe<ApprovalGroup>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n data?: Maybe<Scalars['JSON']['output']>;\n entity?: Maybe<Scalars['String']['output']>;\n entityGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n permission?: Maybe<Scalars['String']['output']>;\n reason?: Maybe<Scalars['String']['output']>;\n remark?: Maybe<Scalars['String']['output']>;\n sourcePlatform?: Maybe<Scalars['String']['output']>;\n status?: Maybe<ApprovalStatusEnum>;\n type?: Maybe<ApprovalTypeEnum>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n urlToCall?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ApprovalCriteria = {\n approvalGroupGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n approvalGroupName?: InputMaybe<Scalars['String']['input']>;\n entity?: InputMaybe<Array<Scalars['String']['input']>>;\n entityGuid?: InputMaybe<Array<Scalars['String']['input']>>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n permission?: InputMaybe<Array<Scalars['String']['input']>>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n sourcePlatform?: InputMaybe<Array<Scalars['String']['input']>>;\n status?: InputMaybe<Array<ApprovalStatusEnum>>;\n type?: InputMaybe<Array<ApprovalTypeEnum>>;\n};\n\nexport type ApprovalGroup = {\n __typename?: 'ApprovalGroup';\n UpdatedAt?: Maybe<Scalars['DateTime']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum ApprovalStatusEnum {\n Approved = 'APPROVED',\n Declined = 'DECLINED',\n Pending = 'PENDING'\n}\n\nexport enum ApprovalTypeEnum {\n Creation = 'CREATION',\n Deletion = 'DELETION',\n Linkage = 'LINKAGE',\n Unlink = 'UNLINK',\n Update = 'UPDATE'\n}\n\nexport type ApprovalUserSign = {\n __typename?: 'ApprovalUserSign';\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n signFile?: Maybe<Scalars['String']['output']>;\n userGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type AssignTierToMember = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n memberGuid?: InputMaybe<Scalars['String']['input']>;\n tierGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type AttachPermRq = {\n /** permission identifier */\n permsGuid: Array<InputMaybe<Scalars['String']['input']>>;\n /** role identifier */\n roleGuid: Scalars['String']['input'];\n};\n\nexport type AuditTag = {\n __typename?: 'AuditTag';\n createdAt?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n relatedEntity?: Maybe<Scalars['String']['output']>;\n tagKey: Scalars['String']['output'];\n tagValue?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum AuditTagEnum {\n AuthMsCredentialCreate = 'AUTH_MS_CREDENTIAL_CREATE',\n AuthMsCredentialDelete = 'AUTH_MS_CREDENTIAL_DELETE',\n AuthMsCredentialToRoleLink = 'AUTH_MS_CREDENTIAL_TO_ROLE_LINK',\n AuthMsCredentialToRoleLinkCredentialNotFound = 'AUTH_MS_CREDENTIAL_TO_ROLE_LINK_CREDENTIAL_NOT_FOUND',\n AuthMsCredentialToRoleLinkRoleNotFound = 'AUTH_MS_CREDENTIAL_TO_ROLE_LINK_ROLE_NOT_FOUND',\n AuthMsCredentialToRoleUnlink = 'AUTH_MS_CREDENTIAL_TO_ROLE_UNLINK',\n AuthMsCredentialToRoleUnlinkCredentialNotFound = 'AUTH_MS_CREDENTIAL_TO_ROLE_UNLINK_CREDENTIAL_NOT_FOUND',\n AuthMsCredentialToRoleUnlinkCredentialRoleLinkNotFound = 'AUTH_MS_CREDENTIAL_TO_ROLE_UNLINK_CREDENTIAL_ROLE_LINK_NOT_FOUND',\n AuthMsCredentialToRoleUnlinkRoleNotFound = 'AUTH_MS_CREDENTIAL_TO_ROLE_UNLINK_ROLE_NOT_FOUND',\n AuthMsCredentialUpdate = 'AUTH_MS_CREDENTIAL_UPDATE',\n AuthMsPermissionCreate = 'AUTH_MS_PERMISSION_CREATE',\n AuthMsPermissionCreatePermissionAlreadyExists = 'AUTH_MS_PERMISSION_CREATE_PERMISSION_ALREADY_EXISTS',\n AuthMsPermissionDelete = 'AUTH_MS_PERMISSION_DELETE',\n AuthMsPermissionDeletePermissionNotFound = 'AUTH_MS_PERMISSION_DELETE_PERMISSION_NOT_FOUND',\n AuthMsPermissionDeleteRoleAttached = 'AUTH_MS_PERMISSION_DELETE_ROLE_ATTACHED',\n AuthMsPermissionImport = 'AUTH_MS_PERMISSION_IMPORT',\n AuthMsPermissionToRoleLink = 'AUTH_MS_PERMISSION_TO_ROLE_LINK',\n AuthMsPermissionToRoleLinkPermissionAlreadyExists = 'AUTH_MS_PERMISSION_TO_ROLE_LINK_PERMISSION_ALREADY_EXISTS',\n AuthMsPermissionToRoleLinkPermissionEmpty = 'AUTH_MS_PERMISSION_TO_ROLE_LINK_PERMISSION_EMPTY',\n AuthMsPermissionToRoleLinkRoleNotFound = 'AUTH_MS_PERMISSION_TO_ROLE_LINK_ROLE_NOT_FOUND',\n AuthMsPermissionToRoleUnlink = 'AUTH_MS_PERMISSION_TO_ROLE_UNLINK',\n AuthMsPermissionToRoleUnlinkPermissionEmpty = 'AUTH_MS_PERMISSION_TO_ROLE_UNLINK_PERMISSION_EMPTY',\n AuthMsPermissionToRoleUnlinkPermissionNotFound = 'AUTH_MS_PERMISSION_TO_ROLE_UNLINK_PERMISSION_NOT_FOUND',\n AuthMsPermissionToRoleUnlinkRoleNotFound = 'AUTH_MS_PERMISSION_TO_ROLE_UNLINK_ROLE_NOT_FOUND',\n AuthMsPermissionUpdate = 'AUTH_MS_PERMISSION_UPDATE',\n AuthMsPermissionUpdatePermissionNotFound = 'AUTH_MS_PERMISSION_UPDATE_PERMISSION_NOT_FOUND',\n AuthMsRoleCreate = 'AUTH_MS_ROLE_CREATE',\n AuthMsRoleCreateRoleAlreadyExists = 'AUTH_MS_ROLE_CREATE_ROLE_ALREADY_EXISTS',\n AuthMsRoleDelete = 'AUTH_MS_ROLE_DELETE',\n AuthMsRoleDeleteRoleAttached = 'AUTH_MS_ROLE_DELETE_ROLE_ATTACHED',\n AuthMsRoleDeleteRoleNotFound = 'AUTH_MS_ROLE_DELETE_ROLE_NOT_FOUND',\n AuthMsRoleUpdate = 'AUTH_MS_ROLE_UPDATE',\n AuthMsRoleUpdateRoleNotFound = 'AUTH_MS_ROLE_UPDATE_ROLE_NOT_FOUND',\n AuthMsUserLogin = 'AUTH_MS_USER_LOGIN',\n AuthMsUserLoginPasswordNotMatch = 'AUTH_MS_USER_LOGIN_PASSWORD_NOT_MATCH',\n AuthMsUserLoginUserNotConfirmed = 'AUTH_MS_USER_LOGIN_USER_NOT_CONFIRMED',\n AuthMsUserLoginUserNotFound = 'AUTH_MS_USER_LOGIN_USER_NOT_FOUND',\n AuthMsUserLoginUserNotRegistered = 'AUTH_MS_USER_LOGIN_USER_NOT_REGISTERED',\n AuthMsUserLogout = 'AUTH_MS_USER_LOGOUT',\n AuthMsUserToRoleLink = 'AUTH_MS_USER_TO_ROLE_LINK',\n AuthMsUserToRoleLinkRoleNotFound = 'AUTH_MS_USER_TO_ROLE_LINK_ROLE_NOT_FOUND',\n AuthMsUserToRoleLinkUserNotFound = 'AUTH_MS_USER_TO_ROLE_LINK_USER_NOT_FOUND',\n AuthMsUserToRoleUnlink = 'AUTH_MS_USER_TO_ROLE_UNLINK',\n AuthMsUserToRoleUnlinkRolesToUsersNotFound = 'AUTH_MS_USER_TO_ROLE_UNLINK_ROLES_TO_USERS_NOT_FOUND',\n AuthMsUserToRoleUnlinkRoleNotFound = 'AUTH_MS_USER_TO_ROLE_UNLINK_ROLE_NOT_FOUND',\n AuthMsUserToRoleUnlinkUserNotFound = 'AUTH_MS_USER_TO_ROLE_UNLINK_USER_NOT_FOUND',\n ProductMsProductCreate = 'PRODUCT_MS_PRODUCT_CREATE',\n ProductMsProductUpdate = 'PRODUCT_MS_PRODUCT_UPDATE',\n ProductMsProductUpdateProductNotFound = 'PRODUCT_MS_PRODUCT_UPDATE_PRODUCT_NOT_FOUND'\n}\n\nexport type AuditTagRq = {\n relatedEntity?: InputMaybe<Scalars['String']['input']>;\n tagKey: Scalars['String']['input'];\n tagValue?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type AuditTrail = {\n __typename?: 'AuditTrail';\n action?: Maybe<Scalars['String']['output']>;\n class?: Maybe<Scalars['String']['output']>;\n codeLine?: Maybe<Scalars['String']['output']>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n data?: Maybe<Scalars['JSON']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n function?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n isActionTaken?: Maybe<Scalars['Boolean']['output']>;\n isSystemGenerated?: Maybe<Scalars['Boolean']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n msSource?: Maybe<Scalars['String']['output']>;\n sourceIp?: Maybe<Scalars['String']['output']>;\n tags?: Maybe<Array<Maybe<AuditTag>>>;\n user?: Maybe<AppLoginSubject>;\n};\n\nexport type AuditTrailCriteria = {\n /** ... audit action */\n action?: InputMaybe<Scalars['String']['input']>;\n /** ... class in microservice that send audit */\n class?: InputMaybe<Scalars['String']['input']>;\n /** ... code line in microservice that send audit */\n codeLine?: InputMaybe<Scalars['String']['input']>;\n /** ... country code */\n countryCode?: InputMaybe<Scalars['String']['input']>;\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n /** ... audit description */\n description?: InputMaybe<Scalars['String']['input']>;\n /** ... function in microservice that send audit */\n function?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n /** ... merchant guid */\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n /** ... microservice where audit from */\n msSource?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n /** ... related enitity changes */\n relatedEntities?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n /** ... user ip that make changes */\n sourceIp?: InputMaybe<Scalars['String']['input']>;\n /** ... tags key */\n tagKeys?: InputMaybe<Array<InputMaybe<AuditTagEnum>>>;\n /** ... tags value */\n tagValues?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n /** ... user guid that make changes */\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type AuthSettings = {\n __typename?: 'AuthSettings';\n /** ... Setting code */\n code?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['String']['output']>;\n /** ... user that create this setting */\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n /** ... Setting identifier */\n guid?: Maybe<Scalars['String']['output']>;\n /** ... Setting name */\n name?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['String']['output']>;\n /** ... last user that update this setting */\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n /** ... Setting value */\n value?: Maybe<Scalars['String']['output']>;\n};\n\nexport type AuthSettingsFilter = {\n code?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n value?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type AuthSettingsWithFilterRs = {\n __typename?: 'AuthSettingsWithFilterRs';\n data?: Maybe<Array<Maybe<AuthSettings>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type AuthorHistoricalSlug = {\n __typename?: 'AuthorHistoricalSlug';\n cmsUserGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n slug?: Maybe<Scalars['String']['output']>;\n};\n\nexport type AuthorHistoricalSlugCriteria = {\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n slug?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type AuthorHistoricalSlugResult = {\n __typename?: 'AuthorHistoricalSlugResult';\n data: Array<Maybe<AuthorHistoricalSlug>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type BirthdayTierBonusRule = {\n __typename?: 'BirthdayTierBonusRule';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n tierGuid?: Maybe<Scalars['String']['output']>;\n type?: Maybe<BirthdayTierBonusRuleTypeEnum>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n value?: Maybe<Scalars['Float']['output']>;\n};\n\nexport type BirthdayTierBonusRuleCriteria = {\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: Scalars['String']['input'];\n tierGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n type?: InputMaybe<BirthdayTierBonusRuleTypeEnum>;\n value?: InputMaybe<Scalars['Float']['input']>;\n};\n\nexport enum BirthdayTierBonusRuleTypeEnum {\n Fixed = 'FIXED'\n}\n\nexport type BirthdayTierBonusRulesRs = {\n __typename?: 'BirthdayTierBonusRulesRs';\n data?: Maybe<Array<Maybe<BirthdayTierBonusRule>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type Board = {\n __typename?: 'Board';\n boardAccess?: Maybe<Array<Maybe<BoardAccess>>>;\n code?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n model?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type BoardAccess = {\n __typename?: 'BoardAccess';\n board?: Maybe<Board>;\n boardGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n role?: Maybe<AppLoginRole>;\n roleGuid?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type BoardAccessCriteria = {\n boardGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n roleGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type BoardAccessRs = {\n __typename?: 'BoardAccessRs';\n data?: Maybe<Array<Maybe<BoardAccess>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type BoardCriteria = {\n code?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n model?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type BoardRs = {\n __typename?: 'BoardRs';\n data?: Maybe<Array<Maybe<Board>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type BookmarksQueryCriteria = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n postGuid?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum CacheControlScope {\n Private = 'PRIVATE',\n Public = 'PUBLIC'\n}\n\nexport type Card = {\n __typename?: 'Card';\n assignedLead?: Maybe<Scalars['String']['output']>;\n assignedMember?: Maybe<Scalars['String']['output']>;\n assignedMentor?: Maybe<Scalars['String']['output']>;\n assignedPmo?: Maybe<Scalars['String']['output']>;\n cardSprint?: Maybe<Array<Maybe<CardSprint>>>;\n code?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n deletedBy?: Maybe<Scalars['String']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n dueDateAt?: Maybe<Scalars['DateTime']['output']>;\n exts?: Maybe<Array<Maybe<CardExt>>>;\n guid?: Maybe<Scalars['String']['output']>;\n milliEffortPoint?: Maybe<Scalars['Int']['output']>;\n relatedConversationChild?: Maybe<Array<Maybe<GithubEventCardLink>>>;\n relatedConversationGroup?: Maybe<Array<Maybe<GithubEventCardLink>>>;\n relatedIssues?: Maybe<Array<Maybe<GithubEventCardLink>>>;\n relatedPRReview?: Maybe<Array<Maybe<GithubEventCardLink>>>;\n relatedPullRequest?: Maybe<Array<Maybe<GithubEventCardLink>>>;\n requestDetails?: Maybe<Request>;\n requestGuid?: Maybe<Scalars['String']['output']>;\n requestedAt?: Maybe<Scalars['DateTime']['output']>;\n sectionDetails?: Maybe<Section>;\n sectionGuid?: Maybe<Scalars['String']['output']>;\n sectionOrder?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n title?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CardCriteria = {\n assignedLead?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n assignedMember?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n assignedMentor?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n assignedPmo?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n code?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n milliEffortPoint?: InputMaybe<Scalars['Int']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n requestGuid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n sectionGuid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n sectionOrder?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type CardExt = {\n __typename?: 'CardExt';\n cardGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n extType?: Maybe<Scalars['String']['output']>;\n extValue?: Maybe<Scalars['String']['output']>;\n file?: Maybe<FetchFileResponse>;\n guid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CardLabel = {\n __typename?: 'CardLabel';\n card?: Maybe<Card>;\n cardGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n deletedBy?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n label?: Maybe<Label>;\n labelGuid?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CardLabelCriteria = {\n cardGuid?: InputMaybe<Scalars['String']['input']>;\n guids: Array<InputMaybe<Scalars['String']['input']>>;\n labelGuid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type CardLabelRs = {\n __typename?: 'CardLabelRs';\n data?: Maybe<Array<Maybe<CardLabel>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CardRs = {\n __typename?: 'CardRs';\n data?: Maybe<Array<Maybe<Card>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CardSprint = {\n __typename?: 'CardSprint';\n card?: Maybe<Card>;\n cardGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n deletedBy?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n sprint?: Maybe<Sprint>;\n sprintGuid?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CardSprintCriteria = {\n cardGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n createdBy?: InputMaybe<Scalars['String']['input']>;\n deletedBy?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n sprintGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n updatedBy?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CardSprintRs = {\n __typename?: 'CardSprintRs';\n data?: Maybe<Array<Maybe<CardSprint>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type Catalog = {\n __typename?: 'Catalog';\n categories?: Maybe<Array<Maybe<CatalogCategory>>>;\n countryId?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n currencyCode?: Maybe<Scalars['String']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n estDeliveryTimeUnit?: Maybe<EstDeliveryTimeUnit>;\n estDeliveryTimeValue?: Maybe<Scalars['Int']['output']>;\n exts?: Maybe<Array<Maybe<CatalogExt>>>;\n guid?: Maybe<Scalars['String']['output']>;\n isNeedApproval?: Maybe<Scalars['Boolean']['output']>;\n minLevelToReach?: Maybe<Scalars['Int']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n price?: Maybe<Scalars['Double']['output']>;\n productDenomGuid?: Maybe<Scalars['String']['output']>;\n redeemCount?: Maybe<Scalars['Int']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<CatalogStatus>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CatalogCategory = {\n __typename?: 'CatalogCategory';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n slug?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CatalogCategoryCriteria = {\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n slug?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: Scalars['String']['input'];\n};\n\nexport type CatalogCategoryRs = {\n __typename?: 'CatalogCategoryRs';\n data?: Maybe<Array<Maybe<CatalogCategory>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CatalogCriteria = {\n category?: InputMaybe<Scalars['String']['input']>;\n countryIds?: InputMaybe<Array<Scalars['String']['input']>>;\n currencyCodes?: InputMaybe<Array<Scalars['String']['input']>>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n isNeedApproval?: InputMaybe<Scalars['String']['input']>;\n minLevelToReach?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n price?: InputMaybe<Scalars['Double']['input']>;\n productDenomGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: CatalogStatus;\n};\n\nexport type CatalogExt = {\n __typename?: 'CatalogExt';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n extType?: Maybe<Scalars['String']['output']>;\n extValue?: Maybe<Scalars['String']['output']>;\n file?: Maybe<FetchFileResponse>;\n guid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CatalogRs = {\n __typename?: 'CatalogRs';\n data?: Maybe<Array<Maybe<Catalog>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum CatalogStatus {\n Active = 'ACTIVE',\n Deleted = 'DELETED'\n}\n\nexport type ChangePassRq = {\n /** ... new password to replace registered password */\n newPassword: Scalars['String']['input'];\n /** ... old registered password */\n oldPassword: Scalars['String']['input'];\n};\n\nexport type ChannelSelectionInput = {\n /** provider code */\n selectedProviderCode: Scalars['String']['input'];\n};\n\nexport type Checklist = {\n __typename?: 'Checklist';\n card?: Maybe<Card>;\n cardGuid?: Maybe<Scalars['String']['output']>;\n cardOrder?: Maybe<Scalars['Int']['output']>;\n checklistItem?: Maybe<Array<Maybe<ChecklistItem>>>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n deletedAt?: Maybe<Scalars['DateTime']['output']>;\n deletedBy?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n itemCount?: Maybe<Scalars['Int']['output']>;\n itemCountChecked?: Maybe<Scalars['Int']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ChecklistCriteria = {\n cardGuid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n cardOrder?: InputMaybe<Scalars['Int']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n itemCount?: InputMaybe<Scalars['Int']['input']>;\n itemCountChecked?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type ChecklistItem = {\n __typename?: 'ChecklistItem';\n assignedUser?: Maybe<Scalars['String']['output']>;\n checklist?: Maybe<Checklist>;\n checklistGuid?: Maybe<Scalars['String']['output']>;\n checklistOrder?: Maybe<Scalars['Int']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n deletedAt?: Maybe<Scalars['DateTime']['output']>;\n deletedBy?: Maybe<Scalars['String']['output']>;\n dueAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n isChecked?: Maybe<Scalars['Boolean']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ChecklistItemCriteria = {\n assignedUser?: InputMaybe<Scalars['String']['input']>;\n checklistGuid?: InputMaybe<Scalars['String']['input']>;\n checklistOrder?: InputMaybe<Scalars['Int']['input']>;\n dueAt?: InputMaybe<Scalars['DateTime']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n isChecked?: InputMaybe<Scalars['Boolean']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type ChecklistItemRs = {\n __typename?: 'ChecklistItemRs';\n data?: Maybe<Array<Maybe<ChecklistItem>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type ChecklistRs = {\n __typename?: 'ChecklistRs';\n data?: Maybe<Array<Maybe<Checklist>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CheckoutRequest = {\n amount: Scalars['String']['input'];\n channelCategory: Scalars['String']['input'];\n channelCode: Scalars['String']['input'];\n countryCode: Scalars['String']['input'];\n credentialGuid: Scalars['String']['input'];\n currencyCode: Scalars['String']['input'];\n denomGuid: Scalars['String']['input'];\n gameChildCode: Scalars['String']['input'];\n gameFieldJson: Scalars['JSON']['input'];\n gameParentCode: Scalars['String']['input'];\n merchantGuid: Scalars['String']['input'];\n platform: PlatformEnum;\n productGuid: Scalars['String']['input'];\n productId: Scalars['String']['input'];\n transactionRef: Scalars['String']['input'];\n txnAmount: Scalars['String']['input'];\n userGuid: Scalars['String']['input'];\n userLang?: Scalars['String']['input'];\n};\n\nexport type CheckoutResponse = {\n __typename?: 'CheckoutResponse';\n data?: Maybe<Scalars['JSON']['output']>;\n error?: Maybe<Scalars['JSON']['output']>;\n status?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CmsBookmarks = {\n __typename?: 'CmsBookmarks';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n postGuid?: Maybe<Scalars['String']['output']>;\n /** Bookmarked Post. */\n posts?: Maybe<Array<Maybe<CmsPost>>>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n userGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CmsCommentReaction = {\n __typename?: 'CmsCommentReaction';\n commentGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n lastCount?: Maybe<Scalars['String']['output']>;\n mutation?: Maybe<Scalars['String']['output']>;\n newCount?: Maybe<Scalars['Int']['output']>;\n postGuid?: Maybe<Scalars['String']['output']>;\n reactionType?: Maybe<Scalars['String']['output']>;\n userGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CmsLockPost = {\n __typename?: 'CmsLockPost';\n guid?: Maybe<Scalars['String']['output']>;\n postGuid?: Maybe<Scalars['String']['output']>;\n timestamp?: Maybe<Scalars['Long']['output']>;\n user?: Maybe<AppLoginSubject>;\n userGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CmsLockPostQueryCriteria = {\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n postGuid?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CmsPost = {\n __typename?: 'CmsPost';\n author?: Maybe<CmsUser>;\n authorGuid?: Maybe<Scalars['String']['output']>;\n authorName?: Maybe<Scalars['String']['output']>;\n /** Bookmark status based on user guid in Authorization header */\n bookmarkStatus?: Maybe<CmsBookmarks>;\n /** Category terms of the post */\n categories?: Maybe<Array<Maybe<CmsPostTerm>>>;\n commentCount?: Maybe<Scalars['Int']['output']>;\n /** Open/Closed post comment status */\n commentStatus?: Maybe<Scalars['String']['output']>;\n /** Comments of the post */\n comments?: Maybe<Array<Maybe<CmsPostComment>>>;\n /** Video thumbnail/Live thumbnail */\n contentOption?: Maybe<ContentOption>;\n country?: Maybe<Country>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n expiredAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n /** Pin or un-pin a post */\n isPinned?: Maybe<Scalars['Boolean']['output']>;\n lockPost?: Maybe<LockPost>;\n /** Content of the post */\n postBody?: Maybe<Scalars['String']['output']>;\n /** Ext of the post */\n postExt?: Maybe<Array<Maybe<CmsPostExt>>>;\n /** For SEO purposes. Max length: 160 */\n postMetaDescription?: Maybe<Scalars['String']['output']>;\n /** DRAFT/ON_REVIEW/PUBLISHED post status */\n postStatus?: Maybe<Scalars['String']['output']>;\n postTitle?: Maybe<Scalars['String']['output']>;\n publishedAt?: Maybe<Scalars['DateTime']['output']>;\n /** Reaction status of the post */\n reactionStatus?: Maybe<Array<Maybe<CmsReactionStatus>>>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n /** Tag terms of the post */\n tags?: Maybe<Array<Maybe<CmsPostTerm>>>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n urlKey?: Maybe<Scalars['String']['output']>;\n /** Video/Live content option source */\n videoSource?: Maybe<Scalars['String']['output']>;\n /** Settings for view count */\n viewCount?: Maybe<Scalars['Boolean']['output']>;\n /** views of the post */\n views?: Maybe<CmsPostViewsRecord>;\n};\n\nexport type CmsPostComment = {\n __typename?: 'CmsPostComment';\n author?: Maybe<CmsUser>;\n /** User browser information */\n commentAgent?: Maybe<Scalars['String']['output']>;\n commentAuthor?: Maybe<AppLoginSubject>;\n commentAuthorEmail: Scalars['String']['output'];\n commentAuthorIp: Scalars['String']['output'];\n commentAuthorName: Scalars['String']['output'];\n commentContent: Scalars['String']['output'];\n commentCount?: Maybe<CommentCount>;\n commentEmojiNo?: Maybe<Scalars['Int']['output']>;\n commentParentGuid?: Maybe<Scalars['String']['output']>;\n /** Possible value: APPROVED/UNAPPROVED */\n commentStatus: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n createdBy?: Maybe<AppLoginSubject>;\n guid: Scalars['String']['output'];\n postGuid?: Maybe<Scalars['String']['output']>;\n /** Reaction status of the comment */\n reactionStatus?: Maybe<Array<Maybe<CmsReactionStatus>>>;\n revision: Scalars['String']['output'];\n status: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n updatedBy?: Maybe<AppLoginSubject>;\n};\n\nexport type CmsPostCommentFilter = {\n /** User browser information */\n commentAgent?: InputMaybe<Scalars['String']['input']>;\n commentAuthorEmail?: InputMaybe<Scalars['String']['input']>;\n commentAuthorGuid?: InputMaybe<Scalars['String']['input']>;\n commentAuthorIp?: InputMaybe<Scalars['String']['input']>;\n commentAuthorName?: InputMaybe<Scalars['String']['input']>;\n commentContent?: InputMaybe<Scalars['String']['input']>;\n commentEmojiNo?: InputMaybe<Scalars['Int']['input']>;\n commentParentGuid?: InputMaybe<Scalars['String']['input']>;\n /** Possible value: APPROVED/UNAPPROVED */\n commentStatus?: InputMaybe<Scalars['String']['input']>;\n createdAt?: InputMaybe<Scalars['DateTime']['input']>;\n createdByGuid?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n postGuid?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n updatedAt?: InputMaybe<Scalars['DateTime']['input']>;\n updatedByGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CmsPostCommentResult = {\n __typename?: 'CmsPostCommentResult';\n data: Array<Maybe<CmsPostComment>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\n/** CmsPost Connection */\nexport type CmsPostConnection = {\n __typename?: 'CmsPostConnection';\n /** Field edges */\n edges?: Maybe<Array<Maybe<CmsPostEdge>>>;\n /** Field pageInfo */\n pageInfo: PageInfo;\n};\n\n/** CmsPost Edge */\nexport type CmsPostEdge = {\n __typename?: 'CmsPostEdge';\n /** Field cursor */\n cursor?: Maybe<Scalars['String']['output']>;\n /** Field node */\n node?: Maybe<CmsPost>;\n};\n\nexport type CmsPostExt = {\n __typename?: 'CmsPostExt';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n /** Possible value: CONTENT_IMAGE_POST/SQUARE_THUMBNAIL */\n extType?: Maybe<Scalars['String']['output']>;\n /** Guid value referencing to Amazon S3 image file */\n extValue?: Maybe<Scalars['String']['output']>;\n file?: Maybe<FetchFileResponse>;\n guid?: Maybe<Scalars['String']['output']>;\n postGuid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CmsPostExtQueryCriteria = {\n createdAt?: InputMaybe<Scalars['DateTime']['input']>;\n createdByGuid?: InputMaybe<Scalars['String']['input']>;\n /** Possible value: CONTENT_IMAGE_POST/SQUARE_THUMBNAIL */\n extType?: InputMaybe<Scalars['String']['input']>;\n /** Guid value referencing to Amazon S3 image file */\n extValue?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n postGuid?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n updatedAt?: InputMaybe<Scalars['DateTime']['input']>;\n updatedByGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CmsPostFilter = {\n /** fill with end cursor id to get next data/page, cannot use this if already use 'before' filter */\n after?: InputMaybe<Scalars['String']['input']>;\n authorGuid?: InputMaybe<Scalars['String']['input']>;\n authorName?: InputMaybe<Scalars['String']['input']>;\n /** fill with start cursor id to get prev data/page, cannot use this if already use 'after' filter */\n before?: InputMaybe<Scalars['String']['input']>;\n commentCount?: InputMaybe<Scalars['Int']['input']>;\n /** Open/Closed post comment status */\n commentStatus?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n /** Country guid of the post */\n countryGuid?: InputMaybe<Scalars['String']['input']>;\n createdAt?: InputMaybe<Scalars['DateTime']['input']>;\n createdByGuid?: InputMaybe<Scalars['String']['input']>;\n expiredAt?: InputMaybe<Scalars['DateTime']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n /** Pin or un-pin a post */\n isPinned?: InputMaybe<Scalars['Boolean']['input']>;\n pageSize?: Scalars['Int']['input'];\n /** Content of the post */\n postBody?: InputMaybe<Scalars['String']['input']>;\n /** For SEO purposes. Max length: 160 */\n postMetaDescription?: InputMaybe<Scalars['String']['input']>;\n /** DRAFT/ON_REVIEW/PUBLISHED post status */\n postStatus?: InputMaybe<Scalars['String']['input']>;\n postTitle?: InputMaybe<Scalars['String']['input']>;\n publishedAt?: InputMaybe<Scalars['DateTime']['input']>;\n sortBy: CmsPostSortByEnum;\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n /** Search by termName: Name of the Category/Post tag */\n termNames?: InputMaybe<Array<Scalars['String']['input']>>;\n /** Search by termType, possible value: CATEGORY/POST_TAG */\n termType?: InputMaybe<Scalars['String']['input']>;\n updatedAt?: InputMaybe<Scalars['DateTime']['input']>;\n updatedByGuid?: InputMaybe<Scalars['String']['input']>;\n /** The part of a static URL that describes the post */\n urlKey?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CmsPostFilterPublic = {\n /** fill with end cursor id to get next data/page, cannot use this if already use 'before' filter */\n after?: InputMaybe<Scalars['String']['input']>;\n authorGuid?: InputMaybe<Scalars['String']['input']>;\n /** fill with start cursor id to get prev data/page, cannot use this if already use 'after' filter */\n before?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n expiredAt?: InputMaybe<Scalars['DateTime']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n /** Pin or un-pin a post */\n isPinned?: InputMaybe<Scalars['Boolean']['input']>;\n pageSize?: Scalars['Int']['input'];\n publishedAt?: InputMaybe<Scalars['DateTime']['input']>;\n sortBy: CmsPostPublicSortByEnum;\n sortDirection?: Scalars['String']['input'];\n /** Search by termName: Name of the Category/Post tag */\n termName?: InputMaybe<Scalars['String']['input']>;\n /** Search by termType, possible value: CATEGORY/POST_TAG */\n termType?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n /** The part of a static URL that describes the post */\n urlKey?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum CmsPostPublicSortByEnum {\n PublishedAt = 'publishedAt'\n}\n\nexport type CmsPostResult = {\n __typename?: 'CmsPostResult';\n data: Array<Maybe<CmsPost>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum CmsPostSortByEnum {\n ExpiredAt = 'expiredAt',\n PublishedAt = 'publishedAt',\n UpdatedAt = 'updatedAt'\n}\n\nexport type CmsPostTerm = {\n __typename?: 'CmsPostTerm';\n createdAt: Scalars['DateTime']['output'];\n createdBy?: Maybe<AppLoginSubject>;\n guid: Scalars['String']['output'];\n isHidden?: Maybe<Scalars['Boolean']['output']>;\n lastPostImageUrl?: Maybe<Scalars['String']['output']>;\n /** Cms Posts under selected Term */\n posts?: Maybe<Array<Maybe<CmsPost>>>;\n revision: Scalars['String']['output'];\n status: Scalars['String']['output'];\n termDescription?: Maybe<Scalars['String']['output']>;\n /** Name of the Category/Tag. Ex: Anime & Manga, Profile */\n termName: Scalars['String']['output'];\n termParentGuid?: Maybe<Scalars['String']['output']>;\n /** Possible value: CATEGORY/POST_TAG */\n termType: TermType;\n updatedAt: Scalars['DateTime']['output'];\n updatedBy?: Maybe<AppLoginSubject>;\n urlKey?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CmsPostTermFilter = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n createdAt?: InputMaybe<Scalars['DateTime']['input']>;\n createdByGuid?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n isHidden?: InputMaybe<Scalars['Boolean']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n termDescription?: InputMaybe<Scalars['String']['input']>;\n /** Name of the Category/Tag. Ex: Anime & Manga, Profile */\n termName?: InputMaybe<Scalars['String']['input']>;\n termParentGuid?: InputMaybe<Scalars['String']['input']>;\n /** Possible value: CATEGORY/POST_TAG */\n termType?: InputMaybe<TermType>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n updatedAt?: InputMaybe<Scalars['DateTime']['input']>;\n updatedByGuid?: InputMaybe<Scalars['String']['input']>;\n urlKey?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CmsPostTermRelationship = {\n __typename?: 'CmsPostTermRelationship';\n guid: Scalars['String']['output'];\n postGuid: Scalars['String']['output'];\n termGuid: Scalars['String']['output'];\n /** Category/Post tag ordering */\n termOrder: Scalars['Int']['output'];\n};\n\nexport type CmsPostTermRelationshipQueryCriteria = {\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n postGuid?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n termGuid?: InputMaybe<Scalars['String']['input']>;\n /** Category/Post tag ordering */\n termOrder?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type CmsPostTermResult = {\n __typename?: 'CmsPostTermResult';\n data: Array<Maybe<CmsPostTerm>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CmsPostViews = {\n __typename?: 'CmsPostViews';\n createdAt?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n postGuid?: Maybe<Scalars['String']['output']>;\n userGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CmsPostViewsCriteria = {\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n postGuid?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CmsPostViewsRecord = {\n __typename?: 'CmsPostViewsRecord';\n totalCount?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CmsPostViewsResult = {\n __typename?: 'CmsPostViewsResult';\n data: Array<Maybe<CmsPostViews>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CmsReactionCriteria = {\n commentGuid?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n isMutation?: InputMaybe<Scalars['Boolean']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n postGuid?: InputMaybe<Scalars['String']['input']>;\n /** Possible value: LIKE, HEART */\n reactionType?: InputMaybe<ReactionType>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CmsReactionResult = {\n __typename?: 'CmsReactionResult';\n data: Array<Maybe<CmsCommentReaction>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CmsReactionStatus = {\n __typename?: 'CmsReactionStatus';\n /** Possible value: 1= LIKE/HEART, -1= UNLIKE/UNHEART, null */\n mutation?: Maybe<Scalars['Int']['output']>;\n /** Possible value: LIKE, HEART */\n reactionType?: Maybe<Scalars['String']['output']>;\n totalCount?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CmsUser = {\n __typename?: 'CmsUser';\n authUserGuid?: Maybe<Scalars['String']['output']>;\n bio?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n file?: Maybe<FetchFileResponse>;\n guid?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n url?: Maybe<Scalars['String']['output']>;\n userName?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CmsUserFilter = {\n authUserGuid?: InputMaybe<Scalars['String']['input']>;\n bio?: InputMaybe<Scalars['String']['input']>;\n createdAt?: InputMaybe<Scalars['DateTime']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n picture?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n updatedAt?: InputMaybe<Scalars['DateTime']['input']>;\n updatedByGuid?: InputMaybe<Scalars['String']['input']>;\n url?: InputMaybe<Scalars['String']['input']>;\n userName?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type Comment = {\n __typename?: 'Comment';\n cardDetails?: Maybe<Card>;\n cardGuid?: Maybe<Scalars['String']['output']>;\n content?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n deletedBy?: Maybe<Scalars['String']['output']>;\n exts?: Maybe<Array<Maybe<CommentExt>>>;\n guid?: Maybe<Scalars['String']['output']>;\n requestDetails?: Maybe<Request>;\n requestGuid?: Maybe<Scalars['String']['output']>;\n showOnRequest?: Maybe<Scalars['Boolean']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CommentCount = {\n __typename?: 'CommentCount';\n count: Scalars['Int']['output'];\n};\n\nexport type CommentCriteria = {\n cardGuid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n requestGuid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n showOnRequest?: InputMaybe<Scalars['Boolean']['input']>;\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type CommentExt = {\n __typename?: 'CommentExt';\n commentGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n extType?: Maybe<Scalars['String']['output']>;\n extValue?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CommentRs = {\n __typename?: 'CommentRs';\n data?: Maybe<Array<Maybe<Comment>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum CommentStatus {\n Approved = 'APPROVED',\n Unapproved = 'UNAPPROVED'\n}\n\nexport type Company = {\n __typename?: 'Company';\n approvalData?: Maybe<Scalars['String']['output']>;\n approvalGroupGuid?: Maybe<Scalars['String']['output']>;\n approvalGuid?: Maybe<Scalars['String']['output']>;\n approvalRemark?: Maybe<Scalars['String']['output']>;\n approvalStatus?: Maybe<Scalars['String']['output']>;\n approvalType?: Maybe<Scalars['String']['output']>;\n /** ... company code */\n code?: Maybe<Scalars['String']['output']>;\n /** ... company country */\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n /** ... user that create this company */\n createdBy?: Maybe<AppLoginSubject>;\n /** ... company description */\n description?: Maybe<Scalars['String']['output']>;\n /** ... company displayed name */\n displayName?: Maybe<Scalars['String']['output']>;\n /** ... Company identifier */\n guid?: Maybe<Scalars['String']['output']>;\n isInternal?: Maybe<Scalars['Boolean']['output']>;\n /** ... company name */\n name?: Maybe<Scalars['String']['output']>;\n /** ... data version */\n revision?: Maybe<Scalars['String']['output']>;\n /** ... company status */\n status?: Maybe<Status>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n /** ... last user that update this company */\n updatedBy?: Maybe<AppLoginSubject>;\n};\n\nexport type CompanyFilter = {\n code?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n displayName?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n isInternal?: Scalars['Boolean']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: Status;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type CompanyWithFilterRs = {\n __typename?: 'CompanyWithFilterRs';\n data?: Maybe<Array<Maybe<Company>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type Contact = {\n __typename?: 'Contact';\n address?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['String']['output']>;\n createdBy?: Maybe<AppLoginSubject>;\n deletedAt?: Maybe<Scalars['String']['output']>;\n email?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n phone?: Maybe<Scalars['String']['output']>;\n position?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Status>;\n type?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['String']['output']>;\n updatedBy?: Maybe<AppLoginSubject>;\n};\n\nexport enum ContentOption {\n LiveThumbnail = 'LIVE_THUMBNAIL',\n VideoThumbnail = 'VIDEO_THUMBNAIL'\n}\n\nexport type ContractTemplate = {\n __typename?: 'ContractTemplate';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n details?: Maybe<Array<ContractTemplateDetail>>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Status>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ContractTemplateCriteria = {\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n /** ... for filter by name ilike */\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n productSelection?: InputMaybe<ProductSelectionEnum>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: Status;\n};\n\nexport type ContractTemplateDetail = {\n __typename?: 'ContractTemplateDetail';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n paymentProvider?: Maybe<PaymentProvider>;\n product?: Maybe<ProductPage>;\n productDenom?: Maybe<ProductDenomination>;\n productSelection?: Maybe<ProductSelectionEnum>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ContractTemplateRs = PageableRs & {\n __typename?: 'ContractTemplateRs';\n data?: Maybe<Array<ContractTemplate>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type ConversionRq = {\n amount: Scalars['String']['input'];\n baseCurrency: Scalars['String']['input'];\n rateCurrency: Scalars['String']['input'];\n rateTime?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type ConversionRs = {\n __typename?: 'ConversionRs';\n conversionRate?: Maybe<Scalars['String']['output']>;\n convertedAmount?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Country = {\n __typename?: 'Country';\n code?: Maybe<Scalars['String']['output']>;\n createdDate?: Maybe<Scalars['DateTime']['output']>;\n defaultLangCode?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n langCodes?: Maybe<Array<Maybe<LangCode>>>;\n name?: Maybe<Scalars['String']['output']>;\n phoneCodes?: Maybe<Array<Maybe<PhoneCode>>>;\n status?: Maybe<Scalars['String']['output']>;\n updatedDate?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type CountryQueryCriteria = {\n code?: InputMaybe<Array<Scalars['String']['input']>>;\n defaultLangCode?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Array<Scalars['String']['input']>>;\n langCode?: InputMaybe<Array<Scalars['String']['input']>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n phoneCode?: InputMaybe<Array<Scalars['String']['input']>>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type CountryResult = {\n __typename?: 'CountryResult';\n data: Array<Maybe<Country>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CreateActivityHistoryRq = {\n boardGuid: Scalars['String']['input'];\n cardAttachmentGuid?: InputMaybe<Scalars['String']['input']>;\n cardGuid: Scalars['String']['input'];\n changedValue: Scalars['JSON']['input'];\n commentAttachmentGuid?: InputMaybe<Scalars['String']['input']>;\n commentGuid?: InputMaybe<Scalars['String']['input']>;\n requestAttachmentGuid?: InputMaybe<Scalars['String']['input']>;\n requestGuid: Scalars['String']['input'];\n showOnRequest?: Scalars['Boolean']['input'];\n type: ActivityHistoryType;\n};\n\nexport type CreateApiCredentialRoleRq = {\n apiCredentialGuid?: InputMaybe<Scalars['String']['input']>;\n createdAt?: InputMaybe<Scalars['String']['input']>;\n createdBy?: InputMaybe<Scalars['String']['input']>;\n roleGuid?: InputMaybe<Scalars['String']['input']>;\n updatedAt?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateApiCredentialRq = {\n accessKey?: InputMaybe<Scalars['String']['input']>;\n activeAt?: InputMaybe<Scalars['String']['input']>;\n createdAt?: InputMaybe<Scalars['String']['input']>;\n expiredAt?: InputMaybe<Scalars['String']['input']>;\n merchantContractGuid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n secret?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n transactionalUserGuid?: InputMaybe<Scalars['String']['input']>;\n version?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateApprovalRq = {\n approvalGroupGuid?: InputMaybe<Scalars['String']['input']>;\n /** ... required valid json string */\n data?: InputMaybe<Scalars['String']['input']>;\n entity: Scalars['String']['input'];\n entityGuid: Scalars['String']['input'];\n permission: Scalars['String']['input'];\n remark?: InputMaybe<Scalars['String']['input']>;\n sourcePlatform: Scalars['String']['input'];\n type: ApprovalTypeEnum;\n urlToCall: Scalars['String']['input'];\n};\n\nexport type CreateAuditTrailRq = {\n action?: InputMaybe<Scalars['String']['input']>;\n class?: InputMaybe<Scalars['String']['input']>;\n codeLine?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n data?: InputMaybe<Scalars['JSON']['input']>;\n description: Scalars['String']['input'];\n function?: InputMaybe<Scalars['String']['input']>;\n isSystemGenerated?: InputMaybe<Scalars['Boolean']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n msSource: Scalars['String']['input'];\n sourceIp: Scalars['String']['input'];\n tags?: InputMaybe<Array<InputMaybe<AuditTagRq>>>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateAuthSettingRq = {\n /** ... Setting code (not editable) */\n code?: InputMaybe<Scalars['String']['input']>;\n /** ... Setting name */\n name?: InputMaybe<Scalars['String']['input']>;\n /** ... Setting value */\n value?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateAuthorHistoricalSlugRq = {\n slug: Scalars['String']['input'];\n userGuid: Scalars['String']['input'];\n};\n\nexport type CreateBoardAccessRq = {\n /** Board Guid */\n boardGuid: Scalars['String']['input'];\n /** Expiration Time */\n expiredAt: Scalars['DateTime']['input'];\n /** Role Guid */\n roleGuid: Scalars['String']['input'];\n};\n\nexport type CreateBoardRq = {\n /** Board Code */\n code: Scalars['String']['input'];\n /** Board Model */\n model: Scalars['String']['input'];\n /** Board Name */\n name: Scalars['String']['input'];\n};\n\nexport type CreateBookmarkRq = {\n /** Post Guid that going to be saved. */\n postGuid?: InputMaybe<Scalars['String']['input']>;\n /** User Guid that saving the post. */\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateCardLabelRq = {\n /** Card Guid */\n cardGuid: Scalars['String']['input'];\n /** Label Guid */\n labelGuid: Scalars['String']['input'];\n};\n\nexport type CreateCardRq = {\n /** Card Lead */\n assignedLead?: InputMaybe<Scalars['String']['input']>;\n /** Card Member */\n assignedMember?: InputMaybe<Scalars['String']['input']>;\n /** Card Mentor */\n assignedMentor?: InputMaybe<Scalars['String']['input']>;\n /** Card PMO */\n assignedPmo?: InputMaybe<Scalars['String']['input']>;\n /** Card description */\n description?: InputMaybe<Scalars['String']['input']>;\n /** Card due date at */\n dueDateAt?: InputMaybe<Scalars['DateTime']['input']>;\n /** Card Effort Point */\n milliEffortPoint?: InputMaybe<Scalars['Int']['input']>;\n /** Card Request Guid */\n requestGuid: Scalars['String']['input'];\n /** Card requested at */\n requestedAt?: InputMaybe<Scalars['DateTime']['input']>;\n /** Card Section Guid */\n sectionGuid: Scalars['String']['input'];\n /** Card Section Order */\n sectionOrder: Scalars['Int']['input'];\n /** Card title */\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateCardSprintRq = {\n /** Card GUID */\n cardGuid: Scalars['String']['input'];\n /** Sprint GUID */\n sprintGuid: Scalars['String']['input'];\n};\n\nexport type CreateChecklistItemRq = {\n /** Checklist Item Assigned User */\n assignedUser?: InputMaybe<Scalars['String']['input']>;\n /** Checklist Item Checklist Guid */\n checklistGuid: Scalars['String']['input'];\n /** Checklist Item Checklist Order */\n checklistOrder: Scalars['Int']['input'];\n /** Checklist Item Due At */\n dueAt?: InputMaybe<Scalars['DateTime']['input']>;\n /** Checklist Item Is Checked */\n isChecked?: Scalars['Boolean']['input'];\n /** Checklist Item Name */\n name: Scalars['String']['input'];\n};\n\nexport type CreateChecklistRq = {\n /** Checklist Card Guid */\n cardGuid: Scalars['String']['input'];\n /** Checklist Card Order */\n cardOrder: Scalars['Int']['input'];\n /** Checklist Name */\n name: Scalars['String']['input'];\n};\n\nexport type CreateCmsPostCommentRq = {\n commentContent: Scalars['String']['input'];\n commentParentGuid?: InputMaybe<Scalars['String']['input']>;\n postGuid: Scalars['String']['input'];\n};\n\nexport type CreateCmsPostExtRq = {\n created_at?: InputMaybe<Scalars['DateTime']['input']>;\n created_by_guid?: InputMaybe<Scalars['String']['input']>;\n /** Possible value: CONTENT_IMAGE_POST/SQUARE_THUMBNAIL */\n ext_type: Scalars['String']['input'];\n /** Guid value referencing to Amazon S3 image file */\n ext_value: Scalars['String']['input'];\n post_guid: Scalars['String']['input'];\n status: Scalars['String']['input'];\n updated_at?: InputMaybe<Scalars['DateTime']['input']>;\n updated_by_guid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateCmsPostRq = {\n authorGuid: Scalars['String']['input'];\n authorName?: InputMaybe<Scalars['String']['input']>;\n commentCount?: InputMaybe<Scalars['Int']['input']>;\n /** Open/Closed post comment status */\n commentStatus: Scalars['String']['input'];\n /** Video thumbnail/Live thumbnail */\n contentOption?: InputMaybe<ContentOption>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n /** Country guid of the post */\n countryGuid?: InputMaybe<Scalars['String']['input']>;\n expiredAt?: InputMaybe<Scalars['DateTime']['input']>;\n /** Pin or un-pin a post */\n isPinned?: InputMaybe<Scalars['Boolean']['input']>;\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n /** Content of the post */\n postBody?: InputMaybe<Scalars['String']['input']>;\n /** Terms-Category guid of the post */\n postCategoryGuid?: InputMaybe<Scalars['String']['input']>;\n /** For SEO purposes. Max length: 160 */\n postMetaDescription?: InputMaybe<Scalars['String']['input']>;\n /** DRAFT/ON_REVIEW/PUBLISHED post status */\n postStatus: Scalars['String']['input'];\n /** Terms-PostTag names of the post */\n postTagNames: Array<InputMaybe<Scalars['String']['input']>>;\n postTitle: Scalars['String']['input'];\n publishedAt?: InputMaybe<Scalars['DateTime']['input']>;\n /** The part of a static URL that describes the post */\n urlKey: Scalars['String']['input'];\n /** Video/Live content option source */\n videoSource?: InputMaybe<Scalars['String']['input']>;\n /** Settings for view count */\n viewCount?: Scalars['Boolean']['input'];\n};\n\nexport type CreateCmsPostTermRelationshipRq = {\n postGuid: Scalars['String']['input'];\n termGuid?: InputMaybe<Scalars['String']['input']>;\n /** Category/Post tag ordering */\n termOrder: Scalars['Int']['input'];\n};\n\nexport type CreateCmsPostTermRq = {\n isHidden?: InputMaybe<Scalars['Boolean']['input']>;\n termDescription?: InputMaybe<Scalars['String']['input']>;\n /** Name of the Category/Tag. Ex: Anime & Manga, Profile */\n termName: Scalars['String']['input'];\n termParentGuid?: InputMaybe<Scalars['String']['input']>;\n /** Possible value: CATEGORY/POST_TAG */\n termType: TermType;\n urlKey?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateCmsReactionRq = {\n commentGuid?: InputMaybe<Scalars['String']['input']>;\n /** Possible value: true = LIKE/HEART , false = UNLIKE/UNHEART */\n isMutation: Scalars['Boolean']['input'];\n postGuid: Scalars['String']['input'];\n /** Possible value: LIKE, HEART */\n reactionType: ReactionType;\n userGuid: Scalars['String']['input'];\n};\n\nexport type CreateCmsUserRq = {\n authUserGuid?: InputMaybe<Scalars['String']['input']>;\n bio?: InputMaybe<Scalars['String']['input']>;\n picture?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n url?: InputMaybe<Scalars['String']['input']>;\n userName?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateCommentRq = {\n /** Comment Card Guid */\n cardGuid?: InputMaybe<Scalars['String']['input']>;\n /** Comment Content */\n content: Scalars['String']['input'];\n /** Comment Request Guid */\n requestGuid: Scalars['String']['input'];\n /** Comment Show On Request */\n showOnRequest?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type CreateCompanyRq = {\n /** ... company code */\n code?: InputMaybe<Scalars['String']['input']>;\n /** ... company country */\n countryCode?: InputMaybe<Scalars['String']['input']>;\n /** ... company description */\n description?: InputMaybe<Scalars['String']['input']>;\n /** ... company displayed name */\n displayName?: InputMaybe<Scalars['String']['input']>;\n isInternal?: InputMaybe<Scalars['Boolean']['input']>;\n /** ... company name */\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateConsentToAgreeRq = {\n historyAgreementGuid?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateContractTemplateRq = {\n contractTemplateDetailGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n name: Scalars['String']['input'];\n};\n\nexport type CreateCredentialDetailRq = {\n credentialGuid: Scalars['String']['input'];\n name: Scalars['String']['input'];\n type: CredentialType;\n value: Scalars['String']['input'];\n};\n\nexport type CreateDenomGroupRq = {\n name: Scalars['String']['input'];\n productPageGuid: Scalars['String']['input'];\n};\n\nexport type CreateEventLogsRq = {\n amount?: InputMaybe<Scalars['Float']['input']>;\n currency?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n paymentProviderGuid?: InputMaybe<Scalars['String']['input']>;\n pin?: InputMaybe<Scalars['String']['input']>;\n prizeGuid?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n reference?: InputMaybe<Scalars['String']['input']>;\n remark?: InputMaybe<Scalars['String']['input']>;\n serial?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n userInfo?: InputMaybe<Scalars['String']['input']>;\n utmCampaign?: InputMaybe<Scalars['String']['input']>;\n utmMedium?: InputMaybe<Scalars['String']['input']>;\n utmSource?: InputMaybe<Scalars['String']['input']>;\n value?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateEventManagementsRq = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n /** Discount Code Management GUID */\n dcmGuid?: InputMaybe<Scalars['String']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n eventAmount?: InputMaybe<Scalars['Long']['input']>;\n eventBonusAmount?: InputMaybe<Scalars['Long']['input']>;\n eventBonusType?: InputMaybe<EventBonusType>;\n eventQuota?: InputMaybe<Scalars['Int']['input']>;\n eventQuotaType?: InputMaybe<EventQuotaType>;\n fields?: InputMaybe<Scalars['String']['input']>;\n imageGuid?: InputMaybe<Scalars['String']['input']>;\n isFirstTimePay?: InputMaybe<Scalars['Boolean']['input']>;\n isRedRibbonFlag?: InputMaybe<Scalars['Boolean']['input']>;\n isReload?: InputMaybe<Scalars['Boolean']['input']>;\n isUniquePaymentQuota?: InputMaybe<Scalars['Boolean']['input']>;\n isUniqueUserDaily?: InputMaybe<Scalars['Boolean']['input']>;\n isWebtopup?: InputMaybe<Scalars['Boolean']['input']>;\n isWeekendOnly?: InputMaybe<Scalars['Boolean']['input']>;\n maximumEventBonus?: InputMaybe<Scalars['Int']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n mobileImageGuid?: InputMaybe<Scalars['String']['input']>;\n paymentProvider?: InputMaybe<Array<PciEventMgmtRq>>;\n productPageGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n slug?: InputMaybe<Scalars['String']['input']>;\n specialPriceAmount?: InputMaybe<Scalars['JSON']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n startHour?: InputMaybe<Scalars['Int']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n title: Scalars['String']['input'];\n tncUrl?: InputMaybe<Scalars['String']['input']>;\n type: Scalars['String']['input'];\n};\n\nexport type CreateEventParticipationRq = {\n additionalData?: InputMaybe<Scalars['String']['input']>;\n address?: InputMaybe<Scalars['String']['input']>;\n email?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n paymentProviderGuid?: InputMaybe<Scalars['String']['input']>;\n phone?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n reference?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateGithubEventCardLinkRq = {\n cardGuids: Array<Scalars['String']['input']>;\n createdByGithubUser?: InputMaybe<Scalars['String']['input']>;\n needActionFromGithubUser?: InputMaybe<Scalars['String']['input']>;\n repositoryUrl: Scalars['String']['input'];\n state: Scalars['String']['input'];\n type: GithubEventTypeEnum;\n typeNumber: Scalars['Int']['input'];\n typeUrl: Scalars['String']['input'];\n updatedByGithubUser?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateHistoryAgreementRq = {\n agreementCode?: InputMaybe<Scalars['String']['input']>;\n content?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n publishDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<Status>;\n version?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type CreateIdempotentRq = {\n /** date.beginningofday / date.beginningofmonth */\n dateRemark: Scalars['String']['input'];\n eventGuid: Scalars['String']['input'];\n userGuid: Scalars['String']['input'];\n};\n\nexport type CreateIpRq = {\n ipRange: Scalars['String']['input'];\n};\n\nexport type CreateLabelRq = {\n /** Board Guid */\n boardGuid: Scalars['String']['input'];\n /** Label Color */\n color: Scalars['String']['input'];\n /** Label Name */\n name: Scalars['String']['input'];\n /** Label Order */\n order: Scalars['Int']['input'];\n /** Label Type */\n type: Scalars['String']['input'];\n};\n\nexport type CreateMemberRq = {\n birthdayAt?: InputMaybe<Scalars['DateTime']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n email?: InputMaybe<Scalars['String']['input']>;\n gender?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n phone?: InputMaybe<Scalars['String']['input']>;\n preferredLangCode?: InputMaybe<Scalars['String']['input']>;\n referralCode?: InputMaybe<Scalars['String']['input']>;\n source?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateMerchantContactRq = {\n address?: InputMaybe<Scalars['String']['input']>;\n createdBy?: InputMaybe<Scalars['String']['input']>;\n email: Scalars['String']['input'];\n merchantGuid: Scalars['String']['input'];\n name: Scalars['String']['input'];\n phone: Scalars['String']['input'];\n position?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n updatedBy?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateMerchantContractRq = {\n contractTemplateGuid: Scalars['String']['input'];\n merchantGuid: Scalars['String']['input'];\n name: Scalars['String']['input'];\n};\n\nexport type CreateMerchantPaymentDenomRq = {\n amount?: InputMaybe<Scalars['Double']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateMerchantPaymentProviderRq = {\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n providerGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateMerchantRq = {\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n creditLimit?: InputMaybe<Scalars['Float']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n settlementCurrency?: InputMaybe<Scalars['String']['input']>;\n settlementType?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateMessageTemplateRq = {\n /** ... message id */\n messageId: Scalars['String']['input'];\n /** ... base64 encoded html or message template */\n value: Scalars['String']['input'];\n};\n\nexport type CreateNotificationAlertRq = {\n description: Scalars['String']['input'];\n receiverCompanyGuid?: InputMaybe<Scalars['String']['input']>;\n receiverGuid?: InputMaybe<Scalars['String']['input']>;\n receiverMerchantGuid?: InputMaybe<Scalars['String']['input']>;\n receiverPermissionCode?: InputMaybe<Scalars['String']['input']>;\n status: NotifAlertStatusEnum;\n targetGuid: Scalars['String']['input'];\n targetType: Scalars['String']['input'];\n title: Scalars['String']['input'];\n type: AlertTypeEnum;\n};\n\nexport type CreatePaymentChannelDenomRq = {\n amount?: InputMaybe<Scalars['Double']['input']>;\n code?: InputMaybe<Scalars['String']['input']>;\n credit?: InputMaybe<Scalars['Long']['input']>;\n payamentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreatePaymentChannelGuidelineRq = {\n paymentChannelGuid: Scalars['String']['input'];\n postGuid: Scalars['String']['input'];\n};\n\nexport type CreatePaymentChannelRq = {\n category?: InputMaybe<Scalars['String']['input']>;\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n charge?: InputMaybe<Scalars['Float']['input']>;\n chargeType?: InputMaybe<Scalars['String']['input']>;\n code?: InputMaybe<Scalars['String']['input']>;\n contractorCompanyGuid: Scalars['String']['input'];\n countryCode?: InputMaybe<Scalars['String']['input']>;\n credentialGuid: Scalars['String']['input'];\n field?: InputMaybe<Scalars['String']['input']>;\n isInquiryAvail?: InputMaybe<Scalars['Boolean']['input']>;\n isSupportLinkage?: Scalars['Boolean']['input'];\n isWhitelabel?: InputMaybe<Scalars['Boolean']['input']>;\n maxAmount?: InputMaybe<Scalars['Double']['input']>;\n metaFieldJson?: InputMaybe<Array<InputMaybe<PaymentChannelMetaField>>>;\n minAmount?: InputMaybe<Scalars['Double']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n parameter?: InputMaybe<Scalars['String']['input']>;\n providerCode?: InputMaybe<Scalars['String']['input']>;\n providerCompanyGuid?: InputMaybe<Scalars['String']['input']>;\n providerPriority?: InputMaybe<Scalars['String']['input']>;\n rateTemplateGuid?: InputMaybe<Scalars['String']['input']>;\n remark?: InputMaybe<Scalars['String']['input']>;\n requiredFieldJson?: InputMaybe<Array<InputMaybe<RequiredField>>>;\n route?: InputMaybe<Scalars['String']['input']>;\n serviceCompanyGuid: Scalars['String']['input'];\n vatPercentage?: InputMaybe<Scalars['Float']['input']>;\n};\n\nexport type CreatePaymentProviderRq = {\n category?: InputMaybe<Scalars['String']['input']>;\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n code?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n isSupportLinkage?: Scalars['Boolean']['input'];\n maxAmount?: InputMaybe<Scalars['Long']['input']>;\n minAmount?: InputMaybe<Scalars['Long']['input']>;\n providerExternalName?: InputMaybe<Scalars['String']['input']>;\n providerInternalName?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreatePermRq = {\n /** ... permission parent identifier */\n parentId?: InputMaybe<Scalars['String']['input']>;\n /** ... permission code */\n permCode: Scalars['String']['input'];\n /** ... permission description */\n permDescription?: InputMaybe<Scalars['String']['input']>;\n /** ... permission module */\n permModule: Scalars['String']['input'];\n /** ... permission name */\n permName: Scalars['String']['input'];\n /** ... permission scope */\n permScope: Scalars['String']['input'];\n /** ... permission type eX: WRITE, READ, etc */\n permType: Scalars['String']['input'];\n /** ... related micro frontend */\n relatedMf?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreatePostHistoricalSlugRq = {\n postGuid: Scalars['String']['input'];\n slug: Scalars['String']['input'];\n};\n\nexport type CreatePrizeEventRq = {\n amount?: InputMaybe<Scalars['Long']['input']>;\n category?: InputMaybe<Scalars['String']['input']>;\n code?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n remark?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateProductDenominationRq = {\n denomGroupGuid?: InputMaybe<Scalars['String']['input']>;\n imageGuid?: InputMaybe<Scalars['String']['input']>;\n isAdjustableSellingPrice?: InputMaybe<Scalars['Boolean']['input']>;\n isDirectVoucher?: InputMaybe<Scalars['Boolean']['input']>;\n isVoucherApi?: InputMaybe<Scalars['Boolean']['input']>;\n itemCode?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n partnerProductId?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n remark?: InputMaybe<Scalars['String']['input']>;\n voucherGroupGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateProductPageRq = {\n category: ProductPageCategory;\n communityLink?: InputMaybe<Scalars['String']['input']>;\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n content?: InputMaybe<Scalars['String']['input']>;\n countryCode: Scalars['String']['input'];\n credentialGuid?: InputMaybe<Scalars['String']['input']>;\n downloadLink?: InputMaybe<Scalars['String']['input']>;\n gameCenterImage?: InputMaybe<Scalars['String']['input']>;\n gameChildCode?: InputMaybe<Scalars['String']['input']>;\n gameParentCode?: InputMaybe<Scalars['String']['input']>;\n huaweiDownloadLink?: InputMaybe<Scalars['String']['input']>;\n iconGuid?: InputMaybe<Scalars['String']['input']>;\n influencerLink?: InputMaybe<Scalars['String']['input']>;\n iosDownloadLink?: InputMaybe<Scalars['String']['input']>;\n isEvent?: InputMaybe<Scalars['Boolean']['input']>;\n isNew?: InputMaybe<Scalars['Boolean']['input']>;\n isPromo?: InputMaybe<Scalars['Boolean']['input']>;\n isShowOnLandingPage?: InputMaybe<Scalars['Boolean']['input']>;\n isTesting?: InputMaybe<Scalars['Boolean']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n metaDescription?: InputMaybe<Scalars['String']['input']>;\n metaFieldJson?: InputMaybe<Array<InputMaybe<ProductPageMetaField>>>;\n metaTitle?: InputMaybe<Scalars['String']['input']>;\n officialSiteLink?: InputMaybe<Scalars['String']['input']>;\n providerCompanyGuid?: InputMaybe<Scalars['String']['input']>;\n reloadType?: ProductPageReloadTypeEnum;\n requiredFieldJson?: InputMaybe<Array<InputMaybe<RequiredField>>>;\n route?: InputMaybe<Scalars['String']['input']>;\n schemaMarkUp?: InputMaybe<Scalars['String']['input']>;\n tags?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n topUpGuideLink?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateProductPriceListRq = {\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n contractTemplateGuid: Scalars['String']['input'];\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n eventCode?: InputMaybe<Scalars['String']['input']>;\n magnifyValue?: InputMaybe<Scalars['Int']['input']>;\n paymentProviderCode?: InputMaybe<Scalars['String']['input']>;\n price?: InputMaybe<Scalars['Int']['input']>;\n priority: Scalars['Int']['input'];\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n rateTemplateGuid: Scalars['String']['input'];\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n type: PriceListType;\n};\n\nexport type CreateRaffleManagementsRq = {\n amount?: InputMaybe<Scalars['Long']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n eventQuota?: InputMaybe<Scalars['Int']['input']>;\n fields?: InputMaybe<Scalars['String']['input']>;\n imageGuid?: InputMaybe<Scalars['String']['input']>;\n isHide?: InputMaybe<Scalars['Boolean']['input']>;\n isLogin?: InputMaybe<Scalars['Boolean']['input']>;\n isReload?: InputMaybe<Scalars['Boolean']['input']>;\n isVoucher?: InputMaybe<Scalars['Boolean']['input']>;\n isWebtopup?: InputMaybe<Scalars['Boolean']['input']>;\n merchantGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n paymentChannelTargetType?: InputMaybe<PaymentChannelTargetType>;\n paymentProvider?: InputMaybe<Array<PciEventMgmtRq>>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n title: Scalars['String']['input'];\n type: Scalars['String']['input'];\n userDailyQuota?: InputMaybe<Scalars['Int']['input']>;\n userLimitQuota?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type CreateRateCardTemplateDetailsRq = {\n endAt?: InputMaybe<Scalars['DateTime']['input']>;\n magnifyValue: Scalars['Int']['input'];\n minimumRate: Scalars['Int']['input'];\n name: Scalars['String']['input'];\n paymentProviderCode?: InputMaybe<Scalars['String']['input']>;\n priority: Scalars['Int']['input'];\n rate: Scalars['Float']['input'];\n rateLogic: RateLogic;\n startAt?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type CreateRateCardTemplateRq = {\n code: Scalars['String']['input'];\n name: Scalars['String']['input'];\n};\n\nexport type CreateRatesRq = {\n /** currency base guid */\n baseGuid?: InputMaybe<Scalars['String']['input']>;\n /** list of currency code for rate */\n rateCcy?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\nexport type CreateRequestNatureRq = {\n code: Scalars['String']['input'];\n name: Scalars['String']['input'];\n};\n\nexport type CreateRequestNatureTypeRq = {\n attachmentConfigJson?: InputMaybe<Scalars['JSON']['input']>;\n codePrefix: Scalars['String']['input'];\n defaultBoardGuid?: InputMaybe<Scalars['String']['input']>;\n defaultPicUserGuid: Scalars['String']['input'];\n defaultSlaUnit?: InputMaybe<SlaUnit>;\n defaultSlaValue?: InputMaybe<Scalars['Int']['input']>;\n natureGuid: Scalars['String']['input'];\n /** Notification email cc */\n notificationCc: Scalars['String']['input'];\n /** Notification email to */\n notificationTo: Scalars['String']['input'];\n typeGuid: Scalars['String']['input'];\n};\n\nexport type CreateRequestRq = {\n assignedPicUserGuid: Scalars['String']['input'];\n countryCode: Scalars['String']['input'];\n isRequirementComplete?: Scalars['Boolean']['input'];\n picStatus?: Scalars['String']['input'];\n requestNatureGuid: Scalars['String']['input'];\n requestTypeGuid: Scalars['String']['input'];\n requestedTargetDate: Scalars['DateTime']['input'];\n sla: Scalars['Int']['input'];\n slaUnit: SlaUnit;\n status?: Scalars['String']['input'];\n title: Scalars['String']['input'];\n urgency: Scalars['Int']['input'];\n};\n\nexport type CreateRequestTypeRq = {\n code: Scalars['String']['input'];\n name: Scalars['String']['input'];\n};\n\nexport type CreateRoleRq = {\n /** ... role code */\n code: Scalars['String']['input'];\n /** ... role description */\n description?: InputMaybe<Scalars['String']['input']>;\n isInternal?: InputMaybe<Scalars['Boolean']['input']>;\n /** ... role name */\n name: Scalars['String']['input'];\n};\n\nexport type CreateSectionRq = {\n boardGuid: Scalars['String']['input'];\n name: Scalars['String']['input'];\n sectionOrder?: Scalars['Int']['input'];\n};\n\nexport type CreateSprintRq = {\n /** Sprint Finish At */\n finishAt: Scalars['DateTime']['input'];\n /** Sprint Name */\n name: Scalars['String']['input'];\n /** Sprint Start At */\n startAt: Scalars['DateTime']['input'];\n};\n\nexport type CreateSuspiciousTagRq = {\n actionCode?: InputMaybe<Scalars['String']['input']>;\n actionJson?: InputMaybe<Scalars['JSON']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n intervalParam?: InputMaybe<Scalars['String']['input']>;\n targetCode?: InputMaybe<Scalars['String']['input']>;\n threshold?: InputMaybe<Scalars['Int']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateTemplateDetailRq = {\n paymentProviderGuid?: InputMaybe<Scalars['String']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n productGuid?: InputMaybe<Scalars['String']['input']>;\n productSelection?: ProductSelectionEnum;\n};\n\nexport type CreateUserRq = {\n /** ... email to register user [Optional] */\n email?: InputMaybe<Scalars['String']['input']>;\n /** ... user gender [MALE/FEMALE] */\n gender: Gender;\n /** ... mobile nunber to register user [Optional] */\n mobileNumber?: InputMaybe<Scalars['String']['input']>;\n /** ... user full name */\n name: Scalars['String']['input'];\n};\n\nexport type CreateVacancyRq = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n requirement?: InputMaybe<Scalars['String']['input']>;\n responsibility?: InputMaybe<Scalars['String']['input']>;\n slug?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateVacancySettingsRq = {\n name?: InputMaybe<Scalars['String']['input']>;\n value?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\nexport type CreateVoucherGroupAutoGenRq = {\n /** amount of voucher that will auto generate */\n amount?: InputMaybe<Scalars['Int']['input']>;\n /** Timeout generation Input number in second */\n generationTimeout?: InputMaybe<Scalars['Int']['input']>;\n /** Minimum stock that will auto generate after reach */\n minThreshold?: InputMaybe<Scalars['Int']['input']>;\n /** GUID of voucher group */\n voucherGroupGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateVoucherGroupRq = {\n /** Currency */\n currency?: InputMaybe<Scalars['String']['input']>;\n /** to magnify value above before display to user */\n magnifyValue?: InputMaybe<Scalars['Int']['input']>;\n /** Name of voucher group */\n name?: InputMaybe<Scalars['String']['input']>;\n /** Voucher that have pin, this one to set the pattern */\n pinPattern?: InputMaybe<Scalars['JSON']['input']>;\n /** Voucher that have serial, this one to set the pattern */\n serialPattern?: InputMaybe<Scalars['JSON']['input']>;\n /** Type of voucher group */\n type?: InputMaybe<VoucherGroupType>;\n /** Voucher price to check when redeem */\n value?: InputMaybe<Scalars['Int']['input']>;\n /** Code for API type voucher only */\n voucherApiCode?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateVoucherRequestRq = {\n amount?: InputMaybe<Scalars['Int']['input']>;\n emailTo?: InputMaybe<Scalars['String']['input']>;\n expiredAt?: InputMaybe<Scalars['DateTime']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n merchantReference?: InputMaybe<Scalars['String']['input']>;\n messageTo?: InputMaybe<Scalars['String']['input']>;\n msSource?: InputMaybe<Scalars['String']['input']>;\n quantity?: InputMaybe<Scalars['Int']['input']>;\n remark?: InputMaybe<Scalars['String']['input']>;\n remarkExt?: InputMaybe<Scalars['String']['input']>;\n voucherGroupGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateVoucherRq = {\n /** voucher activation pin */\n activationPin?: InputMaybe<Scalars['String']['input']>;\n /** merchant guid */\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n /** voucher name */\n name?: InputMaybe<Scalars['String']['input']>;\n /** start date for this voucher able to redeemed */\n redeemableFrom?: InputMaybe<Scalars['DateTime']['input']>;\n /** end date for this voucher able to redeemed */\n redeemableTo?: InputMaybe<Scalars['DateTime']['input']>;\n /** voucher serial number */\n serialNumber?: InputMaybe<Scalars['String']['input']>;\n /** voucher softpin */\n softpin?: InputMaybe<Scalars['String']['input']>;\n /** voucher url key */\n urlKey?: InputMaybe<Scalars['String']['input']>;\n /** voucher group associated with this voucher */\n voucherGroupGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateVoucherTransactionRq = {\n amount: Scalars['Float']['input'];\n countryCode?: InputMaybe<Scalars['String']['input']>;\n createdIp?: InputMaybe<Scalars['String']['input']>;\n currencyCode: Scalars['String']['input'];\n emailTo?: InputMaybe<Scalars['String']['input']>;\n itemCode: Scalars['String']['input'];\n merchantGuid: Scalars['String']['input'];\n merchantReference: Scalars['String']['input'];\n messageTo?: InputMaybe<Scalars['String']['input']>;\n msSource: Scalars['String']['input'];\n parentItemCode: Scalars['String']['input'];\n paymentGatewayRef?: InputMaybe<Scalars['String']['input']>;\n quantity: Scalars['Int']['input'];\n remark?: InputMaybe<Scalars['String']['input']>;\n remarkExt?: InputMaybe<Scalars['String']['input']>;\n transactionReference: Scalars['String']['input'];\n type: Scalars['String']['input'];\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateVoucherTransactionTrailRq = {\n createdIp?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n request?: InputMaybe<Scalars['JSON']['input']>;\n response?: InputMaybe<Scalars['JSON']['input']>;\n transactionGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateWebConfigRq = {\n code?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n jsonValue?: InputMaybe<Scalars['String']['input']>;\n numberValue?: InputMaybe<Scalars['Int']['input']>;\n stringValue?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type Credential = {\n __typename?: 'Credential';\n code?: Maybe<Scalars['String']['output']>;\n companyGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n credentialDetail?: Maybe<Array<Maybe<CredentialDetail>>>;\n guid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<CredentialStatus>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n version?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CredentialDetail = {\n __typename?: 'CredentialDetail';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n credentialGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n isLatest?: Maybe<Scalars['Boolean']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n type?: Maybe<CredentialType>;\n value?: Maybe<Scalars['String']['output']>;\n version?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CredentialFilter = {\n code?: InputMaybe<Scalars['String']['input']>;\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n isDecrypt?: Scalars['Boolean']['input'];\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: CredentialStatus;\n type?: InputMaybe<CredentialType>;\n};\n\nexport type CredentialRs = {\n __typename?: 'CredentialRs';\n data?: Maybe<Array<Maybe<Credential>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum CredentialStatus {\n Active = 'ACTIVE',\n Deleted = 'DELETED'\n}\n\nexport type CredentialTrail = {\n __typename?: 'CredentialTrail';\n code?: Maybe<Scalars['String']['output']>;\n companyGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n details?: Maybe<Array<Maybe<CredentialDetail>>>;\n guid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<CredentialStatus>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n version?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CredentialTrailRs = {\n __typename?: 'CredentialTrailRs';\n data?: Maybe<Array<Maybe<CredentialTrail>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum CredentialType {\n Secret = 'SECRET',\n Variable = 'VARIABLE'\n}\n\nexport type Currency = {\n __typename?: 'Currency';\n code?: Maybe<Scalars['String']['output']>;\n createdDate?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n magnifyValue?: Maybe<Scalars['Int']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedDate?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type CurrencyBase = {\n __typename?: 'CurrencyBase';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n currencyByCode?: Maybe<Currency>;\n guid?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type CurrencyBaseFilter = {\n currencyCode?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CurrencyQueryCriteria = {\n code?: InputMaybe<Array<Scalars['String']['input']>>;\n guid?: InputMaybe<Array<Scalars['String']['input']>>;\n magnifyValues?: InputMaybe<Array<Scalars['Int']['input']>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type CurrencyResult = {\n __typename?: 'CurrencyResult';\n data: Array<Maybe<Currency>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type DeliveryRequest = {\n credentialGuid: Scalars['String']['input'];\n gameChildCode: Scalars['String']['input'];\n gameParentCode: Scalars['String']['input'];\n merchantCode: Scalars['String']['input'];\n platform: PlatformEnum;\n signature: Scalars['String']['input'];\n transactionRef: Scalars['String']['input'];\n txnAmount: Scalars['String']['input'];\n};\n\nexport type DeliveryResponse = {\n __typename?: 'DeliveryResponse';\n data?: Maybe<Scalars['JSON']['output']>;\n error?: Maybe<Scalars['JSON']['output']>;\n status?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type DenomGroup = {\n __typename?: 'DenomGroup';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n denominations?: Maybe<Array<Maybe<ProductDenomination>>>;\n file?: Maybe<FetchFileResponse>;\n guid?: Maybe<Scalars['String']['output']>;\n imageGuid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n productPageGuid?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type DenomGroupCriteria = {\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n productPageGuid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type DenomGroupRs = {\n __typename?: 'DenomGroupRs';\n data?: Maybe<Array<Maybe<DenomGroup>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type DenomSelectionInput = {\n /** amount */\n selectedAmount: Scalars['String']['input'];\n /** description */\n selectedDenom: Scalars['String']['input'];\n};\n\nexport type DenominationDetails = {\n __typename?: 'DenominationDetails';\n ccyCode?: Maybe<Scalars['String']['output']>;\n itemCode?: Maybe<Scalars['String']['output']>;\n magnifyValue?: Maybe<Scalars['Int']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n price?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type DenominationDetailsQueryCriteria = {\n itemCode?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type DetachPermRq = {\n /** permission identifier */\n permsGuid: Array<InputMaybe<Scalars['String']['input']>>;\n /** role identifier */\n roleGuid: Scalars['String']['input'];\n};\n\nexport type DocumentRequest = {\n __typename?: 'DocumentRequest';\n authUserGuid?: Maybe<Scalars['String']['output']>;\n fields?: Maybe<Array<Maybe<DocumentRequestField>>>;\n file?: Maybe<DocumentRequestFile>;\n guid?: Maybe<Scalars['String']['output']>;\n requestStatus?: Maybe<DocumentRequestStatus>;\n signer?: Maybe<Array<Maybe<DocumentRequestSigner>>>;\n subject?: Maybe<Scalars['String']['output']>;\n templateGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type DocumentRequestField = {\n __typename?: 'DocumentRequestField';\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n value?: Maybe<Scalars['String']['output']>;\n};\n\nexport type DocumentRequestFieldReq = {\n name?: InputMaybe<Scalars['String']['input']>;\n value?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type DocumentRequestFile = {\n __typename?: 'DocumentRequestFile';\n fileGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n version?: Maybe<Scalars['String']['output']>;\n};\n\nexport type DocumentRequestFileReq = {\n fileGuid?: InputMaybe<Scalars['String']['input']>;\n version?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type DocumentRequestFilter = {\n documentGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type DocumentRequestInput = {\n fields?: InputMaybe<Array<InputMaybe<DocumentRequestFieldReq>>>;\n signer?: InputMaybe<Array<InputMaybe<DocumentRequestSignerReq>>>;\n subject?: InputMaybe<Scalars['String']['input']>;\n templateGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum DocumentRequestSignStatus {\n Approved = 'APPROVED',\n Pending = 'PENDING',\n Rejected = 'REJECTED'\n}\n\nexport type DocumentRequestSigner = {\n __typename?: 'DocumentRequestSigner';\n actionAt?: Maybe<Scalars['DateTime']['output']>;\n authUserGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n permissionGuid?: Maybe<Scalars['String']['output']>;\n signIndex?: Maybe<Scalars['Int']['output']>;\n signStatus?: Maybe<Scalars['String']['output']>;\n};\n\nexport type DocumentRequestSignerReq = {\n authUserGuid?: InputMaybe<Scalars['String']['input']>;\n permissionGuid?: InputMaybe<Scalars['String']['input']>;\n signIndex?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport enum DocumentRequestStatus {\n Approved = 'APPROVED',\n Pending = 'PENDING',\n Rejected = 'REJECTED'\n}\n\nexport type DocumentRequestUpdateInput = {\n fields?: InputMaybe<Array<InputMaybe<DocumentRequestFieldReq>>>;\n file?: InputMaybe<Array<InputMaybe<DocumentRequestFileReq>>>;\n guid?: InputMaybe<Scalars['String']['input']>;\n signer?: InputMaybe<Array<InputMaybe<DocumentRequestSignerReq>>>;\n subject?: InputMaybe<Scalars['String']['input']>;\n templateGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type DocumentTemplate = {\n __typename?: 'DocumentTemplate';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n fields?: Maybe<Scalars['JSON']['output']>;\n footer?: Maybe<Scalars['JSON']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n header?: Maybe<Scalars['JSON']['output']>;\n logo?: Maybe<FetchFileResponse>;\n name?: Maybe<Scalars['String']['output']>;\n signs?: Maybe<Scalars['JSON']['output']>;\n status?: Maybe<DocumentTemplateStatus>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n watermark?: Maybe<FetchFileResponse>;\n};\n\nexport type DocumentTemplateFilter = {\n guid?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<DocumentTemplateStatus>;\n};\n\nexport type DocumentTemplateResponse = {\n __typename?: 'DocumentTemplateResponse';\n data?: Maybe<Array<Maybe<DocumentTemplate>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum DocumentTemplateStatus {\n Active = 'ACTIVE',\n Deleted = 'DELETED'\n}\n\nexport type EmailMessageTemplate = {\n __typename?: 'EmailMessageTemplate';\n createdDate?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n messageId?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedDate?: Maybe<Scalars['DateTime']['output']>;\n value?: Maybe<Scalars['String']['output']>;\n};\n\nexport type EmailMessageTemplatePageableResult = {\n __typename?: 'EmailMessageTemplatePageableResult';\n data: Array<Maybe<EmailMessageTemplate>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type EmailMsgTemplateCriteria = {\n /** ... message template identifier */\n guid?: InputMaybe<Scalars['String']['input']>;\n /** ... message id */\n messageId?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport enum ErrorDetail {\n /**\n * The deadline expired before the operation could complete.\n *\n * For operations that change the state of the system, this error\n * may be returned even if the operation has completed successfully.\n * For example, a successful response from a server could have been\n * delayed long enough for the deadline to expire.\n *\n * HTTP Mapping: 504 Gateway Timeout\n * Error Type: UNAVAILABLE\n */\n DeadlineExceeded = 'DEADLINE_EXCEEDED',\n /**\n * The server detected that the client is exhibiting a behavior that\n * might be generating excessive load.\n *\n * HTTP Mapping: 429 Too Many Requests or 420 Enhance Your Calm\n * Error Type: UNAVAILABLE\n */\n EnhanceYourCalm = 'ENHANCE_YOUR_CALM',\n /**\n * The requested field is not found in the schema.\n *\n * This differs from `NOT_FOUND` in that `NOT_FOUND` should be used when a\n * query is valid, but is unable to return a result (if, for example, a\n * specific video id doesn't exist). `FIELD_NOT_FOUND` is intended to be\n * returned by the server to signify that the requested field is not known to exist.\n * This may be returned in lieu of failing the entire query.\n * See also `PERMISSION_DENIED` for cases where the\n * requested field is invalid only for the given user or class of users.\n *\n * HTTP Mapping: 404 Not Found\n * Error Type: BAD_REQUEST\n */\n FieldNotFound = 'FIELD_NOT_FOUND',\n /**\n * The client specified an invalid argument.\n *\n * Note that this differs from `FAILED_PRECONDITION`.\n * `INVALID_ARGUMENT` indicates arguments that are problematic\n * regardless of the state of the system (e.g., a malformed file name).\n *\n * HTTP Mapping: 400 Bad Request\n * Error Type: BAD_REQUEST\n */\n InvalidArgument = 'INVALID_ARGUMENT',\n /**\n * The provided cursor is not valid.\n *\n * The most common usage for this error is when a client is paginating\n * through a list that uses stateful cursors. In that case, the provided\n * cursor may be expired.\n *\n * HTTP Mapping: 404 Not Found\n * Error Type: NOT_FOUND\n */\n InvalidCursor = 'INVALID_CURSOR',\n /**\n * Unable to perform operation because a required resource is missing.\n *\n * Example: Client is attempting to refresh a list, but the specified\n * list is expired. This requires an action by the client to get a new list.\n *\n * If the user is simply trying GET a resource that is not found,\n * use the NOT_FOUND error type. FAILED_PRECONDITION.MISSING_RESOURCE\n * is to be used particularly when the user is performing an operation\n * that requires a particular resource to exist.\n *\n * HTTP Mapping: 400 Bad Request or 500 Internal Server Error\n * Error Type: FAILED_PRECONDITION\n */\n MissingResource = 'MISSING_RESOURCE',\n /**\n * Service Error.\n *\n * There is a problem with an upstream service.\n *\n * This may be returned if a gateway receives an unknown error from a service\n * or if a service is unreachable.\n * If a request times out which waiting on a response from a service,\n * `DEADLINE_EXCEEDED` may be returned instead.\n * If a service returns a more specific error Type, the specific error Type may\n * be returned instead.\n *\n * HTTP Mapping: 502 Bad Gateway\n * Error Type: UNAVAILABLE\n */\n ServiceError = 'SERVICE_ERROR',\n /**\n * Request failed due to network errors.\n *\n * HTTP Mapping: 503 Unavailable\n * Error Type: UNAVAILABLE\n */\n TcpFailure = 'TCP_FAILURE',\n /**\n * Request throttled based on server concurrency limits.\n *\n * HTTP Mapping: 503 Unavailable\n * Error Type: UNAVAILABLE\n */\n ThrottledConcurrency = 'THROTTLED_CONCURRENCY',\n /**\n * Request throttled based on server CPU limits\n *\n * HTTP Mapping: 503 Unavailable.\n * Error Type: UNAVAILABLE\n */\n ThrottledCpu = 'THROTTLED_CPU',\n /**\n * The operation is not implemented or is not currently supported/enabled.\n *\n * HTTP Mapping: 501 Not Implemented\n * Error Type: BAD_REQUEST\n */\n Unimplemented = 'UNIMPLEMENTED',\n /**\n * Unknown error.\n *\n * This error should only be returned when no other error detail applies.\n * If a client sees an unknown errorDetail, it will be interpreted as UNKNOWN.\n *\n * HTTP Mapping: 500 Internal Server Error\n */\n Unknown = 'UNKNOWN'\n}\n\nexport enum ErrorType {\n /**\n * Bad Request.\n *\n * There is a problem with the request.\n * Retrying the same request is not likely to succeed.\n * An example would be a query or argument that cannot be deserialized.\n *\n * HTTP Mapping: 400 Bad Request\n */\n BadRequest = 'BAD_REQUEST',\n /**\n * The operation was rejected because the system is not in a state\n * required for the operation's execution. For example, the directory\n * to be deleted is non-empty, an rmdir operation is applied to\n * a non-directory, etc.\n *\n * Service implementers can use the following guidelines to decide\n * between `FAILED_PRECONDITION` and `UNAVAILABLE`:\n *\n * - Use `UNAVAILABLE` if the client can retry just the failing call.\n * - Use `FAILED_PRECONDITION` if the client should not retry until\n * the system state has been explicitly fixed. E.g., if an \"rmdir\"\n * fails because the directory is non-empty, `FAILED_PRECONDITION`\n * should be returned since the client should not retry unless\n * the files are deleted from the directory.\n *\n * HTTP Mapping: 400 Bad Request or 500 Internal Server Error\n */\n FailedPrecondition = 'FAILED_PRECONDITION',\n /**\n * Internal error.\n *\n * An unexpected internal error was encountered. This means that some\n * invariants expected by the underlying system have been broken.\n * This error code is reserved for serious errors.\n *\n * HTTP Mapping: 500 Internal Server Error\n */\n Internal = 'INTERNAL',\n /**\n * The requested entity was not found.\n *\n * This could apply to a resource that has never existed (e.g. bad resource id),\n * or a resource that no longer exists (e.g. cache expired.)\n *\n * Note to server developers: if a request is denied for an entire class\n * of users, such as gradual feature rollout or undocumented allowlist,\n * `NOT_FOUND` may be used. If a request is denied for some users within\n * a class of users, such as user-based access control, `PERMISSION_DENIED`\n * must be used.\n *\n * HTTP Mapping: 404 Not Found\n */\n NotFound = 'NOT_FOUND',\n /**\n * The caller does not have permission to execute the specified\n * operation.\n *\n * `PERMISSION_DENIED` must not be used for rejections\n * caused by exhausting some resource or quota.\n * `PERMISSION_DENIED` must not be used if the caller\n * cannot be identified (use `UNAUTHENTICATED`\n * instead for those errors).\n *\n * This error Type does not imply the\n * request is valid or the requested entity exists or satisfies\n * other pre-conditions.\n *\n * HTTP Mapping: 403 Forbidden\n */\n PermissionDenied = 'PERMISSION_DENIED',\n /**\n * The request does not have valid authentication credentials.\n *\n * This is intended to be returned only for routes that require\n * authentication.\n *\n * HTTP Mapping: 401 Unauthorized\n */\n Unauthenticated = 'UNAUTHENTICATED',\n /**\n * Currently Unavailable.\n *\n * The service is currently unavailable. This is most likely a\n * transient condition, which can be corrected by retrying with\n * a backoff.\n *\n * HTTP Mapping: 503 Unavailable\n */\n Unavailable = 'UNAVAILABLE',\n /**\n * Unknown error.\n *\n * For example, this error may be returned when\n * an error code received from another address space belongs to\n * an error space that is not known in this address space. Also\n * errors raised by APIs that do not return enough error information\n * may be converted to this error.\n *\n * If a client sees an unknown errorType, it will be interpreted as UNKNOWN.\n * Unknown errors MUST NOT trigger any special behavior. These MAY be treated\n * by an implementation as being equivalent to INTERNAL.\n *\n * When possible, a more specific error should be provided.\n *\n * HTTP Mapping: 520 Unknown Error\n */\n Unknown = 'UNKNOWN'\n}\n\nexport enum EstDeliveryTimeUnit {\n Day = 'DAY',\n Month = 'MONTH',\n Week = 'WEEK',\n Workday = 'WORKDAY'\n}\n\nexport enum EvaluationUnitEnum {\n Day = 'DAY',\n Month = 'MONTH',\n Year = 'YEAR'\n}\n\nexport enum EventBonusType {\n FixAmount = 'FIX_AMOUNT',\n Percentage = 'PERCENTAGE',\n SpecialPrice = 'SPECIAL_PRICE'\n}\n\nexport type EventLog = {\n __typename?: 'EventLog';\n amount?: Maybe<Scalars['Float']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n currency?: Maybe<Scalars['String']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n eventChannel?: Maybe<PaymentChannel>;\n eventProduct?: Maybe<ProductPage>;\n guid?: Maybe<Scalars['String']['output']>;\n paymentProviderGuid?: Maybe<Scalars['String']['output']>;\n pin?: Maybe<Scalars['String']['output']>;\n prizeGuid?: Maybe<Scalars['String']['output']>;\n reference?: Maybe<Scalars['String']['output']>;\n remark?: Maybe<Scalars['String']['output']>;\n serial?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n user?: Maybe<AppLoginSubject>;\n userInfo?: Maybe<Scalars['String']['output']>;\n utmCampaign?: Maybe<Scalars['String']['output']>;\n utmMedium?: Maybe<Scalars['String']['output']>;\n utmSource?: Maybe<Scalars['String']['output']>;\n value?: Maybe<Scalars['String']['output']>;\n};\n\nexport type EventLogRs = {\n __typename?: 'EventLogRs';\n data?: Maybe<Array<Maybe<EventLog>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type EventLogsCriteria = {\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n paymentProviderGuid?: InputMaybe<Scalars['String']['input']>;\n pin?: InputMaybe<Scalars['String']['input']>;\n prizeGuid?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n reference?: InputMaybe<Scalars['String']['input']>;\n serial?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n utmCampaign?: InputMaybe<Scalars['String']['input']>;\n utmMedium?: InputMaybe<Scalars['String']['input']>;\n utmSource?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type EventManagements = {\n __typename?: 'EventManagements';\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n dcmGuid?: Maybe<Scalars['String']['output']>;\n endDate?: Maybe<Scalars['DateTime']['output']>;\n eventAmount?: Maybe<Scalars['Long']['output']>;\n eventBonusAmount?: Maybe<Scalars['Long']['output']>;\n eventBonusType?: Maybe<Scalars['String']['output']>;\n eventQuota?: Maybe<Scalars['Int']['output']>;\n eventQuotaType?: Maybe<Scalars['String']['output']>;\n fields?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n imageGuid?: Maybe<Scalars['String']['output']>;\n isFirstTimePay?: Maybe<Scalars['Boolean']['output']>;\n isRedRibbonFlag?: Maybe<Scalars['Boolean']['output']>;\n isReload?: Maybe<Scalars['Boolean']['output']>;\n isUniquePaymentQuota?: Maybe<Scalars['Boolean']['output']>;\n isUniqueUserDaily?: Maybe<Scalars['Boolean']['output']>;\n isWebtopup?: Maybe<Scalars['Boolean']['output']>;\n isWeekendOnly?: Maybe<Scalars['Boolean']['output']>;\n maximumEventBonus?: Maybe<Scalars['Int']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n mobileImageGuid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n slug?: Maybe<Scalars['String']['output']>;\n specialPriceAmount?: Maybe<Scalars['JSON']['output']>;\n startDate?: Maybe<Scalars['DateTime']['output']>;\n startHour?: Maybe<Scalars['Int']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n title?: Maybe<Scalars['String']['output']>;\n tncUrl?: Maybe<Scalars['String']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type EventManagementsQueryCriteria = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type EventManagementsRs = {\n __typename?: 'EventManagementsRs';\n data: Array<Maybe<EventManagements>>;\n totalRecord: Scalars['Int']['output'];\n};\n\nexport type EventParticipation = {\n __typename?: 'EventParticipation';\n additionalData?: Maybe<Scalars['String']['output']>;\n address?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n email?: Maybe<Scalars['String']['output']>;\n eventChannel?: Maybe<PaymentChannel>;\n eventProduct?: Maybe<ProductPage>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n paymentProviderGuid?: Maybe<Scalars['String']['output']>;\n phone?: Maybe<Scalars['String']['output']>;\n reference?: Maybe<Scalars['String']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n user?: Maybe<AppLoginSubject>;\n};\n\nexport type EventParticipationCriteria = {\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n email?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n paymentProviderGuid?: InputMaybe<Scalars['String']['input']>;\n phone?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n reference?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type EventParticipationRs = {\n __typename?: 'EventParticipationRs';\n data?: Maybe<Array<Maybe<EventParticipation>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum EventQuotaType {\n ByAmount = 'BY_AMOUNT',\n Daily = 'DAILY',\n Monthly = 'MONTHLY'\n}\n\nexport enum EventType {\n Created = 'CREATED',\n Update = 'UPDATE'\n}\n\nexport type FetchFileResponse = {\n __typename?: 'FetchFileResponse';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n fileName?: Maybe<Scalars['String']['output']>;\n filePath?: Maybe<Scalars['String']['output']>;\n fileSize?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n publicUrl?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n userGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type File = {\n __typename?: 'File';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n fileName?: Maybe<Scalars['String']['output']>;\n filePath?: Maybe<Scalars['String']['output']>;\n fileSize?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n userGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type FileUploadResponse = {\n __typename?: 'FileUploadResponse';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n fileName?: Maybe<Scalars['String']['output']>;\n filePath?: Maybe<Scalars['String']['output']>;\n fileSize?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n isPublic?: Maybe<Scalars['Boolean']['output']>;\n publicUrl?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n userGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type FirebaseIdTokenRes = {\n __typename?: 'FirebaseIdTokenRes';\n expiresIn?: Maybe<Scalars['String']['output']>;\n idToken?: Maybe<Scalars['String']['output']>;\n isNewUser?: Maybe<Scalars['Boolean']['output']>;\n refreshToken?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ForceUpdateTransactionStatusRq = {\n remark?: InputMaybe<Scalars['String']['input']>;\n status: PaymentTxnResponseStatusEnum;\n transactionGuid: Scalars['String']['input'];\n};\n\nexport type ForgotPassOtpRq = {\n /** ... email attached to user */\n email?: InputMaybe<Scalars['String']['input']>;\n /** ... mobile number attached to user */\n mobileNumber?: InputMaybe<Scalars['String']['input']>;\n /** ... source platform where user registered */\n sourcePlatform: SourcePlatform;\n};\n\nexport type ForgotPassRq = {\n /** ... new user password to replace old password */\n newPassword: Scalars['String']['input'];\n /** ... email or mobile nummber attached to user */\n principalId: Scalars['String']['input'];\n /** ... source platform where user registered */\n sourcePlatform: SourcePlatform;\n /** ... verification code requested before restet password */\n verifCode: Scalars['String']['input'];\n};\n\nexport type GameRequiredField = {\n __typename?: 'GameRequiredField';\n dependant?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n options?: Maybe<Array<Maybe<Option>>>;\n type?: Maybe<Scalars['String']['output']>;\n};\n\nexport type GameRequiredFieldInput = {\n serverId?: InputMaybe<Scalars['String']['input']>;\n userId?: InputMaybe<Scalars['String']['input']>;\n username?: InputMaybe<Scalars['String']['input']>;\n zoneId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type GameTrail = {\n __typename?: 'GameTrail';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n eventType?: Maybe<Scalars['String']['output']>;\n gameId?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n requestData?: Maybe<Scalars['JSON']['output']>;\n requestPlatform?: Maybe<Scalars['String']['output']>;\n responseData?: Maybe<Scalars['JSON']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n txnRef?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type GameTransactionCreateRequest = {\n additionalData?: InputMaybe<Scalars['JSON']['input']>;\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n productGuid?: InputMaybe<Scalars['String']['input']>;\n requestPlatform?: InputMaybe<PlatformEnum>;\n sourceIp?: InputMaybe<Scalars['String']['input']>;\n transactionRef?: InputMaybe<Scalars['String']['input']>;\n txnCountryCode?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type GameTransactionQueryCriteria = {\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n gameRef?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n productGuid?: InputMaybe<Scalars['String']['input']>;\n requestPlatform?: InputMaybe<Scalars['String']['input']>;\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n sourceIp?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n transactionRef?: InputMaybe<Scalars['String']['input']>;\n txnCountryCode?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type GameTransactionUpdateRequest = {\n additionalData?: InputMaybe<Scalars['JSON']['input']>;\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n productGuid?: InputMaybe<Scalars['String']['input']>;\n requestPlatform?: InputMaybe<PlatformEnum>;\n sourceIp?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n txnCountryCode?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type GameTransactions = {\n __typename?: 'GameTransactions';\n additionalData?: Maybe<Scalars['JSON']['output']>;\n ccyCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['String']['output']>;\n gameRef?: Maybe<Scalars['String']['output']>;\n gameTrail?: Maybe<GameTrail>;\n guid?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n productDenomGuid?: Maybe<Scalars['String']['output']>;\n productGuid?: Maybe<Scalars['String']['output']>;\n requestPlatform?: Maybe<Scalars['String']['output']>;\n sourceIp?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n transactionRef?: Maybe<Scalars['String']['output']>;\n txnCountryCode?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['String']['output']>;\n userGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type GatewayCreateOrderRq = {\n /** Voucher Code on our side */\n denominationCode?: InputMaybe<Scalars['String']['input']>;\n /** Transaction Id for this voucher transaction */\n orderNo: Scalars['String']['input'];\n /** Product Id on 3rd party side */\n partnerProductId?: InputMaybe<Scalars['String']['input']>;\n /** Voucher API Code from Voucher Group */\n voucherCode?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum Gender {\n Female = 'FEMALE',\n Male = 'MALE'\n}\n\nexport type GenerateVoucherRq = {\n expiredDate?: InputMaybe<Scalars['DateTime']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n quantity: Scalars['Int']['input'];\n voucherGroupGuid: Scalars['String']['input'];\n};\n\nexport type GithubEvent = {\n __typename?: 'GithubEvent';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n eventAction?: Maybe<Scalars['String']['output']>;\n eventNumber?: Maybe<Scalars['Int']['output']>;\n eventType?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n messageJson?: Maybe<Scalars['JSON']['output']>;\n};\n\nexport type GithubEventCardLink = {\n __typename?: 'GithubEventCardLink';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGithubUser?: Maybe<Scalars['String']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n events?: Maybe<GithubEvent>;\n guid?: Maybe<Scalars['String']['output']>;\n needActionFromGithubUser?: Maybe<Scalars['String']['output']>;\n relatedConversationChild?: Maybe<Array<Maybe<GithubEventCardLink>>>;\n relatedConversationGroup?: Maybe<Array<Maybe<GithubEventCardLink>>>;\n relatedIssues?: Maybe<Array<Maybe<GithubEventCardLink>>>;\n relatedPRReview?: Maybe<Array<Maybe<GithubEventCardLink>>>;\n relatedPullRequest?: Maybe<Array<Maybe<GithubEventCardLink>>>;\n repositoryUrl?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n state?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n type?: Maybe<GithubEventTypeEnum>;\n typeNumber?: Maybe<Scalars['Int']['output']>;\n typeUrl?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGithubUser?: Maybe<Scalars['String']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type GithubEventCardLinkFilter = {\n cardGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n repositoryUrl?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n states?: InputMaybe<Array<Scalars['String']['input']>>;\n status?: InputMaybe<Scalars['String']['input']>;\n typeNumber?: InputMaybe<Scalars['Int']['input']>;\n typeUrl?: InputMaybe<Scalars['String']['input']>;\n types?: InputMaybe<Array<GithubEventTypeEnum>>;\n};\n\nexport type GithubEventCardLinkRs = {\n __typename?: 'GithubEventCardLinkRs';\n data?: Maybe<Array<Maybe<GithubEventCardLink>>>;\n totalData?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum GithubEventTypeEnum {\n CommitComment = 'COMMIT_COMMENT',\n Create = 'CREATE',\n Delete = 'DELETE',\n Deployment = 'DEPLOYMENT',\n DeploymentStatus = 'DEPLOYMENT_STATUS',\n Fork = 'FORK',\n Gollum = 'GOLLUM',\n Issues = 'ISSUES',\n IssueComment = 'ISSUE_COMMENT',\n Label = 'LABEL',\n Member = 'MEMBER',\n Membership = 'MEMBERSHIP',\n Milestone = 'MILESTONE',\n Organization = 'ORGANIZATION',\n OrgBlock = 'ORG_BLOCK',\n PageBuild = 'PAGE_BUILD',\n Ping = 'PING',\n Project = 'PROJECT',\n ProjectCard = 'PROJECT_CARD',\n ProjectColumn = 'PROJECT_COLUMN',\n Public = 'PUBLIC',\n PullRequest = 'PULL_REQUEST',\n PullRequestReview = 'PULL_REQUEST_REVIEW',\n PullRequestReviewComment = 'PULL_REQUEST_REVIEW_COMMENT',\n PullRequestReviewThread = 'PULL_REQUEST_REVIEW_THREAD',\n Push = 'PUSH',\n Release = 'RELEASE',\n Repository = 'REPOSITORY',\n RepositoryDispatch = 'REPOSITORY_DISPATCH',\n Status = 'STATUS',\n Team = 'TEAM',\n TeamAdd = 'TEAM_ADD',\n Watch = 'WATCH'\n}\n\nexport type HistoryAgreement = {\n __typename?: 'HistoryAgreement';\n content?: Maybe<Scalars['String']['output']>;\n countryCode?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n publishDate?: Maybe<Scalars['DateTime']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n version?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type HistoryAgreementQueryCriteria = {\n agreementCode?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n countryCode?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n guid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Array<InputMaybe<Status>>>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n version?: InputMaybe<Array<InputMaybe<Scalars['Int']['input']>>>;\n};\n\nexport type Idempotent = {\n __typename?: 'Idempotent';\n idempotent: Scalars['String']['output'];\n};\n\nexport type InitiateLinkageRq = {\n phone?: InputMaybe<Scalars['String']['input']>;\n providerCode: Scalars['String']['input'];\n};\n\nexport type InquiryRequest = {\n amount: Scalars['String']['input'];\n channelCategory: Scalars['String']['input'];\n channelCode: Scalars['String']['input'];\n countryCode: Scalars['String']['input'];\n credentialGuid: Scalars['String']['input'];\n currencyCode: Scalars['String']['input'];\n gameChildCode: Scalars['String']['input'];\n gameFieldJson: Scalars['JSON']['input'];\n gameParentCode: Scalars['String']['input'];\n platform: PlatformEnum;\n productId: Scalars['String']['input'];\n userLang?: Scalars['String']['input'];\n};\n\nexport type InquiryResponse = {\n __typename?: 'InquiryResponse';\n data?: Maybe<Scalars['JSON']['output']>;\n error?: Maybe<Scalars['JSON']['output']>;\n status?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum InternalRefundStatusEnum {\n Done = 'DONE',\n Pending = 'PENDING',\n ProcessedByMaker = 'PROCESSED_BY_MAKER',\n Processing = 'PROCESSING'\n}\n\nexport enum InternalStatus {\n Completed = 'COMPLETED',\n Fail = 'FAIL',\n PendingApproval = 'PENDING_APPROVAL',\n Processing = 'PROCESSING',\n Rejected = 'REJECTED',\n Todo = 'TODO'\n}\n\nexport type Ip = {\n __typename?: 'Ip';\n createdAt?: Maybe<Scalars['String']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n ipRange?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['String']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type IpQueryCriteria = {\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n ipRange?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type IpRs = {\n __typename?: 'IpRs';\n data?: Maybe<Array<Maybe<Ip>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type ItemPriceList = {\n __typename?: 'ItemPriceList';\n amount?: Maybe<Scalars['String']['output']>;\n code?: Maybe<Scalars['String']['output']>;\n currency?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Label = {\n __typename?: 'Label';\n board?: Maybe<Board>;\n boardGuid?: Maybe<Scalars['String']['output']>;\n cardLabel?: Maybe<Array<Maybe<CardLabel>>>;\n color?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n deletedBy?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n order?: Maybe<Scalars['Int']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type LabelCriteria = {\n boardGuid?: InputMaybe<Scalars['String']['input']>;\n color?: InputMaybe<Scalars['String']['input']>;\n guids: Array<InputMaybe<Scalars['String']['input']>>;\n name?: InputMaybe<Scalars['String']['input']>;\n order?: InputMaybe<Scalars['Int']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type LabelRs = {\n __typename?: 'LabelRs';\n data?: Maybe<Array<Maybe<Label>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type LangCode = {\n __typename?: 'LangCode';\n code?: Maybe<Scalars['String']['output']>;\n createdDate?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedDate?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type LinkablePaymentProvider = {\n __typename?: 'LinkablePaymentProvider';\n paymentProviders?: Maybe<Array<Maybe<PaymentProvider>>>;\n};\n\nexport type LinkageAccount = {\n __typename?: 'LinkageAccount';\n createdAt?: Maybe<Scalars['String']['output']>;\n expiredAt?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n linkagePaymentData?: Maybe<LinkagePaymentData>;\n paymentChannelGuid?: Maybe<Scalars['String']['output']>;\n paymentProviderCode?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['String']['output']>;\n userGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type LinkageAction = {\n __typename?: 'LinkageAction';\n qrCodeLink?: Maybe<Scalars['String']['output']>;\n redirectAppLink?: Maybe<Scalars['String']['output']>;\n redirectWebLink?: Maybe<Scalars['String']['output']>;\n};\n\nexport type LinkageInquiryRs = {\n __typename?: 'LinkageInquiryRs';\n linkageAccount?: Maybe<Array<Maybe<LinkageAccount>>>;\n};\n\nexport type LinkagePaymentData = {\n __typename?: 'LinkagePaymentData';\n active?: Maybe<Scalars['Boolean']['output']>;\n balance?: Maybe<Scalars['Int']['output']>;\n currency?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n};\n\nexport type LinkageRs = {\n __typename?: 'LinkageRs';\n action?: Maybe<LinkageAction>;\n linkageAccount?: Maybe<LinkageAccount>;\n message?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n};\n\nexport type LockPost = {\n __typename?: 'LockPost';\n guid?: Maybe<Scalars['String']['output']>;\n timestamp?: Maybe<Scalars['DateTime']['output']>;\n user?: Maybe<AppLoginSubject>;\n};\n\nexport type LoginResponse = {\n __typename?: 'LoginResponse';\n /** ... simple access token */\n accessToken?: Maybe<Scalars['String']['output']>;\n /** ... refresh token can use to request access token */\n refreshToken?: Maybe<Scalars['String']['output']>;\n roles?: Maybe<Array<Maybe<AppLoginRole>>>;\n /** ... suggested action */\n suggestedAction?: Maybe<SuggestedAction>;\n /** ... user detail */\n user?: Maybe<UserLogin>;\n};\n\nexport type LoginRq = {\n /** ... email registered to user */\n email?: InputMaybe<Scalars['String']['input']>;\n /** ... mobile number registered to user */\n mobileNumber?: InputMaybe<Scalars['String']['input']>;\n /** ... user password */\n password: Scalars['String']['input'];\n /** ... source platform where user registered */\n sourcePlatform: SourcePlatform;\n};\n\nexport enum MainAction {\n GoToChannelSelectionPage = 'GO_TO_CHANNEL_SELECTION_PAGE',\n GoToDenomSelectionPage = 'GO_TO_DENOM_SELECTION_PAGE',\n GoToFillPaymentRequiredFieldPage = 'GO_TO_FILL_PAYMENT_REQUIRED_FIELD_PAGE',\n GoToPciInitiationPage = 'GO_TO_PCI_INITIATION_PAGE'\n}\n\nexport type Member = {\n __typename?: 'Member';\n authUser?: Maybe<AppLoginSubject>;\n birthdayAt?: Maybe<Scalars['DateTime']['output']>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n email?: Maybe<Scalars['String']['output']>;\n gender?: Maybe<Scalars['String']['output']>;\n guid: Scalars['String']['output'];\n memberBan?: Maybe<MemberBan>;\n name?: Maybe<Scalars['String']['output']>;\n phone?: Maybe<Scalars['String']['output']>;\n preferredLangCode?: Maybe<Scalars['String']['output']>;\n referralCode?: Maybe<Scalars['String']['output']>;\n tiers?: Maybe<Array<Maybe<Tier>>>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type MemberBan = {\n __typename?: 'MemberBan';\n approvalActionAt?: Maybe<Scalars['DateTime']['output']>;\n approvalActionBy?: Maybe<AppLoginSubject>;\n approvalCreatedAt?: Maybe<Scalars['DateTime']['output']>;\n approvalData?: Maybe<Scalars['JSON']['output']>;\n approvalGuid?: Maybe<Scalars['String']['output']>;\n approvalStatus?: Maybe<Scalars['String']['output']>;\n approvalType?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<AppLoginSubject>;\n expiredAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n memberGuid?: Maybe<Scalars['String']['output']>;\n type?: Maybe<MemberBanType>;\n};\n\nexport enum MemberBanType {\n Ban = 'BAN',\n Unban = 'UNBAN'\n}\n\nexport type MemberCriteria = {\n banType?: InputMaybe<MemberBanType>;\n countryCodes?: InputMaybe<Array<Scalars['String']['input']>>;\n emails?: InputMaybe<Array<Scalars['String']['input']>>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n parentMemberGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n phones?: InputMaybe<Array<Scalars['String']['input']>>;\n referralCodes?: InputMaybe<Array<Scalars['String']['input']>>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n summaryCountryCodes?: InputMaybe<Array<Scalars['String']['input']>>;\n tierGuid?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type MemberPageableResponse = {\n __typename?: 'MemberPageableResponse';\n data?: Maybe<Array<Maybe<Member>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type MemberPoint = {\n __typename?: 'MemberPoint';\n amountSpent?: Maybe<Scalars['String']['output']>;\n countryId?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n currencyCode?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n memberGuid?: Maybe<Scalars['String']['output']>;\n pointRewarded?: Maybe<Scalars['Double']['output']>;\n reason?: Maybe<Scalars['String']['output']>;\n transactionRewardRef?: Maybe<Scalars['String']['output']>;\n type?: Maybe<MemberPointTypeEnum>;\n};\n\nexport type MemberPointCriteria = {\n amountSpent?: InputMaybe<Scalars['Int']['input']>;\n countryIds?: InputMaybe<Array<Scalars['String']['input']>>;\n currencyCodes?: InputMaybe<Array<Scalars['String']['input']>>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n memberGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n pointRewarded?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n transactionRewardRefs?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type MemberPointMutation = {\n __typename?: 'MemberPointMutation';\n countryId?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n currencyCode?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n isSystem?: Maybe<Scalars['Boolean']['output']>;\n memberGuid?: Maybe<Scalars['String']['output']>;\n pointAdd?: Maybe<Scalars['Double']['output']>;\n pointSubstract?: Maybe<Scalars['Double']['output']>;\n reason?: Maybe<Scalars['String']['output']>;\n transactionDate?: Maybe<Scalars['DateTime']['output']>;\n transactionSpentRef?: Maybe<Scalars['String']['output']>;\n type?: Maybe<MemberPointMutationTypeEnum>;\n};\n\nexport type MemberPointMutationCriteria = {\n countryIds?: InputMaybe<Array<Scalars['String']['input']>>;\n currencyCodes?: InputMaybe<Array<Scalars['String']['input']>>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n isSystem?: InputMaybe<Scalars['Boolean']['input']>;\n memberGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n pointAdd?: InputMaybe<Scalars['Int']['input']>;\n pointSubstract?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n transactionDate?: InputMaybe<Scalars['DateTime']['input']>;\n transactionSpentRefs?: InputMaybe<Array<Scalars['String']['input']>>;\n type?: InputMaybe<MemberPointMutationTypeEnum>;\n};\n\nexport enum MemberPointMutationTypeEnum {\n Adjustment = 'ADJUSTMENT',\n Bonus = 'BONUS',\n Rewarded = 'REWARDED',\n Spent = 'SPENT'\n}\n\nexport type MemberPointMutationsRs = {\n __typename?: 'MemberPointMutationsRs';\n data?: Maybe<Array<Maybe<MemberPointMutation>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type MemberPointSummary = {\n __typename?: 'MemberPointSummary';\n countryId?: Maybe<Scalars['String']['output']>;\n currencyCode?: Maybe<Scalars['String']['output']>;\n evaluationDate?: Maybe<Scalars['DateTime']['output']>;\n evaluationPoint?: Maybe<Scalars['Double']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n memberGuid?: Maybe<Scalars['String']['output']>;\n phone?: Maybe<Scalars['String']['output']>;\n points?: Maybe<Scalars['Double']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type MemberPointSummaryCriteria = {\n countryIds?: InputMaybe<Array<Scalars['String']['input']>>;\n currencyCodes?: InputMaybe<Array<Scalars['String']['input']>>;\n emails?: InputMaybe<Array<Scalars['String']['input']>>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n memberGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n phone?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n};\n\nexport type MemberPointSummaryRs = {\n __typename?: 'MemberPointSummaryRs';\n data?: Maybe<Array<Maybe<MemberPointSummary>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum MemberPointTypeEnum {\n Adjustment = 'ADJUSTMENT',\n Rewarded = 'REWARDED'\n}\n\nexport type MemberPointsRs = {\n __typename?: 'MemberPointsRs';\n data?: Maybe<Array<Maybe<MemberPoint>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type MembershipTimeseriesFilter = {\n aggType: AggregationTypeEnum;\n countryId?: InputMaybe<Scalars['String']['input']>;\n currencyCode?: InputMaybe<Scalars['String']['input']>;\n /** only for MEMBER_GROWTH_TS */\n gender?: InputMaybe<Scalars['String']['input']>;\n key: TimeseriesKeys;\n rangeInterval: RangeIntervalEnum;\n};\n\nexport type Merchant = {\n __typename?: 'Merchant';\n company?: Maybe<Company>;\n createBy?: Maybe<AppLoginSubject>;\n createdAt?: Maybe<Scalars['String']['output']>;\n creditLimit?: Maybe<Scalars['Float']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n logoGuid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n settlementCurrency?: Maybe<Scalars['String']['output']>;\n settlementType?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Status>;\n transactionalUser?: Maybe<AppLoginSubject>;\n updatedAt?: Maybe<Scalars['String']['output']>;\n updatedBy?: Maybe<AppLoginSubject>;\n};\n\nexport type MerchantBalance = {\n __typename?: 'MerchantBalance';\n ccyCode?: Maybe<Scalars['String']['output']>;\n createdBySubjectGuid?: Maybe<Scalars['String']['output']>;\n createdDate?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n merchantContractGuid?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n refundedCostAmount?: Maybe<Scalars['Int']['output']>;\n refundedCostMagnifyValue?: Maybe<Scalars['Int']['output']>;\n refundedFeeAmount?: Maybe<Scalars['Int']['output']>;\n refundedFeeMagnifyValue?: Maybe<Scalars['Int']['output']>;\n refundedGrossAmount?: Maybe<Scalars['Int']['output']>;\n refundedGrossMagnifyValue?: Maybe<Scalars['Int']['output']>;\n refundedNetAmount?: Maybe<Scalars['Int']['output']>;\n refundedNetMagnifyValue?: Maybe<Scalars['Int']['output']>;\n refundedTransactionCount?: Maybe<Scalars['Int']['output']>;\n refundedVatAmount?: Maybe<Scalars['Int']['output']>;\n refundedVatMagnifyValue?: Maybe<Scalars['Int']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n settlementCostAmount?: Maybe<Scalars['Int']['output']>;\n settlementCostMagnifyValue?: Maybe<Scalars['Int']['output']>;\n settlementFeeAmount?: Maybe<Scalars['Int']['output']>;\n settlementFeeMagnifyValue?: Maybe<Scalars['Int']['output']>;\n settlementGrossAmount?: Maybe<Scalars['Int']['output']>;\n settlementGrossMagnifyValue?: Maybe<Scalars['Int']['output']>;\n settlementNetAmount?: Maybe<Scalars['Int']['output']>;\n settlementNetMagnifyValue?: Maybe<Scalars['Int']['output']>;\n settlementVatAmount?: Maybe<Scalars['Int']['output']>;\n settlementVatMagnifyValue?: Maybe<Scalars['Int']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n transactionCount?: Maybe<Scalars['Int']['output']>;\n txnCostAmount?: Maybe<Scalars['Int']['output']>;\n txnCostMagnifyValue?: Maybe<Scalars['Int']['output']>;\n txnFeeAmount?: Maybe<Scalars['Int']['output']>;\n txnFeeMagnifyValue?: Maybe<Scalars['Int']['output']>;\n txnGrossAmount?: Maybe<Scalars['Int']['output']>;\n txnGrossMagnifyValue?: Maybe<Scalars['Int']['output']>;\n txnNetAmount?: Maybe<Scalars['Int']['output']>;\n txnNetMagnifyValue?: Maybe<Scalars['Int']['output']>;\n txnVatAmount?: Maybe<Scalars['Int']['output']>;\n txnVatMagnifyValue?: Maybe<Scalars['Int']['output']>;\n updatedBySubjectGuid?: Maybe<Scalars['String']['output']>;\n updatedDate?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type MerchantBalanceCriteria = {\n currencyCodes?: InputMaybe<Array<Scalars['String']['input']>>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n merchantContractGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n merchantGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n refundedTransactionCount?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: Scalars['String']['input'];\n transactionCount?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type MerchantBalanceRs = {\n __typename?: 'MerchantBalanceRs';\n data?: Maybe<Array<Maybe<MerchantBalance>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type MerchantContactFilterRq = {\n address?: InputMaybe<Scalars['String']['input']>;\n email?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n phone?: InputMaybe<Scalars['String']['input']>;\n position?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: Status;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type MerchantContactFilterRs = {\n __typename?: 'MerchantContactFilterRs';\n data?: Maybe<Array<Maybe<Contact>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type MerchantContract = {\n __typename?: 'MerchantContract';\n contractTemplate?: Maybe<ContractTemplate>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n merchant?: Maybe<Merchant>;\n name?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Status>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type MerchantContractCriteria = {\n code?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n merchantGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: Status;\n};\n\nexport type MerchantContractRs = PageableRs & {\n __typename?: 'MerchantContractRs';\n data?: Maybe<Array<Maybe<MerchantContract>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type MerchantFilter = {\n companyGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n companyName?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: Status;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type MerchantFilterRs = {\n __typename?: 'MerchantFilterRs';\n data?: Maybe<Array<Maybe<Merchant>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type MerchantPaymentDenomination = {\n __typename?: 'MerchantPaymentDenomination';\n amount?: Maybe<Scalars['Double']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n paymentChannelGuid?: Maybe<Scalars['String']['output']>;\n productDenomGuid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type MerchantPaymentProvider = {\n __typename?: 'MerchantPaymentProvider';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n providerGuid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type MerchantSummaryDetail = {\n __typename?: 'MerchantSummaryDetail';\n ccyCode?: Maybe<Scalars['String']['output']>;\n merchantRef?: Maybe<Scalars['String']['output']>;\n paymentProviderCode?: Maybe<Scalars['String']['output']>;\n paymentProviderGuid?: Maybe<Scalars['String']['output']>;\n paymentRef?: Maybe<Scalars['String']['output']>;\n summaryDetailProvider?: Maybe<PaymentProvider>;\n txnCostAmount?: Maybe<Scalars['Int']['output']>;\n txnDate?: Maybe<Scalars['DateTime']['output']>;\n txnFeeAmount?: Maybe<Scalars['Int']['output']>;\n txnGrossAmount?: Maybe<Scalars['Int']['output']>;\n txnNettAmount?: Maybe<Scalars['Int']['output']>;\n txnVatAmount?: Maybe<Scalars['Int']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n unipinRef?: Maybe<Scalars['String']['output']>;\n};\n\nexport type MerchantSummaryDetailFilter = {\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n keyword?: InputMaybe<Scalars['String']['input']>;\n merchantContractGuid?: InputMaybe<Scalars['String']['input']>;\n merchantRef?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n paymentProviderCode?: InputMaybe<Scalars['String']['input']>;\n paymentRef?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n summaryDateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n summaryDateTo?: InputMaybe<Scalars['DateTime']['input']>;\n summaryGuid: Scalars['String']['input'];\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n unipinRef?: InputMaybe<Scalars['String']['input']>;\n updatedDateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n updatedDateTo?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type MerchantSummaryDetailRs = {\n __typename?: 'MerchantSummaryDetailRs';\n data?: Maybe<Array<Maybe<MerchantSummaryDetail>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type MerchantSummaryFilter = {\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n contractGuid?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: Scalars['String']['input'];\n summaryDateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n summaryDateTo?: InputMaybe<Scalars['DateTime']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type MerchantSummaryRs = {\n __typename?: 'MerchantSummaryRs';\n data?: Maybe<Array<Maybe<MerchantTransactionSummaryEntity>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type MerchantTransactionSummaryEntity = {\n __typename?: 'MerchantTransactionSummaryEntity';\n ccyCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n isPaid?: Maybe<Scalars['Boolean']['output']>;\n magnifyValue?: Maybe<Scalars['Int']['output']>;\n merchantContractGuid?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n refundedCount?: Maybe<Scalars['Int']['output']>;\n refundedTxnCostAmount?: Maybe<Scalars['Int']['output']>;\n refundedTxnFeeAmount?: Maybe<Scalars['Int']['output']>;\n refundedTxnGrossAmount?: Maybe<Scalars['Int']['output']>;\n refundedTxnNettAmount?: Maybe<Scalars['Int']['output']>;\n refundedTxnVatAmount?: Maybe<Scalars['Int']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n settlementTxnCostAmount?: Maybe<Scalars['Int']['output']>;\n settlementTxnFeeAmount?: Maybe<Scalars['Int']['output']>;\n settlementTxnGrossAmount?: Maybe<Scalars['Int']['output']>;\n settlementTxnNettAmount?: Maybe<Scalars['Int']['output']>;\n settlementTxnVatAmount?: Maybe<Scalars['Int']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n summaryDate?: Maybe<Scalars['DateTime']['output']>;\n transactionCount?: Maybe<Scalars['Int']['output']>;\n txnCostAmount?: Maybe<Scalars['Int']['output']>;\n txnFeeAmount?: Maybe<Scalars['Int']['output']>;\n txnGrossAmount?: Maybe<Scalars['Int']['output']>;\n txnNettAmount?: Maybe<Scalars['Int']['output']>;\n txnVatAmount?: Maybe<Scalars['Int']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBySubjectGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Message = {\n __typename?: 'Message';\n message?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Mutation = {\n __typename?: 'Mutation';\n /** Create Author Historical Slug if user already exists */\n CmsMsCreateAuthorHistoricalSlug?: Maybe<AuthorHistoricalSlug>;\n ForexMsDeleteRates?: Maybe<Rates>;\n approvalMsApproveOrDeclineRequest?: Maybe<Scalars['String']['output']>;\n approvalMsCreateApprovalRequest?: Maybe<Array<Maybe<Approval>>>;\n approvalMsCreateDocumentApprovalRequest?: Maybe<DocumentRequest>;\n approvalMsDocumentApprovalRequestApprove?: Maybe<SimpleDocumentRequest>;\n approvalMsDocumentApprovalRequestReject?: Maybe<SimpleDocumentRequest>;\n approvalMsDocumentTemplateDelete?: Maybe<Scalars['String']['output']>;\n approvalMsUpdateDocumentApprovalRequest?: Maybe<DocumentRequest>;\n /** used by other ms to send their data changes audit */\n auditMsCreateAuditTrail?: Maybe<AuditTrail>;\n /** create supicious tag configuration */\n auditMsCreateSuspiciousTag?: Maybe<SuspiciousTag>;\n /** update supicious tag configuration */\n auditMsDeleteSuspiciousTag?: Maybe<SuspiciousTag>;\n /** update supicious tag configuration */\n auditMsUpdateSuspiciousTag?: Maybe<SuspiciousTag>;\n /** add permission to role */\n authMsAttachPermToRole?: Maybe<Scalars['String']['output']>;\n /**\n * add role to user.\n * expiredDuration (number of days) is use to calculated expired date (current date + expiredDuration)\n */\n authMsAttachRolesToUsers?: Maybe<Scalars['String']['output']>;\n /** This query allow user to change their password, need Authorization Header */\n authMsChangePassword?: Maybe<Scalars['String']['output']>;\n authMsCreateApiCredential?: Maybe<ApiCredential>;\n /** create auth ms settings */\n authMsCreateAuthSettings?: Maybe<AuthSettings>;\n /** create new Company */\n authMsCreateCompany?: Maybe<Company>;\n authMsCreateContactMerchant?: Maybe<Contact>;\n /** create new Merchant */\n authMsCreateMerchant?: Maybe<Merchant>;\n /** create new permission */\n authMsCreatePermission?: Maybe<AppPermDfn>;\n /** create new role */\n authMsCreateRole?: Maybe<AppLoginRole>;\n /** This query allow you to create super admin user. Cant create super admin if super admin already exists */\n authMsCreateSuperAdmin?: Maybe<Scalars['String']['output']>;\n /** create user by admin, need authorization and project header */\n authMsCreateUserProfile?: Maybe<UserByAdmin>;\n authMsDeleteApiCredential?: Maybe<ApiCredential>;\n /** delete existing auth ms settings */\n authMsDeleteAuthSettings?: Maybe<AuthSettings>;\n /** delete existing company */\n authMsDeleteCompany?: Maybe<Company>;\n authMsDeleteContactMerchant?: Maybe<Contact>;\n /** delete existing Merchant */\n authMsDeleteMerchant?: Maybe<Merchant>;\n /** delete existiing permission */\n authMsDeletePermission?: Maybe<Scalars['String']['output']>;\n /** delete existing role */\n authMsDeleteRole?: Maybe<AppLoginRole>;\n /** revoke permission to role */\n authMsDetachPermToRole?: Maybe<Scalars['String']['output']>;\n /** extend role to user linkage expired duration by days. */\n authMsExtendsRolesToUsersExpiredDate?: Maybe<Scalars['String']['output']>;\n /** This query allow user with certain perm to change other user password, need Authorization Header */\n authMsForceChangePassword?: Maybe<UserByAdmin>;\n /** This query allow user to reset their password */\n authMsForgotPassword?: Maybe<Scalars['String']['output']>;\n /** This query allow user to request reset password verification code */\n authMsForgotPasswordOtp?: Maybe<Scalars['String']['output']>;\n /** link company to merchants */\n authMsLinkCompanyToMerchants?: Maybe<Scalars['String']['output']>;\n /** link company to user */\n authMsLinkCompanyToUsers?: Maybe<Scalars['String']['output']>;\n /** link merchants to users */\n authMsLinkMerchantsToUsers?: Maybe<Scalars['String']['output']>;\n /** This query allow user to login */\n authMsLogin?: Maybe<LoginResponse>;\n /** This query allow user to refresh their access token */\n authMsRefreshAccessToken?: Maybe<Token>;\n /** This query allow user to do self registration */\n authMsRegister?: Maybe<AppLoginSubject>;\n /** This query use to resend email verification code */\n authMsResendEmailVerif?: Maybe<Scalars['String']['output']>;\n /** This query use to resend Mobile/OTP verification code */\n authMsResendMobileVerif?: Maybe<Scalars['String']['output']>;\n /** revole roles in from user */\n authMsRevokeRolesInUsers?: Maybe<Scalars['String']['output']>;\n /** This query allow user to validate firebase id token and login */\n authMsSocialLogin?: Maybe<LoginResponse>;\n /** temporary deactive user */\n authMsTemporaryUserDeactivation?: Maybe<Scalars['String']['output']>;\n /** unlink company to user */\n authMsUnLinkCompanyFromUsers?: Maybe<Scalars['String']['output']>;\n /** unlink company from merchants */\n authMsUnlinkCompanyFromMerchants?: Maybe<Scalars['String']['output']>;\n /** unlink merchnats from users */\n authMsUnlinkMerchantsFromUsers?: Maybe<Scalars['String']['output']>;\n authMsUpdateApiCredential?: Maybe<ApiCredential>;\n /** update existing auth ms settings */\n authMsUpdateAuthSettings?: Maybe<AuthSettings>;\n /** Update existion company */\n authMsUpdateCompany?: Maybe<Company>;\n authMsUpdateContactMerchant?: Maybe<Contact>;\n /** update existing Merchant */\n authMsUpdateMerchant?: Maybe<Merchant>;\n /** update existing permission */\n authMsUpdatePermission?: Maybe<AppPermDfn>;\n /** update user principal by admin */\n authMsUpdatePrincipalForAdmin?: Maybe<AppLoginSubject>;\n /** update existing role */\n authMsUpdateRole?: Maybe<AppLoginRole>;\n /** update user by admin */\n authMsUpdateUserForAdmin?: Maybe<AppLoginSubject>;\n /** update principal id by user owner */\n authMsUpdateUserPrincipalByOwner?: Maybe<AppLoginSubject>;\n /** request otp for update principal by owned user */\n authMsUpdateUserPrincipalOtp?: Maybe<Scalars['String']['output']>;\n /** update user profile by user it self, need authorization header */\n authMsUpdateUserProfile?: Maybe<AppLoginSubject>;\n /** This query allow user to do user confirmation after registration */\n authMsUserConfirm?: Maybe<Scalars['String']['output']>;\n cmsMsAssignTermToPost?: Maybe<CmsPostTermRelationship>;\n cmsMsCreateBookmark?: Maybe<CmsBookmarks>;\n cmsMsCreateComment?: Maybe<CmsPostComment>;\n cmsMsCreatePost?: Maybe<CmsPost>;\n cmsMsCreatePostExts?: Maybe<CmsPostExt>;\n cmsMsCreatePostHistoricalSlug?: Maybe<PostHistoricalSlug>;\n cmsMsCreatePostTerm?: Maybe<CmsPostTerm>;\n /** This query is used to insert post views, Authorization header [userGuid] is optional */\n cmsMsCreatePostViews?: Maybe<CmsPostViews>;\n cmsMsCreateReaction?: Maybe<CmsCommentReaction>;\n cmsMsCreateUser?: Maybe<CmsUser>;\n cmsMsDeleteBookmark?: Maybe<CmsBookmarks>;\n cmsMsDeleteComment?: Maybe<CmsPostComment>;\n cmsMsDeletePost?: Maybe<CmsPost>;\n cmsMsDeletePostExts?: Maybe<CmsPostExt>;\n cmsMsDeletePostTerm?: Maybe<Array<Maybe<CmsPostTerm>>>;\n cmsMsDeleteUser?: Maybe<Scalars['String']['output']>;\n /** This query is used to update the heartbeat timestamps for edited posts if exists for the given postGuid otherwise create a new entry, need Authorization Header */\n cmsMsLockingPost?: Maybe<IsSuccess>;\n cmsMsRemoveTermFromPost?: Maybe<Scalars['String']['output']>;\n cmsMsUpdateBookmark?: Maybe<CmsBookmarks>;\n cmsMsUpdatePost?: Maybe<CmsPost>;\n cmsMsUpdatePostExts?: Maybe<CmsPostExt>;\n cmsMsUpdatePostTerm?: Maybe<CmsPostTerm>;\n cmsMsUpdateUser?: Maybe<CmsUser>;\n consentMsConsentToAgree?: Maybe<UserConsent>;\n consentMsCreateHistoryAgreement?: Maybe<HistoryAgreement>;\n consentMsUpdateHistoryAgreement?: Maybe<HistoryAgreement>;\n deletePaymentProviderExt?: Maybe<Scalars['String']['output']>;\n /** remove this when there is field under mutation */\n emptyField?: Maybe<Scalars['String']['output']>;\n eventMsCreateEventLogs?: Maybe<EventLog>;\n eventMsCreateEventManagements?: Maybe<EventManagements>;\n eventMsCreateEventParticipation?: Maybe<EventParticipation>;\n eventMsCreateIdempotent?: Maybe<Idempotent>;\n eventMsCreatePrizeEvent?: Maybe<PrizeEvent>;\n eventMsCreateRaffleManagements?: Maybe<RaffleManagements>;\n eventMsDeleteEventManagements?: Maybe<EventManagements>;\n eventMsDeleteRaffleManagements?: Maybe<RaffleManagements>;\n eventMsParticipateRaffle?: Maybe<EventParticipation>;\n eventMsUpdateEventLogs?: Maybe<EventLog>;\n eventMsUpdateEventManagements?: Maybe<EventManagements>;\n eventMsUpdateEventParticipation?: Maybe<EventParticipation>;\n eventMsUpdateRaffleManagements?: Maybe<RaffleManagements>;\n fileMgmtSysMsDeleteReusableFile?: Maybe<Scalars['String']['output']>;\n fileMgmtSysMsFileAccessControl?: Maybe<File>;\n fileMgmtSysMsFileDeletion?: Maybe<IsSuccess>;\n fileMgmtSysMsFileDownload?: Maybe<File>;\n fileMgmtSysMsFileNotification?: Maybe<File>;\n fileMgmtSysMsFileSharing?: Maybe<File>;\n fileMgmtSysMsFileStreaming?: Maybe<File>;\n fileMgmtSysMsFileUpload?: Maybe<FileUploadResponse>;\n fileMgmtSysMsFileVersioning?: Maybe<File>;\n fileMgmtSysMsUpdateReusableFile?: Maybe<ReusableFile>;\n forexMsCreateCurrencyBase?: Maybe<CurrencyBase>;\n forexMsCreateRates?: Maybe<Array<Maybe<Rates>>>;\n forexMsDeleteCurrencyBase?: Maybe<CurrencyBase>;\n forexMsUpdateAllRateLog?: Maybe<Scalars['String']['output']>;\n forexMsUpdateCurrencyBase?: Maybe<CurrencyBase>;\n forexMsUpdateRates?: Maybe<Rates>;\n ggwMsCheckout?: Maybe<CheckoutResponse>;\n ggwMsCreateGameTransaction?: Maybe<GameTransactions>;\n ggwMsDeleteGameTransaction?: Maybe<GameTransactions>;\n ggwMsDelivery?: Maybe<DeliveryResponse>;\n ggwMsInquiry?: Maybe<InquiryResponse>;\n ggwMsUpdateGameTransaction?: Maybe<GameTransactions>;\n /**\n * This mutation is replaced by REST endpoint due to file upload issue on graphql\n * @deprecated No longer supported\n */\n humanResourcesMsApply?: Maybe<VacancyApplication>;\n humanResourcesMsCreateVacancy?: Maybe<Vacancy>;\n humanResourcesMsCreateVacancySettings?: Maybe<VacancySettings>;\n humanResourcesMsDeleteVacancy?: Maybe<Vacancy>;\n humanResourcesMsDeleteVacancySettings?: Maybe<VacancySettings>;\n humanResourcesMsUpdateVacancy?: Maybe<Vacancy>;\n humanResourcesMsUpdateVacancySettings?: Maybe<VacancySettings>;\n membershipMsAssignTierToMember?: Maybe<Scalars['String']['output']>;\n membershipMsBanUser?: Maybe<Scalars['String']['output']>;\n membershipMsCreateBirthdayTierBonusRule?: Maybe<BirthdayTierBonusRule>;\n membershipMsCreateCatalog?: Maybe<Catalog>;\n membershipMsCreateCatalogCategory?: Maybe<CatalogCategory>;\n membershipMsCreateMemberPoint?: Maybe<MemberPoint>;\n membershipMsCreateMemberPointMutation?: Maybe<MemberPointMutation>;\n membershipMsCreateRedeemTransaction?: Maybe<RedeemTransaction>;\n membershipMsCreateTier?: Maybe<Tier>;\n membershipMsCreateTierBonusRule?: Maybe<TierBonusRule>;\n membershipMsCreateTierUnlockBonusRule?: Maybe<TierUnlockBonusRule>;\n membershipMsDeleteBirthdayTierBonusRule?: Maybe<Scalars['String']['output']>;\n membershipMsDeleteCatalog?: Maybe<Scalars['String']['output']>;\n membershipMsDeleteCatalogCategory?: Maybe<Scalars['String']['output']>;\n membershipMsDeleteCatalogExt?: Maybe<Scalars['String']['output']>;\n membershipMsDeleteTier?: Maybe<Scalars['String']['output']>;\n membershipMsDeleteTierBonusRule?: Maybe<Scalars['String']['output']>;\n membershipMsDeleteTierExt?: Maybe<Scalars['String']['output']>;\n membershipMsDeleteTierUnlockBonusRule?: Maybe<Scalars['String']['output']>;\n membershipMsUpdateBirthdayTierBonusRule?: Maybe<BirthdayTierBonusRule>;\n membershipMsUpdateCatalog?: Maybe<Catalog>;\n membershipMsUpdateCatalogCategory?: Maybe<CatalogCategory>;\n membershipMsUpdateRedeemTransaction?: Maybe<RedeemTransaction>;\n membershipMsUpdateTier?: Maybe<Tier>;\n membershipMsUpdateTierBonusRule?: Maybe<TierBonusRule>;\n membershipMsUpdateTierUnlockBonusRule?: Maybe<TierUnlockBonusRule>;\n /** create new message template */\n notificationMsCreateEmailMessageTemplate?: Maybe<EmailMessageTemplate>;\n notificationMsCreateNotificationAlert?: Maybe<NotificationAlert>;\n notificationMsCreateUserFcm?: Maybe<UserFcm>;\n notificationMsReadNotificationAlert?: Maybe<Scalars['String']['output']>;\n /** update existing message template */\n notificationMsUpdateEmailMessageTemplate?: Maybe<EmailMessageTemplate>;\n pgwMsForceUpdateTransactionStatus?: Maybe<Scalars['String']['output']>;\n pgwMsInitiateLinkage?: Maybe<LinkageRs>;\n pgwMsUpdateInternalRefundStatus?: Maybe<UpdateInternalRefundStatusRs>;\n pgwMsUpdateMakerInternalRefundStatus?: Maybe<UpdateInternalRefundStatusRs>;\n pgwMsUpdateTransactionRefund?: Maybe<TransactionRefund>;\n productMsAddDenomToDenomGroup?: Maybe<Scalars['String']['output']>;\n productMsCreateContractTemplate?: Maybe<ContractTemplate>;\n productMsCreateDenomGroup?: Maybe<DenomGroup>;\n productMsCreateIp?: Maybe<Ip>;\n productMsCreateMerchantContract?: Maybe<MerchantContract>;\n productMsCreateMerchantPaymentDenomination?: Maybe<MerchantPaymentDenomination>;\n productMsCreateMerchantPaymentProvider?: Maybe<MerchantPaymentProvider>;\n productMsCreatePaymentChannel?: Maybe<PaymentChannel>;\n productMsCreatePaymentChannelDenomination?: Maybe<PaymentChannelDenomination>;\n productMsCreatePaymentChannelGuideline?: Maybe<PaymentChannelGuideline>;\n productMsCreatePaymentProvider?: Maybe<PaymentProvider>;\n productMsCreateProductDenomination?: Maybe<ProductDenomination>;\n productMsCreateProductPage?: Maybe<ProductPage>;\n productMsCreateProductPriceList?: Maybe<ProductPriceList>;\n productMsCreateRateCardTemplate?: Maybe<RateCardTemplate>;\n productMsCreateRateCardTemplateDetails?: Maybe<RateCardTemplate>;\n productMsDeleteContractTemplate?: Maybe<ContractTemplate>;\n productMsDeleteDenomGroup?: Maybe<DenomGroup>;\n productMsDeleteIp?: Maybe<Ip>;\n productMsDeleteMerchantContract?: Maybe<MerchantContract>;\n productMsDeletePaymentChannel?: Maybe<PaymentChannel>;\n productMsDeletePaymentChannelGuideline?: Maybe<PaymentChannelGuideline>;\n productMsDeletePaymentProvider?: Maybe<PaymentProvider>;\n productMsDeleteProductDenomination?: Maybe<Scalars['String']['output']>;\n productMsDeleteProductPage?: Maybe<Scalars['String']['output']>;\n productMsDeleteProductPriceList?: Maybe<ProductPriceList>;\n productMsDeleteRateCardTemplate?: Maybe<Scalars['String']['output']>;\n productMsDeleteRateCardTemplateDetail?: Maybe<Scalars['String']['output']>;\n productMsUpdateContractTemplate?: Maybe<ContractTemplate>;\n productMsUpdateDenomGroup?: Maybe<DenomGroup>;\n productMsUpdateIp?: Maybe<Ip>;\n productMsUpdateMerchantContract?: Maybe<MerchantContract>;\n productMsUpdateMerchantPaymentDenomination?: Maybe<MerchantPaymentDenomination>;\n productMsUpdateMerchantPaymentProvider?: Maybe<MerchantPaymentProvider>;\n productMsUpdatePaymentChannel?: Maybe<PaymentChannel>;\n productMsUpdatePaymentChannelDenomination?: Maybe<PaymentChannelDenomination>;\n productMsUpdatePaymentProvider?: Maybe<PaymentProvider>;\n productMsUpdateProductDenomination?: Maybe<ProductDenomination>;\n productMsUpdateProductPage?: Maybe<ProductPage>;\n productMsUpdateProductPriceList?: Maybe<ProductPriceList>;\n productMsUpdateRateCardTemplate?: Maybe<RateCardTemplate>;\n productMsUpdateRateCardTemplateDetail?: Maybe<RateCardTemplate>;\n projectMsCreateActivityHistory?: Maybe<ActivityHistory>;\n projectMsCreateBoard?: Maybe<Board>;\n projectMsCreateBoardAccess?: Maybe<BoardAccess>;\n projectMsCreateCard?: Maybe<Card>;\n projectMsCreateCardLabel?: Maybe<CardLabel>;\n projectMsCreateCardSprint?: Maybe<CardSprint>;\n projectMsCreateChecklist?: Maybe<Checklist>;\n projectMsCreateChecklistItem?: Maybe<ChecklistItem>;\n projectMsCreateComment?: Maybe<Comment>;\n projectMsCreateGithubEventCardLink?: Maybe<GithubEventCardLink>;\n projectMsCreateLabel?: Maybe<Label>;\n projectMsCreateRequest?: Maybe<Request>;\n projectMsCreateRequestNature?: Maybe<RequestNature>;\n projectMsCreateRequestNatureType?: Maybe<RequestNatureType>;\n projectMsCreateRequestType?: Maybe<RequestType>;\n projectMsCreateSection?: Maybe<Section>;\n projectMsCreateSprint?: Maybe<Sprint>;\n projectMsDeleteBoard?: Maybe<Board>;\n projectMsDeleteBoardAccess?: Maybe<Scalars['String']['output']>;\n projectMsDeleteCard?: Maybe<Card>;\n projectMsDeleteCardExt?: Maybe<Scalars['String']['output']>;\n projectMsDeleteCardLabel?: Maybe<CardLabel>;\n projectMsDeleteCardSprint?: Maybe<CardSprint>;\n projectMsDeleteChecklist?: Maybe<Checklist>;\n projectMsDeleteChecklistItem?: Maybe<ChecklistItem>;\n projectMsDeleteComment?: Maybe<Comment>;\n projectMsDeleteCommentExt?: Maybe<Scalars['String']['output']>;\n projectMsDeleteGithubEventCardLink?: Maybe<Scalars['String']['output']>;\n projectMsDeleteLabel?: Maybe<Label>;\n projectMsDeleteRequest?: Maybe<Scalars['String']['output']>;\n projectMsDeleteRequestExt?: Maybe<Scalars['String']['output']>;\n projectMsDeleteRequestNature?: Maybe<Scalars['String']['output']>;\n projectMsDeleteRequestNatureType?: Maybe<Scalars['String']['output']>;\n projectMsDeleteRequestType?: Maybe<Scalars['String']['output']>;\n projectMsDeleteSection?: Maybe<Scalars['String']['output']>;\n projectMsDeleteSprint?: Maybe<Sprint>;\n projectMsUpdateActivityHistory?: Maybe<ActivityHistory>;\n projectMsUpdateBoard?: Maybe<Board>;\n projectMsUpdateBoardAccess?: Maybe<BoardAccess>;\n projectMsUpdateCard?: Maybe<Card>;\n projectMsUpdateCardLabel?: Maybe<CardLabel>;\n projectMsUpdateCardSprint?: Maybe<CardSprint>;\n projectMsUpdateChecklist?: Maybe<Checklist>;\n projectMsUpdateChecklistItem?: Maybe<ChecklistItem>;\n projectMsUpdateComment?: Maybe<Comment>;\n projectMsUpdateGithubEventCardLink?: Maybe<GithubEventCardLink>;\n projectMsUpdateLabel?: Maybe<Label>;\n projectMsUpdateRequest?: Maybe<Request>;\n projectMsUpdateRequestNature?: Maybe<RequestNature>;\n projectMsUpdateRequestNatureType?: Maybe<RequestNatureType>;\n projectMsUpdateRequestType?: Maybe<RequestType>;\n projectMsUpdateSection?: Maybe<Section>;\n projectMsUpdateSprint?: Maybe<Sprint>;\n secretMsCreateCredential?: Maybe<Credential>;\n secretMsCreateCredentialDetail?: Maybe<CredentialDetail>;\n secretMsDeleteCredential?: Maybe<Scalars['String']['output']>;\n secretMsDeleteCredentialDetail?: Maybe<Scalars['String']['output']>;\n secretMsUpdateCredential?: Maybe<Credential>;\n secretMsUpdateCredentialDetail?: Maybe<CredentialDetail>;\n voucherMsBoughtVoucher?: Maybe<Voucher>;\n voucherMsCreateVoucher?: Maybe<Voucher>;\n voucherMsCreateVoucherGroup?: Maybe<VoucherGroup>;\n voucherMsCreateVoucherGroupAutoGen?: Maybe<VoucherGroupAutoGen>;\n voucherMsCreateVoucherGroupGenLock?: Maybe<IsSuccess>;\n voucherMsCreateVoucherTransaction?: Maybe<VoucherTransaction>;\n voucherMsCreateVoucherTransactionTrail?: Maybe<VoucherTransactionTrail>;\n voucherMsDeleteVoucherGroup?: Maybe<VoucherGroup>;\n voucherMsDeleteVoucherGroupAutoGen?: Maybe<Message>;\n voucherMsGenerateVoucher?: Maybe<VoucherGenerationLog>;\n voucherMsRedeemVoucher?: Maybe<Voucher>;\n voucherMsTriggerVoucherGroupAutoGen?: Maybe<Message>;\n voucherMsUpdateVoucherGroup?: Maybe<VoucherGroup>;\n voucherMsUpdateVoucherGroupAutoGen?: Maybe<VoucherGroupAutoGen>;\n voucherMsUpdateVoucherTransactionTrail?: Maybe<VoucherTransactionTrail>;\n voucherMsVoidVoucher?: Maybe<Scalars['String']['output']>;\n voucherMsVoucherRequest?: Maybe<VoucherRequestRs>;\n warehouseMsInsert?: Maybe<Scalars['String']['output']>;\n webConfigMsCreateWebConfig?: Maybe<WebConfig>;\n webConfigMsSetDefaultLangCode?: Maybe<Country>;\n webConfigMsUpdateSupportLanguage?: Maybe<Scalars['String']['output']>;\n webConfigMsUpdateWebConfig?: Maybe<WebConfig>;\n webtopupMsDeleteWebtopupTrx?: Maybe<WebtopupTransaction>;\n webtopupMsInitWebtopupTrx?: Maybe<WebtopupResponse>;\n};\n\n\nexport type MutationCmsMsCreateAuthorHistoricalSlugArgs = {\n input?: InputMaybe<CreateAuthorHistoricalSlugRq>;\n};\n\n\nexport type MutationForexMsDeleteRatesArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationApprovalMsApproveOrDeclineRequestArgs = {\n approvalGroupGuid?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n isApprove?: InputMaybe<Scalars['Boolean']['input']>;\n reason?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationApprovalMsCreateApprovalRequestArgs = {\n input?: InputMaybe<Array<InputMaybe<CreateApprovalRq>>>;\n};\n\n\nexport type MutationApprovalMsCreateDocumentApprovalRequestArgs = {\n input?: InputMaybe<DocumentRequestInput>;\n};\n\n\nexport type MutationApprovalMsDocumentApprovalRequestApproveArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationApprovalMsDocumentApprovalRequestRejectArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationApprovalMsDocumentTemplateDeleteArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationApprovalMsUpdateDocumentApprovalRequestArgs = {\n input?: InputMaybe<DocumentRequestUpdateInput>;\n};\n\n\nexport type MutationAuditMsCreateAuditTrailArgs = {\n input?: InputMaybe<CreateAuditTrailRq>;\n};\n\n\nexport type MutationAuditMsCreateSuspiciousTagArgs = {\n input?: InputMaybe<CreateSuspiciousTagRq>;\n};\n\n\nexport type MutationAuditMsDeleteSuspiciousTagArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationAuditMsUpdateSuspiciousTagArgs = {\n input?: InputMaybe<UpdateSuspiciousTagRq>;\n};\n\n\nexport type MutationAuthMsAttachPermToRoleArgs = {\n input: AttachPermRq;\n};\n\n\nexport type MutationAuthMsAttachRolesToUsersArgs = {\n expiredDuration: Scalars['Int']['input'];\n roleGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n subjectGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationAuthMsChangePasswordArgs = {\n input: ChangePassRq;\n};\n\n\nexport type MutationAuthMsCreateApiCredentialArgs = {\n input: CreateApiCredentialRq;\n};\n\n\nexport type MutationAuthMsCreateAuthSettingsArgs = {\n input?: InputMaybe<CreateAuthSettingRq>;\n};\n\n\nexport type MutationAuthMsCreateCompanyArgs = {\n input?: InputMaybe<CreateCompanyRq>;\n};\n\n\nexport type MutationAuthMsCreateContactMerchantArgs = {\n input: CreateMerchantContactRq;\n};\n\n\nexport type MutationAuthMsCreateMerchantArgs = {\n input?: InputMaybe<CreateMerchantRq>;\n};\n\n\nexport type MutationAuthMsCreatePermissionArgs = {\n input: CreatePermRq;\n};\n\n\nexport type MutationAuthMsCreateRoleArgs = {\n input: CreateRoleRq;\n};\n\n\nexport type MutationAuthMsCreateUserProfileArgs = {\n input?: InputMaybe<CreateUserRq>;\n};\n\n\nexport type MutationAuthMsDeleteApiCredentialArgs = {\n guid: Scalars['String']['input'];\n};\n\n\nexport type MutationAuthMsDeleteAuthSettingsArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationAuthMsDeleteCompanyArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationAuthMsDeleteContactMerchantArgs = {\n guid: Scalars['String']['input'];\n};\n\n\nexport type MutationAuthMsDeleteMerchantArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationAuthMsDeletePermissionArgs = {\n permGuid: Scalars['String']['input'];\n};\n\n\nexport type MutationAuthMsDeleteRoleArgs = {\n guid: Scalars['String']['input'];\n};\n\n\nexport type MutationAuthMsDetachPermToRoleArgs = {\n input: DetachPermRq;\n};\n\n\nexport type MutationAuthMsExtendsRolesToUsersExpiredDateArgs = {\n extendDuration: Scalars['Int']['input'];\n roleGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n subjectGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationAuthMsForceChangePasswordArgs = {\n subjectGuid: Scalars['String']['input'];\n};\n\n\nexport type MutationAuthMsForgotPasswordArgs = {\n input: ForgotPassRq;\n};\n\n\nexport type MutationAuthMsForgotPasswordOtpArgs = {\n input: ForgotPassOtpRq;\n};\n\n\nexport type MutationAuthMsLinkCompanyToMerchantsArgs = {\n companyGuid: Scalars['String']['input'];\n merchantGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationAuthMsLinkCompanyToUsersArgs = {\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n userGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationAuthMsLinkMerchantsToUsersArgs = {\n merchantGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n userGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationAuthMsLoginArgs = {\n input: LoginRq;\n};\n\n\nexport type MutationAuthMsRefreshAccessTokenArgs = {\n refreshToken: Scalars['String']['input'];\n};\n\n\nexport type MutationAuthMsRegisterArgs = {\n input: RegistrationRq;\n};\n\n\nexport type MutationAuthMsResendEmailVerifArgs = {\n email: Scalars['String']['input'];\n sourcePlatform: SourcePlatform;\n};\n\n\nexport type MutationAuthMsResendMobileVerifArgs = {\n mobileNum: Scalars['String']['input'];\n sourcePlatform: SourcePlatform;\n};\n\n\nexport type MutationAuthMsRevokeRolesInUsersArgs = {\n roleGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n userGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationAuthMsSocialLoginArgs = {\n input: SocialLoginRq;\n};\n\n\nexport type MutationAuthMsTemporaryUserDeactivationArgs = {\n input?: InputMaybe<TemporaryUserDeactivationRq>;\n};\n\n\nexport type MutationAuthMsUnLinkCompanyFromUsersArgs = {\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n userGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationAuthMsUnlinkCompanyFromMerchantsArgs = {\n companyGuid: Scalars['String']['input'];\n merchantGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationAuthMsUnlinkMerchantsFromUsersArgs = {\n merchantGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n userGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationAuthMsUpdateApiCredentialArgs = {\n input: UpdateApiCredentialRq;\n};\n\n\nexport type MutationAuthMsUpdateAuthSettingsArgs = {\n input?: InputMaybe<UpdateAuthSettingRq>;\n};\n\n\nexport type MutationAuthMsUpdateCompanyArgs = {\n input?: InputMaybe<UpdateCompanyRq>;\n};\n\n\nexport type MutationAuthMsUpdateContactMerchantArgs = {\n input: UpdateMerchantContactRq;\n};\n\n\nexport type MutationAuthMsUpdateMerchantArgs = {\n input?: InputMaybe<UpdateMerchantRq>;\n};\n\n\nexport type MutationAuthMsUpdatePermissionArgs = {\n guid: Scalars['String']['input'];\n input: UpdatePermRq;\n};\n\n\nexport type MutationAuthMsUpdatePrincipalForAdminArgs = {\n input?: InputMaybe<UpdatePrincipalRq>;\n};\n\n\nexport type MutationAuthMsUpdateRoleArgs = {\n guid: Scalars['String']['input'];\n input: UpdateRoleRq;\n};\n\n\nexport type MutationAuthMsUpdateUserForAdminArgs = {\n input?: InputMaybe<UpdateProfileRq>;\n};\n\n\nexport type MutationAuthMsUpdateUserPrincipalByOwnerArgs = {\n input?: InputMaybe<UpdatePrincipalRq>;\n};\n\n\nexport type MutationAuthMsUpdateUserPrincipalOtpArgs = {\n newPrincipal?: InputMaybe<Scalars['String']['input']>;\n sendTo: Scalars['String']['input'];\n};\n\n\nexport type MutationAuthMsUpdateUserProfileArgs = {\n input?: InputMaybe<UpdateProfileRq>;\n};\n\n\nexport type MutationAuthMsUserConfirmArgs = {\n input: UserConfirmRq;\n};\n\n\nexport type MutationCmsMsAssignTermToPostArgs = {\n input: CreateCmsPostTermRelationshipRq;\n};\n\n\nexport type MutationCmsMsCreateBookmarkArgs = {\n input?: InputMaybe<CreateBookmarkRq>;\n};\n\n\nexport type MutationCmsMsCreateCommentArgs = {\n input: CreateCmsPostCommentRq;\n};\n\n\nexport type MutationCmsMsCreatePostArgs = {\n input: CreateCmsPostRq;\n};\n\n\nexport type MutationCmsMsCreatePostExtsArgs = {\n input: CreateCmsPostExtRq;\n};\n\n\nexport type MutationCmsMsCreatePostHistoricalSlugArgs = {\n input: CreatePostHistoricalSlugRq;\n};\n\n\nexport type MutationCmsMsCreatePostTermArgs = {\n input: CreateCmsPostTermRq;\n};\n\n\nexport type MutationCmsMsCreatePostViewsArgs = {\n postGuid: Scalars['String']['input'];\n};\n\n\nexport type MutationCmsMsCreateReactionArgs = {\n input: CreateCmsReactionRq;\n};\n\n\nexport type MutationCmsMsCreateUserArgs = {\n input: CreateCmsUserRq;\n};\n\n\nexport type MutationCmsMsDeleteBookmarkArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationCmsMsDeleteCommentArgs = {\n guid: Scalars['String']['input'];\n};\n\n\nexport type MutationCmsMsDeletePostArgs = {\n guid: Scalars['String']['input'];\n};\n\n\nexport type MutationCmsMsDeletePostExtsArgs = {\n guid: Scalars['String']['input'];\n};\n\n\nexport type MutationCmsMsDeletePostTermArgs = {\n guids: Array<InputMaybe<Scalars['String']['input']>>;\n};\n\n\nexport type MutationCmsMsDeleteUserArgs = {\n guid: Scalars['String']['input'];\n subject_guid: Scalars['String']['input'];\n};\n\n\nexport type MutationCmsMsLockingPostArgs = {\n postGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationCmsMsRemoveTermFromPostArgs = {\n guid: Scalars['String']['input'];\n};\n\n\nexport type MutationCmsMsUpdateBookmarkArgs = {\n input?: InputMaybe<UpdateBookmarkRq>;\n};\n\n\nexport type MutationCmsMsUpdatePostArgs = {\n input: UpdateCmsPostRq;\n};\n\n\nexport type MutationCmsMsUpdatePostExtsArgs = {\n input: UpdateCmsPostExtRq;\n};\n\n\nexport type MutationCmsMsUpdatePostTermArgs = {\n input: UpdateCmsPostTermRq;\n};\n\n\nexport type MutationCmsMsUpdateUserArgs = {\n guid: Scalars['String']['input'];\n input: UpdateCmsUserRq;\n};\n\n\nexport type MutationConsentMsConsentToAgreeArgs = {\n input?: InputMaybe<CreateConsentToAgreeRq>;\n};\n\n\nexport type MutationConsentMsCreateHistoryAgreementArgs = {\n input?: InputMaybe<CreateHistoryAgreementRq>;\n};\n\n\nexport type MutationConsentMsUpdateHistoryAgreementArgs = {\n input?: InputMaybe<UpdateHistoryAgreementRq>;\n};\n\n\nexport type MutationDeletePaymentProviderExtArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationEventMsCreateEventLogsArgs = {\n input?: InputMaybe<CreateEventLogsRq>;\n};\n\n\nexport type MutationEventMsCreateEventManagementsArgs = {\n input: CreateEventManagementsRq;\n};\n\n\nexport type MutationEventMsCreateEventParticipationArgs = {\n input?: InputMaybe<CreateEventParticipationRq>;\n};\n\n\nexport type MutationEventMsCreateIdempotentArgs = {\n input: CreateIdempotentRq;\n};\n\n\nexport type MutationEventMsCreatePrizeEventArgs = {\n input: CreatePrizeEventRq;\n};\n\n\nexport type MutationEventMsCreateRaffleManagementsArgs = {\n input: CreateRaffleManagementsRq;\n};\n\n\nexport type MutationEventMsDeleteEventManagementsArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationEventMsDeleteRaffleManagementsArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationEventMsParticipateRaffleArgs = {\n input?: InputMaybe<RaffleParticipationRq>;\n};\n\n\nexport type MutationEventMsUpdateEventLogsArgs = {\n input?: InputMaybe<UpdateEventLogsRq>;\n};\n\n\nexport type MutationEventMsUpdateEventManagementsArgs = {\n input: UpdateEventManagementsRq;\n};\n\n\nexport type MutationEventMsUpdateEventParticipationArgs = {\n input?: InputMaybe<UpdateEventParticipationRq>;\n};\n\n\nexport type MutationEventMsUpdateRaffleManagementsArgs = {\n input: UpdateRaffleManagementsRq;\n};\n\n\nexport type MutationFileMgmtSysMsDeleteReusableFileArgs = {\n guid: Scalars['String']['input'];\n isDeleteFile: Scalars['Boolean']['input'];\n};\n\n\nexport type MutationFileMgmtSysMsFileAccessControlArgs = {\n input?: InputMaybe<TempFileRequest>;\n};\n\n\nexport type MutationFileMgmtSysMsFileDeletionArgs = {\n fileGuid?: InputMaybe<Scalars['String']['input']>;\n hardDelete?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n\nexport type MutationFileMgmtSysMsFileDownloadArgs = {\n input?: InputMaybe<TempFileRequest>;\n};\n\n\nexport type MutationFileMgmtSysMsFileNotificationArgs = {\n input?: InputMaybe<TempFileRequest>;\n};\n\n\nexport type MutationFileMgmtSysMsFileSharingArgs = {\n input?: InputMaybe<TempFileRequest>;\n};\n\n\nexport type MutationFileMgmtSysMsFileStreamingArgs = {\n input?: InputMaybe<TempFileRequest>;\n};\n\n\nexport type MutationFileMgmtSysMsFileUploadArgs = {\n attachment?: InputMaybe<Scalars['Upload']['input']>;\n isPublic?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n\nexport type MutationFileMgmtSysMsFileVersioningArgs = {\n input?: InputMaybe<TempFileRequest>;\n};\n\n\nexport type MutationFileMgmtSysMsUpdateReusableFileArgs = {\n input?: InputMaybe<ReusableFileUpdateRq>;\n};\n\n\nexport type MutationForexMsCreateCurrencyBaseArgs = {\n currencyCode?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationForexMsCreateRatesArgs = {\n input?: InputMaybe<CreateRatesRq>;\n};\n\n\nexport type MutationForexMsDeleteCurrencyBaseArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationForexMsUpdateCurrencyBaseArgs = {\n currencyCode?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationForexMsUpdateRatesArgs = {\n input?: InputMaybe<UpdateRatesRq>;\n};\n\n\nexport type MutationGgwMsCheckoutArgs = {\n data?: InputMaybe<CheckoutRequest>;\n};\n\n\nexport type MutationGgwMsCreateGameTransactionArgs = {\n input?: InputMaybe<GameTransactionCreateRequest>;\n};\n\n\nexport type MutationGgwMsDeleteGameTransactionArgs = {\n input?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationGgwMsDeliveryArgs = {\n data?: InputMaybe<DeliveryRequest>;\n};\n\n\nexport type MutationGgwMsInquiryArgs = {\n data?: InputMaybe<InquiryRequest>;\n};\n\n\nexport type MutationGgwMsUpdateGameTransactionArgs = {\n input?: InputMaybe<GameTransactionUpdateRequest>;\n};\n\n\nexport type MutationHumanResourcesMsApplyArgs = {\n input?: InputMaybe<ApplyVacancyRq>;\n};\n\n\nexport type MutationHumanResourcesMsCreateVacancyArgs = {\n input?: InputMaybe<CreateVacancyRq>;\n};\n\n\nexport type MutationHumanResourcesMsCreateVacancySettingsArgs = {\n input?: InputMaybe<CreateVacancySettingsRq>;\n};\n\n\nexport type MutationHumanResourcesMsDeleteVacancyArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationHumanResourcesMsDeleteVacancySettingsArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationHumanResourcesMsUpdateVacancyArgs = {\n input?: InputMaybe<UpdateVacancyRq>;\n};\n\n\nexport type MutationHumanResourcesMsUpdateVacancySettingsArgs = {\n input?: InputMaybe<UpdateVacancySettingsRq>;\n};\n\n\nexport type MutationMembershipMsAssignTierToMemberArgs = {\n input?: InputMaybe<AssignTierToMember>;\n};\n\n\nexport type MutationMembershipMsBanUserArgs = {\n input?: InputMaybe<NewMemberBan>;\n};\n\n\nexport type MutationMembershipMsCreateBirthdayTierBonusRuleArgs = {\n input?: InputMaybe<NewBirthdayTierBonusRule>;\n};\n\n\nexport type MutationMembershipMsCreateCatalogArgs = {\n input?: InputMaybe<NewCatalog>;\n};\n\n\nexport type MutationMembershipMsCreateCatalogCategoryArgs = {\n input?: InputMaybe<NewCatalogCategory>;\n};\n\n\nexport type MutationMembershipMsCreateMemberPointArgs = {\n input?: InputMaybe<NewMemberPoint>;\n};\n\n\nexport type MutationMembershipMsCreateMemberPointMutationArgs = {\n input?: InputMaybe<NewMemberPointMutation>;\n};\n\n\nexport type MutationMembershipMsCreateRedeemTransactionArgs = {\n input?: InputMaybe<NewRedeem>;\n};\n\n\nexport type MutationMembershipMsCreateTierArgs = {\n input?: InputMaybe<NewTier>;\n};\n\n\nexport type MutationMembershipMsCreateTierBonusRuleArgs = {\n input?: InputMaybe<NewTierBonusRule>;\n};\n\n\nexport type MutationMembershipMsCreateTierUnlockBonusRuleArgs = {\n input?: InputMaybe<NewTierUnlockBonusRule>;\n};\n\n\nexport type MutationMembershipMsDeleteBirthdayTierBonusRuleArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationMembershipMsDeleteCatalogArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationMembershipMsDeleteCatalogCategoryArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationMembershipMsDeleteCatalogExtArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationMembershipMsDeleteTierArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationMembershipMsDeleteTierBonusRuleArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationMembershipMsDeleteTierExtArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationMembershipMsDeleteTierUnlockBonusRuleArgs = {\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\n\nexport type MutationMembershipMsUpdateBirthdayTierBonusRuleArgs = {\n input?: InputMaybe<UpdateBirthdayTierBonusRule>;\n};\n\n\nexport type MutationMembershipMsUpdateCatalogArgs = {\n input?: InputMaybe<UpdateCatalog>;\n};\n\n\nexport type MutationMembershipMsUpdateCatalogCategoryArgs = {\n input?: InputMaybe<UpdateCatalogCategory>;\n};\n\n\nexport type MutationMembershipMsUpdateRedeemTransactionArgs = {\n input?: InputMaybe<UpdateRedeem>;\n};\n\n\nexport type MutationMembershipMsUpdateTierArgs = {\n input?: InputMaybe<UpdateTier>;\n};\n\n\nexport type MutationMembershipMsUpdateTierBonusRuleArgs = {\n input?: InputMaybe<UpdateTierBonusRule>;\n};\n\n\nexport type MutationMembershipMsUpdateTierUnlockBonusRuleArgs = {\n input?: InputMaybe<UpdateTierUnlockBonusRule>;\n};\n\n\nexport type MutationNotificationMsCreateEmailMessageTemplateArgs = {\n input?: InputMaybe<CreateMessageTemplateRq>;\n};\n\n\nexport type MutationNotificationMsCreateNotificationAlertArgs = {\n input?: InputMaybe<CreateNotificationAlertRq>;\n};\n\n\nexport type MutationNotificationMsCreateUserFcmArgs = {\n userToken?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationNotificationMsReadNotificationAlertArgs = {\n guid: Scalars['String']['input'];\n};\n\n\nexport type MutationNotificationMsUpdateEmailMessageTemplateArgs = {\n input?: InputMaybe<UpdateEmailMessageTemplateRq>;\n};\n\n\nexport type MutationPgwMsForceUpdateTransactionStatusArgs = {\n input: ForceUpdateTransactionStatusRq;\n};\n\n\nexport type MutationPgwMsInitiateLinkageArgs = {\n input?: InputMaybe<InitiateLinkageRq>;\n};\n\n\nexport type MutationPgwMsUpdateInternalRefundStatusArgs = {\n refund_guid: Scalars['String']['input'];\n};\n\n\nexport type MutationPgwMsUpdateMakerInternalRefundStatusArgs = {\n refund_guid: Scalars['String']['input'];\n};\n\n\nexport type MutationPgwMsUpdateTransactionRefundArgs = {\n input: UpdateTransactionRefundRq;\n};\n\n\nexport type MutationProductMsAddDenomToDenomGroupArgs = {\n input?: InputMaybe<AddDenomToDenomGroupRq>;\n};\n\n\nexport type MutationProductMsCreateContractTemplateArgs = {\n input?: InputMaybe<CreateContractTemplateRq>;\n};\n\n\nexport type MutationProductMsCreateDenomGroupArgs = {\n input?: InputMaybe<CreateDenomGroupRq>;\n};\n\n\nexport type MutationProductMsCreateIpArgs = {\n input?: InputMaybe<CreateIpRq>;\n};\n\n\nexport type MutationProductMsCreateMerchantContractArgs = {\n input?: InputMaybe<CreateMerchantContractRq>;\n};\n\n\nexport type MutationProductMsCreateMerchantPaymentDenominationArgs = {\n input?: InputMaybe<CreateMerchantPaymentDenomRq>;\n};\n\n\nexport type MutationProductMsCreateMerchantPaymentProviderArgs = {\n input?: InputMaybe<CreateMerchantPaymentProviderRq>;\n};\n\n\nexport type MutationProductMsCreatePaymentChannelArgs = {\n input?: InputMaybe<CreatePaymentChannelRq>;\n};\n\n\nexport type MutationProductMsCreatePaymentChannelDenominationArgs = {\n input?: InputMaybe<CreatePaymentChannelDenomRq>;\n};\n\n\nexport type MutationProductMsCreatePaymentChannelGuidelineArgs = {\n input: CreatePaymentChannelGuidelineRq;\n};\n\n\nexport type MutationProductMsCreatePaymentProviderArgs = {\n input?: InputMaybe<CreatePaymentProviderRq>;\n};\n\n\nexport type MutationProductMsCreateProductDenominationArgs = {\n input?: InputMaybe<CreateProductDenominationRq>;\n};\n\n\nexport type MutationProductMsCreateProductPageArgs = {\n input?: InputMaybe<CreateProductPageRq>;\n};\n\n\nexport type MutationProductMsCreateProductPriceListArgs = {\n input: CreateProductPriceListRq;\n};\n\n\nexport type MutationProductMsCreateRateCardTemplateArgs = {\n input?: InputMaybe<CreateRateCardTemplateRq>;\n};\n\n\nexport type MutationProductMsCreateRateCardTemplateDetailsArgs = {\n input?: InputMaybe<Array<InputMaybe<CreateRateCardTemplateDetailsRq>>>;\n rateTemplateGuid: Scalars['String']['input'];\n};\n\n\nexport type MutationProductMsDeleteContractTemplateArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProductMsDeleteDenomGroupArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProductMsDeleteIpArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProductMsDeleteMerchantContractArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProductMsDeletePaymentChannelArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProductMsDeletePaymentChannelGuidelineArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProductMsDeletePaymentProviderArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProductMsDeleteProductDenominationArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProductMsDeleteProductPageArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProductMsDeleteProductPriceListArgs = {\n guid: Scalars['String']['input'];\n};\n\n\nexport type MutationProductMsDeleteRateCardTemplateArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProductMsDeleteRateCardTemplateDetailArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProductMsUpdateContractTemplateArgs = {\n input?: InputMaybe<UpdateContractTemplateRq>;\n};\n\n\nexport type MutationProductMsUpdateDenomGroupArgs = {\n input?: InputMaybe<UpdateDenomGroupRq>;\n};\n\n\nexport type MutationProductMsUpdateIpArgs = {\n input?: InputMaybe<UpdateIpRq>;\n};\n\n\nexport type MutationProductMsUpdateMerchantContractArgs = {\n input?: InputMaybe<UpdateMerchantContractRq>;\n};\n\n\nexport type MutationProductMsUpdateMerchantPaymentDenominationArgs = {\n input?: InputMaybe<UpdateMerchantPaymentDenomRq>;\n};\n\n\nexport type MutationProductMsUpdateMerchantPaymentProviderArgs = {\n input?: InputMaybe<UpdateMerchantPaymentProviderRq>;\n};\n\n\nexport type MutationProductMsUpdatePaymentChannelArgs = {\n input?: InputMaybe<UpdatePaymentChannelRq>;\n};\n\n\nexport type MutationProductMsUpdatePaymentChannelDenominationArgs = {\n input?: InputMaybe<UpdatePaymentChannelDenomRq>;\n};\n\n\nexport type MutationProductMsUpdatePaymentProviderArgs = {\n input?: InputMaybe<UpdatePaymentProviderRq>;\n};\n\n\nexport type MutationProductMsUpdateProductDenominationArgs = {\n input?: InputMaybe<UpdateProductDenominationRq>;\n};\n\n\nexport type MutationProductMsUpdateProductPageArgs = {\n input?: InputMaybe<UpdateProductPageRq>;\n};\n\n\nexport type MutationProductMsUpdateProductPriceListArgs = {\n input: UpdateProductPriceListRq;\n};\n\n\nexport type MutationProductMsUpdateRateCardTemplateArgs = {\n input?: InputMaybe<UpdateRateCardTemplateRq>;\n};\n\n\nexport type MutationProductMsUpdateRateCardTemplateDetailArgs = {\n input?: InputMaybe<UpdateRateCardTemplateDetailRq>;\n};\n\n\nexport type MutationProjectMsCreateActivityHistoryArgs = {\n input?: InputMaybe<CreateActivityHistoryRq>;\n};\n\n\nexport type MutationProjectMsCreateBoardArgs = {\n input?: InputMaybe<CreateBoardRq>;\n};\n\n\nexport type MutationProjectMsCreateBoardAccessArgs = {\n input?: InputMaybe<CreateBoardAccessRq>;\n};\n\n\nexport type MutationProjectMsCreateCardArgs = {\n input?: InputMaybe<CreateCardRq>;\n};\n\n\nexport type MutationProjectMsCreateCardLabelArgs = {\n input?: InputMaybe<CreateCardLabelRq>;\n};\n\n\nexport type MutationProjectMsCreateCardSprintArgs = {\n input?: InputMaybe<CreateCardSprintRq>;\n};\n\n\nexport type MutationProjectMsCreateChecklistArgs = {\n input?: InputMaybe<CreateChecklistRq>;\n};\n\n\nexport type MutationProjectMsCreateChecklistItemArgs = {\n input?: InputMaybe<CreateChecklistItemRq>;\n};\n\n\nexport type MutationProjectMsCreateCommentArgs = {\n input?: InputMaybe<CreateCommentRq>;\n};\n\n\nexport type MutationProjectMsCreateGithubEventCardLinkArgs = {\n input?: InputMaybe<CreateGithubEventCardLinkRq>;\n};\n\n\nexport type MutationProjectMsCreateLabelArgs = {\n input?: InputMaybe<CreateLabelRq>;\n};\n\n\nexport type MutationProjectMsCreateRequestArgs = {\n input?: InputMaybe<CreateRequestRq>;\n};\n\n\nexport type MutationProjectMsCreateRequestNatureArgs = {\n input?: InputMaybe<CreateRequestNatureRq>;\n};\n\n\nexport type MutationProjectMsCreateRequestNatureTypeArgs = {\n input?: InputMaybe<CreateRequestNatureTypeRq>;\n};\n\n\nexport type MutationProjectMsCreateRequestTypeArgs = {\n input?: InputMaybe<CreateRequestTypeRq>;\n};\n\n\nexport type MutationProjectMsCreateSectionArgs = {\n input?: InputMaybe<CreateSectionRq>;\n};\n\n\nexport type MutationProjectMsCreateSprintArgs = {\n input?: InputMaybe<CreateSprintRq>;\n};\n\n\nexport type MutationProjectMsDeleteBoardArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteBoardAccessArgs = {\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationProjectMsDeleteCardArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteCardExtArgs = {\n extType?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteCardLabelArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteCardSprintArgs = {\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationProjectMsDeleteChecklistArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteChecklistItemArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteCommentArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteCommentExtArgs = {\n extType?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteGithubEventCardLinkArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteLabelArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteRequestArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteRequestExtArgs = {\n extType?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteRequestNatureArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteRequestNatureTypeArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteRequestTypeArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteSectionArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteSprintArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsUpdateActivityHistoryArgs = {\n input?: InputMaybe<UpdateActivityHistoryRq>;\n};\n\n\nexport type MutationProjectMsUpdateBoardArgs = {\n input?: InputMaybe<UpdateBoardRq>;\n};\n\n\nexport type MutationProjectMsUpdateBoardAccessArgs = {\n input?: InputMaybe<UpdateBoardAccessRq>;\n};\n\n\nexport type MutationProjectMsUpdateCardArgs = {\n input?: InputMaybe<UpdateCardRq>;\n};\n\n\nexport type MutationProjectMsUpdateCardLabelArgs = {\n input?: InputMaybe<UpdateCardLabelRq>;\n};\n\n\nexport type MutationProjectMsUpdateCardSprintArgs = {\n input?: InputMaybe<UpdateCardSprintRq>;\n};\n\n\nexport type MutationProjectMsUpdateChecklistArgs = {\n input?: InputMaybe<UpdateChecklistRq>;\n};\n\n\nexport type MutationProjectMsUpdateChecklistItemArgs = {\n input?: InputMaybe<UpdateChecklistItemRq>;\n};\n\n\nexport type MutationProjectMsUpdateCommentArgs = {\n input?: InputMaybe<UpdateCommentRq>;\n};\n\n\nexport type MutationProjectMsUpdateGithubEventCardLinkArgs = {\n input?: InputMaybe<UpdateGithubEventCardLinkRq>;\n};\n\n\nexport type MutationProjectMsUpdateLabelArgs = {\n input?: InputMaybe<UpdateLabelRq>;\n};\n\n\nexport type MutationProjectMsUpdateRequestArgs = {\n input?: InputMaybe<UpdateRequestRq>;\n};\n\n\nexport type MutationProjectMsUpdateRequestNatureArgs = {\n input?: InputMaybe<UpdateRequestNatureRq>;\n};\n\n\nexport type MutationProjectMsUpdateRequestNatureTypeArgs = {\n input?: InputMaybe<UpdateRequestNatureTypeRq>;\n};\n\n\nexport type MutationProjectMsUpdateRequestTypeArgs = {\n input?: InputMaybe<UpdateRequestTypeRq>;\n};\n\n\nexport type MutationProjectMsUpdateSectionArgs = {\n input?: InputMaybe<UpdateSectionRq>;\n};\n\n\nexport type MutationProjectMsUpdateSprintArgs = {\n input?: InputMaybe<UpdateSprintRq>;\n};\n\n\nexport type MutationSecretMsCreateCredentialArgs = {\n input?: InputMaybe<NewCredentialRq>;\n};\n\n\nexport type MutationSecretMsCreateCredentialDetailArgs = {\n input?: InputMaybe<CreateCredentialDetailRq>;\n};\n\n\nexport type MutationSecretMsDeleteCredentialArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationSecretMsDeleteCredentialDetailArgs = {\n credentialGuid: Scalars['String']['input'];\n name: Scalars['String']['input'];\n};\n\n\nexport type MutationSecretMsUpdateCredentialArgs = {\n input?: InputMaybe<UpdateCredentialRq>;\n};\n\n\nexport type MutationSecretMsUpdateCredentialDetailArgs = {\n input?: InputMaybe<UpdateCredentialDetailRq>;\n};\n\n\nexport type MutationVoucherMsBoughtVoucherArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationVoucherMsCreateVoucherArgs = {\n input?: InputMaybe<CreateVoucherRq>;\n};\n\n\nexport type MutationVoucherMsCreateVoucherGroupArgs = {\n input?: InputMaybe<CreateVoucherGroupRq>;\n};\n\n\nexport type MutationVoucherMsCreateVoucherGroupAutoGenArgs = {\n input?: InputMaybe<CreateVoucherGroupAutoGenRq>;\n};\n\n\nexport type MutationVoucherMsCreateVoucherGroupGenLockArgs = {\n input?: InputMaybe<VoucherGroupAutoGenLockRq>;\n};\n\n\nexport type MutationVoucherMsCreateVoucherTransactionArgs = {\n input?: InputMaybe<CreateVoucherTransactionRq>;\n};\n\n\nexport type MutationVoucherMsCreateVoucherTransactionTrailArgs = {\n input?: InputMaybe<CreateVoucherTransactionTrailRq>;\n};\n\n\nexport type MutationVoucherMsDeleteVoucherGroupArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationVoucherMsDeleteVoucherGroupAutoGenArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationVoucherMsGenerateVoucherArgs = {\n input?: InputMaybe<GenerateVoucherRq>;\n};\n\n\nexport type MutationVoucherMsRedeemVoucherArgs = {\n id?: InputMaybe<VoucherId>;\n};\n\n\nexport type MutationVoucherMsTriggerVoucherGroupAutoGenArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationVoucherMsUpdateVoucherGroupArgs = {\n input?: InputMaybe<UpdateVoucherGroupRq>;\n};\n\n\nexport type MutationVoucherMsUpdateVoucherGroupAutoGenArgs = {\n input?: InputMaybe<UpdateVoucherGroupAutoGenRq>;\n};\n\n\nexport type MutationVoucherMsUpdateVoucherTransactionTrailArgs = {\n input?: InputMaybe<UpdateVoucherTransactionTrailRq>;\n};\n\n\nexport type MutationVoucherMsVoidVoucherArgs = {\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationVoucherMsVoucherRequestArgs = {\n input?: InputMaybe<CreateVoucherRequestRq>;\n};\n\n\nexport type MutationWarehouseMsInsertArgs = {\n input?: InputMaybe<NewWarehouseData>;\n};\n\n\nexport type MutationWebConfigMsCreateWebConfigArgs = {\n input?: InputMaybe<CreateWebConfigRq>;\n};\n\n\nexport type MutationWebConfigMsSetDefaultLangCodeArgs = {\n countryGuid?: InputMaybe<Scalars['String']['input']>;\n langCode?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationWebConfigMsUpdateSupportLanguageArgs = {\n countryGuid?: InputMaybe<Scalars['String']['input']>;\n langCodes?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationWebConfigMsUpdateWebConfigArgs = {\n input?: InputMaybe<UpdateWebConfigRq>;\n};\n\n\nexport type MutationWebtopupMsDeleteWebtopupTrxArgs = {\n guid: Scalars['String']['input'];\n};\n\n\nexport type MutationWebtopupMsInitWebtopupTrxArgs = {\n input: WebtopupRequest;\n};\n\nexport type NewBirthdayTierBonusRule = {\n tierGuid: Scalars['String']['input'];\n type: BirthdayTierBonusRuleTypeEnum;\n value: Scalars['Float']['input'];\n};\n\nexport type NewCatalog = {\n categoryGuids: Array<Scalars['String']['input']>;\n countryId?: InputMaybe<Scalars['String']['input']>;\n currencyCode: Scalars['String']['input'];\n description?: InputMaybe<Scalars['String']['input']>;\n estDeliveryTimeUnit?: InputMaybe<EstDeliveryTimeUnit>;\n estDeliveryTimeValue?: InputMaybe<Scalars['Int']['input']>;\n isNeedApproval?: Scalars['Boolean']['input'];\n minLevelToReach?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n price?: InputMaybe<Scalars['Double']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type NewCatalogCategory = {\n name: Scalars['String']['input'];\n slug?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type NewCredentialRq = {\n code: Scalars['String']['input'];\n companyGuid: Scalars['String']['input'];\n};\n\nexport type NewMemberBan = {\n expiredAt?: InputMaybe<Scalars['DateTime']['input']>;\n memberGuid: Scalars['String']['input'];\n type: MemberBanType;\n};\n\nexport type NewMemberPoint = {\n amountSpent?: InputMaybe<Scalars['String']['input']>;\n countryId: Scalars['String']['input'];\n createdAt?: InputMaybe<Scalars['DateTime']['input']>;\n currencyCode: Scalars['String']['input'];\n memberGuid: Scalars['String']['input'];\n pointRewarded?: InputMaybe<Scalars['Double']['input']>;\n reason?: InputMaybe<Scalars['String']['input']>;\n transactionRewardRef?: InputMaybe<Scalars['String']['input']>;\n type?: MemberPointTypeEnum;\n};\n\nexport type NewMemberPointMutation = {\n countryId?: InputMaybe<Scalars['String']['input']>;\n currencyCode?: InputMaybe<Scalars['String']['input']>;\n isSystem: Scalars['Boolean']['input'];\n memberGuid: Scalars['String']['input'];\n memberPointGuid?: InputMaybe<Scalars['String']['input']>;\n pointAdd?: InputMaybe<Scalars['Double']['input']>;\n pointSubstract?: InputMaybe<Scalars['Double']['input']>;\n reason?: InputMaybe<Scalars['String']['input']>;\n transactionDate?: InputMaybe<Scalars['DateTime']['input']>;\n transactionSpentRef?: InputMaybe<Scalars['String']['input']>;\n type: MemberPointMutationTypeEnum;\n};\n\nexport type NewRedeem = {\n catalogGuid: Scalars['String']['input'];\n memberGuid: Scalars['String']['input'];\n};\n\nexport type NewTier = {\n benefitField?: InputMaybe<Scalars['JSON']['input']>;\n countryCode: Scalars['String']['input'];\n currencyCode?: InputMaybe<Scalars['String']['input']>;\n levelValue: Scalars['Int']['input'];\n minPointToKeep: Scalars['Int']['input'];\n minPointToReach: Scalars['Int']['input'];\n name: Scalars['String']['input'];\n};\n\nexport type NewTierBonusRule = {\n baseValue: TierBonusRuleBaseValueEnum;\n isForBirthday?: Scalars['Boolean']['input'];\n isForReferral?: Scalars['Boolean']['input'];\n maximumAmount: Scalars['Long']['input'];\n minimumAmount: Scalars['Int']['input'];\n priority: Scalars['Int']['input'];\n stopNow: Scalars['Boolean']['input'];\n tierGuid: Scalars['String']['input'];\n type: TierBonusRuleTypeEnum;\n value: Scalars['Double']['input'];\n};\n\nexport type NewTierUnlockBonusRule = {\n tierGuid: Scalars['String']['input'];\n value: Scalars['Long']['input'];\n};\n\nexport type NewWarehouseData = {\n /** require valid json string */\n data: Scalars['String']['input'];\n dataSetName: Scalars['String']['input'];\n msSource: Scalars['String']['input'];\n tableName: Scalars['String']['input'];\n tableNameInterval: TableNameIntervalEnum;\n};\n\nexport enum NotifAlertSortByEnum {\n CreatedAt = 'createdAt'\n}\n\nexport enum NotifAlertStatusEnum {\n Danger = 'DANGER',\n Info = 'INFO',\n Success = 'SUCCESS',\n Warning = 'WARNING'\n}\n\nexport type NotificationAlert = {\n __typename?: 'NotificationAlert';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n guid: Scalars['String']['output'];\n isRead?: Maybe<Scalars['Boolean']['output']>;\n receiverCompanyGuid?: Maybe<Scalars['String']['output']>;\n receiverMerchantGuid?: Maybe<Scalars['String']['output']>;\n receiverPermissionCode?: Maybe<Scalars['String']['output']>;\n status?: Maybe<NotifAlertStatusEnum>;\n title: Scalars['String']['output'];\n type?: Maybe<AlertTypeEnum>;\n};\n\n/** NotificationAlert Connection */\nexport type NotificationAlertConnection = {\n __typename?: 'NotificationAlertConnection';\n /** Field edges */\n edges?: Maybe<Array<Maybe<NotificationAlertEdge>>>;\n /** Field pageInfo */\n pageInfo: PageInfo;\n};\n\nexport type NotificationAlertCriteria = {\n /** fill with end cursor id to get next data/page, cannot use this if already use 'before' filter */\n after?: InputMaybe<Scalars['String']['input']>;\n /** fill with start cursor id to get prev data/page, cannot use this if already use 'after' filter */\n before?: InputMaybe<Scalars['String']['input']>;\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n pageSize?: Scalars['Int']['input'];\n receiverCompanyGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n receiverMerchantGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n receiverPermissionCodes?: InputMaybe<Array<Scalars['String']['input']>>;\n sortBy: NotifAlertSortByEnum;\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Array<NotifAlertStatusEnum>>;\n types?: InputMaybe<Array<AlertTypeEnum>>;\n};\n\n/** NotificationAlert Edge */\nexport type NotificationAlertEdge = {\n __typename?: 'NotificationAlertEdge';\n /** Field cursor */\n cursor?: Maybe<Scalars['String']['output']>;\n /** Field node */\n node?: Maybe<NotificationAlert>;\n};\n\nexport type NotificationAlertResponse = {\n __typename?: 'NotificationAlertResponse';\n count?: Maybe<Scalars['Int']['output']>;\n /** data: [NotificationAlert] */\n data?: Maybe<NotificationAlertConnection>;\n};\n\nexport type NotificationAlertResponses = {\n __typename?: 'NotificationAlertResponses';\n company?: Maybe<NotificationAlertResponse>;\n merchant?: Maybe<NotificationAlertResponse>;\n user?: Maybe<NotificationAlertResponse>;\n};\n\nexport type Option = {\n __typename?: 'Option';\n display?: Maybe<Scalars['String']['output']>;\n value?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PgwTimeseriesFilter = {\n aggType: AggregationTypeEnum;\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n key: PgwTimeseriesKeys;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n rangeInterval: RangeIntervalEnum;\n status?: InputMaybe<PaymentTxnResponseStatusEnum>;\n};\n\nexport enum PgwTimeseriesKeys {\n TransactionTs = 'TRANSACTION_TS'\n}\n\nexport type PageInfo = {\n __typename?: 'PageInfo';\n /** Field endCursor */\n endCursor?: Maybe<Scalars['String']['output']>;\n /** Field hasNextPage */\n hasNextPage: Scalars['Boolean']['output'];\n /** Field hasPreviousPage */\n hasPreviousPage: Scalars['Boolean']['output'];\n /** Field startCursor */\n startCursor?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PageableResponse = {\n __typename?: 'PageableResponse';\n data?: Maybe<Array<Maybe<Approval>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type PageableRs = {\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type PaginationPermissionResponse = {\n __typename?: 'PaginationPermissionResponse';\n data: Array<Maybe<AppPermDfn>>;\n totalRecord: Scalars['Int']['output'];\n};\n\nexport type PaginationRoleResponse = {\n __typename?: 'PaginationRoleResponse';\n data: Array<Maybe<AppLoginRole>>;\n totalRecord: Scalars['Int']['output'];\n};\n\nexport type PaginationVacancyApplicationResponse = {\n __typename?: 'PaginationVacancyApplicationResponse';\n data: Array<Maybe<VacancyApplication>>;\n totalRecord: Scalars['Int']['output'];\n};\n\nexport type PaginationVacancyResponse = {\n __typename?: 'PaginationVacancyResponse';\n data: Array<Maybe<Vacancy>>;\n totalRecord: Scalars['Int']['output'];\n};\n\nexport type PaymentActionResponse = {\n __typename?: 'PaymentActionResponse';\n ccyCode?: Maybe<Scalars['String']['output']>;\n customStyle?: Maybe<Scalars['JSON']['output']>;\n /** inquiry action data */\n data?: Maybe<Scalars['JSON']['output']>;\n /** error tracing id */\n errorId?: Maybe<Scalars['String']['output']>;\n magnifiedAmount?: Maybe<Scalars['String']['output']>;\n mainAction?: Maybe<MainAction>;\n message?: Maybe<Scalars['String']['output']>;\n selectedItemDescription?: Maybe<Scalars['String']['output']>;\n selectedPciLogoUrl?: Maybe<Scalars['String']['output']>;\n /** signature is only returned for inquiry pci execution */\n signature?: Maybe<Scalars['String']['output']>;\n /** 1 = success, 0 = fail */\n status?: Maybe<Scalars['Int']['output']>;\n time?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PaymentChannel = {\n __typename?: 'PaymentChannel';\n approvalData?: Maybe<Scalars['JSON']['output']>;\n approvalGuid?: Maybe<Scalars['String']['output']>;\n approvalRemark?: Maybe<Scalars['String']['output']>;\n approvalStatus?: Maybe<Scalars['String']['output']>;\n approvalType?: Maybe<Scalars['String']['output']>;\n category?: Maybe<Scalars['String']['output']>;\n charge?: Maybe<Scalars['Float']['output']>;\n chargeType?: Maybe<Scalars['String']['output']>;\n code?: Maybe<Scalars['String']['output']>;\n companyCredentialGuid?: Maybe<Scalars['String']['output']>;\n contractorCompany?: Maybe<Company>;\n countryByCode?: Maybe<Country>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBySubjectGuid?: Maybe<Scalars['String']['output']>;\n credentialPaymentChannel?: Maybe<Credential>;\n currencyByCode?: Maybe<Currency>;\n field?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n isInquiryAvail?: Maybe<Scalars['Boolean']['output']>;\n isSupportLinkage?: Maybe<Scalars['Boolean']['output']>;\n isWhitelabel?: Maybe<Scalars['Boolean']['output']>;\n maxAmount?: Maybe<Scalars['Double']['output']>;\n metaFieldJson?: Maybe<Scalars['JSON']['output']>;\n minAmount?: Maybe<Scalars['Double']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n parameter?: Maybe<Scalars['String']['output']>;\n paymentChannelGuideline?: Maybe<PaymentChannelGuideline>;\n providerCode?: Maybe<Scalars['String']['output']>;\n providerCompany?: Maybe<Company>;\n providerPriority?: Maybe<Scalars['String']['output']>;\n rateTemplate?: Maybe<Array<Maybe<RateCardTemplate>>>;\n remark?: Maybe<Scalars['String']['output']>;\n requiredFieldJson?: Maybe<Scalars['JSON']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n route?: Maybe<Scalars['String']['output']>;\n serviceCompany?: Maybe<Company>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBySubjectGuid?: Maybe<Scalars['String']['output']>;\n vatPercentage?: Maybe<Scalars['Float']['output']>;\n};\n\nexport type PaymentChannelByProviderCodeCriteria = {\n amount?: InputMaybe<Scalars['String']['input']>;\n merchantContractGuid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n productId?: InputMaybe<Scalars['String']['input']>;\n providerCode?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PaymentChannelDenomQueryCriteria = {\n amount?: InputMaybe<Scalars['Double']['input']>;\n code?: InputMaybe<Scalars['String']['input']>;\n credit?: InputMaybe<Scalars['Long']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PaymentChannelDenomination = {\n __typename?: 'PaymentChannelDenomination';\n amount?: Maybe<Scalars['Double']['output']>;\n code?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n credit?: Maybe<Scalars['Long']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n paymentChannelGuid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type PaymentChannelDetail = {\n __typename?: 'PaymentChannelDetail';\n category?: Maybe<Scalars['String']['output']>;\n code?: Maybe<Scalars['String']['output']>;\n file?: Maybe<FetchFileResponse>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n parameter?: Maybe<Scalars['String']['output']>;\n providerCode?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PaymentChannelDetailQueryCriteria = {\n code?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PaymentChannelGuideline = {\n __typename?: 'PaymentChannelGuideline';\n guid: Scalars['String']['output'];\n paymentChannelGuid: Scalars['String']['output'];\n post?: Maybe<CmsPost>;\n};\n\nexport type PaymentChannelGuidelineQueryCriteria = {\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n postGuid?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PaymentChannelMetaField = {\n apiType: Array<PaymentChannelMetaFieldApiEnum>;\n desc?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum PaymentChannelMetaFieldApiEnum {\n Callback = 'CALLBACK',\n CreateOrder = 'CREATE_ORDER',\n Inquiry = 'INQUIRY',\n Otp = 'OTP'\n}\n\nexport type PaymentChannelPublic = {\n __typename?: 'PaymentChannelPublic';\n code?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n providerCode?: Maybe<Scalars['String']['output']>;\n providerPriority?: Maybe<Scalars['String']['output']>;\n requiredFieldJson?: Maybe<Scalars['JSON']['output']>;\n};\n\nexport type PaymentChannelPublicRs = {\n __typename?: 'PaymentChannelPublicRs';\n data?: Maybe<Array<Maybe<PaymentChannelPublic>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type PaymentChannelQueryCriteria = {\n category?: InputMaybe<Scalars['String']['input']>;\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n chargeType?: InputMaybe<Scalars['String']['input']>;\n code?: InputMaybe<Scalars['String']['input']>;\n companyCredentialGuid?: InputMaybe<Scalars['String']['input']>;\n contractorCompanyGuid?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n credentialGuid?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n isInquiryAvail?: InputMaybe<Scalars['Boolean']['input']>;\n isSupportLinkage?: InputMaybe<Scalars['Boolean']['input']>;\n isWhitelabel?: InputMaybe<Scalars['Boolean']['input']>;\n maxAmount?: InputMaybe<Scalars['Double']['input']>;\n minAmount?: InputMaybe<Scalars['Double']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n providerCode?: InputMaybe<Scalars['String']['input']>;\n providerCompanyGuid?: InputMaybe<Scalars['String']['input']>;\n providerPriority?: InputMaybe<Scalars['String']['input']>;\n rateTemplateGuid?: InputMaybe<Scalars['String']['input']>;\n serviceCompanyGuid?: InputMaybe<Scalars['String']['input']>;\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PaymentChannelRs = {\n __typename?: 'PaymentChannelRs';\n data?: Maybe<Array<Maybe<PaymentChannel>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum PaymentChannelTargetType {\n /** Exclude PC target */\n Exclude = 'EXCLUDE',\n /** Include PC target */\n Include = 'INCLUDE'\n}\n\nexport type PaymentGatewayTransactionDetail = {\n __typename?: 'PaymentGatewayTransactionDetail';\n amount?: Maybe<Scalars['Int']['output']>;\n ccyCode?: Maybe<Scalars['String']['output']>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n magnifyValue?: Maybe<Scalars['Int']['output']>;\n merchantRefNo?: Maybe<Scalars['String']['output']>;\n paymentProviderCode?: Maybe<Scalars['String']['output']>;\n transactionTrail?: Maybe<TransactionTrail>;\n txnRefNo?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PaymentGatewayTransactionQueryCriteria = {\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantAccessKey?: InputMaybe<Scalars['String']['input']>;\n merchantContractGuid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n merchantRefNo?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n paymentChannelCode?: InputMaybe<Scalars['String']['input']>;\n paymentProviderCode?: InputMaybe<Scalars['String']['input']>;\n providerType?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n txnRefNo?: InputMaybe<Scalars['String']['input']>;\n webtopupRefNo?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PaymentGatewayTransactionResult = {\n __typename?: 'PaymentGatewayTransactionResult';\n data: Array<Maybe<PaymentGatewayTransactions>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type PaymentGatewayTransactions = {\n __typename?: 'PaymentGatewayTransactions';\n additionalData?: Maybe<Scalars['JSON']['output']>;\n amount?: Maybe<Scalars['Int']['output']>;\n callbackUrl?: Maybe<Scalars['String']['output']>;\n ccyCode?: Maybe<Scalars['String']['output']>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n denominationField?: Maybe<Scalars['JSON']['output']>;\n errorPageUrl?: Maybe<Scalars['String']['output']>;\n failPageUrl?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n ipCreated?: Maybe<Scalars['String']['output']>;\n magnifyValue?: Maybe<Scalars['Int']['output']>;\n merchant?: Maybe<Merchant>;\n merchantAccessKey?: Maybe<Scalars['String']['output']>;\n merchantContractGuid?: Maybe<Scalars['String']['output']>;\n merchantRefNo?: Maybe<Scalars['String']['output']>;\n paymentChannel?: Maybe<PaymentChannel>;\n paymentProviderCode?: Maybe<Scalars['String']['output']>;\n providerType?: Maybe<Scalars['String']['output']>;\n requiredField?: Maybe<Scalars['JSON']['output']>;\n styleData?: Maybe<Scalars['JSON']['output']>;\n successPageUrl?: Maybe<Scalars['String']['output']>;\n transactionTrail?: Maybe<TransactionTrail>;\n txnRefNo?: Maybe<Scalars['String']['output']>;\n webtopupTransaction?: Maybe<WebtopupTransaction>;\n};\n\nexport type PaymentProvider = {\n __typename?: 'PaymentProvider';\n approvalData?: Maybe<Scalars['JSON']['output']>;\n approvalGuid?: Maybe<Scalars['String']['output']>;\n approvalRemark?: Maybe<Scalars['String']['output']>;\n approvalStatus?: Maybe<Scalars['String']['output']>;\n approvalType?: Maybe<Scalars['String']['output']>;\n category?: Maybe<Scalars['String']['output']>;\n code?: Maybe<Scalars['String']['output']>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n currency?: Maybe<Currency>;\n exts?: Maybe<Array<Maybe<PaymentProviderExt>>>;\n guid?: Maybe<Scalars['String']['output']>;\n isSupportLinkage?: Maybe<Scalars['Boolean']['output']>;\n maxAmount?: Maybe<Scalars['Long']['output']>;\n minAmount?: Maybe<Scalars['Long']['output']>;\n paymentChannels?: Maybe<Array<Maybe<PaymentChannel>>>;\n providerExternalName?: Maybe<Scalars['String']['output']>;\n providerInternalName?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n};\n\n/** PaymentProvider Connection */\nexport type PaymentProviderConnection = {\n __typename?: 'PaymentProviderConnection';\n /** Field edges */\n edges?: Maybe<Array<Maybe<PaymentProviderEdge>>>;\n /** Field pageInfo */\n pageInfo: PageInfo;\n};\n\n/** PaymentProvider Edge */\nexport type PaymentProviderEdge = {\n __typename?: 'PaymentProviderEdge';\n /** Field cursor */\n cursor?: Maybe<Scalars['String']['output']>;\n /** Field node */\n node?: Maybe<PaymentProvider>;\n};\n\nexport type PaymentProviderExt = {\n __typename?: 'PaymentProviderExt';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n extType?: Maybe<Scalars['String']['output']>;\n extValue?: Maybe<Scalars['String']['output']>;\n file?: Maybe<FetchFileResponse>;\n guid?: Maybe<Scalars['String']['output']>;\n paymentProviderGuid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PaymentProviderQueryCriteria = {\n category?: InputMaybe<Scalars['String']['input']>;\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n code?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n isSupportLinkage?: InputMaybe<Scalars['Boolean']['input']>;\n maxAmount?: InputMaybe<Scalars['Long']['input']>;\n merchantGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n minAmount?: InputMaybe<Scalars['Long']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n providerExternalName?: InputMaybe<Scalars['String']['input']>;\n providerInternalName?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PaymentProviderQueryCriteriaPublic = {\n advanceSearch?: InputMaybe<Scalars['String']['input']>;\n /** fill with end cursor id to get next data/page, cannot use this if already use 'before' filter */\n after?: InputMaybe<Scalars['String']['input']>;\n /** fill with start cursor id to get prev data/page, cannot use this if already use 'after' filter */\n before?: InputMaybe<Scalars['String']['input']>;\n category?: InputMaybe<Scalars['String']['input']>;\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n code?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n maxAmount?: InputMaybe<Scalars['Long']['input']>;\n minAmount?: InputMaybe<Scalars['Long']['input']>;\n pageSize?: Scalars['Int']['input'];\n providerExternalName?: InputMaybe<Scalars['String']['input']>;\n providerInternalName?: InputMaybe<Scalars['String']['input']>;\n sortBy: PaymentProviderSortByEnum;\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PaymentProviderRs = {\n __typename?: 'PaymentProviderRs';\n data?: Maybe<Array<Maybe<PaymentProvider>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum PaymentProviderSortByEnum {\n CreatedAt = 'createdAt',\n UpdatedAt = 'updatedAt'\n}\n\nexport type PaymentStatusInquiryResponse = {\n __typename?: 'PaymentStatusInquiryResponse';\n data?: Maybe<Scalars['JSON']['output']>;\n errorId?: Maybe<Scalars['String']['output']>;\n message?: Maybe<Scalars['String']['output']>;\n signature?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['Int']['output']>;\n time?: Maybe<Scalars['String']['output']>;\n transactionStatus?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum PaymentTxnResponseStatusEnum {\n CanceledByCustomer = 'CANCELED_BY_CUSTOMER',\n CanceledByInternal = 'CANCELED_BY_INTERNAL',\n CanceledByPc = 'CANCELED_BY_PC',\n CanceledByTester = 'CANCELED_BY_TESTER',\n Expired = 'EXPIRED',\n Fail = 'FAIL',\n PayerActionRequired = 'PAYER_ACTION_REQUIRED',\n Pending = 'PENDING',\n PendingRefund = 'PENDING_REFUND',\n Processing = 'PROCESSING',\n ProcessingRefund = 'PROCESSING_REFUND',\n RejectedByProvider = 'REJECTED_BY_PROVIDER',\n RejectedRefund = 'REJECTED_REFUND',\n Success = 'SUCCESS',\n SuccessRefund = 'SUCCESS_REFUND'\n}\n\nexport type PciEventMgmtRq = {\n guid: Scalars['String']['input'];\n paymentChannelGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type PermissionCheckRq = {\n /** ... user guid */\n subjectGuid: Scalars['String']['input'];\n /** ... target permission that want to check */\n targetPerms: Array<InputMaybe<Scalars['String']['input']>>;\n};\n\nexport type PermissionFilter = {\n /** ...get permission by perm guid */\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n /** ... filter permission by perCode equal */\n permCode?: InputMaybe<Scalars['String']['input']>;\n /** ... filter permission by description ilike */\n permDescription?: InputMaybe<Scalars['String']['input']>;\n /** ... filter permission by permission module in */\n permModule?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n /** ... filter permission by name ilike */\n permName?: InputMaybe<Scalars['String']['input']>;\n /** ... filter for perm scope equal */\n permScope?: InputMaybe<Scalars['String']['input']>;\n /** ... filter permission by permType in */\n permType?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n /** ... filter permission by related micro fe equal */\n relatedMf?: InputMaybe<Scalars['String']['input']>;\n /** ... filter permission by role(s) */\n roleGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n /** ... filter permission by status equal */\n status?: Status;\n /** ...get permission by user guid */\n subjectGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PhoneCode = {\n __typename?: 'PhoneCode';\n code?: Maybe<Scalars['String']['output']>;\n createdDate?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedDate?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport enum PlatformEnum {\n DirectTopUp = 'DIRECT_TOP_UP',\n Webtopup = 'WEBTOPUP'\n}\n\nexport type Post = {\n __typename?: 'Post';\n postGuid?: Maybe<Scalars['String']['output']>;\n urlKey?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PostHistoricalSlug = {\n __typename?: 'PostHistoricalSlug';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n postGuid?: Maybe<Scalars['String']['output']>;\n slug?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PostHistoricalSlugCriteria = {\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n postGuid?: InputMaybe<Scalars['String']['input']>;\n slug?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type PostHistoricalSlugResult = {\n __typename?: 'PostHistoricalSlugResult';\n data: Array<Maybe<PostHistoricalSlug>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum PostStatus {\n Draft = 'DRAFT',\n OnReview = 'ON_REVIEW',\n Published = 'PUBLISHED'\n}\n\nexport enum PriceListType {\n Directtopup = 'DIRECTTOPUP',\n Unibox = 'UNIBOX',\n Webtopup = 'WEBTOPUP'\n}\n\nexport type PriceWebtopup = {\n __typename?: 'PriceWebtopup';\n bonusUc?: Maybe<Scalars['Int']['output']>;\n eventGuid?: Maybe<Scalars['String']['output']>;\n eventType?: Maybe<Scalars['String']['output']>;\n isEvent?: Maybe<Scalars['Boolean']['output']>;\n promoAmount?: Maybe<Scalars['Int']['output']>;\n tncUrl?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PriceWebtopupQueryCriteria = {\n amount?: InputMaybe<Scalars['Int']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n paymentProviderGuid?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n userId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum PrincipalStatus {\n Deleted = 'DELETED',\n Inactive = 'INACTIVE',\n UserConfirmed = 'USER_CONFIRMED',\n UserUnconfirmed = 'USER_UNCONFIRMED'\n}\n\nexport type PrizeEvent = {\n __typename?: 'PrizeEvent';\n amount?: Maybe<Scalars['Long']['output']>;\n category?: Maybe<Scalars['String']['output']>;\n code?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n remark?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type PrizeEventQueryCriteria = {\n category?: InputMaybe<Scalars['String']['input']>;\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n remark?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PrizeEventRs = {\n __typename?: 'PrizeEventRs';\n data: Array<Maybe<PrizeEvent>>;\n totalRecord: Scalars['Int']['output'];\n};\n\nexport enum ProductDenomStatusEnum {\n Active = 'ACTIVE',\n Deleted = 'DELETED'\n}\n\nexport type ProductDenomination = {\n __typename?: 'ProductDenomination';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n denomGroupGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n imageGuid?: Maybe<Scalars['String']['output']>;\n isAdjustableSellingPrice?: Maybe<Scalars['Boolean']['output']>;\n isDirectVoucher?: Maybe<Scalars['Boolean']['output']>;\n isVoucherApi?: Maybe<Scalars['Boolean']['output']>;\n itemCode?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n partnerProductId?: Maybe<Scalars['String']['output']>;\n productPageGuid?: Maybe<Scalars['String']['output']>;\n remark?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n stock?: Maybe<VoucherGroup>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ProductDenominationQueryCriteria = {\n denomGroupGuid?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n isAdjustableSellingPrice?: InputMaybe<Scalars['Boolean']['input']>;\n isDirectVoucher?: InputMaybe<Scalars['Boolean']['input']>;\n isVoucherApi?: InputMaybe<Scalars['Boolean']['input']>;\n itemCode?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n partnerProductId?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n status?: ProductDenomStatusEnum;\n};\n\nexport type ProductDetailsResponse = {\n __typename?: 'ProductDetailsResponse';\n denominations?: Maybe<Array<Maybe<Scalars['JSON']['output']>>>;\n gameRequiredField?: Maybe<Array<Maybe<Scalars['JSON']['output']>>>;\n product?: Maybe<Scalars['JSON']['output']>;\n};\n\nexport type ProductPage = {\n __typename?: 'ProductPage';\n advanceSearch?: Maybe<Scalars['String']['output']>;\n category?: Maybe<ProductPageCategory>;\n communityLink?: Maybe<Scalars['String']['output']>;\n company?: Maybe<Company>;\n content?: Maybe<Scalars['String']['output']>;\n country?: Maybe<Country>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n credentialProductPage?: Maybe<Credential>;\n denominations?: Maybe<Array<Maybe<ProductDenomination>>>;\n downloadLink?: Maybe<Scalars['String']['output']>;\n gameCenterImage?: Maybe<Scalars['String']['output']>;\n gameChildCode?: Maybe<Scalars['String']['output']>;\n gameParentCode?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n huaweiDownloadLink?: Maybe<Scalars['String']['output']>;\n iconGuid?: Maybe<Scalars['String']['output']>;\n influencerLink?: Maybe<Scalars['String']['output']>;\n iosDownloadLink?: Maybe<Scalars['String']['output']>;\n isEvent?: Maybe<Scalars['Boolean']['output']>;\n isNew?: Maybe<Scalars['Boolean']['output']>;\n isPromo?: Maybe<Scalars['Boolean']['output']>;\n isShowOnLandingPage?: Maybe<Scalars['Boolean']['output']>;\n isTesting?: Maybe<Scalars['Boolean']['output']>;\n merchant?: Maybe<Merchant>;\n metaDescription?: Maybe<Scalars['String']['output']>;\n metaFieldJson?: Maybe<Scalars['JSON']['output']>;\n metaTitle?: Maybe<Scalars['String']['output']>;\n officialSiteLink?: Maybe<Scalars['String']['output']>;\n providerCompanyByGuid?: Maybe<Company>;\n reloadType?: Maybe<ProductPageReloadTypeEnum>;\n requiredFieldJson?: Maybe<Scalars['JSON']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n route?: Maybe<Scalars['String']['output']>;\n schemaMarkUp?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n tags?: Maybe<Scalars['String']['output']>;\n title?: Maybe<Scalars['String']['output']>;\n topUpGuideLink?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum ProductPageCategory {\n Voucher = 'VOUCHER',\n Webtopup = 'WEBTOPUP'\n}\n\n/** ProductPage Connection */\nexport type ProductPageConnection = {\n __typename?: 'ProductPageConnection';\n /** Field edges */\n edges?: Maybe<Array<Maybe<ProductPageEdge>>>;\n /** Field pageInfo */\n pageInfo: PageInfo;\n};\n\n/** ProductPage Edge */\nexport type ProductPageEdge = {\n __typename?: 'ProductPageEdge';\n /** Field cursor */\n cursor?: Maybe<Scalars['String']['output']>;\n /** Field node */\n node?: Maybe<ProductPage>;\n};\n\nexport type ProductPageMetaField = {\n apiType: Array<ProductPageMetaFieldApiEnum>;\n desc?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum ProductPageMetaFieldApiEnum {\n Checkout = 'CHECKOUT',\n Delivery = 'DELIVERY',\n Inquiry = 'INQUIRY',\n Server = 'SERVER'\n}\n\nexport type ProductPageQueryCriteria = {\n advanceSearch?: InputMaybe<Scalars['String']['input']>;\n approvalData?: InputMaybe<Scalars['JSON']['input']>;\n approvalGuid?: InputMaybe<Scalars['String']['input']>;\n approvalRemark?: InputMaybe<Scalars['String']['input']>;\n approvalStatus?: InputMaybe<Scalars['String']['input']>;\n approvalType?: InputMaybe<Scalars['String']['input']>;\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n gameChildCode?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n gameParentCode?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n isEvent?: InputMaybe<Scalars['Boolean']['input']>;\n isNew?: InputMaybe<Scalars['Boolean']['input']>;\n isPromo?: InputMaybe<Scalars['Boolean']['input']>;\n isShowOnLandingPage?: InputMaybe<Scalars['Boolean']['input']>;\n isTesting?: InputMaybe<Scalars['Boolean']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n providerCompanyGuid?: InputMaybe<Scalars['String']['input']>;\n reloadType?: InputMaybe<ProductPageReloadTypeEnum>;\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type ProductPageQueryCriteriaPublic = {\n advanceSearch?: InputMaybe<Scalars['String']['input']>;\n /** fill with end cursor id to get next data/page, cannot use this if already use 'before' filter */\n after?: InputMaybe<Scalars['String']['input']>;\n approvalData?: InputMaybe<Scalars['JSON']['input']>;\n approvalGuid?: InputMaybe<Scalars['String']['input']>;\n approvalRemark?: InputMaybe<Scalars['String']['input']>;\n approvalStatus?: InputMaybe<Scalars['String']['input']>;\n approvalType?: InputMaybe<Scalars['String']['input']>;\n /** fill with start cursor id to get prev data/page, cannot use this if already use 'after' filter */\n before?: InputMaybe<Scalars['String']['input']>;\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n gameChildCode?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n gameParentCode?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n isEvent?: InputMaybe<Scalars['Boolean']['input']>;\n isNew?: InputMaybe<Scalars['Boolean']['input']>;\n isPromo?: InputMaybe<Scalars['Boolean']['input']>;\n isShowOnLandingPage?: InputMaybe<Scalars['Boolean']['input']>;\n isTesting?: InputMaybe<Scalars['Boolean']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n pageSize?: Scalars['Int']['input'];\n sortBy: ProductPageSortByEnum;\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Enum for differentiate between each reload uc, up and game webtopup */\nexport enum ProductPageReloadTypeEnum {\n Game = 'GAME',\n Na = 'NA',\n Uc = 'UC',\n Up = 'UP'\n}\n\nexport enum ProductPageSortByEnum {\n CreatedAt = 'createdAt',\n UpdatedAt = 'updatedAt'\n}\n\nexport type ProductPageVoucherGroup = {\n __typename?: 'ProductPageVoucherGroup';\n iconUrl?: Maybe<Scalars['String']['output']>;\n voucherCode?: Maybe<Scalars['String']['output']>;\n voucherName?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ProductPriceList = {\n __typename?: 'ProductPriceList';\n approvalData?: Maybe<Scalars['JSON']['output']>;\n approvalGuid?: Maybe<Scalars['String']['output']>;\n approvalRemark?: Maybe<Scalars['String']['output']>;\n approvalStatus?: Maybe<Scalars['String']['output']>;\n approvalType?: Maybe<Scalars['String']['output']>;\n ccyCode?: Maybe<Scalars['String']['output']>;\n contractTemplateGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n endDate?: Maybe<Scalars['DateTime']['output']>;\n eventCode?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n magnifyValue?: Maybe<Scalars['Int']['output']>;\n paymentProvider?: Maybe<PaymentProvider>;\n paymentProviderCode?: Maybe<Scalars['String']['output']>;\n price?: Maybe<Scalars['Int']['output']>;\n priority?: Maybe<Scalars['Int']['output']>;\n productDenom?: Maybe<ProductDenomination>;\n productDenomGuid?: Maybe<Scalars['String']['output']>;\n productPage?: Maybe<ProductPage>;\n productPageGuid?: Maybe<Scalars['String']['output']>;\n rateTemplate?: Maybe<RateCardTemplate>;\n revision?: Maybe<Scalars['String']['output']>;\n startDate?: Maybe<Scalars['DateTime']['output']>;\n status?: Maybe<Status>;\n type?: Maybe<PriceListType>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ProductPriceListCriteria = {\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n contractTemplateGuid?: InputMaybe<Scalars['String']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n eventCode?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n paymentProviderCode?: InputMaybe<Scalars['String']['input']>;\n priority?: InputMaybe<Scalars['Int']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n rateTemplateGuid?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: Status;\n type?: InputMaybe<PriceListType>;\n};\n\nexport type ProductPriceListRs = PageableRs & {\n __typename?: 'ProductPriceListRs';\n data?: Maybe<Array<ProductPriceList>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum ProductSelectionEnum {\n All = 'ALL',\n Selective = 'SELECTIVE'\n}\n\nexport type ProductVoucherCriteria = {\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n parentCode?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PromoChannel = {\n __typename?: 'PromoChannel';\n isEvent?: Maybe<Scalars['Boolean']['output']>;\n paymentProvider?: Maybe<Array<Maybe<PromoPaymentChannel>>>;\n};\n\nexport type PromoPaymentChannel = {\n __typename?: 'PromoPaymentChannel';\n guid?: Maybe<Scalars['String']['output']>;\n paymentChannelGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PromoWebtopupQueryCriteria = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum ProviderPlatform {\n Facebook = 'FACEBOOK',\n Google = 'GOOGLE'\n}\n\nexport type Query = {\n __typename?: 'Query';\n approvalMsApprovals?: Maybe<PageableResponse>;\n approvalMsDocumentApprovalRequest?: Maybe<DocumentRequest>;\n approvalMsDocumentApprovalRequestBySigner?: Maybe<Array<Maybe<DocumentRequest>>>;\n approvalMsDocumentTemplate?: Maybe<DocumentTemplateResponse>;\n approvalMsUserSign?: Maybe<ApprovalUserSign>;\n /** get all audit trail with criteria */\n auditMsAuditTrail?: Maybe<Array<Maybe<AuditTrail>>>;\n /** get suspicious tags */\n auditMsSuspiciousTag?: Maybe<SuspiciousTagPageableRs>;\n /** acessToken query used by gateway to get user access permission */\n authMsAccessToken?: Maybe<Scalars['String']['output']>;\n /** Generate token from api credential */\n authMsApiCredentialToken?: Maybe<Scalars['String']['output']>;\n authMsApiCredentials?: Maybe<ApiCredentialFilterRs>;\n authMsApiCredentialsPrivate?: Maybe<Array<Maybe<ApiCredentialPrivate>>>;\n /** get all auth ms settings with filter */\n authMsAuthSettings?: Maybe<AuthSettingsWithFilterRs>;\n /** get all company with filter */\n authMsCompany?: Maybe<CompanyWithFilterRs>;\n authMsContactMerchant?: Maybe<MerchantContactFilterRs>;\n /** This query allow to get firebase id token from uid (testing) */\n authMsGetFirebaseIdToken?: Maybe<FirebaseIdTokenRes>;\n /** get all member with criteria for CP_COMMERCE sourcePlatform */\n authMsMember?: Maybe<AppLoginSubjectConnection>;\n /** get all merchant by guid */\n authMsMerchant?: Maybe<MerchantFilterRs>;\n /** get user profile by authorization header */\n authMsMyProfile?: Maybe<AppLoginSubject>;\n /** get list of permission available */\n authMsPermission?: Maybe<PaginationPermissionResponse>;\n /** get list of available role */\n authMsRole?: Maybe<PaginationRoleResponse>;\n authMsSignatureChecker?: Maybe<SignatureCheckerRs>;\n authMsSignatureCreate?: Maybe<SignatureCreateRs>;\n /** This query allow to validate token */\n authMsTokenValidaton?: Maybe<Scalars['String']['output']>;\n /** get all user with criteria for ADMIN sourcePlatform */\n authMsUser?: Maybe<Array<Maybe<AppLoginSubject>>>;\n /**\n * Get Author Historical Slug by criteria\n * For urlKey use slug with pageSize 1\n */\n cmsMsAuthorHistoricalSlug?: Maybe<AuthorHistoricalSlugResult>;\n cmsMsBookmarks?: Maybe<Array<Maybe<CmsBookmarks>>>;\n cmsMsCommentReactions?: Maybe<CmsReactionResult>;\n /** This query is used to get post, comment and its reaction status based on its historical slug */\n cmsMsFindPostCommentReactionByHistSlug?: Maybe<CmsPost>;\n /** This query is used to get locked post by guid or post guid */\n cmsMsLockedPost?: Maybe<Array<Maybe<CmsLockPost>>>;\n cmsMsPostComments?: Maybe<CmsPostCommentResult>;\n cmsMsPostExts?: Maybe<Array<Maybe<CmsPostExt>>>;\n /**\n * This query is used to get post historical slug by criteria\n * can use 'slug' for search urlKey\n */\n cmsMsPostHistoricalSlug?: Maybe<PostHistoricalSlugResult>;\n cmsMsPostTermRelationship?: Maybe<Array<Maybe<CmsPostTermRelationship>>>;\n cmsMsPostTerms?: Maybe<CmsPostTermResult>;\n cmsMsPostViews?: Maybe<CmsPostViewsResult>;\n cmsMsPosts?: Maybe<CmsPostConnection>;\n cmsMsPostsPublic?: Maybe<CmsPostConnection>;\n cmsMsUsers?: Maybe<Array<Maybe<CmsUser>>>;\n consentMsHistoryAgreement?: Maybe<Array<Maybe<HistoryAgreement>>>;\n consentMsTableAgreement?: Maybe<Array<Maybe<Agreement>>>;\n consentMsUserConsent?: Maybe<Array<Maybe<UserConsent>>>;\n /** remove this when there is field under query */\n emptyField?: Maybe<Scalars['String']['output']>;\n eventMsEventLogs?: Maybe<EventLogRs>;\n eventMsEventManagements?: Maybe<EventManagementsRs>;\n eventMsEventParticipations?: Maybe<EventParticipationRs>;\n eventMsGetPriceWebtopup?: Maybe<PriceWebtopup>;\n eventMsGetPromoWebtopup?: Maybe<PromoChannel>;\n eventMsPrizeEvent?: Maybe<PrizeEventRs>;\n eventMsRaffleManagements?: Maybe<RaffleManagementsRs>;\n fileMgmtSysMsFetchFile?: Maybe<Array<Maybe<FetchFileResponse>>>;\n fileMgmtSysMsFileMetadata?: Maybe<Scalars['String']['output']>;\n fileMgmtSysMsFileQuota?: Maybe<Scalars['String']['output']>;\n fileMgmtSysMsFileSearch?: Maybe<Scalars['String']['output']>;\n fileMgmtSysMsReusableFile?: Maybe<ReusableFileRs>;\n forexMsConversion?: Maybe<ConversionRs>;\n forexMsCurrencyBase?: Maybe<Array<Maybe<CurrencyBase>>>;\n forexMsRates?: Maybe<Array<Maybe<Rates>>>;\n ggwMsGameTransactions?: Maybe<Array<Maybe<GameTransactions>>>;\n ggwMsRequiredField?: Maybe<RequiredFieldResponse>;\n humanResourcesMsVacancy?: Maybe<PaginationVacancyResponse>;\n humanResourcesMsVacancyApplication?: Maybe<PaginationVacancyApplicationResponse>;\n humanResourcesMsVacancyPublic?: Maybe<PaginationVacancyResponse>;\n humanResourcesMsVacancySettings?: Maybe<Array<Maybe<VacancySettings>>>;\n membershipMsBirthdayTierBonusRules?: Maybe<BirthdayTierBonusRulesRs>;\n membershipMsCatalogCategories?: Maybe<CatalogCategoryRs>;\n membershipMsCatalogs?: Maybe<CatalogRs>;\n membershipMsMember?: Maybe<MemberPageableResponse>;\n membershipMsMemberPointMutations?: Maybe<MemberPointMutationsRs>;\n membershipMsMemberPointSummary?: Maybe<MemberPointSummaryRs>;\n membershipMsMemberPoints?: Maybe<MemberPointsRs>;\n membershipMsRedeemTransactions?: Maybe<RedeemTransactionRs>;\n membershipMsRewardPointPrediction?: Maybe<Scalars['Double']['output']>;\n membershipMsTierBonusRule?: Maybe<TierBonusRuleRs>;\n membershipMsTierUnlockBonusRule?: Maybe<TierUnlockBonusRuleRs>;\n membershipMsTiers?: Maybe<TierRs>;\n membershipMsTimeseriesTimeline?: Maybe<TimeSeriesRs>;\n /** get all message template with criteria */\n notificationMsEmailMessageTemplate?: Maybe<EmailMessageTemplatePageableResult>;\n notificationMsNotificationAlerts?: Maybe<NotificationAlertResponses>;\n paymentGatewayMsMerchantBalances?: Maybe<MerchantBalanceRs>;\n paymentGatewayMsTimeseriesTimeline?: Maybe<TimeSeriesRs>;\n /** This query is used to inquiry action[denom/channel/required-field/payment-execution selection] by its guid */\n pgwMsInquiryAction?: Maybe<PaymentActionResponse>;\n pgwMsInquiryLinkage?: Maybe<LinkageInquiryRs>;\n pgwMsLinkablePaymentProvider?: Maybe<LinkablePaymentProvider>;\n pgwMsMerchantSummary?: Maybe<MerchantSummaryRs>;\n pgwMsMerchantSummaryDetail?: Maybe<MerchantSummaryDetailRs>;\n /** This query is used to inquiry action[pci selection] by its guid */\n pgwMsPciProviderStatusInquiry?: Maybe<PaymentStatusInquiryResponse>;\n pgwMsTransaction?: Maybe<PaymentGatewayTransactions>;\n pgwMsTransactionByCriteria?: Maybe<PaymentGatewayTransactionResult>;\n pgwMsTransactionRefund?: Maybe<TransactionRefundConnection>;\n productMsContractTemplates?: Maybe<ContractTemplateRs>;\n productMsDenomGroup?: Maybe<DenomGroupRs>;\n productMsDenominationDetails?: Maybe<DenominationDetails>;\n productMsDenominationVoucherStock?: Maybe<Array<Maybe<VoucherStock>>>;\n productMsIp?: Maybe<IpRs>;\n productMsMerchantContracts?: Maybe<MerchantContractRs>;\n productMsPaymentChannel?: Maybe<PaymentChannelRs>;\n productMsPaymentChannelByProviderCodePriority?: Maybe<PaymentChannel>;\n productMsPaymentChannelDenomination?: Maybe<Array<Maybe<PaymentChannelDenomination>>>;\n productMsPaymentChannelDetail?: Maybe<PaymentChannelDetail>;\n productMsPaymentChannelGuideline?: Maybe<Array<Maybe<PaymentChannelGuideline>>>;\n productMsPaymentChannelPublic?: Maybe<PaymentChannelPublicRs>;\n productMsPaymentProvider?: Maybe<PaymentProviderRs>;\n productMsPaymentProviderPublic?: Maybe<PaymentProviderConnection>;\n productMsProductDenomination?: Maybe<Array<Maybe<ProductDenomination>>>;\n productMsProductPage?: Maybe<Array<Maybe<ProductPage>>>;\n productMsProductPagePublic?: Maybe<ProductPageConnection>;\n productMsProductPageVoucherGroups?: Maybe<Array<Maybe<ProductPageVoucherGroup>>>;\n productMsProductPriceList?: Maybe<ProductPriceListRs>;\n productMsRateCardTemplates?: Maybe<RateTemplateRs>;\n productMsVoucherDetails?: Maybe<VoucherDetailList>;\n projectMsActivityHistory?: Maybe<ActivityHistoryRs>;\n projectMsBoard?: Maybe<BoardRs>;\n projectMsBoardAccess?: Maybe<BoardAccessRs>;\n projectMsCard?: Maybe<CardRs>;\n projectMsCardLabel?: Maybe<CardLabelRs>;\n projectMsCardSprint?: Maybe<CardSprintRs>;\n projectMsChecklist?: Maybe<ChecklistRs>;\n projectMsChecklistItem?: Maybe<ChecklistItemRs>;\n projectMsComment?: Maybe<CommentRs>;\n projectMsGithubEventCardLinks?: Maybe<GithubEventCardLinkRs>;\n projectMsLabel?: Maybe<LabelRs>;\n projectMsRequest?: Maybe<RequestRs>;\n projectMsRequestNature?: Maybe<RequestNatureRs>;\n projectMsRequestNatureType?: Maybe<RequestNatureTypeRs>;\n projectMsRequestStatusCount?: Maybe<RequestCount>;\n projectMsRequestType?: Maybe<RequestTypeRs>;\n projectMsSection?: Maybe<SectionRs>;\n projectMsSprint?: Maybe<SprintRs>;\n secretMsCredentialTrails?: Maybe<CredentialTrailRs>;\n secretMsCredentials?: Maybe<CredentialRs>;\n voucherMsGatewayCreateOrder?: Maybe<VoucherGatewayResponse>;\n voucherMsVoucherGroup?: Maybe<VoucherGroupRs>;\n voucherMsVoucherGroupAutoGen?: Maybe<VoucherGroupAutoGenRs>;\n voucherMsVoucherGroupAutoGenLock?: Maybe<VoucherGroupAutoGenLock>;\n voucherMsVoucherTransaction?: Maybe<VoucherTransactionRs>;\n voucherMsVoucherTransactionTrail?: Maybe<VoucherTransactionTrailRs>;\n voucherMsVouchers?: Maybe<VouchersRs>;\n webConfigMsCountry?: Maybe<CountryResult>;\n webConfigMsCurrency?: Maybe<CurrencyResult>;\n webConfigMsWebConfig?: Maybe<WebConfigResult>;\n webtopupMsGetProductPage?: Maybe<ProductDetailsResponse>;\n webtopupMsTransactionHistory?: Maybe<Array<Maybe<WebtopupTransactionHistory>>>;\n webtopupMsTransactions?: Maybe<WebtopupTransactionResult>;\n};\n\n\nexport type QueryApprovalMsApprovalsArgs = {\n input?: InputMaybe<ApprovalCriteria>;\n};\n\n\nexport type QueryApprovalMsDocumentApprovalRequestArgs = {\n filter?: InputMaybe<DocumentRequestFilter>;\n};\n\n\nexport type QueryApprovalMsDocumentApprovalRequestBySignerArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type QueryApprovalMsDocumentTemplateArgs = {\n input?: InputMaybe<DocumentTemplateFilter>;\n};\n\n\nexport type QueryApprovalMsUserSignArgs = {\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type QueryAuditMsAuditTrailArgs = {\n input?: InputMaybe<AuditTrailCriteria>;\n};\n\n\nexport type QueryAuditMsSuspiciousTagArgs = {\n input?: InputMaybe<SuspiciousFilter>;\n};\n\n\nexport type QueryAuthMsAccessTokenArgs = {\n token: Scalars['String']['input'];\n};\n\n\nexport type QueryAuthMsApiCredentialTokenArgs = {\n accessKey: Scalars['String']['input'];\n secretKey: Scalars['String']['input'];\n};\n\n\nexport type QueryAuthMsApiCredentialsArgs = {\n filter: ApiCredentialFilterRq;\n};\n\n\nexport type QueryAuthMsApiCredentialsPrivateArgs = {\n input: ApiCredentialSpecialFilter;\n};\n\n\nexport type QueryAuthMsAuthSettingsArgs = {\n input?: InputMaybe<AuthSettingsFilter>;\n};\n\n\nexport type QueryAuthMsCompanyArgs = {\n input?: InputMaybe<CompanyFilter>;\n};\n\n\nexport type QueryAuthMsContactMerchantArgs = {\n input?: InputMaybe<MerchantContactFilterRq>;\n};\n\n\nexport type QueryAuthMsGetFirebaseIdTokenArgs = {\n uid: Scalars['String']['input'];\n};\n\n\nexport type QueryAuthMsMemberArgs = {\n input?: InputMaybe<UserMemberQueryCriteria>;\n};\n\n\nexport type QueryAuthMsMerchantArgs = {\n input?: InputMaybe<MerchantFilter>;\n};\n\n\nexport type QueryAuthMsPermissionArgs = {\n filter: PermissionFilter;\n};\n\n\nexport type QueryAuthMsRoleArgs = {\n filter: RoleFilter;\n};\n\n\nexport type QueryAuthMsSignatureCheckerArgs = {\n input?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type QueryAuthMsSignatureCreateArgs = {\n input?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type QueryAuthMsTokenValidatonArgs = {\n token?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type QueryAuthMsUserArgs = {\n input?: InputMaybe<UserAdminQueryCriteria>;\n};\n\n\nexport type QueryCmsMsAuthorHistoricalSlugArgs = {\n input?: InputMaybe<AuthorHistoricalSlugCriteria>;\n};\n\n\nexport type QueryCmsMsBookmarksArgs = {\n input?: InputMaybe<BookmarksQueryCriteria>;\n};\n\n\nexport type QueryCmsMsCommentReactionsArgs = {\n filter: CmsReactionCriteria;\n};\n\n\nexport type QueryCmsMsFindPostCommentReactionByHistSlugArgs = {\n urlKey: Scalars['String']['input'];\n};\n\n\nexport type QueryCmsMsLockedPostArgs = {\n input?: InputMaybe<CmsLockPostQueryCriteria>;\n};\n\n\nexport type QueryCmsMsPostCommentsArgs = {\n input?: InputMaybe<CmsPostCommentFilter>;\n};\n\n\nexport type QueryCmsMsPostExtsArgs = {\n input: CmsPostExtQueryCriteria;\n};\n\n\nexport type QueryCmsMsPostHistoricalSlugArgs = {\n input: PostHistoricalSlugCriteria;\n};\n\n\nexport type QueryCmsMsPostTermRelationshipArgs = {\n filter?: InputMaybe<CmsPostTermRelationshipQueryCriteria>;\n};\n\n\nexport type QueryCmsMsPostTermsArgs = {\n filter: CmsPostTermFilter;\n isHome: Scalars['Boolean']['input'];\n};\n\n\nexport type QueryCmsMsPostViewsArgs = {\n filter: CmsPostViewsCriteria;\n};\n\n\nexport type QueryCmsMsPostsArgs = {\n filter: CmsPostFilter;\n};\n\n\nexport type QueryCmsMsPostsPublicArgs = {\n filter: CmsPostFilterPublic;\n isHome?: Scalars['Boolean']['input'];\n isViewCount?: Scalars['Boolean']['input'];\n};\n\n\nexport type QueryCmsMsUsersArgs = {\n filter: CmsUserFilter;\n};\n\n\nexport type QueryConsentMsHistoryAgreementArgs = {\n input?: InputMaybe<HistoryAgreementQueryCriteria>;\n};\n\n\nexport type QueryConsentMsTableAgreementArgs = {\n input?: InputMaybe<AgreementQueryCriteria>;\n};\n\n\nexport type QueryConsentMsUserConsentArgs = {\n input?: InputMaybe<UserConsentCriteria>;\n};\n\n\nexport type QueryEventMsEventLogsArgs = {\n input?: InputMaybe<EventLogsCriteria>;\n};\n\n\nexport type QueryEventMsEventManagementsArgs = {\n input?: InputMaybe<EventManagementsQueryCriteria>;\n};\n\n\nexport type QueryEventMsEventParticipationsArgs = {\n input?: InputMaybe<EventParticipationCriteria>;\n};\n\n\nexport type QueryEventMsGetPriceWebtopupArgs = {\n input?: InputMaybe<PriceWebtopupQueryCriteria>;\n};\n\n\nexport type QueryEventMsGetPromoWebtopupArgs = {\n input?: InputMaybe<PromoWebtopupQueryCriteria>;\n};\n\n\nexport type QueryEventMsPrizeEventArgs = {\n input?: InputMaybe<PrizeEventQueryCriteria>;\n};\n\n\nexport type QueryEventMsRaffleManagementsArgs = {\n input?: InputMaybe<RaffleManagementsQueryCriteria>;\n};\n\n\nexport type QueryFileMgmtSysMsFetchFileArgs = {\n fileGuids: Array<InputMaybe<Scalars['String']['input']>>;\n};\n\n\nexport type QueryFileMgmtSysMsFileMetadataArgs = {\n input?: InputMaybe<TempFileRequest>;\n};\n\n\nexport type QueryFileMgmtSysMsFileQuotaArgs = {\n input?: InputMaybe<TempFileRequest>;\n};\n\n\nexport type QueryFileMgmtSysMsFileSearchArgs = {\n input?: InputMaybe<TempFileRequest>;\n};\n\n\nexport type QueryFileMgmtSysMsReusableFileArgs = {\n input?: InputMaybe<ReusableFileCriteria>;\n};\n\n\nexport type QueryForexMsConversionArgs = {\n input?: InputMaybe<ConversionRq>;\n};\n\n\nexport type QueryForexMsCurrencyBaseArgs = {\n input?: InputMaybe<CurrencyBaseFilter>;\n};\n\n\nexport type QueryForexMsRatesArgs = {\n input?: InputMaybe<RatesFilter>;\n};\n\n\nexport type QueryGgwMsGameTransactionsArgs = {\n input?: InputMaybe<GameTransactionQueryCriteria>;\n};\n\n\nexport type QueryGgwMsRequiredFieldArgs = {\n data?: InputMaybe<RequiredFieldRequest>;\n};\n\n\nexport type QueryHumanResourcesMsVacancyArgs = {\n input?: InputMaybe<VacancyQueryCriteria>;\n};\n\n\nexport type QueryHumanResourcesMsVacancyApplicationArgs = {\n input?: InputMaybe<VacancyApplicationQueryCriteria>;\n};\n\n\nexport type QueryHumanResourcesMsVacancyPublicArgs = {\n input?: InputMaybe<VacancyQueryCriteria>;\n};\n\n\nexport type QueryHumanResourcesMsVacancySettingsArgs = {\n input?: InputMaybe<VacancySettingsQueryCriteria>;\n};\n\n\nexport type QueryMembershipMsBirthdayTierBonusRulesArgs = {\n input?: InputMaybe<BirthdayTierBonusRuleCriteria>;\n};\n\n\nexport type QueryMembershipMsCatalogCategoriesArgs = {\n input?: InputMaybe<CatalogCategoryCriteria>;\n};\n\n\nexport type QueryMembershipMsCatalogsArgs = {\n input?: InputMaybe<CatalogCriteria>;\n};\n\n\nexport type QueryMembershipMsMemberArgs = {\n input?: InputMaybe<MemberCriteria>;\n};\n\n\nexport type QueryMembershipMsMemberPointMutationsArgs = {\n input?: InputMaybe<MemberPointMutationCriteria>;\n};\n\n\nexport type QueryMembershipMsMemberPointSummaryArgs = {\n input?: InputMaybe<MemberPointSummaryCriteria>;\n};\n\n\nexport type QueryMembershipMsMemberPointsArgs = {\n input?: InputMaybe<MemberPointCriteria>;\n};\n\n\nexport type QueryMembershipMsRedeemTransactionsArgs = {\n input?: InputMaybe<RedeemTransactionCriteria>;\n};\n\n\nexport type QueryMembershipMsRewardPointPredictionArgs = {\n input?: InputMaybe<NewMemberPoint>;\n};\n\n\nexport type QueryMembershipMsTierBonusRuleArgs = {\n input?: InputMaybe<TierBonusRuleCriteria>;\n};\n\n\nexport type QueryMembershipMsTierUnlockBonusRuleArgs = {\n input?: InputMaybe<TierUnlockBonusRuleCriteria>;\n};\n\n\nexport type QueryMembershipMsTiersArgs = {\n input?: InputMaybe<TiersCriteria>;\n};\n\n\nexport type QueryMembershipMsTimeseriesTimelineArgs = {\n filter?: InputMaybe<MembershipTimeseriesFilter>;\n};\n\n\nexport type QueryNotificationMsEmailMessageTemplateArgs = {\n input?: InputMaybe<EmailMsgTemplateCriteria>;\n};\n\n\nexport type QueryNotificationMsNotificationAlertsArgs = {\n input?: InputMaybe<NotificationAlertCriteria>;\n};\n\n\nexport type QueryPaymentGatewayMsMerchantBalancesArgs = {\n input?: InputMaybe<MerchantBalanceCriteria>;\n};\n\n\nexport type QueryPaymentGatewayMsTimeseriesTimelineArgs = {\n filter?: InputMaybe<PgwTimeseriesFilter>;\n};\n\n\nexport type QueryPgwMsInquiryActionArgs = {\n channelInput?: InputMaybe<ChannelSelectionInput>;\n denomInput?: InputMaybe<DenomSelectionInput>;\n requiredFieldInput?: InputMaybe<RequiredFieldInput>;\n txnGuid: Scalars['String']['input'];\n};\n\n\nexport type QueryPgwMsInquiryLinkageArgs = {\n providerCode?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\n\nexport type QueryPgwMsMerchantSummaryArgs = {\n input?: InputMaybe<MerchantSummaryFilter>;\n};\n\n\nexport type QueryPgwMsMerchantSummaryDetailArgs = {\n input?: InputMaybe<MerchantSummaryDetailFilter>;\n};\n\n\nexport type QueryPgwMsPciProviderStatusInquiryArgs = {\n txnGuid: Scalars['String']['input'];\n};\n\n\nexport type QueryPgwMsTransactionArgs = {\n pgwTxnGuid: Scalars['String']['input'];\n};\n\n\nexport type QueryPgwMsTransactionByCriteriaArgs = {\n input: PaymentGatewayTransactionQueryCriteria;\n};\n\n\nexport type QueryPgwMsTransactionRefundArgs = {\n filter: TransactionRefundFilter;\n};\n\n\nexport type QueryProductMsContractTemplatesArgs = {\n input?: InputMaybe<ContractTemplateCriteria>;\n};\n\n\nexport type QueryProductMsDenomGroupArgs = {\n input?: InputMaybe<DenomGroupCriteria>;\n};\n\n\nexport type QueryProductMsDenominationDetailsArgs = {\n input?: InputMaybe<DenominationDetailsQueryCriteria>;\n};\n\n\nexport type QueryProductMsDenominationVoucherStockArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type QueryProductMsIpArgs = {\n input?: InputMaybe<IpQueryCriteria>;\n};\n\n\nexport type QueryProductMsMerchantContractsArgs = {\n input?: InputMaybe<MerchantContractCriteria>;\n};\n\n\nexport type QueryProductMsPaymentChannelArgs = {\n input?: InputMaybe<PaymentChannelQueryCriteria>;\n};\n\n\nexport type QueryProductMsPaymentChannelByProviderCodePriorityArgs = {\n input?: InputMaybe<PaymentChannelByProviderCodeCriteria>;\n};\n\n\nexport type QueryProductMsPaymentChannelDenominationArgs = {\n input?: InputMaybe<PaymentChannelDenomQueryCriteria>;\n};\n\n\nexport type QueryProductMsPaymentChannelDetailArgs = {\n code?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type QueryProductMsPaymentChannelGuidelineArgs = {\n filter?: InputMaybe<PaymentChannelGuidelineQueryCriteria>;\n};\n\n\nexport type QueryProductMsPaymentChannelPublicArgs = {\n input?: InputMaybe<PaymentChannelQueryCriteria>;\n};\n\n\nexport type QueryProductMsPaymentProviderArgs = {\n input?: InputMaybe<PaymentProviderQueryCriteria>;\n};\n\n\nexport type QueryProductMsPaymentProviderPublicArgs = {\n input?: InputMaybe<PaymentProviderQueryCriteriaPublic>;\n};\n\n\nexport type QueryProductMsProductDenominationArgs = {\n input?: InputMaybe<ProductDenominationQueryCriteria>;\n};\n\n\nexport type QueryProductMsProductPageArgs = {\n input?: InputMaybe<ProductPageQueryCriteria>;\n};\n\n\nexport type QueryProductMsProductPagePublicArgs = {\n input?: InputMaybe<ProductPageQueryCriteriaPublic>;\n};\n\n\nexport type QueryProductMsProductPageVoucherGroupsArgs = {\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type QueryProductMsProductPriceListArgs = {\n input: ProductPriceListCriteria;\n};\n\n\nexport type QueryProductMsRateCardTemplatesArgs = {\n input?: InputMaybe<RateCardTemplateCriteria>;\n};\n\n\nexport type QueryProductMsVoucherDetailsArgs = {\n input?: InputMaybe<ProductVoucherCriteria>;\n};\n\n\nexport type QueryProjectMsActivityHistoryArgs = {\n input?: InputMaybe<ActivityHistoryCriteria>;\n};\n\n\nexport type QueryProjectMsBoardArgs = {\n input?: InputMaybe<BoardCriteria>;\n};\n\n\nexport type QueryProjectMsBoardAccessArgs = {\n input?: InputMaybe<BoardAccessCriteria>;\n};\n\n\nexport type QueryProjectMsCardArgs = {\n input?: InputMaybe<CardCriteria>;\n};\n\n\nexport type QueryProjectMsCardLabelArgs = {\n input?: InputMaybe<CardLabelCriteria>;\n};\n\n\nexport type QueryProjectMsCardSprintArgs = {\n input?: InputMaybe<CardSprintCriteria>;\n};\n\n\nexport type QueryProjectMsChecklistArgs = {\n input?: InputMaybe<ChecklistCriteria>;\n};\n\n\nexport type QueryProjectMsChecklistItemArgs = {\n input?: InputMaybe<ChecklistItemCriteria>;\n};\n\n\nexport type QueryProjectMsCommentArgs = {\n input?: InputMaybe<CommentCriteria>;\n};\n\n\nexport type QueryProjectMsGithubEventCardLinksArgs = {\n filter?: InputMaybe<GithubEventCardLinkFilter>;\n};\n\n\nexport type QueryProjectMsLabelArgs = {\n input?: InputMaybe<LabelCriteria>;\n};\n\n\nexport type QueryProjectMsRequestArgs = {\n input?: InputMaybe<RequestCriteria>;\n};\n\n\nexport type QueryProjectMsRequestNatureArgs = {\n input?: InputMaybe<RequestNatureCriteria>;\n};\n\n\nexport type QueryProjectMsRequestNatureTypeArgs = {\n input?: InputMaybe<RequestNatureTypeCriteria>;\n};\n\n\nexport type QueryProjectMsRequestTypeArgs = {\n input?: InputMaybe<RequestTypeCriteria>;\n};\n\n\nexport type QueryProjectMsSectionArgs = {\n input?: InputMaybe<SectionCriteria>;\n};\n\n\nexport type QueryProjectMsSprintArgs = {\n input?: InputMaybe<SprintCriteria>;\n};\n\n\nexport type QuerySecretMsCredentialTrailsArgs = {\n input?: InputMaybe<CredentialFilter>;\n};\n\n\nexport type QuerySecretMsCredentialsArgs = {\n input?: InputMaybe<CredentialFilter>;\n};\n\n\nexport type QueryVoucherMsGatewayCreateOrderArgs = {\n input?: InputMaybe<GatewayCreateOrderRq>;\n};\n\n\nexport type QueryVoucherMsVoucherGroupArgs = {\n input?: InputMaybe<VoucherGroupFilter>;\n};\n\n\nexport type QueryVoucherMsVoucherGroupAutoGenArgs = {\n input?: InputMaybe<VoucherGroupAutoGenFilter>;\n};\n\n\nexport type QueryVoucherMsVoucherGroupAutoGenLockArgs = {\n input?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type QueryVoucherMsVoucherTransactionArgs = {\n input?: InputMaybe<VoucherTransactionFilter>;\n};\n\n\nexport type QueryVoucherMsVoucherTransactionTrailArgs = {\n input?: InputMaybe<VoucherTransactionTrailFilter>;\n};\n\n\nexport type QueryVoucherMsVouchersArgs = {\n input?: InputMaybe<VoucherFilter>;\n};\n\n\nexport type QueryWebConfigMsCountryArgs = {\n input: CountryQueryCriteria;\n};\n\n\nexport type QueryWebConfigMsCurrencyArgs = {\n input: CurrencyQueryCriteria;\n};\n\n\nexport type QueryWebConfigMsWebConfigArgs = {\n input: WebConfigQueryCriteria;\n};\n\n\nexport type QueryWebtopupMsGetProductPageArgs = {\n productGuid: Scalars['String']['input'];\n};\n\n\nexport type QueryWebtopupMsTransactionHistoryArgs = {\n input?: InputMaybe<WebtopupTransactionHistoryQueryCriteria>;\n};\n\n\nexport type QueryWebtopupMsTransactionsArgs = {\n input: WebtopupTransactionQueryCriteria;\n};\n\nexport type RaffleManagements = {\n __typename?: 'RaffleManagements';\n amount?: Maybe<Scalars['Long']['output']>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n endDate?: Maybe<Scalars['DateTime']['output']>;\n eventQuota?: Maybe<Scalars['Int']['output']>;\n fields?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n imageGuid?: Maybe<Scalars['String']['output']>;\n isHide?: Maybe<Scalars['Boolean']['output']>;\n isLogin?: Maybe<Scalars['Boolean']['output']>;\n isReload?: Maybe<Scalars['Boolean']['output']>;\n isVoucher?: Maybe<Scalars['Boolean']['output']>;\n isWebtopup?: Maybe<Scalars['Boolean']['output']>;\n paymentChannelTargetType?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n startDate?: Maybe<Scalars['DateTime']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n title: Scalars['String']['output'];\n type: Scalars['String']['output'];\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n userDailyQuota?: Maybe<Scalars['Int']['output']>;\n userLimitQuota?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type RaffleManagementsQueryCriteria = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type RaffleManagementsRs = {\n __typename?: 'RaffleManagementsRs';\n data: Array<Maybe<RaffleManagements>>;\n totalRecord: Scalars['Int']['output'];\n};\n\nexport type RaffleParticipationRq = {\n /** Additional data depend on req, example: mlbbid */\n additionalData?: InputMaybe<Scalars['JSON']['input']>;\n /** Participant Address (OPTIONAL) */\n address?: InputMaybe<Scalars['String']['input']>;\n /** Participant Email */\n email: Scalars['String']['input'];\n /** Participant Name */\n name: Scalars['String']['input'];\n /** Participant Phone Number (OPTIONAL) */\n phone?: InputMaybe<Scalars['String']['input']>;\n raffleSlug: Scalars['String']['input'];\n txnRef: Scalars['String']['input'];\n};\n\nexport enum RangeIntervalEnum {\n OneDay = 'ONE_DAY',\n OneHour = 'ONE_HOUR',\n OneMonth = 'ONE_MONTH',\n OneWeek = 'ONE_WEEK',\n TwelveHour = 'TWELVE_HOUR'\n}\n\nexport type RateCardTemplate = {\n __typename?: 'RateCardTemplate';\n code?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n details?: Maybe<Array<Maybe<RateTemplateDetail>>>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Status>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n version?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type RateCardTemplateCriteria = {\n code?: InputMaybe<Scalars['String']['input']>;\n detailCriteria?: InputMaybe<RateTemplateDetailCriteria>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: Status;\n version?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport enum RateLogic {\n Fixed = 'FIXED',\n Percentage = 'PERCENTAGE'\n}\n\nexport type RateTemplateDetail = {\n __typename?: 'RateTemplateDetail';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n endAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n magnifyValue?: Maybe<Scalars['Int']['output']>;\n minimumRate?: Maybe<Scalars['Int']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n paymentProvider?: Maybe<PaymentProvider>;\n priority?: Maybe<Scalars['Int']['output']>;\n rate?: Maybe<Scalars['Float']['output']>;\n rateLogic?: Maybe<RateLogic>;\n revision?: Maybe<Scalars['String']['output']>;\n startAt?: Maybe<Scalars['DateTime']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type RateTemplateDetailCriteria = {\n endAt?: InputMaybe<Scalars['DateTime']['input']>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n name?: InputMaybe<Scalars['String']['input']>;\n paymentProviderCode?: InputMaybe<Scalars['String']['input']>;\n priority?: InputMaybe<Scalars['Int']['input']>;\n rateLogic?: InputMaybe<RateLogic>;\n startAt?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<Status>;\n};\n\nexport type RateTemplateRs = {\n __typename?: 'RateTemplateRs';\n data?: Maybe<Array<Maybe<RateCardTemplate>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type Rates = {\n __typename?: 'Rates';\n baseCurrencyByGuid?: Maybe<Currency>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n rateCurrencyByCode?: Maybe<Currency>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type RatesFilter = {\n baseGuid?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n rateCcy?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum ReactionType {\n Heart = 'HEART',\n Like = 'LIKE'\n}\n\nexport type RedeemTransaction = {\n __typename?: 'RedeemTransaction';\n amount?: Maybe<Scalars['Double']['output']>;\n catalog?: Maybe<Catalog>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n member?: Maybe<Member>;\n revision?: Maybe<Scalars['String']['output']>;\n trails?: Maybe<Array<Maybe<RedeemTransactionTrail>>>;\n transactionRef?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type RedeemTransactionCriteria = {\n amount?: InputMaybe<Scalars['Double']['input']>;\n catalogGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n catalogName?: InputMaybe<Scalars['String']['input']>;\n countryCodes?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n memberGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n transactionRefs?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type RedeemTransactionRs = {\n __typename?: 'RedeemTransactionRs';\n data?: Maybe<Array<Maybe<RedeemTransaction>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type RedeemTransactionTrail = {\n __typename?: 'RedeemTransactionTrail';\n createdAt?: Maybe<Scalars['String']['output']>;\n eventType?: Maybe<EventType>;\n guid?: Maybe<Scalars['String']['output']>;\n internalRemark?: Maybe<Scalars['String']['output']>;\n internalStatus?: Maybe<InternalStatus>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<TrailStatus>;\n transactionGuid?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum RefundStatusEnum {\n PendingRefund = 'PENDING_REFUND',\n RejectedRefund = 'REJECTED_REFUND',\n SuccessRefund = 'SUCCESS_REFUND'\n}\n\nexport type RegistrationRq = {\n /** ... user extension, ex: profile photo, bio, etc */\n appLoginSubjectExt?: InputMaybe<Array<InputMaybe<AppLoginSubjectExtRq>>>;\n /** ... date with format YYYY-MM-DD */\n birthday: Scalars['Date']['input'];\n /** ... email to register user [Optional] */\n email?: InputMaybe<Scalars['String']['input']>;\n /** ... user gender */\n gender: Gender;\n /** ... mobile nunber to register user [Optional] */\n mobileNumber?: InputMaybe<Scalars['String']['input']>;\n /** ... user full name */\n name: Scalars['String']['input'];\n /** ... password for new user */\n password: Scalars['String']['input'];\n /** ... user pin number */\n pinNumber?: InputMaybe<Scalars['String']['input']>;\n /** ... referal code */\n referralCode?: InputMaybe<Scalars['String']['input']>;\n /** ... source platform for bo or public user separation */\n sourcePlatform: SourcePlatform;\n};\n\nexport enum RegistrationStatus {\n ConfirmationSuccess = 'CONFIRMATION_SUCCESS',\n EmailVerificationSuccess = 'EMAIL_VERIFICATION_SUCCESS',\n MobileVerificationSuccess = 'MOBILE_VERIFICATION_SUCCESS'\n}\n\nexport type Request = {\n __typename?: 'Request';\n actualReleaseAt?: Maybe<Scalars['DateTime']['output']>;\n approvedStartDate?: Maybe<Scalars['DateTime']['output']>;\n approvedTargetDate?: Maybe<Scalars['DateTime']['output']>;\n assignedPicUserGuid?: Maybe<Scalars['String']['output']>;\n assignedTechLeadUserGuid?: Maybe<Scalars['String']['output']>;\n code?: Maybe<Scalars['String']['output']>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n deletedAt?: Maybe<Scalars['DateTime']['output']>;\n deletedBy?: Maybe<Scalars['String']['output']>;\n details?: Maybe<Scalars['String']['output']>;\n duplicateTo?: Maybe<Scalars['String']['output']>;\n exts?: Maybe<Array<Maybe<RequestExt>>>;\n guid?: Maybe<Scalars['String']['output']>;\n isRequirementComplete?: Maybe<Scalars['Boolean']['output']>;\n picStatus?: Maybe<Scalars['String']['output']>;\n releaseNote?: Maybe<Scalars['String']['output']>;\n releaseTargetDate?: Maybe<Scalars['DateTime']['output']>;\n requestNatureDetail?: Maybe<RequestNature>;\n requestNatureGuid?: Maybe<Scalars['String']['output']>;\n requestTypeDetail?: Maybe<RequestType>;\n requestTypeGuid?: Maybe<Scalars['String']['output']>;\n requestedTargetDate?: Maybe<Scalars['DateTime']['output']>;\n revisedTargetDate?: Maybe<Scalars['DateTime']['output']>;\n sla?: Maybe<Scalars['Int']['output']>;\n slaUnit?: Maybe<SlaUnit>;\n sourceTeam?: Maybe<Scalars['String']['output']>;\n sourceUser?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n supportingDetails?: Maybe<Scalars['String']['output']>;\n title?: Maybe<Scalars['String']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n urgency?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type RequestCount = {\n __typename?: 'RequestCount';\n requestBlocked?: Maybe<Scalars['Int']['output']>;\n requestCompleted?: Maybe<Scalars['Int']['output']>;\n requestKiv?: Maybe<Scalars['Int']['output']>;\n requestNew?: Maybe<Scalars['Int']['output']>;\n requestOnProgress?: Maybe<Scalars['Int']['output']>;\n requestRejected?: Maybe<Scalars['Int']['output']>;\n requestReleaseOnHold?: Maybe<Scalars['Int']['output']>;\n requestReleasedOrLiveTesting?: Maybe<Scalars['Int']['output']>;\n requestRequirementAnalysis?: Maybe<Scalars['Int']['output']>;\n requestUat?: Maybe<Scalars['Int']['output']>;\n requestWaitingForRelease?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type RequestCriteria = {\n assignedPicUserGuid?: InputMaybe<Scalars['String']['input']>;\n assignedTechLeadUserGuid?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n createdBy?: InputMaybe<Scalars['String']['input']>;\n createdDateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n createdDateTo?: InputMaybe<Scalars['DateTime']['input']>;\n details?: InputMaybe<Scalars['String']['input']>;\n duplicateTo?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n isRequirementComplete?: InputMaybe<Scalars['Boolean']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n picStatus?: InputMaybe<Scalars['String']['input']>;\n releaseNote?: InputMaybe<Scalars['String']['input']>;\n requestNatureGuid?: InputMaybe<Scalars['String']['input']>;\n requestTypeGuid?: InputMaybe<Scalars['String']['input']>;\n sla?: InputMaybe<Scalars['Int']['input']>;\n slaUnit?: InputMaybe<SlaUnit>;\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n sourceTeam?: InputMaybe<Scalars['String']['input']>;\n sourceUser?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n supportingDetails?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n urgency?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type RequestExt = {\n __typename?: 'RequestExt';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n extType?: Maybe<Scalars['String']['output']>;\n extValue?: Maybe<Scalars['String']['output']>;\n file?: Maybe<FetchFileResponse>;\n guid?: Maybe<Scalars['String']['output']>;\n requestGuid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type RequestNature = {\n __typename?: 'RequestNature';\n code?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type RequestNatureCriteria = {\n code?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type RequestNatureRs = {\n __typename?: 'RequestNatureRs';\n data?: Maybe<Array<Maybe<RequestNature>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type RequestNatureType = {\n __typename?: 'RequestNatureType';\n attachmentConfigJson?: Maybe<Scalars['JSON']['output']>;\n board?: Maybe<Board>;\n codePrefix?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n defaultBoardGuid?: Maybe<Scalars['String']['output']>;\n defaultPicUser?: Maybe<AppLoginSubject>;\n defaultSlaUnit?: Maybe<SlaUnit>;\n defaultSlaValue?: Maybe<Scalars['Int']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n natureGuid?: Maybe<Scalars['String']['output']>;\n notificationCc?: Maybe<Scalars['String']['output']>;\n notificationTo?: Maybe<Scalars['String']['output']>;\n requestNature?: Maybe<RequestNature>;\n requestType?: Maybe<RequestType>;\n status?: Maybe<Scalars['String']['output']>;\n typeGuid?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type RequestNatureTypeCriteria = {\n defaultBoardGuid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n defaultPicUserGuid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n natureGuid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n notificationCc?: InputMaybe<Scalars['String']['input']>;\n notificationTo?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n typeGuid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\nexport type RequestNatureTypeRs = {\n __typename?: 'RequestNatureTypeRs';\n data?: Maybe<Array<Maybe<RequestNatureType>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type RequestRs = {\n __typename?: 'RequestRs';\n data?: Maybe<Array<Maybe<Request>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type RequestType = {\n __typename?: 'RequestType';\n code?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type RequestTypeCriteria = {\n code?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type RequestTypeRs = {\n __typename?: 'RequestTypeRs';\n data?: Maybe<Array<Maybe<RequestType>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type RequiredField = {\n content: RequiredFieldContentEnum;\n name?: InputMaybe<Scalars['String']['input']>;\n placeholder?: InputMaybe<Scalars['String']['input']>;\n type: RequiredFieldTypeEnum;\n url?: InputMaybe<Scalars['String']['input']>;\n values: Array<RequiredFieldDropdownPair>;\n};\n\nexport enum RequiredFieldContentEnum {\n Alphabet = 'ALPHABET',\n Alphanumeric = 'ALPHANUMERIC',\n Api = 'API',\n Numeric = 'NUMERIC',\n Static = 'STATIC'\n}\n\nexport type RequiredFieldDropdownPair = {\n display: Scalars['String']['input'];\n metaFieldJson?: InputMaybe<Array<InputMaybe<PaymentChannelMetaField>>>;\n value: Scalars['String']['input'];\n};\n\nexport type RequiredFieldInput = {\n /** Sample: {\"email\" : \"test@gmail.com\",\"name\": \"test\"} */\n paymentRequiredField?: InputMaybe<Scalars['JSON']['input']>;\n};\n\nexport type RequiredFieldRequest = {\n credentialGuid: Scalars['String']['input'];\n gameChildCode: Scalars['String']['input'];\n gameParentCode: Scalars['String']['input'];\n platform: PlatformEnum;\n};\n\nexport type RequiredFieldResponse = {\n __typename?: 'RequiredFieldResponse';\n data?: Maybe<Scalars['JSON']['output']>;\n error?: Maybe<Scalars['JSON']['output']>;\n status?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum RequiredFieldTypeEnum {\n Dropdown = 'DROPDOWN',\n Text = 'TEXT'\n}\n\nexport type ReusableFile = {\n __typename?: 'ReusableFile';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n file?: Maybe<FetchFileResponse>;\n fileGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type ReusableFileCriteria = {\n contextGuid?: InputMaybe<Scalars['String']['input']>;\n contextType?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type ReusableFileRs = {\n __typename?: 'ReusableFileRs';\n data?: Maybe<Array<Maybe<ReusableFile>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type ReusableFileUpdateRq = {\n guid: Scalars['String']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type RoleFilter = {\n /** ... to filter role by code equal */\n code?: InputMaybe<Scalars['String']['input']>;\n /** ...to get role with all guids */\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n isInternal?: InputMaybe<Scalars['Boolean']['input']>;\n /** ... to filter role by name ilike */\n name?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n /** ... to filter role by status equal */\n status?: Status;\n /** ... to get list of role attached to user */\n subjectGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type Section = {\n __typename?: 'Section';\n board?: Maybe<Board>;\n boardGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n sectionOrder?: Maybe<Scalars['Int']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type SectionCriteria = {\n boardGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sectionOrder?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type SectionRs = {\n __typename?: 'SectionRs';\n data?: Maybe<Array<Maybe<Section>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type SignatureCheckerRs = {\n __typename?: 'SignatureCheckerRs';\n merchantContractGuid?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n value?: Maybe<Scalars['String']['output']>;\n};\n\nexport type SignatureCreateRs = {\n __typename?: 'SignatureCreateRs';\n status?: Maybe<Scalars['String']['output']>;\n value?: Maybe<Scalars['String']['output']>;\n};\n\nexport type SimpleDocumentRequest = {\n __typename?: 'SimpleDocumentRequest';\n authUserGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n requestStatus?: Maybe<DocumentRequestStatus>;\n subject?: Maybe<Scalars['String']['output']>;\n templateGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum SlaUnit {\n Day = 'DAY',\n Month = 'MONTH',\n Week = 'WEEK'\n}\n\nexport type SocialLoginRq = {\n idToken: Scalars['String']['input'];\n providerPlatform: ProviderPlatform;\n sourcePlatform: SourcePlatform;\n};\n\nexport enum SourcePlatform {\n /** ... for backoffice */\n Admin = 'ADMIN',\n /** ... for public */\n CpCommerce = 'CP_COMMERCE'\n}\n\nexport type Sprint = {\n __typename?: 'Sprint';\n cardSprint?: Maybe<Array<Maybe<CardSprint>>>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n deletedBy?: Maybe<Scalars['String']['output']>;\n finishAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n startAt?: Maybe<Scalars['DateTime']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type SprintCriteria = {\n createdBy?: InputMaybe<Scalars['String']['input']>;\n deletedBy?: InputMaybe<Scalars['String']['input']>;\n finishAt?: InputMaybe<Scalars['DateTime']['input']>;\n guids: Array<InputMaybe<Scalars['String']['input']>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n startAt?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n updatedBy?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type SprintRs = {\n __typename?: 'SprintRs';\n data?: Maybe<Array<Maybe<Sprint>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum Status {\n Active = 'ACTIVE',\n Deleted = 'DELETED',\n Expired = 'EXPIRED',\n Inactive = 'INACTIVE',\n Pending = 'PENDING',\n VerseData = 'VERSE_DATA'\n}\n\nexport enum SuggestedAction {\n /** ... suggested action if user didn't change password for x month */\n ChangePassword = 'CHANGE_PASSWORD',\n /** ... default action */\n Default = 'DEFAULT'\n}\n\nexport type SuspiciousFilter = {\n actionCodes?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n description?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: Scalars['String']['input'];\n targetCodes?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n types?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\nexport type SuspiciousTag = {\n __typename?: 'SuspiciousTag';\n actionCode?: Maybe<Scalars['String']['output']>;\n actionJson?: Maybe<Scalars['JSON']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n intervalParam?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n targetCode?: Maybe<Scalars['String']['output']>;\n threshold?: Maybe<Scalars['Int']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type SuspiciousTagPageableRs = {\n __typename?: 'SuspiciousTagPageableRs';\n data?: Maybe<Array<Maybe<SuspiciousTag>>>;\n totalRecord: Scalars['Int']['output'];\n};\n\nexport enum TableNameIntervalEnum {\n Monthly = 'MONTHLY',\n Yearly = 'YEARLY'\n}\n\nexport type TempFileRequest = {\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type TemporaryUserDeactivationRq = {\n /** ... band type refer to UserBansType enum */\n banType: UserBanType;\n /** ... ban exipred at with format \"2023-09-01T12:00:00.000Z\" or \"2023-09-30T12:00:00.000+07:00\" */\n expiredAt?: InputMaybe<Scalars['String']['input']>;\n /** ... admin remark */\n remark?: InputMaybe<Scalars['String']['input']>;\n /** ... user guid to deactive */\n userGuid: Scalars['String']['input'];\n};\n\nexport enum TermType {\n Category = 'CATEGORY',\n PostTag = 'POST_TAG'\n}\n\nexport type TestResult = {\n __typename?: 'TestResult';\n result?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Tier = {\n __typename?: 'Tier';\n benefitField?: Maybe<Scalars['JSON']['output']>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n currencyCode?: Maybe<Scalars['String']['output']>;\n exts?: Maybe<Array<Maybe<TierExt>>>;\n guid?: Maybe<Scalars['String']['output']>;\n levelValue?: Maybe<Scalars['Int']['output']>;\n minPointToKeep?: Maybe<Scalars['Int']['output']>;\n minPointToReach?: Maybe<Scalars['Int']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<TierStatus>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type TierBonusRule = {\n __typename?: 'TierBonusRule';\n baseValue?: Maybe<TierBonusRuleBaseValueEnum>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n isForBirthday?: Maybe<Scalars['Boolean']['output']>;\n isForReferral?: Maybe<Scalars['Boolean']['output']>;\n maximumAmount?: Maybe<Scalars['Long']['output']>;\n minimumAmount?: Maybe<Scalars['Int']['output']>;\n priority?: Maybe<Scalars['Int']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<TierBonusRuleStatusEnum>;\n stopNow?: Maybe<Scalars['Boolean']['output']>;\n tierGuid?: Maybe<Scalars['String']['output']>;\n type?: Maybe<TierBonusRuleTypeEnum>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n value?: Maybe<Scalars['Double']['output']>;\n};\n\nexport enum TierBonusRuleBaseValueEnum {\n BaseAmount = 'BASE_AMOUNT',\n PrevAmount = 'PREV_AMOUNT'\n}\n\nexport type TierBonusRuleCriteria = {\n baseValue?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n isForBirthday?: InputMaybe<Scalars['Boolean']['input']>;\n isForReferral?: InputMaybe<Scalars['Boolean']['input']>;\n maximumAmount?: InputMaybe<Scalars['Long']['input']>;\n minimumAmount?: InputMaybe<Scalars['Int']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n priority?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: TierBonusRuleStatusEnum;\n stopNow?: InputMaybe<Scalars['Boolean']['input']>;\n tierGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n types?: InputMaybe<Array<Scalars['String']['input']>>;\n value?: InputMaybe<Scalars['Double']['input']>;\n};\n\nexport type TierBonusRuleRs = {\n __typename?: 'TierBonusRuleRs';\n data?: Maybe<Array<Maybe<TierBonusRule>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum TierBonusRuleStatusEnum {\n Active = 'ACTIVE',\n Deleted = 'DELETED'\n}\n\nexport enum TierBonusRuleTypeEnum {\n Fixed = 'FIXED',\n Percentage = 'PERCENTAGE'\n}\n\nexport type TierExt = {\n __typename?: 'TierExt';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n extType?: Maybe<Scalars['String']['output']>;\n extValue?: Maybe<Scalars['String']['output']>;\n file?: Maybe<FetchFileResponse>;\n guid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type TierRs = {\n __typename?: 'TierRs';\n data?: Maybe<Array<Maybe<Tier>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum TierStatus {\n Active = 'ACTIVE',\n Deleted = 'DELETED'\n}\n\nexport type TierUnlockBonusRule = {\n __typename?: 'TierUnlockBonusRule';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<TierBonusRuleStatusEnum>;\n tierGuid?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n value?: Maybe<Scalars['Long']['output']>;\n};\n\nexport type TierUnlockBonusRuleCriteria = {\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: TierBonusRuleStatusEnum;\n tierGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n value?: InputMaybe<Scalars['Long']['input']>;\n};\n\nexport type TierUnlockBonusRuleRs = {\n __typename?: 'TierUnlockBonusRuleRs';\n data?: Maybe<Array<TierUnlockBonusRule>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type TiersCriteria = {\n countryCodes?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n currencyCodes?: InputMaybe<Array<Scalars['String']['input']>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n minPointToKeep?: InputMaybe<Scalars['Int']['input']>;\n minPointToReach?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: TierStatus;\n};\n\nexport type TimeSeriesRs = {\n __typename?: 'TimeSeriesRs';\n samples?: Maybe<Array<Maybe<Array<Maybe<Scalars['Long']['output']>>>>>;\n};\n\nexport enum TimeserieLabels {\n CountryId = 'countryId',\n CurrencyCode = 'currencyCode',\n Gender = 'gender',\n Type = 'type'\n}\n\nexport enum TimeseriesKeys {\n /** Total growth member per day */\n MemberGrowthTs = 'MEMBER_GROWTH_TS',\n /** Total point earned per day */\n MemberPointEarnedTs = 'MEMBER_POINT_EARNED_TS',\n /** Total point redeemed per day */\n RedeemPointTs = 'REDEEM_POINT_TS'\n}\n\nexport type Token = {\n __typename?: 'Token';\n accessToken?: Maybe<Scalars['String']['output']>;\n refreshToken?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum TrailStatus {\n Fail = 'FAIL',\n Pending = 'PENDING',\n Processing = 'PROCESSING',\n Success = 'SUCCESS'\n}\n\nexport type TransactionQueue = {\n __typename?: 'TransactionQueue';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n eventCode?: Maybe<Scalars['String']['output']>;\n eventProperties?: Maybe<Scalars['JSON']['output']>;\n executionAfter?: Maybe<Scalars['DateTime']['output']>;\n executionExpiry?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n maxRetry?: Maybe<Scalars['Int']['output']>;\n numberOfRetry?: Maybe<Scalars['Int']['output']>;\n transactionGuid?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type TransactionRefund = {\n __typename?: 'TransactionRefund';\n ccyCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<AppLoginSubject>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n internalStatus?: Maybe<InternalRefundStatusEnum>;\n makerProcessedAt?: Maybe<Scalars['DateTime']['output']>;\n makerProcessedBy?: Maybe<AppLoginSubject>;\n makerProcessedByGuid?: Maybe<Scalars['String']['output']>;\n merchantCode?: Maybe<Scalars['String']['output']>;\n merchantRefNo?: Maybe<Scalars['String']['output']>;\n processedAt?: Maybe<Scalars['DateTime']['output']>;\n processedBy?: Maybe<AppLoginSubject>;\n processedByGuid?: Maybe<Scalars['String']['output']>;\n refundAmount?: Maybe<Scalars['String']['output']>;\n refundId?: Maybe<Scalars['String']['output']>;\n refundNotificationUrl?: Maybe<Scalars['String']['output']>;\n requestRemark?: Maybe<Scalars['String']['output']>;\n responseRemark?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<RefundStatusEnum>;\n transaction?: Maybe<PaymentGatewayTransactions>;\n transactionRef?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<AppLoginSubject>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n};\n\n/** TransactionRefund Connection */\nexport type TransactionRefundConnection = {\n __typename?: 'TransactionRefundConnection';\n /** Field edges */\n edges?: Maybe<Array<Maybe<TransactionRefundEdge>>>;\n /** Field pageInfo */\n pageInfo: PageInfo;\n};\n\n/** TransactionRefund Edge */\nexport type TransactionRefundEdge = {\n __typename?: 'TransactionRefundEdge';\n /** Field cursor */\n cursor?: Maybe<Scalars['String']['output']>;\n /** Field node */\n node?: Maybe<TransactionRefund>;\n};\n\nexport type TransactionRefundFilter = {\n /** fill with end cursor id to get next data/page, cannot use this if already use 'before' filter */\n after?: InputMaybe<Scalars['String']['input']>;\n /** fill with start cursor id to get prev data/page, cannot use this if already use 'after' filter */\n before?: InputMaybe<Scalars['String']['input']>;\n /** ISO 8601 format. Default to 2 hours if not sent. */\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n /** ISO 8601 format. */\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n internalStatus?: InputMaybe<InternalRefundStatusEnum>;\n merchantRefNo?: InputMaybe<Scalars['String']['input']>;\n pageSize?: Scalars['Int']['input'];\n refundId?: InputMaybe<Scalars['String']['input']>;\n sortBy: TransactionRefundSortByEnum;\n sortDirection?: Scalars['String']['input'];\n /** Default to PENDING_REFUND if not sent. */\n status?: InputMaybe<RefundStatusEnum>;\n transactionRef?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type TransactionRefundResult = {\n __typename?: 'TransactionRefundResult';\n data: Array<Maybe<TransactionRefund>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum TransactionRefundSortByEnum {\n CreatedAt = 'createdAt',\n UpdatedAt = 'updatedAt'\n}\n\nexport type TransactionTrail = {\n __typename?: 'TransactionTrail';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n ipCreated?: Maybe<Scalars['String']['output']>;\n request?: Maybe<Scalars['JSON']['output']>;\n response?: Maybe<Scalars['JSON']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n transactionGuid?: Maybe<Scalars['String']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum UniboxV2RequestType {\n MobileGame = 'MOBILE_GAME',\n Standard = 'STANDARD'\n}\n\nexport type UpdateActivityHistoryRq = {\n boardGuid?: InputMaybe<Scalars['String']['input']>;\n cardAttachmentGuid?: InputMaybe<Scalars['String']['input']>;\n cardGuid?: InputMaybe<Scalars['String']['input']>;\n changedValue?: InputMaybe<Scalars['JSON']['input']>;\n commentAttachmentGuid?: InputMaybe<Scalars['String']['input']>;\n commentGuid?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n requestAttachmentGuid?: InputMaybe<Scalars['String']['input']>;\n requestGuid?: InputMaybe<Scalars['String']['input']>;\n showOnRequest?: InputMaybe<Scalars['Boolean']['input']>;\n type?: InputMaybe<ActivityHistoryType>;\n};\n\nexport type UpdateApiCredentialRq = {\n activeAt?: InputMaybe<Scalars['DateTime']['input']>;\n expiredAt?: InputMaybe<Scalars['DateTime']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n transactionalUserGuid?: InputMaybe<Scalars['String']['input']>;\n version?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateAuthSettingRq = {\n /** ... Setting guid identifier */\n guid: Scalars['String']['input'];\n /** ... Setting name */\n name?: InputMaybe<Scalars['String']['input']>;\n /** ... Setting value */\n value?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateBirthdayTierBonusRule = {\n guid: Scalars['String']['input'];\n revision?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n tierGuid?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<BirthdayTierBonusRuleTypeEnum>;\n value?: InputMaybe<Scalars['Float']['input']>;\n};\n\nexport type UpdateBoardAccessRq = {\n boardGuid?: InputMaybe<Scalars['String']['input']>;\n expiredAt?: InputMaybe<Scalars['DateTime']['input']>;\n guid: Scalars['String']['input'];\n roleGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateBoardRq = {\n guid: Scalars['String']['input'];\n model?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateBookmarkRq = {\n /** Bookmark Guid. */\n guid?: InputMaybe<Scalars['String']['input']>;\n /** Post Guid that going to be saved. */\n postGuid?: InputMaybe<Scalars['String']['input']>;\n /** User Guid that saving the post. */\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateCardLabelRq = {\n cardGuid?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n labelGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateCardRq = {\n assignedLead?: InputMaybe<Scalars['String']['input']>;\n assignedMember?: InputMaybe<Scalars['String']['input']>;\n assignedMentor?: InputMaybe<Scalars['String']['input']>;\n assignedPmo?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n dueDateAt?: InputMaybe<Scalars['DateTime']['input']>;\n guid: Scalars['String']['input'];\n milliEffortPoint?: InputMaybe<Scalars['Int']['input']>;\n requestGuid?: InputMaybe<Scalars['String']['input']>;\n requestedAt?: InputMaybe<Scalars['DateTime']['input']>;\n sectionGuid?: InputMaybe<Scalars['String']['input']>;\n sectionOrder?: InputMaybe<Scalars['Int']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateCardSprintRq = {\n cardGuid?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n sprintGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateCatalog = {\n /** This will replace current categories */\n categoryGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n countryId?: InputMaybe<Scalars['String']['input']>;\n currencyCode?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n estDeliveryTimeUnit?: InputMaybe<EstDeliveryTimeUnit>;\n estDeliveryTimeValue?: InputMaybe<Scalars['Int']['input']>;\n guid: Scalars['String']['input'];\n isNeedApproval?: InputMaybe<Scalars['Boolean']['input']>;\n minLevelToReach?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n price?: InputMaybe<Scalars['Double']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n revision: Scalars['String']['input'];\n status?: InputMaybe<CatalogStatus>;\n};\n\nexport type UpdateCatalogCategory = {\n guid: Scalars['String']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n revision: Scalars['String']['input'];\n slug?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateChecklistItemRq = {\n assignedUser?: InputMaybe<Scalars['String']['input']>;\n checklistGuid?: InputMaybe<Scalars['String']['input']>;\n checklistOrder?: InputMaybe<Scalars['Int']['input']>;\n dueAt?: InputMaybe<Scalars['DateTime']['input']>;\n guid: Scalars['String']['input'];\n isChecked?: InputMaybe<Scalars['Boolean']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateChecklistRq = {\n cardGuid?: InputMaybe<Scalars['String']['input']>;\n cardOrder?: InputMaybe<Scalars['Int']['input']>;\n guid: Scalars['String']['input'];\n itemCount?: InputMaybe<Scalars['Int']['input']>;\n itemCountChecked?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateCmsPostExtRq = {\n /** Possible value: CONTENT_IMAGE_POST/SQUARE_THUMBNAIL */\n ext_type?: InputMaybe<Scalars['String']['input']>;\n /** Guid value referencing to Amazon S3 image file */\n ext_value?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n post_guid?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateCmsPostRq = {\n authorGuid?: InputMaybe<Scalars['String']['input']>;\n authorName?: InputMaybe<Scalars['String']['input']>;\n commentCount?: InputMaybe<Scalars['Int']['input']>;\n /** Open/Closed post comment status */\n commentStatus?: InputMaybe<Scalars['String']['input']>;\n /** Video thumbnail/Live thumbnail */\n contentOption?: InputMaybe<ContentOption>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n /** Country guid of the post */\n countryGuid?: InputMaybe<Scalars['String']['input']>;\n expiredAt?: InputMaybe<Scalars['DateTime']['input']>;\n guid: Scalars['String']['input'];\n /** Pin or un-pin a post */\n isPinned?: InputMaybe<Scalars['Boolean']['input']>;\n /** Content of the post */\n postBody?: InputMaybe<Scalars['String']['input']>;\n /** Terms-Category guid of the post */\n postCategoryGuid?: InputMaybe<Scalars['String']['input']>;\n /** For SEO purposes. Max length: 160 */\n postMetaDescription?: InputMaybe<Scalars['String']['input']>;\n /** DRAFT/ON_REVIEW/PUBLISHED post status */\n postStatus?: InputMaybe<Scalars['String']['input']>;\n /** Terms-PostTag names of the post */\n postTagNames: Array<InputMaybe<Scalars['String']['input']>>;\n postTitle?: InputMaybe<Scalars['String']['input']>;\n publishedAt?: InputMaybe<Scalars['DateTime']['input']>;\n /** The current revision value is mandatory to update CMS Post */\n revision: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n /** The part of a static URL that describes the post */\n urlKey?: InputMaybe<Scalars['String']['input']>;\n /** Video/Live content option source */\n videoSource?: InputMaybe<Scalars['String']['input']>;\n /** Settings for view count */\n viewCount?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type UpdateCmsPostTermRq = {\n guid: Scalars['String']['input'];\n isHidden?: InputMaybe<Scalars['Boolean']['input']>;\n revision: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n termDescription?: InputMaybe<Scalars['String']['input']>;\n /** Name of the Category/Tag. Ex: Anime & Manga, Profile */\n termName?: InputMaybe<Scalars['String']['input']>;\n termParentGuid?: InputMaybe<Scalars['String']['input']>;\n /** Possible value: CATEGORY/POST_TAG */\n termType: TermType;\n urlKey?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateCmsUserRq = {\n authUserGuid?: InputMaybe<Scalars['String']['input']>;\n bio?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n picture?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n updatedByGuid?: InputMaybe<Scalars['String']['input']>;\n url?: InputMaybe<Scalars['String']['input']>;\n userName?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateCommentRq = {\n cardGuid?: InputMaybe<Scalars['String']['input']>;\n content?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n requestGuid?: InputMaybe<Scalars['String']['input']>;\n showOnRequest?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type UpdateCompanyRq = {\n /** ... new company code */\n code?: InputMaybe<Scalars['String']['input']>;\n /** ... new company country */\n countryCode?: InputMaybe<Scalars['String']['input']>;\n /** ... new company description */\n description?: InputMaybe<Scalars['String']['input']>;\n /** ... new company displayed name */\n displayName?: InputMaybe<Scalars['String']['input']>;\n /** ... guid for company want to update */\n guid?: InputMaybe<Scalars['String']['input']>;\n isInternal?: InputMaybe<Scalars['Boolean']['input']>;\n /** ... new company name */\n name?: InputMaybe<Scalars['String']['input']>;\n /** ... data version, must match data version in db */\n revision?: InputMaybe<Scalars['String']['input']>;\n /** ... new company status */\n status?: InputMaybe<Status>;\n};\n\nexport type UpdateContractTemplateRq = {\n contractDetailsGuidToLink?: InputMaybe<Array<Scalars['String']['input']>>;\n contractDetailsGuidToUnlink?: InputMaybe<Array<Scalars['String']['input']>>;\n guid: Scalars['String']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n productSelection?: InputMaybe<ProductSelectionEnum>;\n revision: Scalars['String']['input'];\n status?: InputMaybe<Status>;\n};\n\nexport type UpdateCredentialDetailRq = {\n guid: Scalars['String']['input'];\n value: Scalars['String']['input'];\n};\n\nexport type UpdateCredentialRq = {\n code?: InputMaybe<Scalars['String']['input']>;\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n revision: Scalars['String']['input'];\n};\n\nexport type UpdateDenomGroupRq = {\n guid?: InputMaybe<Scalars['String']['input']>;\n imageGuid?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateEmailMessageTemplateRq = {\n /** ... message template identifier */\n guid: Scalars['String']['input'];\n /** ... message id */\n messageId?: InputMaybe<Scalars['String']['input']>;\n /** ... data version, must match data version in db */\n revision: Scalars['String']['input'];\n /** ... message template status */\n status?: InputMaybe<Scalars['String']['input']>;\n /** ... base64 encoded html or message template */\n value?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateEventLogsRq = {\n currency?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n paymentProviderGuid?: InputMaybe<Scalars['String']['input']>;\n prizeGuid?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n reference?: InputMaybe<Scalars['String']['input']>;\n remark?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n userInfo?: InputMaybe<Scalars['String']['input']>;\n utmCampaign?: InputMaybe<Scalars['String']['input']>;\n utmMedium?: InputMaybe<Scalars['String']['input']>;\n utmSource?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateEventManagementsRq = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n /** Discount Code Management GUID */\n dcmGuid?: InputMaybe<Scalars['String']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n eventAmount?: InputMaybe<Scalars['Long']['input']>;\n eventBonusAmount?: InputMaybe<Scalars['Long']['input']>;\n eventBonusType?: InputMaybe<EventBonusType>;\n eventQuota?: InputMaybe<Scalars['Int']['input']>;\n eventQuotaType?: InputMaybe<EventQuotaType>;\n fields?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n imageGuid?: InputMaybe<Scalars['String']['input']>;\n isFirstTimePay?: InputMaybe<Scalars['Boolean']['input']>;\n isRedRibbonFlag?: InputMaybe<Scalars['Boolean']['input']>;\n isReload?: InputMaybe<Scalars['Boolean']['input']>;\n isUniquePaymentQuota?: InputMaybe<Scalars['Boolean']['input']>;\n isUniqueUserDaily?: InputMaybe<Scalars['Boolean']['input']>;\n isWebtopup?: InputMaybe<Scalars['Boolean']['input']>;\n isWeekendOnly?: InputMaybe<Scalars['Boolean']['input']>;\n maximumEventBonus?: InputMaybe<Scalars['Int']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n mobileImageGuid?: InputMaybe<Scalars['String']['input']>;\n paymentProvider?: InputMaybe<Array<PciEventMgmtRq>>;\n productPageGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n revision: Scalars['String']['input'];\n slug?: InputMaybe<Scalars['String']['input']>;\n specialPriceAmount?: InputMaybe<Scalars['JSON']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n startHour?: InputMaybe<Scalars['Int']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n title: Scalars['String']['input'];\n tncUrl?: InputMaybe<Scalars['String']['input']>;\n type: Scalars['String']['input'];\n};\n\nexport type UpdateEventParticipationRq = {\n additionalData?: InputMaybe<Scalars['String']['input']>;\n address?: InputMaybe<Scalars['String']['input']>;\n email?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n paymentProviderGuid?: InputMaybe<Scalars['String']['input']>;\n phone?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n reference?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateGithubEventCardLinkRq = {\n cardGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n createdByGithubUser?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n internalRef?: InputMaybe<Scalars['String']['input']>;\n needActionFromGithubUser?: InputMaybe<Scalars['String']['input']>;\n repositoryUrl?: InputMaybe<Scalars['String']['input']>;\n revision: Scalars['String']['input'];\n state?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<GithubEventTypeEnum>;\n typeNumber?: InputMaybe<Scalars['Int']['input']>;\n typeUrl?: InputMaybe<Scalars['String']['input']>;\n updatedByGithubUser?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateHistoryAgreementRq = {\n content?: InputMaybe<Scalars['String']['input']>;\n countryCode: Scalars['String']['input'];\n guid: Scalars['String']['input'];\n publishDate?: InputMaybe<Scalars['DateTime']['input']>;\n status: Status;\n};\n\nexport type UpdateInternalRefundStatusRs = {\n __typename?: 'UpdateInternalRefundStatusRs';\n code?: Maybe<Scalars['String']['output']>;\n data?: Maybe<TransactionRefund>;\n message?: Maybe<Scalars['String']['output']>;\n};\n\nexport type UpdateIpRq = {\n guid: Scalars['String']['input'];\n ipRange: Scalars['String']['input'];\n};\n\nexport type UpdateLabelRq = {\n boardGuid?: InputMaybe<Scalars['String']['input']>;\n color?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n order?: InputMaybe<Scalars['Int']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateMerchantContactRq = {\n address?: InputMaybe<Scalars['String']['input']>;\n email?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n merchantGuid: Scalars['String']['input'];\n name: Scalars['String']['input'];\n phone?: InputMaybe<Scalars['String']['input']>;\n position?: InputMaybe<Scalars['String']['input']>;\n revision: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateMerchantContractRq = {\n code?: InputMaybe<Scalars['String']['input']>;\n contractTemplateGuid?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n key?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n revision: Scalars['String']['input'];\n status?: InputMaybe<Status>;\n};\n\nexport type UpdateMerchantPaymentDenomRq = {\n amount?: InputMaybe<Scalars['Double']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateMerchantPaymentProviderRq = {\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n providerGuid?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateMerchantRq = {\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n creditLimit?: InputMaybe<Scalars['Float']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n settlementCurrency?: InputMaybe<Scalars['String']['input']>;\n settlementType?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdatePaymentChannelDenomRq = {\n amount?: InputMaybe<Scalars['Double']['input']>;\n code?: InputMaybe<Scalars['String']['input']>;\n credit?: InputMaybe<Scalars['Long']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n payamentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdatePaymentChannelRq = {\n category?: InputMaybe<Scalars['String']['input']>;\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n charge?: InputMaybe<Scalars['Float']['input']>;\n chargeType?: InputMaybe<Scalars['String']['input']>;\n code?: InputMaybe<Scalars['String']['input']>;\n contractorCompanyGuid?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n credentialGuid?: InputMaybe<Scalars['String']['input']>;\n field?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n isInquiryAvail?: InputMaybe<Scalars['Boolean']['input']>;\n isSupportLinkage?: InputMaybe<Scalars['Boolean']['input']>;\n isWhitelabel?: InputMaybe<Scalars['Boolean']['input']>;\n maxAmount?: InputMaybe<Scalars['Double']['input']>;\n metaFieldJson?: InputMaybe<Array<InputMaybe<PaymentChannelMetaField>>>;\n minAmount?: InputMaybe<Scalars['Double']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n parameter?: InputMaybe<Scalars['String']['input']>;\n providerCode: Scalars['String']['input'];\n providerCompanyGuid?: InputMaybe<Scalars['String']['input']>;\n providerPriority?: InputMaybe<Scalars['String']['input']>;\n rateTemplateGuid?: InputMaybe<Scalars['String']['input']>;\n remark?: InputMaybe<Scalars['String']['input']>;\n revision: Scalars['String']['input'];\n route?: InputMaybe<Scalars['String']['input']>;\n serviceCompanyGuid?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n vatPercentage?: InputMaybe<Scalars['Float']['input']>;\n};\n\nexport type UpdatePaymentProviderRq = {\n category?: InputMaybe<Scalars['String']['input']>;\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n code?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n isSupportLinkage?: InputMaybe<Scalars['Boolean']['input']>;\n maxAmount?: InputMaybe<Scalars['Long']['input']>;\n minAmount?: InputMaybe<Scalars['Long']['input']>;\n providerExternalName?: InputMaybe<Scalars['String']['input']>;\n providerInternalName?: InputMaybe<Scalars['String']['input']>;\n revision: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdatePermRq = {\n /** ... new parent identifier */\n parentId?: InputMaybe<Scalars['String']['input']>;\n /** ... new permmission code */\n permCode?: InputMaybe<Scalars['String']['input']>;\n /** ... new permission description */\n permDescription?: InputMaybe<Scalars['String']['input']>;\n /** ... new permission permission module */\n permModule?: InputMaybe<Scalars['String']['input']>;\n /** ... new permission name */\n permName?: InputMaybe<Scalars['String']['input']>;\n /** ... new permission permission scope */\n permScope?: InputMaybe<Scalars['String']['input']>;\n /** ... new permission type */\n permType?: InputMaybe<Scalars['String']['input']>;\n /** ... data version, must match data version in db */\n revision: Scalars['String']['input'];\n /** ... new permission status */\n status?: InputMaybe<Status>;\n};\n\nexport type UpdatePrincipalRq = {\n /** ...User principal guid */\n guid?: InputMaybe<Scalars['String']['input']>;\n /** ... User new Principal */\n newPrincipal: Scalars['String']['input'];\n /** ... User old principal id */\n oldPrincipal?: InputMaybe<Scalars['String']['input']>;\n /** ... user guid belong to user that we want change the principal, MANDATORY FOR UPDATE BY ADMIN if user don't have the principal type before */\n userGuid?: InputMaybe<Scalars['String']['input']>;\n /** ... verification code, ONLY FOR UPDATE BY USER if you send guid when update by ADMIN then the data will not used */\n verificationCode?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateProductDenominationRq = {\n denomGroupGuid?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n imageGuid?: InputMaybe<Scalars['String']['input']>;\n isAdjustableSellingPrice?: InputMaybe<Scalars['Boolean']['input']>;\n isDirectVoucher?: InputMaybe<Scalars['Boolean']['input']>;\n isVoucherApi?: InputMaybe<Scalars['Boolean']['input']>;\n itemCode?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n partnerProductId?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n remark?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n voucherGroupGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateProductPageRq = {\n category: ProductPageCategory;\n communityLink?: InputMaybe<Scalars['String']['input']>;\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n content?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n credentialGuid?: InputMaybe<Scalars['String']['input']>;\n downloadLink?: InputMaybe<Scalars['String']['input']>;\n gameCenterImage?: InputMaybe<Scalars['String']['input']>;\n gameChildCode?: InputMaybe<Scalars['String']['input']>;\n gameParentCode?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n huaweiDownloadLink?: InputMaybe<Scalars['String']['input']>;\n iconGuid?: InputMaybe<Scalars['String']['input']>;\n influencerLink?: InputMaybe<Scalars['String']['input']>;\n iosDownloadLink?: InputMaybe<Scalars['String']['input']>;\n isEvent?: InputMaybe<Scalars['Boolean']['input']>;\n isNew?: InputMaybe<Scalars['Boolean']['input']>;\n isPromo?: InputMaybe<Scalars['Boolean']['input']>;\n isShowOnLandingPage?: InputMaybe<Scalars['Boolean']['input']>;\n isTesting?: InputMaybe<Scalars['Boolean']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n metaDescription?: InputMaybe<Scalars['String']['input']>;\n metaFieldJson?: InputMaybe<Array<InputMaybe<ProductPageMetaField>>>;\n metaTitle?: InputMaybe<Scalars['String']['input']>;\n officialSiteLink?: InputMaybe<Scalars['String']['input']>;\n providerCompanyGuid?: InputMaybe<Scalars['String']['input']>;\n reloadType?: InputMaybe<ProductPageReloadTypeEnum>;\n revision: Scalars['String']['input'];\n route?: InputMaybe<Scalars['String']['input']>;\n schemaMarkup?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n tags?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n topUpGuidLink?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateProductPriceListRq = {\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n contractTemplateGuid?: InputMaybe<Scalars['String']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n eventCode?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n magnifyValue?: InputMaybe<Scalars['Int']['input']>;\n paymentProviderCode?: InputMaybe<Scalars['String']['input']>;\n price?: InputMaybe<Scalars['Int']['input']>;\n priority?: InputMaybe<Scalars['Int']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n rateTemplateGuid?: InputMaybe<Scalars['String']['input']>;\n revision: Scalars['String']['input'];\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<Status>;\n type?: InputMaybe<PriceListType>;\n};\n\nexport type UpdateProfileRq = {\n /** ... update user birthday */\n birthday?: InputMaybe<Scalars['Date']['input']>;\n /** ... update user gender */\n gender?: InputMaybe<Gender>;\n /** ... user guid we want to update, ONLY FOR UPDATE BY ADMIN if you send guid when update by user then the data will not used */\n guid?: InputMaybe<Scalars['String']['input']>;\n /** ... update user full name */\n name?: InputMaybe<Scalars['String']['input']>;\n /** ... user status ACTIVE/INACTIVE, ONLY FOR UPDATE BY ADMIN if you send data when update by user then the data will not used */\n status?: InputMaybe<Status>;\n};\n\nexport type UpdateRaffleManagementsRq = {\n amount?: InputMaybe<Scalars['Long']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n eventQuota?: InputMaybe<Scalars['Int']['input']>;\n fields?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n imageGuid?: InputMaybe<Scalars['String']['input']>;\n isHide?: InputMaybe<Scalars['Boolean']['input']>;\n isLogin?: InputMaybe<Scalars['Boolean']['input']>;\n isReload?: InputMaybe<Scalars['Boolean']['input']>;\n isVoucher?: InputMaybe<Scalars['Boolean']['input']>;\n isWebtopup?: InputMaybe<Scalars['Boolean']['input']>;\n merchantGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n paymentChannelTargetType?: InputMaybe<PaymentChannelTargetType>;\n paymentProvider?: InputMaybe<Array<PciEventMgmtRq>>;\n revision: Scalars['String']['input'];\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n title: Scalars['String']['input'];\n type: Scalars['String']['input'];\n userDailyQuota?: InputMaybe<Scalars['Int']['input']>;\n userLimitQuota?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type UpdateRateCardTemplateDetailRq = {\n endAt?: InputMaybe<Scalars['DateTime']['input']>;\n guid: Scalars['String']['input'];\n magnifyValue?: InputMaybe<Scalars['Int']['input']>;\n minimumRate?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n paymentProviderCode?: InputMaybe<Scalars['String']['input']>;\n priority?: InputMaybe<Scalars['Int']['input']>;\n rate?: InputMaybe<Scalars['Float']['input']>;\n rateLogic?: InputMaybe<RateLogic>;\n revision: Scalars['String']['input'];\n startAt?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateRateCardTemplateRq = {\n code?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n revision: Scalars['String']['input'];\n};\n\nexport type UpdateRatesRq = {\n /** new currency base guid */\n baseGuid?: InputMaybe<Scalars['String']['input']>;\n /** rate identifier */\n guid: Scalars['String']['input'];\n /** new currency code for rate */\n rateCcy?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateRedeem = {\n guid: Scalars['String']['input'];\n internalStatus: InternalStatus;\n remark?: InputMaybe<Scalars['String']['input']>;\n revision: Scalars['String']['input'];\n};\n\nexport type UpdateRequestNatureRq = {\n code?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateRequestNatureTypeRq = {\n attachmentConfigJson?: InputMaybe<Scalars['JSON']['input']>;\n codePrefix?: InputMaybe<Scalars['String']['input']>;\n defaultBoardGuid?: InputMaybe<Scalars['String']['input']>;\n defaultPicUserGuid?: InputMaybe<Scalars['String']['input']>;\n defaultSlaUnit?: InputMaybe<SlaUnit>;\n defaultSlaValue?: InputMaybe<Scalars['Int']['input']>;\n guid: Scalars['String']['input'];\n natureGuid?: InputMaybe<Scalars['String']['input']>;\n /** Notification email cc */\n notificationCc?: InputMaybe<Scalars['String']['input']>;\n /** Notification email to */\n notificationTo?: InputMaybe<Scalars['String']['input']>;\n typeGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateRequestRq = {\n actualReleaseAt?: InputMaybe<Scalars['DateTime']['input']>;\n approvedStartDate?: InputMaybe<Scalars['DateTime']['input']>;\n approvedTargetDate?: InputMaybe<Scalars['DateTime']['input']>;\n assignedPicUserGuid?: InputMaybe<Scalars['String']['input']>;\n assignedTechLeadUserGuid?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n details?: InputMaybe<Scalars['String']['input']>;\n duplicateTo?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n isRequirementComplete?: InputMaybe<Scalars['Boolean']['input']>;\n picStatus?: InputMaybe<Scalars['String']['input']>;\n releaseNote?: InputMaybe<Scalars['String']['input']>;\n releaseTargetDate?: InputMaybe<Scalars['DateTime']['input']>;\n requestNatureGuid?: InputMaybe<Scalars['String']['input']>;\n requestTypeGuid?: InputMaybe<Scalars['String']['input']>;\n requestedTargetDate?: InputMaybe<Scalars['DateTime']['input']>;\n revisedTargetDate?: InputMaybe<Scalars['DateTime']['input']>;\n sla?: InputMaybe<Scalars['Int']['input']>;\n slaUnit?: InputMaybe<SlaUnit>;\n sourceTeam?: InputMaybe<Scalars['String']['input']>;\n sourceUser?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n supportingDetails?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n urgency?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type UpdateRequestTypeRq = {\n code?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateRoleRq = {\n /** ... new role code */\n code?: InputMaybe<Scalars['String']['input']>;\n /** ... new role description */\n description?: InputMaybe<Scalars['String']['input']>;\n isInternal?: InputMaybe<Scalars['Boolean']['input']>;\n /** ... new role name */\n name?: InputMaybe<Scalars['String']['input']>;\n /** ... data version, must match with data version in db */\n revision: Scalars['String']['input'];\n /** ... new role status */\n status?: InputMaybe<Status>;\n};\n\nexport type UpdateSectionRq = {\n boardGuid?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n sectionOrder?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type UpdateSprintRq = {\n finishAt?: InputMaybe<Scalars['DateTime']['input']>;\n guid: Scalars['String']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n startAt?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type UpdateSuspiciousTagRq = {\n actionCode?: InputMaybe<Scalars['String']['input']>;\n actionJson?: InputMaybe<Scalars['JSON']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n intervalParam?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n targetCode?: InputMaybe<Scalars['String']['input']>;\n threshold?: InputMaybe<Scalars['Int']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateTemplateDetailRq = {\n amount?: InputMaybe<Scalars['Double']['input']>;\n guid: Scalars['String']['input'];\n paymentProviderGuid?: InputMaybe<Scalars['String']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n productGuid?: InputMaybe<Scalars['String']['input']>;\n productSelection?: ProductSelectionEnum;\n revision: Scalars['String']['input'];\n status?: InputMaybe<Status>;\n};\n\nexport type UpdateTier = {\n benefitField?: InputMaybe<Scalars['JSON']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n currencyCode?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n levelValue?: InputMaybe<Scalars['Int']['input']>;\n minPointToKeep?: InputMaybe<Scalars['Int']['input']>;\n minPointToReach?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<TierStatus>;\n};\n\nexport type UpdateTierBonusRule = {\n baseValue?: InputMaybe<TierBonusRuleBaseValueEnum>;\n guid: Scalars['String']['input'];\n isForBirthday?: InputMaybe<Scalars['Boolean']['input']>;\n isForReferral?: InputMaybe<Scalars['Boolean']['input']>;\n maximumAmount?: InputMaybe<Scalars['Long']['input']>;\n minimumAmount?: InputMaybe<Scalars['Int']['input']>;\n priority?: InputMaybe<Scalars['Int']['input']>;\n revision: Scalars['String']['input'];\n status?: InputMaybe<TierBonusRuleStatusEnum>;\n stopNow?: InputMaybe<Scalars['Boolean']['input']>;\n tierGuid?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<TierBonusRuleTypeEnum>;\n value?: InputMaybe<Scalars['Double']['input']>;\n};\n\nexport type UpdateTierUnlockBonusRule = {\n guid: Scalars['String']['input'];\n revision: Scalars['String']['input'];\n status?: InputMaybe<TierBonusRuleStatusEnum>;\n tierGuid?: InputMaybe<Scalars['String']['input']>;\n value?: InputMaybe<Scalars['Long']['input']>;\n};\n\nexport type UpdateTransactionRefundRq = {\n guid: Scalars['String']['input'];\n /** Update refund response remark. */\n responseRemark: Scalars['String']['input'];\n /** Update refund status to SUCCESS_REFUND / REJECTED_REFUND. */\n status: RefundStatusEnum;\n};\n\nexport type UpdateVacancyRq = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n requirement?: InputMaybe<Scalars['String']['input']>;\n responsibility?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n slug?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateVacancySettingsRq = {\n guid?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n value?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\nexport type UpdateVoucherGroupAutoGenRq = {\n /** amount of voucher that will auto generate */\n amount?: InputMaybe<Scalars['Int']['input']>;\n /** Timeout generation Input number in second */\n generationTimeout?: InputMaybe<Scalars['Int']['input']>;\n /** GUID of voucher group auto gen */\n guid?: InputMaybe<Scalars['String']['input']>;\n /** Minimum stock that will auto generate after reach */\n minThreshold?: InputMaybe<Scalars['Int']['input']>;\n /** Status of Voucher Group Auto Gen */\n status?: InputMaybe<VoucherAutoGenStatus>;\n /** GUID of voucher group */\n voucherGroupGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateVoucherGroupRq = {\n /** Currency */\n currency?: InputMaybe<Scalars['String']['input']>;\n /** Voucher group identifier */\n guid?: InputMaybe<Scalars['String']['input']>;\n /** to magnify value above before display to user */\n magnifyValue?: InputMaybe<Scalars['Int']['input']>;\n /** Name of voucher group */\n name?: InputMaybe<Scalars['String']['input']>;\n /** Voucher that have pin, this one to set the pattern */\n pinPattern: Scalars['JSON']['input'];\n revision: Scalars['String']['input'];\n /** Voucher pattern for this voucher group, doesn't affect API type voucher */\n serialPattern: Scalars['JSON']['input'];\n /** Type of voucher group */\n type?: InputMaybe<VoucherGroupType>;\n /** Voucher price to check when redeem */\n value?: InputMaybe<Scalars['Int']['input']>;\n /** Code for API type voucher only */\n voucherApiCode?: InputMaybe<Scalars['String']['input']>;\n voucherPattern?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateVoucherTransactionTrailRq = {\n createdIp?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n request?: InputMaybe<Scalars['JSON']['input']>;\n response?: InputMaybe<Scalars['JSON']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n transactionGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateWebConfigRq = {\n code?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n jsonValue?: InputMaybe<Scalars['String']['input']>;\n numberValue?: InputMaybe<Scalars['Int']['input']>;\n revision: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n stringValue?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UserAdminQueryCriteria = {\n companyGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n email?: InputMaybe<Scalars['String']['input']>;\n gender?: InputMaybe<Gender>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n /** ... cannot use this filter if already use optionalRole filter */\n mandatoryRole?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n merchantGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n mobileNumber?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n /** ... cannot use this filter if already use mandatoryRole filter */\n optionalRole?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n sourcePlatform?: InputMaybe<SourcePlatform>;\n status?: InputMaybe<Array<InputMaybe<Status>>>;\n};\n\nexport enum UserBanType {\n Login = 'LOGIN'\n}\n\nexport type UserByAdmin = {\n __typename?: 'UserByAdmin';\n password?: Maybe<Scalars['String']['output']>;\n user?: Maybe<AppLoginSubject>;\n};\n\nexport type UserConfirmRq = {\n /** ... verification code from email or otp notification */\n code: Scalars['String']['input'];\n /** ... email registered to user */\n email?: InputMaybe<Scalars['String']['input']>;\n /** ... mobile number registered to user */\n mobileNumber?: InputMaybe<Scalars['String']['input']>;\n /** ... source platform where principal registered */\n sourcePlatform: SourcePlatform;\n};\n\nexport type UserConsent = {\n __typename?: 'UserConsent';\n guid?: Maybe<Scalars['String']['output']>;\n historyAgreement?: Maybe<HistoryAgreement>;\n};\n\nexport type UserConsentCriteria = {\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n historyAgreementGuid?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UserFcm = {\n __typename?: 'UserFcm';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid: Scalars['String']['output'];\n};\n\nexport type UserLogin = {\n __typename?: 'UserLogin';\n appLoginExt?: Maybe<Array<Maybe<AppLoginSubjectExt>>>;\n birthday?: Maybe<Scalars['Date']['output']>;\n category?: Maybe<Scalars['String']['output']>;\n createdDate?: Maybe<Scalars['String']['output']>;\n email?: Maybe<Scalars['String']['output']>;\n gender?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n mobileNumber?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n sourcePlatform?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Status>;\n updatedDate?: Maybe<Scalars['String']['output']>;\n};\n\nexport type UserMemberQueryCriteria = {\n /** ... fill with end cursor id to get next data/page, cannot use this if already use 'before' filter */\n after?: InputMaybe<Scalars['String']['input']>;\n /** ... fill with start cursor id to get prev data/page, cannot use this if already use 'after' filter */\n before?: InputMaybe<Scalars['String']['input']>;\n email?: InputMaybe<Scalars['String']['input']>;\n gender?: InputMaybe<Gender>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n /** ... cannot use this filter if already use optionalRole filter */\n mandatoryRole?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n mobileNumber?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n /** ... cannot use this filter if already use mandatoryRole filter */\n optionalRole?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy: AppLoginSubjectSortByEnum;\n sortDirection?: Scalars['String']['input'];\n sourcePlatform?: InputMaybe<SourcePlatform>;\n status?: InputMaybe<Array<InputMaybe<Status>>>;\n};\n\nexport type Vacancy = {\n __typename?: 'Vacancy';\n countryCode?: Maybe<Scalars['String']['output']>;\n createdBy?: Maybe<AppLoginSubject>;\n createdDate?: Maybe<Scalars['DateTime']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n requirement?: Maybe<Scalars['String']['output']>;\n responsibility?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n slug?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n title?: Maybe<Scalars['String']['output']>;\n updatedBy?: Maybe<AppLoginSubject>;\n updatedDate?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type VacancyApplication = {\n __typename?: 'VacancyApplication';\n attachment?: Maybe<Scalars['String']['output']>;\n createdDate?: Maybe<Scalars['DateTime']['output']>;\n email?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n reason?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedDate?: Maybe<Scalars['DateTime']['output']>;\n vacancyGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type VacancyApplicationQueryCriteria = {\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n email?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n vacancyGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type VacancyQueryCriteria = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n requirement?: InputMaybe<Scalars['String']['input']>;\n responsibility?: InputMaybe<Scalars['String']['input']>;\n slug?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type VacancySettings = {\n __typename?: 'VacancySettings';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<AppLoginSubject>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<AppLoginSubject>;\n value?: Maybe<Scalars['String']['output']>;\n};\n\nexport type VacancySettingsQueryCriteria = {\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n value?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type Voucher = {\n __typename?: 'Voucher';\n activationPin?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBySubjectGuid?: Maybe<Scalars['String']['output']>;\n generateId?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n redeemableFrom?: Maybe<Scalars['DateTime']['output']>;\n redeemableTo?: Maybe<Scalars['DateTime']['output']>;\n serialNumber?: Maybe<Scalars['String']['output']>;\n softpin?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBySubjectGuid?: Maybe<Scalars['String']['output']>;\n urlKey?: Maybe<Scalars['String']['output']>;\n voucherGroupGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum VoucherAction {\n /** Voucher redeemed */\n Redeem = 'REDEEM',\n /** Voucher voided */\n Void = 'VOID'\n}\n\nexport enum VoucherAutoGenStatus {\n Active = 'ACTIVE',\n Deleted = 'DELETED',\n Disable = 'DISABLE'\n}\n\nexport type VoucherDetailList = {\n __typename?: 'VoucherDetailList';\n denomination?: Maybe<Array<Maybe<ItemPriceList>>>;\n file?: Maybe<FetchFileResponse>;\n parentCode?: Maybe<Scalars['String']['output']>;\n parentName?: Maybe<Scalars['String']['output']>;\n};\n\nexport type VoucherFilter = {\n activationPin?: InputMaybe<Scalars['String']['input']>;\n generateId?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n redeemableFrom?: InputMaybe<Scalars['DateTime']['input']>;\n redeemableTo?: InputMaybe<Scalars['DateTime']['input']>;\n serialNumber?: InputMaybe<Scalars['String']['input']>;\n softpin?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n urlKey?: InputMaybe<Scalars['String']['input']>;\n voucherGroupGuid?: InputMaybe<Scalars['String']['input']>;\n voucherStatus?: InputMaybe<VoucherStatus>;\n};\n\nexport type VoucherGatewayResponse = {\n __typename?: 'VoucherGatewayResponse';\n data?: Maybe<Scalars['JSON']['output']>;\n error?: Maybe<Scalars['JSON']['output']>;\n status?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type VoucherGenerateRs = {\n __typename?: 'VoucherGenerateRs';\n generateId?: Maybe<Scalars['String']['output']>;\n message?: Maybe<Scalars['String']['output']>;\n};\n\nexport type VoucherGenerationLog = {\n __typename?: 'VoucherGenerationLog';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n generateId?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n remark?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n voucherGroupGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type VoucherGroup = {\n __typename?: 'VoucherGroup';\n createdAt?: Maybe<Scalars['String']['output']>;\n createdBySubjectGuid?: Maybe<Scalars['String']['output']>;\n currency?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n magnifyValue?: Maybe<Scalars['Int']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n pinPattern?: Maybe<Scalars['JSON']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n serialPattern?: Maybe<Scalars['JSON']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['String']['output']>;\n updatedBySubjectGuid?: Maybe<Scalars['String']['output']>;\n value?: Maybe<Scalars['Int']['output']>;\n voucherApiCode?: Maybe<Scalars['String']['output']>;\n voucherBuyCount?: Maybe<Scalars['Int']['output']>;\n voucherBuyCountUpdatedAt?: Maybe<Scalars['DateTime']['output']>;\n voucherCount?: Maybe<Scalars['Int']['output']>;\n voucherRedeemCount?: Maybe<Scalars['Int']['output']>;\n voucherRedeemCountUpdatedAt?: Maybe<Scalars['DateTime']['output']>;\n voucherVoidCount?: Maybe<Scalars['Int']['output']>;\n voucherVoidCountUpdatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type VoucherGroupAutoGen = {\n __typename?: 'VoucherGroupAutoGen';\n amount?: Maybe<Scalars['Int']['output']>;\n createdAt?: Maybe<Scalars['String']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n generationTimeout?: Maybe<Scalars['Int']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n minThreshold?: Maybe<Scalars['Int']['output']>;\n status?: Maybe<VoucherAutoGenStatus>;\n updatedAt?: Maybe<Scalars['String']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n voucherGroupGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type VoucherGroupAutoGenFilter = {\n createdAt?: InputMaybe<Scalars['String']['input']>;\n createdBy?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<VoucherAutoGenStatus>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n updatedAt?: InputMaybe<Scalars['String']['input']>;\n updatedBy?: InputMaybe<Scalars['String']['input']>;\n voucherGroupGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type VoucherGroupAutoGenLock = {\n __typename?: 'VoucherGroupAutoGenLock';\n /** Same with Voucher Group Auto Gen Guid */\n guid?: Maybe<Scalars['String']['output']>;\n lockTime?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type VoucherGroupAutoGenLockRq = {\n /** Same with Voucher Group Auto Gen Guid */\n guid?: InputMaybe<Scalars['String']['input']>;\n lockTime?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type VoucherGroupAutoGenRs = {\n __typename?: 'VoucherGroupAutoGenRs';\n data: Array<Maybe<VoucherGroupAutoGen>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type VoucherGroupFilter = {\n createdByGuid?: InputMaybe<Scalars['String']['input']>;\n currency?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n magnifyValue?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n pinPattern?: InputMaybe<Scalars['JSON']['input']>;\n serialPattern?: InputMaybe<Scalars['JSON']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n type?: InputMaybe<VoucherGroupType>;\n updatedByGuid?: InputMaybe<Scalars['String']['input']>;\n value?: InputMaybe<Scalars['Int']['input']>;\n voucherApiCode?: InputMaybe<Scalars['String']['input']>;\n voucherCount?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type VoucherGroupRs = {\n __typename?: 'VoucherGroupRs';\n data: Array<Maybe<VoucherGroup>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum VoucherGroupType {\n /** Call third party API Type */\n Api = 'API',\n /** Generated voucher type */\n Generated = 'GENERATED',\n /** Imported voucher type */\n Import = 'IMPORT'\n}\n\n/** Voucher Identifier for Redeem */\nexport type VoucherId = {\n guid?: InputMaybe<Scalars['String']['input']>;\n serialNumber?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type VoucherRequestRs = {\n __typename?: 'VoucherRequestRs';\n currency?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n merchantReference?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n totalAmount?: Maybe<Scalars['Int']['output']>;\n vouchers?: Maybe<Array<Maybe<VoucherSoftpin>>>;\n};\n\nexport type VoucherSoftpin = {\n __typename?: 'VoucherSoftpin';\n activationPin?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n redeemableFrom?: Maybe<Scalars['DateTime']['output']>;\n redeemableTo?: Maybe<Scalars['DateTime']['output']>;\n serialNumber?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum VoucherStatus {\n Available = 'AVAILABLE',\n Bought = 'BOUGHT',\n Redeem = 'REDEEM',\n Used = 'USED',\n Void = 'VOID'\n}\n\nexport type VoucherStock = {\n __typename?: 'VoucherStock';\n api?: Maybe<Scalars['Boolean']['output']>;\n itemCode?: Maybe<Scalars['String']['output']>;\n stock?: Maybe<VoucherGroup>;\n};\n\nexport type VoucherTransaction = {\n __typename?: 'VoucherTransaction';\n amount?: Maybe<Scalars['Float']['output']>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdIp?: Maybe<Scalars['String']['output']>;\n currencyCode?: Maybe<Scalars['String']['output']>;\n emailTo?: Maybe<Scalars['String']['output']>;\n guid: Scalars['String']['output'];\n itemCode?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n merchantReference?: Maybe<Scalars['String']['output']>;\n messageTo?: Maybe<Scalars['String']['output']>;\n msSource?: Maybe<Scalars['String']['output']>;\n parentItemCode?: Maybe<Scalars['String']['output']>;\n paymentGateway?: Maybe<PaymentGatewayTransactions>;\n quantity?: Maybe<Scalars['Int']['output']>;\n remark?: Maybe<Scalars['String']['output']>;\n remarkExt?: Maybe<Scalars['String']['output']>;\n transactionReference?: Maybe<Scalars['String']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n userGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type VoucherTransactionFilter = {\n amount?: InputMaybe<Scalars['Float']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n createdIp?: InputMaybe<Scalars['String']['input']>;\n currencyCodes?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n emailTo?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n itemCodes?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n merchantGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n merchantReferences?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n messageTo?: InputMaybe<Scalars['String']['input']>;\n msSource?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n parentItemCodes?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n paymentGatewayRef?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n quantity?: InputMaybe<Scalars['Int']['input']>;\n remark?: InputMaybe<Scalars['String']['input']>;\n remarkExt?: InputMaybe<Scalars['String']['input']>;\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n transactionReferences?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type VoucherTransactionRs = {\n __typename?: 'VoucherTransactionRs';\n data: Array<Maybe<VoucherTransaction>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type VoucherTransactionTrail = {\n __typename?: 'VoucherTransactionTrail';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdIp?: Maybe<Scalars['String']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n guid: Scalars['String']['output'];\n request?: Maybe<Scalars['JSON']['output']>;\n response?: Maybe<Scalars['JSON']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n transactionGuid?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type VoucherTransactionTrailFilter = {\n createdIp?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n transactionGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\nexport type VoucherTransactionTrailRs = {\n __typename?: 'VoucherTransactionTrailRs';\n data: Array<Maybe<VoucherTransactionTrail>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type VouchersRs = {\n __typename?: 'VouchersRs';\n data: Array<Maybe<Voucher>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type WebConfig = {\n __typename?: 'WebConfig';\n code?: Maybe<Scalars['String']['output']>;\n createdBy?: Maybe<AppLoginSubject>;\n createdDate?: Maybe<Scalars['DateTime']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n jsonValue?: Maybe<Scalars['String']['output']>;\n numberValue?: Maybe<Scalars['Int']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n stringValue?: Maybe<Scalars['String']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n updatedBy?: Maybe<AppLoginSubject>;\n updatedDate?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type WebConfigQueryCriteria = {\n code?: InputMaybe<Scalars['String']['input']>;\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n jsonValue?: InputMaybe<Scalars['String']['input']>;\n numberValue?: InputMaybe<Scalars['Int']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n stringValue?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type WebConfigResult = {\n __typename?: 'WebConfigResult';\n data: Array<Maybe<WebConfig>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type WebtopupRequest = {\n countryCode: Scalars['String']['input'];\n currencyCode: Scalars['String']['input'];\n gameFieldJson?: InputMaybe<GameRequiredFieldInput>;\n lang?: InputMaybe<Scalars['String']['input']>;\n magnifyValue: Scalars['Int']['input'];\n paymentProviderCode: Scalars['String']['input'];\n productDenomGuid: Scalars['String']['input'];\n productGuid: Scalars['String']['input'];\n providerAmount: Scalars['Int']['input'];\n reloadType?: WebtopupTxnReloadTypeEnum;\n type?: InputMaybe<UniboxV2RequestType>;\n userEmail?: InputMaybe<Scalars['String']['input']>;\n voucherRef?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type WebtopupResponse = {\n __typename?: 'WebtopupResponse';\n message?: Maybe<Scalars['String']['output']>;\n paymentGatewayRef?: Maybe<Scalars['String']['output']>;\n paymentUrl?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['Int']['output']>;\n webtopupRef?: Maybe<Scalars['String']['output']>;\n};\n\nexport type WebtopupTransaction = {\n __typename?: 'WebtopupTransaction';\n companyGuid?: Maybe<Scalars['String']['output']>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n currencyCode?: Maybe<Scalars['String']['output']>;\n gameFieldJson?: Maybe<Scalars['JSON']['output']>;\n gameGatewayRef?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n isTesting?: Maybe<Scalars['Boolean']['output']>;\n magnifyValue?: Maybe<Scalars['Int']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n paymentFieldJson?: Maybe<Scalars['JSON']['output']>;\n /** ... return pgw txn detail with only the latest txn trail */\n paymentGatewayDetail?: Maybe<PaymentGatewayTransactions>;\n paymentGatewayRef?: Maybe<Scalars['String']['output']>;\n paymentProvider?: Maybe<PaymentProvider>;\n paymentProviderCode?: Maybe<Scalars['String']['output']>;\n productDenomGuid?: Maybe<Scalars['String']['output']>;\n productGuid?: Maybe<Scalars['String']['output']>;\n providerAmount?: Maybe<Scalars['Int']['output']>;\n reloadType?: Maybe<Scalars['String']['output']>;\n sourceIp?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n usdMagnifyValue?: Maybe<Scalars['Int']['output']>;\n usdValue?: Maybe<Scalars['Int']['output']>;\n userEmail?: Maybe<Scalars['String']['output']>;\n userGuid?: Maybe<Scalars['String']['output']>;\n voucherRef?: Maybe<Scalars['String']['output']>;\n webtopupRef?: Maybe<Scalars['String']['output']>;\n};\n\nexport type WebtopupTransactionHistory = {\n __typename?: 'WebtopupTransactionHistory';\n countryCode?: Maybe<Scalars['String']['output']>;\n currencyCode?: Maybe<Scalars['String']['output']>;\n gameDetail?: Maybe<GameTransactions>;\n guid?: Maybe<Scalars['String']['output']>;\n paymentGatewayDetail?: Maybe<PaymentGatewayTransactionDetail>;\n paymentProviderCode?: Maybe<Scalars['String']['output']>;\n productPage?: Maybe<ProductPage>;\n reloadType?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n voucherTransaction?: Maybe<VoucherTransaction>;\n webtopupRef?: Maybe<Scalars['String']['output']>;\n};\n\nexport type WebtopupTransactionHistoryQueryCriteria = {\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n currencyCode?: InputMaybe<Scalars['String']['input']>;\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n gameGatewayRef?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n paymentGatewayRef?: InputMaybe<Scalars['String']['input']>;\n paymentProviderCode?: InputMaybe<Scalars['String']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n productGuid?: InputMaybe<Scalars['String']['input']>;\n reloadType?: InputMaybe<WebtopupTxnReloadTypeEnum>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n webtopupRef?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type WebtopupTransactionQueryCriteria = {\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n currencyCode?: InputMaybe<Scalars['String']['input']>;\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n gameGatewayRef?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n paymentGatewayRef?: InputMaybe<Scalars['String']['input']>;\n paymentProviderCode?: InputMaybe<Scalars['String']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n productGuid?: InputMaybe<Scalars['String']['input']>;\n reloadType?: InputMaybe<WebtopupTxnReloadTypeEnum>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n webtopupRef?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type WebtopupTransactionResult = {\n __typename?: 'WebtopupTransactionResult';\n data: Array<Maybe<WebtopupTransaction>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\n/** Enum for differentiate between each reload uc, up and game webtopup */\nexport enum WebtopupTxnReloadTypeEnum {\n Game = 'GAME',\n Na = 'NA',\n Uc = 'UC',\n Up = 'UP',\n Voucher = 'VOUCHER'\n}\n\nexport type IsSuccess = {\n __typename?: 'isSuccess';\n isSuccess?: Maybe<Scalars['Boolean']['output']>;\n};\n","import { Injectable } from '@angular/core';\nimport { Observable, map } from 'rxjs';\nimport { FetchPolicy } from '@apollo/client/core';\nimport { Apollo, gql } from 'apollo-angular';\nimport { AppLoginSubject } from '../../../graphql/generated';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProfileService {\n\n constructor(\n protected readonly apollo: Apollo\n ) { }\n\n /**\n * A method to get the user profile information.\n * @param {FetchPolicy | undefined} fetchPolicy - Specifies how Apollo Client should handle data retrieval,\n * determining whether it should make a network request to fetch fresh data from the server or use data from the local cache.\n * @returns {Observable<AppLoginSubject | null>} Contain user profile information.\n */\n public getMyProfile(fetchPolicy?: FetchPolicy): Observable<AppLoginSubject | null>{\n return this.apollo.query<{ authMsMyProfile: AppLoginSubject }>({\n fetchPolicy,\n errorPolicy: 'all',\n query: gql`\n query getMyProfile {\n authMsMyProfile {\n appLoginPrincipal {\n principalId\n principalType\n }\n appLoginExt {\n paramCode\n paramType\n file {\n publicUrl\n }\n }\n birthday\n category\n company {\n code\n guid\n isInternal\n name\n status\n }\n gender\n guid\n merchants {\n guid\n name\n status\n }\n name\n status\n roles {\n guid\n code\n name\n isInternal\n status\n }\n }\n }\n `,\n }).pipe(\n map(({ data: { authMsMyProfile }}) => {\n if (!authMsMyProfile) return null;\n return authMsMyProfile;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, tap } from 'rxjs';\nimport { Apollo, MutationResult, gql } from 'apollo-angular';\nimport { FetchPolicy } from '@apollo/client/core';\nimport { AppLoginSubject, ChangePassRq, LoginResponse, MutationAuthMsRefreshAccessTokenArgs, SourcePlatform, SuggestedAction, Token } from '../../../graphql/generated';\nimport { User } from '../../interfaces';\nimport { ProfileService } from '../profile/profile.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n /**\n * Both `authToken` and `refreshToken` are public static variable to store the auth token and refresh token obtained form the login API.\n * They will be set as header param inside API calls.\n * @type {string}\n * @default ''\n */\n public static authToken: string = '';\n public static refreshToken: string = '';\n\n /**\n * A public variable to store the logined user information.\n * @type {User} An interface contain user information.\n * @default undefined\n */\n public user?: User;\n\n constructor(\n protected readonly apollo: Apollo,\n protected readonly profileService: ProfileService\n ) { }\n\n /**\n * A method to authenticate the user to get the session for applet or platform.\n * When successful it will set the user information to the `user` variable, `authToken` and `refreshToken`.\n * It will set the `authToken`, `refreshToken`, `userGuid` and `roles` to the localStorage also for API calls.\n * @param {{ email: string, password: string, sourcePlatform: string }} input - Contain `email` which is registered user email, `password` which is registered user password\n * and `sourcePlatform` it's value can be `ADMIN` to get the applet session or `CP_COMMERCE` to get the platform session.\n * @returns {Observable<MutationResult<{ authMsLogin: LoginResponse }>>} Contain logined user information.\n */\n public login(input: { email: string, password: string, sourcePlatform: string }): Observable<MutationResult<{ authMsLogin: LoginResponse }>>{\n return this.apollo.mutate<{ authMsLogin: LoginResponse }>({\n variables: { input },\n mutation: gql`\n mutation Login($input: LoginRq!) {\n authMsLogin(input: $input) {\n accessToken\n refreshToken\n suggestedAction\n user {\n birthday\n category\n email\n gender\n guid\n mobileNumber\n name\n status\n }\n roles {\n guid\n code\n name\n isInternal\n status\n }\n }\n }\n `\n }).pipe(\n tap(({ data }) => {\n if (data?.authMsLogin) {\n const { accessToken, user, refreshToken, suggestedAction, roles } = data.authMsLogin;\n\n this.user = user as User;\n this.user!.photo = '/assets/imgs/profile.svg';\n AuthService.authToken = accessToken ?? '';\n AuthService.refreshToken = refreshToken ?? '';\n\n if (suggestedAction !== SuggestedAction.ChangePassword ) { \n localStorage.setItem('authToken', AuthService.authToken); \n }\n\n localStorage.setItem('userGuid', this.user!.guid);\n localStorage.setItem('roles', JSON.stringify(roles));\n localStorage.setItem('refreshToken', AuthService.refreshToken);\n }\n })\n );\n }\n\n /**\n * This method is used by the `refreshTokenInterceptor`, to get the new token shortly before the auth token is expired.\n * @param {MutationAuthMsRefreshAccessTokenArgs} variables - Contain `refreshToken` attribute which is the current refresh token.\n * @returns {Observable<MutationResult<{ authMsRefreshAccessToken: Token }>>} Contain new `authToken` and `refreshToken`.\n */\n public refreshToken(variables: MutationAuthMsRefreshAccessTokenArgs): Observable<MutationResult<{ authMsRefreshAccessToken: Token }>>{\n return this.apollo.mutate({\n context: {\n headers: {\n 'operation-type': 'Mutation',\n 'operation-name': 'RefreshToken'\n }\n },\n variables,\n mutation: gql`\n mutation RefreshToken($refreshToken: String!) {\n authMsRefreshAccessToken(refreshToken: $refreshToken) {\n accessToken\n refreshToken\n }\n }\n `\n });\n }\n\n /**\n * A method to set the user information to the `user` variable when the user refresh the page.\n * Because of the user information only stored in the variable so it will gone while the page refreshed and need to reset again.\n * @param {FetchPolicy | undefined} fetchPolicy - Specifies how Apollo Client should handle data retrieval,\n * determining whether it should make a network request to fetch fresh data from the server or use data from the local cache.\n * @returns {Observable<AppLoginSubject | null>}\n */\n public getProfile(fetchPolicy?: FetchPolicy): Observable<AppLoginSubject | null>{\n return this.profileService.getMyProfile(fetchPolicy).pipe(\n tap((user: AppLoginSubject | null) => {\n if (!user) return;\n this.user = { ...user, photo: '/assets/imgs/profile.svg' } as User;\n\n user.appLoginExt?.forEach(({ paramCode, file: { publicUrl }}: any) => {\n if (paramCode === 'USER_PROFILE_PHOTO') this.user!.photo = publicUrl;\n });\n\n user.appLoginPrincipal?.forEach(({ principalId, principalType }: any) => {\n if (principalType === 'EMAIL_USERNAME') this.user!.email = principalId;\n });\n })\n );\n }\n\n /**\n * A method to get the otp / verification code for reset password purpose.\n * No need authorization header to call this API.\n * @param {string} email - Contain registered user email.\n * @returns {Observable<MutationResult<any>>} Contain message stating that verification code has been sent to the email.\n */\n public initForgotPassword(email: string): Observable<MutationResult<any>>{\n return this.apollo.mutate({\n variables: {\n input: {\n email,\n sourcePlatform: SourcePlatform.Admin\n }\n },\n mutation: gql`\n mutation InitForgotPassword($input: ForgotPassOtpRq!) {\n authMsForgotPasswordOtp(input: $input)\n }\n `\n });\n }\n\n /**\n * A method to generate new password when the user forgets the password.\n * No need authorization header for this API.\n * @param {{ confirm: string, newPassword: string, principalId: string, verifCode: string, sourcePlatform: string }} - Contain :\n * newPassword - the new password.\n * confirm - the exactly same with the new password.\n * principalId - registered email or phone number attached to user.\n * verifCode - otp / verification code that has been sent to email.\n * sourcePlatform - `ADMIN` for applet or `CP_COMMERCE` for platform.\n * @returns {Observable<MutationResult<any>>} Contain message stating that user successfully / failed to reset the password.\n */\n public createNewPassword({ newPassword, principalId, sourcePlatform, verifCode }: { confirm: string, newPassword: string, principalId: string, verifCode: string, sourcePlatform: string }): Observable<MutationResult<any>>{\n return this.apollo.mutate({\n mutation : gql`\n mutation SubmitForgotPassword($input: ForgotPassRq!) {\n authMsForgotPassword(input: $input)\n }\n `,\n variables: {\n input: {\n newPassword,\n principalId,\n sourcePlatform,\n verifCode\n }\n }\n });\n }\n\n /**\n * A method to update user's password.\n * Need authorization header for this API.\n * @param {{ oldPassword: string, newPassword: string }} input - Contain oldPassword which is old / current password and newPassword which is the new password.\n * @returns {Observable<MutationResult<{ authMsChangePassword: ChangePassRq }>>} Contain message stating the password updated successfully.\n */\n public updatePassword(input: { oldPassword: string, newPassword: string }): Observable<MutationResult<{ authMsChangePassword: ChangePassRq }>>{\n return this.apollo.mutate({\n mutation: gql`\n mutation ChangePassword($input: ChangePassRq!) {\n authMsChangePassword(input: $input)\n }\n `,\n variables: { input }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApolloQueryResult } from '@apollo/client/core';\nimport { Apollo, gql } from 'apollo-angular';\nimport { Currency, CurrencyQueryCriteria } from '../../../graphql/generated';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CurrencyService {\n\n constructor(\n protected readonly apollo: Apollo\n ) { }\n\n /**\n * A method to get the list of currency and it's information.\n * The information such as currency code, magnify value, name and status.\n * @param {string} keyword - Contain some letters of currency name, it's optional.\n * @returns {Observable<ApolloQueryResult<{ webConfigMsCurrency: { data: Currency[] }}>>} Contain list of currency and it's information.\n */\n public query(keyword: string = ''): Observable<ApolloQueryResult<{ webConfigMsCurrency: { data: Currency[] }}>>{\n const input: CurrencyQueryCriteria = { page: 0, pageSize: 300, sortBy: 'name', sortDirection: 'asc' };\n if (keyword !== '') input.name = keyword;\n\n return this.apollo.query({\n errorPolicy: 'all',\n variables: { input },\n query: gql`\n query QueryCurrency($input: CurrencyQueryCriteria!) {\n webConfigMsCurrency(input: $input) {\n data {\n code\n guid\n magnifyValue\n name\n status\n }\n }\n }\n `,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApolloQueryResult } from '@apollo/client/core';\nimport { Apollo, gql } from 'apollo-angular';\nimport { Country, CountryQueryCriteria } from '../../../graphql/generated';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CountryService {\n\n constructor(\n protected readonly apollo: Apollo\n ) { }\n\n /**\n * A method to get list of country and it's information.\n * The information such as name, phone code, language code, country code and default language code.\n * @param {CountryQueryCriteria} input - Contain country data pagination criteria, it's optional.\n * @returns {Observable<ApolloQueryResult<{ webConfigMsCountry: { data: Country[] }}>>} Contain list of country and it's information.\n */\n public query(input: CountryQueryCriteria = { page: 0, pageSize: 300, sortBy: 'name', sortDirection: 'asc' }): Observable<ApolloQueryResult<{ webConfigMsCountry: { data: Country[] }}>>{\n return this.apollo.query({\n errorPolicy: 'all',\n variables: { input },\n query: gql`\n query QueryCountry($input: CountryQueryCriteria!) {\n webConfigMsCountry(input: $input) {\n data {\n code\n defaultLangCode\n guid\n langCodes {\n code\n guid\n }\n name\n phoneCodes {\n code\n }\n }\n }\n }\n `,\n });\n }\n}\n","import { Attribute, ChangeDetectorRef, ChangeDetectionStrategy, Component, Input, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { AbstractControl, ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { Currency } from '../../../../graphql/generated';\nimport { getFormErrorMessage } from '../../../utils';\nimport { CurrencyService } from '../../../services';\n\n@Component({\n standalone: true,\n selector: 'up-currency-input',\n styleUrl: './form-currency-input.component.scss',\n templateUrl: './form-currency-input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n class: 'd-block' \n },\n imports: [\n FormsModule,\n NgSelectModule,\n NgTemplateOutlet,\n ],\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: FormCurrencyInputComponent\n },\n {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: FormCurrencyInputComponent\n }\n ]\n})\nexport class FormCurrencyInputComponent implements ControlValueAccessor, Validator, OnInit, OnDestroy {\n \n /**\n * Input variable for the label associated with the input.\n * @type {string}\n * @default ''\n */\n @Input() public label: string = 'Currency';\n\n /**\n * Input variable to determine whether the select input is clearable.\n * @type {boolean}\n * @default {true}\n */\n @Input() public clearable: boolean = true;\n\n /**\n * Input variable to determine whether the number input form is hide or show.\n * @type {boolean}\n * @default {false}\n */\n @Input() public isInputNumber: boolean = false;\n\n /**\n * Input variable to set the value of input number field.\n * @type {number | null}\n * @default {null}\n */\n @Input() public numberValue: number | null = null;\n\n /**\n * Input variable to determine whether the number input is disabled.\n * @type {boolean}\n * @default {false}\n */\n @Input() public isNumberDisabled: boolean = false;\n\n /**\n * Input variable to determine whether the select input is required.\n * @type {boolean}\n * @default {false}\n */\n @Input() public required: boolean = false;\n\n /**\n * Input variable to determine whether the select input is disabled.\n * @type {boolean}\n * @default {false}\n */\n @Input() public disabled: boolean = false;\n\n /**\n * Output variable to emit changes when the select input value changes.\n * @type {EventEmitter<any>}\n */\n @Output() public onChange: EventEmitter<{ selectedItem?: Currency, number: number | null }> = new EventEmitter();\n\n /**\n * Observable for displaying items in the select input.\n * @type {Observable<any[]>}\n */\n public items: { label: string, value: string, data: Currency }[] = [];\n\n /**\n * Boolean flag indicating whether the select input is loading.\n * @type {boolean}\n * @default {false}\n */\n public isLoading: boolean = true;\n\n /**\n * Boolean flag indicating whether the select input has been touched.\n * @type {boolean}\n * @default {false}\n */\n public isTouched: boolean = false;\n\n /**\n * The value of the select input.\n * @type {any | null}\n * @default {null}\n */\n public value: any | null = null;\n\n /**\n * Error message associated with the select input.\n * @type {string}\n * @default {undefined}\n */\n public errorMsg!: string;\n\n /**\n * The form control associated with the select input.\n * @type {AbstractControl}\n */\n protected formControl!: AbstractControl;\n\n /**\n * The number of maximum digits allowed behind the comma.\n * @type {number}\n * @default {0}\n */\n protected decimalLimiter: number = 0;\n\n /**\n * Callback function to handle value changes in the select input.\n * @type {(_val: any) => void}\n */\n protected changed: (_val: any) => void = (_val: any) => {};\n\n /**\n * Callback function to handle touch events in the select input.\n * @type {() => void}\n */\n protected onTouched: () => void = () => {};\n\n protected sub?: Subscription;\n protected selectedItem?: Currency;\n\n constructor(\n @Attribute('placeholder') public placeholder: string,\n @Attribute('numberPlaceholder') public numberPlaceholder: string,\n protected readonly ch: ChangeDetectorRef,\n protected readonly currencyService: CurrencyService,\n ) {}\n\n public ngOnInit(): void{\n this.sub = this.currencyService.query().subscribe({\n error: () => {\n this.items = [];\n this.setIsLoading(false);\n },\n next: ({ data: { webConfigMsCurrency: { data }}}) => {\n this.items = data.map((d) => ({ label: `[${ d.code }] ${ d.name }`, value: d.code!, data: d }));\n this.setIsLoading(false);\n }\n });\n }\n\n public ngOnDestroy(): void{\n this.sub?.unsubscribe();\n }\n \n /**\n * Registers a callback function to be called when the select input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{ this.changed = fn; }\n \n /**\n * Registers a callback function to be called when the select input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{ this.onTouched = fn; } \n \n /**\n * Writes a new value to the select input.\n * @param {*} val - The new value to be set.\n */\n public writeValue(val: any): void{\n this.value = val;\n\n if (!val) this.change(null);\n else {\n const d = this.items.find(({ value }) => value === val);\n \n if (d) {\n this.change({ value: val, data: d.data });\n }\n }\n this.ch.markForCheck();\n }\n \n /**\n * Sets the disabled state of the select input.\n * @param {boolean} d - The new disabled state.\n */\n public setDisabledState?(d: boolean): void{ \n this.disabled = d; \n this.ch.markForCheck();\n }\n\n /**\n * Validates the select input.\n * @param {AbstractControl} control - The abstract control representing the select input.\n * @returns {(ValidationErrors | null)} - Validation errors if any, otherwise null.\n */\n public validate(control: AbstractControl): ValidationErrors | null{ \n this.formControl = control;\n return null;\n }\n \n /**\n * Event handler for changes in the select input.\n * Set the number as null if currency changed to prevent mismatch between selected currency and the number comma allowed limit.\n * Emits the onChange event, updates the initialItems, and handles validation based on form control errors and label.\n * Set the decimalLimiter based on selected magnifyValue\n * @param {any} e - The event containing the new select input value.\n */\n public change(e?: any): void{\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n }\n \n if (!this.disabled) {\n this.value = e?.value;\n this.selectedItem = e?.data;\n\n this.changed(this.value);\n this.onChange.emit({ selectedItem: e, number: this.numberValue });\n this.errorMsg = getFormErrorMessage(this.formControl?.errors, this.label);\n }\n \n if (e?.magnifyValue === 1) this.decimalLimiter = 0;\n else {\n this.decimalLimiter = Math.floor(Math.log10(e?.data.magnifyValue));\n }\n }\n\n /**\n * Triggered on form number input.\n * Set the numberValue with current value.\n * Emit the selected currency and the number value to the parent component.\n * @param {any} - Contain `value` the value of inputed number.\n */\n public numberInput({ value }: any): void{\n this.numberValue = value;\n this.onChange.emit({ selectedItem: this.selectedItem, number: value });\n }\n\n /**\n * Triggered on form number keypress.\n * Controlling input in a number field, restricting the number of decimal places allowed.\n * @param {any} - Contain\n * charCode - the character code of the key pressed.\n * preventDefault - the function to prevent the default behaviour of the event.\n * target.value - the current value of the input field.\n */\n public limitDecimal({ charCode, preventDefault, target: { value }}: any): void{\n const reg = this.decimalLimiter > 0? new RegExp(`^\\\\d*(\\\\.\\\\d{0,${ this.decimalLimiter }})?$`) : /^\\d+$/;\n if (!reg.test(value + String.fromCharCode(charCode))) preventDefault();\n }\n\n protected setIsLoading(b: boolean): void{\n this.isLoading = b;\n this.ch.markForCheck();\n }\n}\n","<label class=\"form-label\" [class.required]=\"required\">{{ label }}</label>\n\n<ng-template #selectForm>\n <ng-select \n class=\"flex-shrink-0\"\n [class.number]=\"isInputNumber\"\n appendTo=\"body\"\n bindValue=\"value\"\n placeholder=\"{{ placeholder }}\"\n [virtualScroll]=\"true\"\n [items]=\"items\"\n [ngModel]=\"value\"\n [readonly]=\"disabled\" \n [loading]=\"isLoading\"\n [clearable]=\"clearable\"\n (change)=\"change($event);\"\n >\n <ng-template ng-option-tmp let-i=\"item\">\n <span>{{ isInputNumber? i.value : i.label }}</span>\n </ng-template>\n\n <ng-template ng-label-tmp let-i=\"item\">\n <span>{{ isInputNumber? i.value : i.label }}</span>\n </ng-template>\n </ng-select>\n</ng-template>\n\n@if (!isInputNumber) {\n <ng-container *ngTemplateOutlet=\"selectForm\" />\n} \n@else {\n <div class=\"d-flex justify-content-between gap-1 align-items-center\">\n <ng-container *ngTemplateOutlet=\"selectForm\" />\n\n <input type=\"number\" [placeholder]=\"numberPlaceholder\" class=\"form-control flex-grow-1\" [disabled]=\"isNumberDisabled\" [value]=\"numberValue\" (keypress)=\"limitDecimal($event)\" (input)=\"numberInput($event.target)\">\n </div>\n}\n\n@if (errorMsg) {\n <label class=\"is-invalid\">{{ errorMsg }}</label>\n}\n\n","import { Attribute, ChangeDetectorRef, ChangeDetectionStrategy, Component, Input, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { Country } from '../../../../graphql/generated';\nimport { CountryService } from '../../../services';\nimport { getFormErrorMessage } from '../../../utils';\n\n@Component({\n standalone: true,\n selector: 'up-country-input',\n styleUrl: './form-country-input.component.scss',\n templateUrl: './form-country-input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n class: 'd-block' \n },\n imports: [\n FormsModule,\n NgSelectModule\n ],\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: FormCountryInputComponent\n },\n {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: FormCountryInputComponent\n }\n ]\n})\nexport class FormCountryInputComponent implements ControlValueAccessor, Validator, OnInit, OnDestroy {\n \n /**\n * Input variable to determine whether the country input is clearable.\n * @type {boolean}\n * @default {true}\n */\n @Input() public clearable: boolean = true;\n\n /**\n * Input variable to determine whether the country input is required.\n * @type {boolean}\n * @default {false}\n */\n @Input() public required: boolean = false;\n\n /**\n * Input variable to determine whether the select input allows multiple selections.\n * @type {boolean}\n * @default false\n */\n @Input() public multiple: boolean = false;\n\n /**\n * Input variable to determine whether the country input is disabled.\n * @type {boolean}\n * @default {false}\n */\n @Input() public disabled: boolean = false;\n\n /**\n * Output variable to emit changes when the country input value changes.\n * @type {EventEmitter<any>}\n */\n @Output() public onChange: EventEmitter<Country | undefined | null> = new EventEmitter();\n\n /**\n * Observable for displaying items in the country input.\n * @type {Observable<any[]>}\n */\n public items: { label: string, value: string, data: Country }[] = [];\n\n /**\n * Boolean flag indicating whether the country input is loading.\n * @type {boolean}\n * @default {false}\n */\n public isLoading: boolean = true;\n\n /**\n * Boolean flag indicating whether the country input has been touched.\n * @type {boolean}\n * @default {false}\n */\n public isTouched: boolean = false;\n\n /**\n * The value of the country input.\n * @type {any | null}\n * @default {null}\n */\n public value: any | null = null;\n\n /**\n * Error message associated with the country input.\n * @type {string}\n * @default {undefined}\n */\n public errorMsg!: string;\n\n /**\n * The form control associated with the country input.\n * @type {AbstractControl}\n */\n protected formControl!: AbstractControl;\n\n /**\n * Callback function to handle value changes in the country input.\n * @type {(_val: any) => void}\n */\n protected changed: (_val: any) => void = (_val: any) => {};\n\n /**\n * Callback function to handle touch events in the country input.\n * @type {() => void}\n */\n protected onTouched: () => void = () => {};\n\n protected sub?: Subscription;\n\n constructor(\n @Attribute('placeholder') public placeholder: string,\n protected readonly ch: ChangeDetectorRef,\n protected readonly countryService: CountryService,\n ) {}\n\n public ngOnInit(): void{\n this.sub = this.countryService.query().subscribe({\n error: () => {\n this.items = [];\n this.setIsLoading(false);\n },\n next: ({ data: { webConfigMsCountry: { data }}}) => {\n this.items = data.map((d) => ({ label: d.name!, value: d.code!, data: d }));\n this.setIsLoading(false);\n }\n });\n }\n\n public ngOnDestroy(): void{\n this.sub?.unsubscribe();\n }\n \n /**\n * Registers a callback function to be called when the select input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{ this.changed = fn; }\n \n /**\n * Registers a callback function to be called when the select input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{ this.onTouched = fn; } \n \n /**\n * Writes a new value to the select input.\n * @param {*} val - The new value to be set.\n */\n public writeValue(val: any): void{\n this.value = val;\n this.ch.markForCheck();\n }\n \n /**\n * Sets the disabled state of the select input.\n * @param {boolean} d - The new disabled state.\n */\n public setDisabledState?(d: boolean): void{ \n this.disabled = d; \n this.ch.markForCheck();\n }\n\n /**\n * Validates the select input.\n * @param {AbstractControl} control - The abstract control representing the select input.\n * @returns {(ValidationErrors | null)} - Validation errors if any, otherwise null.\n */\n public validate(control: AbstractControl): ValidationErrors | null{ \n this.formControl = control;\n return null;\n }\n\n public change(e?: any): void{\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n }\n \n if (!this.disabled) {\n if (!e) this.value = null;\n else {\n this.value = !this.multiple? e.value : e.map((o: any) => o.value);\n }\n\n this.changed(this.value);\n this.onChange.emit(e.data);\n this.errorMsg = getFormErrorMessage(this.formControl.errors, 'Country');\n }\n }\n\n protected setIsLoading(b: boolean): void{\n this.isLoading = b;\n this.ch.markForCheck();\n }\n}\n","<label class=\"form-label\" [class.required]=\"required\">Country</label>\n<ng-select \n class=\"flex-shrink-0\"\n appendTo=\"body\"\n bindValue=\"value\"\n placeholder=\"{{ placeholder }}\"\n [virtualScroll]=\"true\"\n [items]=\"items\"\n [ngModel]=\"value\"\n [multiple]=\"multiple\"\n [readonly]=\"disabled\" \n [loading]=\"isLoading\"\n [clearable]=\"clearable\"\n (change)=\"change($event);\"\n/>\n@if (errorMsg) {\n <label class=\"is-invalid\">{{ errorMsg }}</label>\n}\n\n","import { Attribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { formatDate } from '@angular/common';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { IonicModule, PopoverController } from '@ionic/angular';\nimport { FilterConfig } from './interfaces/filter-config.interface';\nimport { FilterField } from './interfaces/filter-field.interface';\nimport { FilterSearchEvent } from './interfaces/filter-search-event.interface';\nimport { FormInputComponent, FormSelectComponent, FormDateComponent, FormSearchableSelectComponent } from '../forms';\n\n@Component({\n standalone: true,\n selector: 'up-filter',\n styleUrl: './filter.component.scss',\n templateUrl: './filter.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n class: 'd-block position-relative' \n },\n imports: [ \n IonicModule,\n FormDateComponent,\n FormInputComponent,\n ReactiveFormsModule,\n FormSelectComponent,\n FormSearchableSelectComponent\n ]\n})\nexport class FilterComponent implements OnInit {\n\n /**\n * Input variable for the unique identifier of the filter.\n * @type {string}\n * @required\n */\n @Input({ required: true }) public id!: string;\n\n /**\n * Input variable for the configuration object specifying filter fields and mode.\n * @type {FilterConfig}\n * @required\n */\n @Input({ required: true }) public config!: FilterConfig;\n\n /**\n * Output event emitter triggered when the user performs a search.\n * Emits a `FilterSearchEvent` object with search mode and criteria data.\n * @type {EventEmitter<FilterSearchEvent>}\n */\n @Output() public readonly onSearch: EventEmitter<FilterSearchEvent> = new EventEmitter();\n\n /**\n * ViewChild decorator to reference the searchBox element in the template.\n * @type {ElementRef}\n */\n @ViewChild('searchBox') protected readonly searchBox!: ElementRef;\n\n /**\n * Form group for managing form controls.\n * @type {FormGroup<any>}\n */\n public readonly form: FormGroup<any> = new FormGroup({});\n\n /**\n * Array to store active filter criteria.\n * @type {{ label: string, key: string, value: string }[]}\n */\n public activeFilter: { label: string, key: string, value: string }[] = [];\n\n /**\n * Map to store initial items for each filter key.\n * @type {Map<string, { label: string, value: string }[]>}\n */\n public initialItems: Map<string, { label: string, value: string }[]> = new Map();\n\n constructor(\n @Attribute('placeholder') public placeholder: string,\n protected readonly ch: ChangeDetectorRef,\n protected readonly popoverCtrl: PopoverController\n ) { } \n\n /**\n * Lifecycle hook to initialize the component.\n * Creates form controls based on the provided configuration and restores saved filter state.\n */\n public ngOnInit(): void{\n this.config.fields.forEach(({ key, initialValue }: FilterField) => {\n if (typeof key === 'string') this.createFormControl(key, initialValue);\n else {\n key.forEach((k: string, i: number) => this.createFormControl(k, initialValue?.at(i)));\n }\n });\n\n const savedState = localStorage.getItem(`${ this.id }`);\n if (savedState) {\n const state = JSON.parse(savedState);\n\n this.activeFilter = state.activeFilter;\n this.initialItems = new Map(Object.entries(state.initialItems));\n this.form.patchValue(state.formValues);\n this.emitValue();\n }\n }\n\n /**\n * Closes the filter popover.\n */\n public close(): void{ \n this.popoverCtrl.dismiss(); \n }\n\n /**\n * Clears all filter criteria, localStorage, and triggers a search event with null data.\n */\n public clear(): void{\n this.resetValue();\n this.form.reset();\n\n localStorage.removeItem(`${ this.id }`);\n this.initialItems.clear();\n this.onSearch.emit({ mode: this.config.mode, data: null });\n }\n\n /**\n * Removes a specific filter criteria based on its index.\n * @param {number} i - Index of the filter criteria to be removed.\n */\n public removeFilter(i: number): void{\n this.form.controls[this.activeFilter[i].key].setValue('');\n this.activeFilter.splice(i, 1);\n this.emitValue();\n }\n\n /**\n * Initiates a search based on the active filter criteria and clears the saved filter state if there are no active filters.\n */\n public search(): void{\n this.resetValue();\n this.emitValue((k: string, v: any) => {\n if (Array.isArray(v)) {\n v.forEach((value: any) => this.processFilter(k, value));\n } else {\n this.processFilter(k, v);\n }\n });\n \n if (this.activeFilter.length === 0) {\n this.initialItems.clear();\n localStorage.removeItem(`${this.id}`);\n }\n this.close();\n }\n \n protected processFilter(key: string, value: any): void{\n const initialItem = this.initialItems.get(key)?.find(item => item.value === value);\n const label = initialItem\n ? `${ key }: ${ initialItem.label }`\n : `${ key }: ${ key.includes('date')? formatDate(value, 'dd MMM yyyy', 'en-US') : value }`;\n \n this.activeFilter.push({ key, value, label });\n }\n\n /**\n * Adds a new filter criteria based on the user input.\n */\n public add(): void{\n const { key, value } = this.getValue(this.searchBox.nativeElement.value);\n if (this.config.fields.findIndex(({ key: k }) => k === key) === -1) {\n this.searchBox.nativeElement.value = '';\n return;\n }\n\n const i = this.activeFilter.findIndex(({ key: k }) => k === key);\n if (i === -1) this.activeFilter.push({ label: `${ key }:${ value }`, key, value });\n else {\n this.activeFilter[i].key = key;\n this.activeFilter[i].value = value;\n this.activeFilter[i].label = `${ key }:${ value }`;\n }\n\n this.form.patchValue({ [key]: value });\n this.searchBox.nativeElement.value = '';\n this.emitValue();\n }\n\n /**\n * Receive the initialItems form searchable or select component and apply them to the initialItems map to be used again by searchable or select component\n * when it initialized again.\n * @param {any} item - The initial items received from the searcable or select component.\n * @param {string} key - The key associated with the initial items.\n */\n public applyInitialItems(item: any, key: string): void{ \n if (!Array.isArray(item)) {\n this.initialItems = this.initialItems.set(key, [ item ]);\n return;\n }\n\n this.initialItems = this.initialItems.set(key, item);\n }\n\n\n /**\n * Resets the active filter and clears the search box.\n */\n protected resetValue(): void{\n this.activeFilter.length = 0;\n this.searchBox.nativeElement.value = '';\n }\n\n /**\n * Parses the input value and returns a key-value pair.\n * @param {string} value - Input value to be parsed.\n * @returns {{ key: string, value: string }} - Key-value pair extracted from the input value.\n */\n protected getValue(value: string): { key: string, value: string }{\n const values: string[] = value.split(':');\n\n if (values.length === 1) return { key: <string> this.config.fields[0].key, value: values[0] };\n return { key: values[0], value: values[1] };\n }\n\n /**\n * Emits the search event based on the form values.\n * Invokes an extra action if provided and saves the state to localStorage.\n * @param {(key: string, value: string) => void} [extraAction] - Optional extra action to be invoked.\n */\n protected emitValue(extraAction?: (key: string, value: string) => void): void{\n let flag: boolean = false;\n const f = this.form.getRawValue();\n const data: { [k: string]: any } = {};\n \n Object.keys(f).forEach((k: string) => {\n if (!f[k]) return;\n \n flag = true;\n data[k] = f[k];\n extraAction?.(k, f[k]);\n });\n this.onSearch.emit({ mode: this.config.mode, data: flag? data : null });\n \n localStorage.setItem(\n `${ this.id }`, \n JSON.stringify({\n activeFilter: this.activeFilter,\n initialItems: Object.fromEntries(this.initialItems),\n formValues: this.form.getRawValue()\n })\n );\n }\n\n /**\n * Creates a form control for a given key and sets its initial value.\n * @param {string} key - Key for the form control.\n * @param {*} [val] - Initial value for the form control.\n */\n protected createFormControl(key: string, val?: any): void{\n this.form.addControl(key, new FormControl(''));\n\n if (val) {\n this.form.controls[key].setValue(val);\n this.activeFilter.push({ label: `${ key }:${ val }`, key, value: val });\n }\n }\n}\n","<ion-icon name=\"search\" class=\"fs-4 position-absolute\" />\n\n<div class=\"d-flex align-items-center form-control ps-5 py-0 pe-0 gap-3\">\n @if (activeFilter.length > 0) {\n <div class=\"d-flex flex-grow-1 flex-shrink-0 tag-container gap-2 text-nowrap overflow-auto\">\n @for (item of activeFilter; track item.key; let i = $index) {\n <div class=\"tag-item p-1 rounded d-flex align-items-center user-select-none\">\n <ion-icon name=\"close\" class=\"pe-1 me-1 cursor-pointer text-primary\" (click)=\"removeFilter(i);\" />\n {{ item.label }}\n </div>\n }\n </div>\n }\n\n <input #searchBox type=\"search\" placeholder=\"{{ placeholder }}\" class=\"flex-shrink-1 border-0 form-control ps-0 py-2\" [class.adv]=\"config.mode === 'advanced'\" (keyup.enter)=\"add();\" />\n</div>\n\n@if (config.mode === 'advanced') {\n <ion-icon name=\"filter\" class=\"position-absolute fs-4 cursor-pointer\" id=\"filter-{{ id }}\" />\n <ion-icon name=\"close\" class=\"position-absolute fs-4 cursor-pointer\" (click)=\"clear();\" />\n \n <ion-popover trigger=\"filter-{{ id }}\" triggerAction=\"click\">\n <ng-template>\n <div class=\"d-flex flex-column filter overflow-auto\">\n <div class=\"flex-shrink-0 border-bottom p-1 pe-4 d-flex align-items-center\">\n <ion-buttons>\n <ion-button size=\"small\" (click)=\"close()\">\n <ion-icon slot=\"icon-only\" name=\"close\" />\n </ion-button>\n </ion-buttons>\n \n <div class=\"fs-5 fw-medium\">Advanced Filter</div>\n </div>\n \n <form class=\"flex-grow-1 overflow-auto px-4\" [formGroup]=\"form\">\n @for (c of config.fields; track c.key) {\n @switch (c.type) {\n @case ('number') {\n <up-input type=\"number\" autocomplete=\"off\" class=\"my-4\" label=\"{{ c.label }}\" formControlName=\"{{ c.key }}\" /> \n }\n\n @case ('checkbox') {\n <div class=\"my-4\">\n <ion-checkbox labelPlacement=\"end\" formControlName=\"{{ c.key }}\">{{ c.label }}</ion-checkbox>\n </div>\n }\n\n @case ('date-range') {\n <div class=\"d-flex gap-3 my-4\">\n <up-date class=\"flex-grow-1\" name=\"filter-from\" label=\"{{ c.label[0] }}\" formControlName=\"{{ c.key[0] }}\" />\n <up-date class=\"flex-grow-1\" name=\"filter-to\" label=\"{{ c.label[1] }}\" formControlName=\"{{ c.key[1] }}\" />\n </div>\n }\n\n @case ('select') { \n <up-select \n class=\"my-4\"\n appendTo=\"body\" \n label=\"{{ c.label }}\" \n formControlName=\"{{ c.key }}\" \n [items]=\"c.options!\"\n [multiple]=\"c.multiple || false\"\n /> \n }\n\n @case ('searchable-select') { \n <up-searchable-select \n class=\"my-4\" \n appendTo=\"body\" \n label=\"{{ c.label }}\" \n formControlName=\"{{ c.key }}\" \n [queryFunc]=\"c.getOptions!\" \n [initialItems]=\"c.options! || initialItems.get(c.key.toString())!\"\n [multiple]=\"c.multiple || false\"\n (onChange)=\"applyInitialItems($event, c.key.toString())\"\n /> \n }\n \n @default { \n <up-input type=\"text\" autocomplete=\"off\" class=\"my-4\" label=\"{{ c.label }}\" formControlName=\"{{ c.key }}\" /> \n }\n }\n }\n </form>\n \n <div class=\"flex-shrink-0 py-3 px-4 border-top d-flex gap-3\">\n <ion-button class=\"flex-grow-1\" color=\"secondary\" (click)=\"form.reset();\">Reset</ion-button>\n <ion-button class=\"flex-grow-1\" color=\"primary\" (click)=\"search();\">Search</ion-button>\n </div>\n </div>\n </ng-template>\n </ion-popover> \n}\n","import { Injectable } from '@angular/core';\nimport { GridApi } from '@ag-grid-community/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GridService {\n\n protected readonly apis: { [id: string]: GridApi } = {};\n\n public getApi(id: string): GridApi{ return this.apis[id]; }\n\n public setApi(id: string, api: GridApi): void{ this.apis[id] = api; }\n\n public refreshGridCache(id: string, forceRefresh: boolean = false): void{\n this.apis[id]?.refreshInfiniteCache();\n\n if (forceRefresh) {\n this.apis[id]?.paginationGoToFirstPage();\n this.apis[id]?.purgeInfiniteCache();\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ColDef, IDatasource, IGetRowsParams, ModuleRegistry, GridReadyEvent, DragStoppedEvent, SelectionChangedEvent, GridApi, PaginationChangedEvent, RowClassParams, RowNode } from '@ag-grid-community/core';\nimport { AgGridModule } from '@ag-grid-community/angular';\nimport { InfiniteRowModelModule } from '@ag-grid-community/infinite-row-model';\nimport { GridConfig } from '../interfaces/grid-config.interface';\nimport { GridService } from '../services/grid.service';\n\n@Component({\n standalone: true,\n selector: 'up-snapshot-grid',\n styleUrl: './grid-snapshot.component.scss',\n templateUrl: './grid-snapshot.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AgGridModule\n ]\n})\nexport class GridSnapshotComponent implements OnInit, OnDestroy {\n\n /**\n * Input variable for specifying the unique identifier of the ag-Grid component.\n * @type {`grid-${ string }`}\n */\n @Input() public id: `grid-${ string }` = 'grid-s';\n\n /**\n * Input variable for the configuration object defining the ag-Grid properties.\n * @type {GridConfig}\n * @required\n */\n @Input({ required: true }) public config!: GridConfig;\n\n /**\n * Input variable for specifying the row selection mode. It can be 'single' or 'multiple'.\n * @type {('single' | 'multiple')}\n */\n @Input() public rowSelection: 'single' | 'multiple' = 'single';\n\n /**\n * Callback version of property `rowClass` to set class(es) for each row individually. \n * Function should return either a string (class name), array of strings (array of class names) or undefined for no class.\n * @type { RowClassParams<TData = any, TContext = any> }\n * @returns { string }\n */ \n @Input() public getRowClass: ((params: RowClassParams<RowNode, any>) => string) | undefined;\n\n /**\n * Output event emitter triggered when a row in the ag-Grid is clicked.\n * Emits the data associated with the clicked row.\n * @type {EventEmitter<any>}\n */\n @Output() public readonly onRowClick: EventEmitter<any> = new EventEmitter();\n\n /**\n * Output event emitter triggered when the ag-Grid is ready.\n * Emits a `GridReadyEvent` object.\n * @type {EventEmitter<GridReadyEvent>}\n */\n @Output() public readonly onGridReady: EventEmitter<GridReadyEvent> = new EventEmitter();\n\n /**\n * Output event emitter triggered when the selection in the ag-Grid changes.\n * Emits a `SelectionChangedEvent<any>` object.\n * @type {EventEmitter<SelectionChangedEvent<any>>}\n */\n @Output() public readonly onSelectionChanged: EventEmitter<SelectionChangedEvent<any>> = new EventEmitter();\n\n /**\n * Default column definition for the ag-Grid.\n * @type {ColDef}\n */\n public readonly defaultColDef: ColDef = { minWidth: 200, flex: 1, sortable: true, resizable: true, sortingOrder: [ 'asc', 'desc' ], cellStyle: { textAlign: 'left' }};\n\n /**\n * Protected variable to store sorting information.\n * @type {{ orderBy: string, order: string }}\n */\n protected readonly sort: { orderBy: string, order: string } = { order: '', orderBy: '' };\n \n /**\n * Protected variable to store the total count of records.\n * @type {number | undefined}\n */\n protected count?: number;\n\n /**\n * Protected variable to store the ag-Grid API.\n * @type {GridApi}\n */\n protected gridApi!: GridApi;\n\n /**\n * Protected variable to store the subscription to data retrieval.\n * @type {Subscription | undefined}\n */\n protected subs?: Subscription;\n\n /**\n * Protected variable to store the cursor for paginating snapshot data.\n * @type {string | null}\n */\n protected after?: string | null;\n\n constructor(\n protected readonly service: GridService\n ) {\n ModuleRegistry.register(InfiniteRowModelModule);\n }\n\n /**\n * Lifecycle hook to initialize the component.\n * Sets default values for rowPerPage and noRowText properties in the configuration.\n */\n public ngOnInit(): void{\n if (!this.config.rowPerPage) this.config.rowPerPage = 50;\n\n this.config.noRowText = `<span class=\"f20\">${ this.config.noRowText?? 'Data not found' }</span>`;\n }\n\n /**\n * Lifecycle hook to handle component destruction.\n * Unsubscribes from data retrieval subscriptions.\n */\n public ngOnDestroy(): void{ this.subs?.unsubscribe(); }\n\n /**\n * Event handler for clicking a row in the ag-Grid.\n * Emits the data associated with the clicked row.\n * @param {any} data - Data associated with the clicked row.\n */\n public clickRow(data: any): void{ this.onRowClick.emit(data.node); }\n\n /**\n * Event handler for when column drag stops in the ag-Grid.\n * Saves the column state to local storage.\n * @param {DragStoppedEvent} param0 - DragStoppedEvent object containing API information.\n */\n public dragColumn({ api }: DragStoppedEvent): void{ localStorage.setItem(this.id, JSON.stringify(api.getColumnState())); }\n\n /**\n * Event handler for selection change in the ag-Grid.\n * Emits a `SelectionChangedEvent<any>` object.\n * @param {SelectionChangedEvent<any>} data - SelectionChangedEvent object.\n */\n public changeSelected(data: SelectionChangedEvent<any>): void{ this.onSelectionChanged.emit(data); }\n\n /**\n * Event handler for pagination change in the ag-Grid.\n * Updates the rowPerPage property in the configuration based on the new page size.\n * @param {PaginationChangedEvent} ev - PaginationChangedEvent object.\n */\n public changePagination(ev: PaginationChangedEvent): void{\n if (ev.newPageSize) this.config.rowPerPage = this.gridApi.paginationGetPageSize();\n }\n\n /**\n * Event handler for setting the datasource when the ag-Grid is ready.\n * Emits the onGridReady event and sets the API in the GridService.\n * Applies column state from local storage and resets the grid.\n * @param {GridReadyEvent} ev - GridReadyEvent object.\n */\n public setDatasource(ev: GridReadyEvent): void{\n this.gridApi = ev.api;\n this.onGridReady.emit(ev);\n this.service.setApi(this.id, this.gridApi);\n\n const state = JSON.parse(localStorage.getItem(this.id) as any);\n if (state) {\n this.gridApi.applyColumnState({ state, applyOrder: true });\n this.gridApi.setColumnsVisible(this.gridApi.getAllGridColumns(), true);\n }\n\n this.reset();\n }\n\n /**\n * Resets the datasource for snapshot data.\n * Retrieves rows asynchronously based on pagination and sorting.\n * Updates the count of records and calls success or fail callbacks accordingly.\n */\n public reset(): void{\n const datasource: IDatasource = {\n getRows: ({ sortModel: [{ colId, sort }], successCallback, failCallback }: IGetRowsParams) => {\n this.gridApi.showLoadingOverlay();\n\n if (colId !== this.sort.orderBy || sort !== this.sort.order) {\n this.sort.order = sort;\n this.sort.orderBy = colId;\n\n this.gridApi.paginationGoToFirstPage();\n }\n\n const page = this.gridApi.paginationGetCurrentPage();\n if (page === 0) this.after = null;\n\n this.subs = this.config.getDataSnapshot!(this.config.rowPerPage!, colId, sort, this.after).subscribe({\n next: ({ data, totalRecord }) => {\n this.gridApi.hideOverlay();\n\n const { edges, pageInfo } = data;\n if (edges.length > 0) this.after = pageInfo.endCursor;\n\n if (page === 0) {\n if (edges.length === 0){\n this.gridApi.setGridOption('overlayNoRowsTemplate', this.config.noRowText);\n this.gridApi.showNoRowsOverlay();\n }\n this.count = totalRecord;\n }\n\n if (!this.config.useTotalRecord && !pageInfo.hasNextPage) {\n this.count = (page * this.config.rowPerPage!) + edges.length;\n }\n successCallback(edges, this.count);\n },\n error: ({ message }) => {\n this.gridApi.setGridOption('overlayNoRowsTemplate', `<span class=\"f20\">${ message }</span>`);\n\n this.gridApi.hideOverlay();\n this.gridApi.showNoRowsOverlay();\n failCallback();\n }\n });\n }\n };\n this.gridApi.setGridOption('datasource', datasource);\n }\n}\n","<ag-grid-angular class=\"ag-theme-balham\"\n rowModelType=\"infinite\"\n [pagination]=\"true\"\n [animateRows]=\"true\"\n [getRowClass]=\"getRowClass\"\n [rowSelection]=\"rowSelection\"\n [columnDefs]=\"config.colDefs\"\n [defaultColDef]=\"defaultColDef\"\n [cacheBlockSize]=\"config.rowPerPage\"\n [paginationPageSize]=\"config.rowPerPage\"\n [overlayNoRowsTemplate]=\"config.noRowText\"\n (dragStopped)=\"dragColumn($event)\"\n (gridReady)=\"setDatasource($event)\"\n (rowClicked)=\"clickRow($event.data)\"\n (selectionChanged)=\"changeSelected($event)\"\n (paginationChanged)=\"changePagination($event)\"\n/>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ColDef, IDatasource, IGetRowsParams, ModuleRegistry, RowModelType, GridReadyEvent, DragStoppedEvent, SelectionChangedEvent, GridApi, PaginationChangedEvent, RowClassParams, RowNode } from '@ag-grid-community/core';\nimport { InfiniteRowModelModule } from '@ag-grid-community/infinite-row-model';\nimport { ClientSideRowModelModule } from '@ag-grid-community/client-side-row-model';\nimport { AgGridModule } from '@ag-grid-community/angular';\nimport { GridConfig } from '../interfaces/grid-config.interface';\nimport { GridService } from '../services/grid.service';\n\n@Component({\n standalone: true,\n selector: 'up-pagination-grid',\n styleUrl: './grid-pagination.component.scss',\n templateUrl: './grid-pagination.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ \n AgGridModule \n ]\n})\nexport class GridPaginationComponent implements OnInit, OnDestroy {\n\n /**\n * Input variable for the configuration object defining the ag-Grid properties.\n * @type {GridConfig}\n * @required\n */\n @Input({ required: true }) public config!: GridConfig;\n\n /**\n * Input variable for providing the row data to be displayed in the ag-Grid.\n * @type {any[]}\n */\n @Input() public rowData: any[] = [];\n\n /**\n * Input variable for specifying the unique identifier of the ag-Grid component.\n * @type {`grid-${ string }`}\n */\n @Input() public id: `grid-${ string }` = 'grid-p';\n\n /**\n * Input variable for specifying the row model type for the ag-Grid.\n * It can be 'infinite' or 'clientSide'.\n * @type {RowModelType}\n */\n @Input() public rowModelType: RowModelType = 'infinite';\n\n /**\n * Input variable for specifying the row selection mode. It can be 'single' or 'multiple'.\n * @type {('single' | 'multiple')}\n */\n @Input() public rowSelection: 'single' | 'multiple' = 'single';\n\n /**\n * Callback version of property `rowClass` to set class(es) for each row individually. \n * Function should return either a string (class name), array of strings (array of class names) or undefined for no class.\n * @type { RowClassParams<TData = any, TContext = any> }\n * @returns { string }\n */ \n @Input() public getRowClass: ((params: RowClassParams<RowNode, any>) => string) | undefined;\n\n /**\n * Output event emitter triggered when a row in the ag-Grid is clicked.\n * Emits the data associated with the clicked row.\n * @type {EventEmitter<any>}\n */\n @Output() public readonly onRowClick: EventEmitter<any> = new EventEmitter();\n\n /**\n * Output event emitter triggered when the ag-Grid is ready.\n * Emits a `GridReadyEvent` object.\n * @type {EventEmitter<GridReadyEvent>}\n */\n @Output() public readonly onGridReady: EventEmitter<GridReadyEvent> = new EventEmitter();\n\n /**\n * Output event emitter triggered when the selection in the ag-Grid changes.\n * Emits a `SelectionChangedEvent<any>` object.\n * @type {EventEmitter<SelectionChangedEvent<any>>}\n */\n @Output() public readonly onSelectionChanged: EventEmitter<SelectionChangedEvent<any>> = new EventEmitter();\n\n /**\n * Default column definition for the ag-Grid.\n * @type {ColDef}\n */\n public readonly defaultColDef: ColDef = { minWidth: 200, flex: 1, sortable: true, resizable: true, sortingOrder: [ 'asc', 'desc' ], cellStyle: { textAlign: 'left' }};\n\n /**\n * Protected variable to store the total count of records.\n * @type {number | undefined}\n */\n protected count?: number;\n\n /**\n * Protected variable to store the ag-Grid API.\n * @type {GridApi}\n */\n protected gridApi!: GridApi;\n\n /**\n * Protected variable to store the subscription to data retrieval.\n * @type {Subscription | undefined}\n */\n protected subs?: Subscription;\n\n constructor(\n protected readonly service: GridService\n ) {}\n\n /**\n * Lifecycle hook to initialize the component.\n * Registers the row model type module based on the specified type.\n * Sets default values for rowPerPage and noRowText properties in the configuration.\n */\n public ngOnInit(): void{\n ModuleRegistry.register(this.rowModelType === 'infinite'? InfiniteRowModelModule : ClientSideRowModelModule);\n\n if (!this.config.rowPerPage) this.config.rowPerPage = 50;\n this.config.noRowText = `<span class=\"f20\">${ this.config.noRowText?? 'Data not found' }</span>`;\n }\n\n /**\n * Lifecycle hook to handle component destruction.\n * Unsubscribes from data retrieval subscriptions.\n */\n public ngOnDestroy(): void{ this.subs?.unsubscribe(); }\n\n /**\n * Event handler for clicking a row in the ag-Grid.\n * Emits the data associated with the clicked row.\n * @param {any} data - Data associated with the clicked row.\n */\n public clickRow(data: any): void{ this.onRowClick.emit(data); }\n\n /**\n * Event handler for when column drag stops in the ag-Grid.\n * Saves the column state to local storage.\n * @param {DragStoppedEvent} param0 - DragStoppedEvent object containing API information.\n */\n public dragColumn({ api }: DragStoppedEvent): void{ localStorage.setItem(this.id, JSON.stringify(api.getColumnState())); }\n\n /**\n * Event handler for selection change in the ag-Grid.\n * Emits a `SelectionChangedEvent<any>` object.\n * @param {SelectionChangedEvent<any>} data - SelectionChangedEvent object.\n */\n public changeSelected(data: SelectionChangedEvent<any>): void{ this.onSelectionChanged.emit(data); }\n\n /**\n * Event handler for pagination change in the ag-Grid.\n * Updates the rowPerPage property in the configuration based on the new page size.\n * @param {PaginationChangedEvent} ev - PaginationChangedEvent object.\n */\n public changePagination(ev: PaginationChangedEvent): void{\n if (ev.newPageSize) this.config.rowPerPage = this.gridApi.paginationGetPageSize();\n }\n\n /**\n * Event handler for setting the datasource when the ag-Grid is ready.\n * Emits the onGridReady event and sets the API in the GridService.\n * Applies column state from local storage and resets the grid for infinite row model type.\n * @param {GridReadyEvent} ev - GridReadyEvent object.\n */\n public setDatasource(ev: GridReadyEvent): void{\n this.gridApi = ev.api;\n this.onGridReady.emit(ev);\n this.service.setApi(this.id, this.gridApi);\n\n const state = JSON.parse(localStorage.getItem(this.id) as any);\n if (state) {\n this.gridApi.applyColumnState({ state, applyOrder: true });\n this.gridApi.setColumnsVisible(this.gridApi.getAllGridColumns(), true);\n }\n\n if (this.rowModelType === 'clientSide') this.gridApi.setGridOption('rowData', this.rowData);\n if (this.rowModelType !== 'infinite') return;\n this.reset();\n }\n\n /**\n * Resets the datasource for infinite row model type.\n * Retrieves rows asynchronously based on pagination and sorting.\n * Updates the count of records and calls success or fail callbacks accordingly.\n */\n public reset(): void{\n if (!this.gridApi) return;\n\n const datasource: IDatasource = {\n getRows: ({ sortModel: [{ colId, sort }], successCallback, failCallback }: IGetRowsParams) => {\n this.gridApi.showLoadingOverlay();\n const offset = this.gridApi.paginationGetCurrentPage();\n\n this.subs = this.config.getData!(offset, this.config.rowPerPage!, colId, sort).subscribe({\n next: ({ data, totalRecord }) => {\n this.gridApi.hideOverlay();\n \n if (offset === 0) {\n if (data.length === 0) {\n this.gridApi.setGridOption('overlayNoRowsTemplate', this.config.noRowText);\n this.gridApi.showNoRowsOverlay();\n } \n this.count = totalRecord;\n }\n\n if (!this.config.useTotalRecord && data.length < this.config.rowPerPage!) {\n this.count = (offset * this.config.rowPerPage!) + data.length;\n }\n successCallback(data, this.count);\n },\n error: ({ message }) => {\n this.gridApi.setGridOption('overlayNoRowsTemplate', `<span class=\"f20\">${ message }</span>`);\n\n this.gridApi.hideOverlay();\n this.gridApi.showNoRowsOverlay();\n failCallback();\n }\n });\n }\n };\n \n this.gridApi?.setGridOption('datasource', datasource);\n }\n}\n","<ag-grid-angular class=\"ag-theme-balham\"\n [pagination]=\"true\"\n [animateRows]=\"true\"\n [getRowClass]=\"getRowClass\"\n [rowModelType]=\"rowModelType\"\n [rowSelection]=\"rowSelection\"\n [columnDefs]=\"config.colDefs\"\n [defaultColDef]=\"defaultColDef\"\n [cacheBlockSize]=\"config.rowPerPage\"\n [paginationPageSize]=\"config.rowPerPage\"\n [overlayNoRowsTemplate]=\"config.noRowText\"\n (dragStopped)=\"dragColumn($event)\"\n (gridReady)=\"setDatasource($event)\"\n (rowClicked)=\"clickRow($event.data)\"\n (selectionChanged)=\"changeSelected($event)\"\n (paginationChanged)=\"changePagination($event)\"\n/>\n","import { Component, Attribute, Output, EventEmitter, Input } from '@angular/core';\nimport { Router } from '@angular/router';;\nimport { GridApi, GridReadyEvent } from '@ag-grid-community/core';\nimport { ListContainerConfig } from '../interfaces/list-container-config.interface';\nimport { FilterSearchEvent } from '../../../filter/interfaces/filter-search-event.interface';\nimport { FilterComponent } from '../../../filter';\nimport { ButtonGroupComponent } from '../../../buttons';\nimport { GridPaginationComponent } from '../../../grids';\n\n@Component({\n standalone: true,\n selector: 'up-list-pagination-container',\n styleUrl: './list-pagination-container.component.scss',\n templateUrl: './list-pagination-container.component.html',\n host: {\n class: 'd-flex flex-column h-100 w-100'\n },\n imports: [\n FilterComponent,\n ButtonGroupComponent,\n GridPaginationComponent\n ]\n})\nexport class ListPaginationContainerComponent {\n\n /**\n * An Input variable that used to string for customizing header text.\n * @type {string}\n */ \n @Input({ required: true }) public header!: string;\n /**\n * An input variable that used to configuration object for customizing list container config properties. This\n * object defined by ListContainerConfig interface allows specifying baseUrl, gridConfig, filterConfig and permission.\n * @type {ListContainerConfig}\n */\n @Input({ required: true }) public config!: ListContainerConfig;\n /**\n * The `onRowClick` EventEmitter is used to notify parent components or listeners\n * when a row is clicked within the current component. It emits an event containing\n * information related to the clicked row.\n * @type {EventEmitter<any>}\n */\n @Output() public readonly onRowClick: EventEmitter<any> = new EventEmitter();\n /**\n * The `onGridReady` EventEmitter is used to inform parent components or listeners\n * when the grid within the current component is ready for interaction. It emits an\n * event of type `GridReadyEvent`, which may contain information about the grid's\n * readiness and capabilities. \n * @type {EventEmitter<GridReadyEvent>} \n */\n @Output() public readonly onGridReady: EventEmitter<GridReadyEvent> = new EventEmitter();\n /**\n * The `onSearch` EventEmitter is used to inform parent components or listeners\n * when a search event is triggered within the current component. It emits an\n * event of type `FilterSearchEvent`, which may contain information about the\n * search query and additional details related to the search operation.\n * @type {EventEmitter<FilterSearchEvent>}\n */\n @Output() public readonly onSearch: EventEmitter<FilterSearchEvent> = new EventEmitter();\n /**\n * The `gridId` property is a unique identifier for a grid element. It is\n * automatically generated based on the component's `id` property. If the `id`\n * property is not set, a default value of 'p' is used.\n * @type {string}\n */\n public gridId: `grid-${ string }` = `grid-${ this.id?? 'p' }`;\n protected gridApi!: GridApi;\n\n constructor(\n @Attribute('id') public id: string,\n protected readonly router: Router\n ) { }\n \n /**\n * The `openDetail` method is used to trigger actions when a user requests to open\n * the detail view for a specific data item. It emits a `data` event using the\n * `onRowClick` EventEmitter, providing external components or listeners with\n * information about the clicked data. Additionally, it navigates to the detail\n * route associated with the data item using the Angular Router.\n * \n * @param data - The data item for which the detail view is to be opened.\n */\n public openDetail(data: any): void{ \n this.onRowClick.emit(data);\n this.router.navigate([ `${ this.config.baseUrl }${ data.guid }` ], { preserveFragment: true });\n }\n\n /**\n * The `setGridApi` method is used to set the grid API when the grid is ready, typically\n * after the `gridReady` event is fired. It assigns the grid API to the component's\n * `gridApi` property and emits the `onGridReady` event, providing external components\n * or listeners with information about the grid's readiness.\n * \n * @param {GridReadyEvent} ev - The `GridReadyEvent` containing information about the grid's readiness.\n */\n public setGridApi(ev: GridReadyEvent): void{ \n this.gridApi = ev.api; \n this.onGridReady.emit(ev);\n }\n /**\n * The `search` method is used to trigger a search operation based on the provided\n * `FilterSearchEvent`. It emits the `onSearch` event, providing external components\n * or listeners with information about the search query. Additionally, it purges\n * the grid cache using the `purgeInfiniteCache` method of the grid API.\n * @param {FilterSearchEvent} k - The `FilterSearchEvent` containing information about the search operation.\n */\n public search(k: FilterSearchEvent): void{\n this.onSearch.emit(k);\n \n this.gridApi.paginationGoToFirstPage();\n this.gridApi.purgeInfiniteCache();\n }\n}\n","<div class=\"d-flex align-items-center justify-content-between gap-4 p-4 flex-shrink-0 flex-wrap flex-md-nowrap\">\n <div class=\"flex-grow-1 d-flex align-items-center gap-2\">\n <h3 class=\"m-0 text-truncate\">{{ header }}</h3>\n\n @if (config.buttons && config.buttons.length > 0) {\n <up-btn-group class=\"flex-shrink-0\" id=\"btn-list-snapshot-container\" [config]=\"config.buttons\" />\n }\n </div>\n\n @if (config.filterConfig) {\n <div class=\"flex-shrink-0 flex-grow-1 flex-lg-grow-0\">\n <up-filter placeholder=\"Type to search\" id=\"filter-{{ id }}\" [config]=\"config.filterConfig\" (onSearch)=\"search($event)\" />\n </div>\n }\n</div>\n\n<div class=\"flex-grow-1 px-1 pb-1\">\n <up-pagination-grid [config]=\"config.gridConfig\" [id]=\"gridId\" (onGridReady)=\"setGridApi($event)\" (onRowClick)=\"openDetail($event)\" />\n</div>\n","import { Component, Attribute, Output, EventEmitter, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { GridApi, GridReadyEvent } from '@ag-grid-community/core';\nimport { ListContainerConfig } from '../interfaces/list-container-config.interface';\nimport { FilterSearchEvent } from '../../../filter/interfaces/filter-search-event.interface';\nimport { FilterComponent } from '../../../filter';\nimport { GridSnapshotComponent } from '../../../grids';\nimport { ButtonGroupComponent } from '../../../buttons';\n\n@Component({\n standalone: true,\n selector: 'up-list-snapshot-container',\n styleUrl: './list-snapshot-container.component.scss',\n templateUrl: './list-snapshot-container.component.html',\n host: {\n class: 'd-flex flex-column h-100 w-100'\n },\n imports: [\n FilterComponent,\n ButtonGroupComponent,\n GridSnapshotComponent\n ]\n})\nexport class ListSnapshotContainerComponent {\n\n /**\n * An Input variable that used to string for customizing header.\n * @type {string}\n */ \n @Input({ required: true }) public header!: string;\n /**\n * An input variable that used to configuration object for customizing list container config properties. This\n * object defined by ListContainerConfig interface allows specifying baseUrl, gridConfig, filterConfig and permission.\n * @type {ListContainerConfig}\n */\n @Input({ required: true }) public config!: ListContainerConfig;\n /**\n * The `onRowClick` EventEmitter is used to notify parent components or listeners\n * when a row is clicked within the current component. It emits an event containing\n * information related to the clicked row.\n * @type {EventEmitter<any>}\n */\n @Output() public readonly onRowClick: EventEmitter<any> = new EventEmitter();\n /**\n * The `onGridReady` EventEmitter is used to inform parent components or listeners\n * when the grid within the current component is ready for interaction. It emits an\n * event of type `GridReadyEvent`, which may contain information about the grid's\n * readiness and capabilities. \n * @type {EventEmitter<GridReadyEvent>} \n */\n @Output() public readonly onGridReady: EventEmitter<GridReadyEvent> = new EventEmitter();\n /**\n * The `onSearch` EventEmitter is used to inform parent components or listeners\n * when a search event is triggered within the current component. It emits an\n * event of type `FilterSearchEvent`, which may contain information about the\n * search query and additional details related to the search operation.\n * @type {EventEmitter<FilterSearchEvent>}\n */\n @Output() public readonly onSearch: EventEmitter<FilterSearchEvent> = new EventEmitter();\n /**\n * The `gridId` property is a unique identifier for a grid element. It is\n * automatically generated based on the component's `id` property. If the `id`\n * property is not set, a default value of 'p' is used.\n * @type {string}\n */\n public gridId: `grid-${ string }` = `grid-${ this.id?? 'p' }`;\n protected gridApi!: GridApi;\n\n constructor(\n @Attribute('id') public id: string,\n protected readonly router: Router\n ) { }\n \n /**\n * The `openDetail` method is used to trigger actions when a user requests to open\n * the detail view for a specific data item. It emits a `data` event using the\n * `onRowClick` EventEmitter, providing external components or listeners with\n * information about the clicked data. Additionally, it navigates to the detail\n * route associated with the data item using the Angular Router.\n * \n * @param data - The data item for which the detail view is to be opened.\n */\n public openDetail(data: any): void{ \n this.onRowClick.emit(data);\n this.router.navigate([ `${ this.config.baseUrl }${ data.guid }` ], { preserveFragment: true });\n }\n\n /**\n * The `setGridApi` method is used to set the grid API when the grid is ready, typically\n * after the `gridReady` event is fired. It assigns the grid API to the component's\n * `gridApi` property and emits the `onGridReady` event, providing external components\n * or listeners with information about the grid's readiness.\n * \n * @param {GridReadyEvent} ev - The `GridReadyEvent` containing information about the grid's readiness.\n */\n public setGridApi(ev: GridReadyEvent): void{ \n this.gridApi = ev.api; \n this.onGridReady.emit(ev);\n }\n\n /**\n * The `search` method is used to trigger a search operation based on the provided\n * `FilterSearchEvent`. It emits the `onSearch` event, providing external components\n * or listeners with information about the search query. Additionally, it purges\n * the grid cache using the `purgeInfiniteCache` method of the grid API.\n * @param {FilterSearchEvent} k - The `FilterSearchEvent` containing information about the search operation.\n */\n public search(k: FilterSearchEvent): void{\n this.onSearch.emit(k);\n \n this.gridApi.paginationGoToFirstPage();\n this.gridApi.purgeInfiniteCache();\n }\n}\n","<div class=\"d-flex align-items-center justify-content-between gap-4 p-4 flex-shrink-0 flex-wrap flex-md-nowrap\">\n <div class=\"flex-grow-1 d-flex align-items-center gap-2\">\n <h3 class=\"m-0 text-truncate\">{{ header }}</h3>\n\n @if (config.buttons && config.buttons.length > 0) {\n <up-btn-group class=\"flex-shrink-0\" id=\"btn-list-snapshot-container\" [config]=\"config.buttons\" />\n }\n </div>\n\n @if (config.filterConfig) {\n <div class=\"flex-shrink-0 flex-grow-1 flex-lg-grow-0\">\n <up-filter placeholder=\"Type to search\" id=\"filter-{{ id }}\" [config]=\"config.filterConfig\" (onSearch)=\"search($event)\" />\n </div>\n }\n</div>\n\n<div class=\"flex-grow-1 px-1 pb-1\">\n <up-snapshot-grid [config]=\"config.gridConfig\" [id]=\"gridId\" (onGridReady)=\"setGridApi($event)\" (onRowClick)=\"openDetail($event)\" />\n</div>\n","import { AfterContentInit, Attribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, HostBinding, Input } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'up-tab-content',\n styleUrl: './tab-content.component.scss',\n templateUrl: './tab-content.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TabContentComponent implements AfterContentInit {\n\n /**\n * A flag variable that used to hide or show the content of the tab. Default value is false.\n * @type {boolean}\n */\n @HostBinding('class.flex-grow-1') public isActive: boolean = false;\n\n /**\n * An input variable that used to give label for tabs.\n * @type {string}\n */\n @Input({ required: false }) public header!: string;\n\n /**\n * A content child variable to receive HTML element from parent component that will be displayed \n * as tab header / label on ion-segment-button.\n * @type {ElementRef<HTMLDivElement>}\n */\n @ContentChild('header') public customHeader?: ElementRef<HTMLDivElement>;\n\n constructor(\n @Attribute('fragment') public fragment: string,\n protected readonly ch: ChangeDetectorRef\n ) {}\n\n /**\n * Angular lifecycle hook that executed after the content projected to this component is initialized.\n * It checks if customHeader is not undefined will hide the element to prevent it appear to the content section,\n * and make sure the customHeader only displayed on the ion-segment-button as tab header / label.\n */\n public ngAfterContentInit(): void{\n if (this.customHeader) {\n this.customHeader.nativeElement.style.cssText = 'display: none !important';\n }\n }\n \n /**\n * A method that control show or hide the content of the tab. If the param value is true, the\n * content will shown. If the param value is false, the content will be hidden.\n * @param {boolean} s - Contain boolean value for show or hide the content. Default value is true.\n */\n public toggleVisibility(s: boolean = true): void{\n this.isActive = s;\n this.ch.markForCheck();\n }\n}\n","<div class=\"tab-content\" [hidden]=\"!isActive\">\n <ng-content />\n</div>\n","import { AfterContentInit, ChangeDetectionStrategy, Component, contentChildren, output, OutputEmitterRef, Signal } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { IonicModule } from '@ionic/angular';\nimport { TabContentComponent } from '../tab-content/tab-content.component';\nimport { TabsChangedEvent } from '..';\n\n@Component({\n standalone: true,\n selector: 'up-tab-group',\n styleUrl: './tab-group.component.scss',\n templateUrl: './tab-group.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n IonicModule\n ],\n})\nexport class TabGroupComponent implements AfterContentInit {\n\n /**\n * @deprecated - Use `changed` instead. Will be removed in next major release.\n * \n * An output variable that used to emits event of type string or null when value changed. This\n * output variable, when subscribed to, emits events containing instances of string or null\n * or its subclass.\n * @type {OutputEmitterRef<TabsChangedEvent>}\n */\n public readonly onChange: OutputEmitterRef<TabsChangedEvent> = output();\n\n /**\n * An output variable that used to emits event of type string or null when value changed. This\n * output variable, when subscribed to, emits events containing instances of string or null\n * or its subclass.\n * @type {OutputEmitterRef<TabsChangedEvent>}\n */\n public readonly changed: OutputEmitterRef<TabsChangedEvent> = output();\n\n /**\n * A list of tab content components\n * @type {Signal<readonly TabContentComponent[]>}\n */\n public readonly content: Signal<readonly TabContentComponent[]> = contentChildren(TabContentComponent);\n\n /**\n * A flag variable that used to set value of ion-segment for represents the current selected tab.\n * @type {string | null | undefined}\n */\n public activeFragment: string | null | undefined;\n\n constructor(\n protected readonly router: Router,\n protected readonly activeRoute: ActivatedRoute\n ) { }\n\n public ngAfterContentInit(): void{\n const f = this.activeRoute.snapshot.fragment;\n \n this.changeTab(\n f,\n this.content().findIndex(({ fragment }) => fragment === f)\n );\n }\n\n /**\n * A method when the tab is changed, it will emit onChange variable, change route\n * based on fragment value in param, and search if tabs have the fragment value.\n * If it's found, it'll show the tab's content. If it's not, it'll show empty content.\n * \n * @param {string | null} f - Contain value of the fragment that currently selected.\n * @param {string | null} i - Fragment index.\n */\n public changeTab(f: string | null, i: number): void{\n this.changed.emit({ fragment: f, index: i });\n this.onChange.emit({ fragment: f, index: i });\n \n this.router.navigate([], { relativeTo: this.activeRoute, fragment: f || undefined, replaceUrl: true });\n\n let found: boolean = false;\n this.content().forEach((tab) => {\n if (tab.fragment !== f) tab.toggleVisibility(false);\n else {\n found = true;\n this.activeFragment = f;\n tab.toggleVisibility(true);\n } \n });\n\n if (!found) {\n this.content()[0].toggleVisibility(true);\n this.activeFragment = this.content()[0].fragment;\n }\n }\n}\n","<ion-segment \n [scrollable]=\"true\" \n [value]=\"activeFragment\"\n>\n @for (c of content(); track c.fragment) {\n <ion-segment-button\n [value]=\"c.fragment\" \n (click)=\"changeTab(c.fragment, $index)\"\n >\n @if (!c.customHeader) {\n {{ c.header }}\n }\n @else {\n <div \n class=\"{{ c.customHeader.nativeElement.className }}\"\n [innerHTML]=\"c.customHeader.nativeElement.innerHTML\"\n >\n </div>\n }\n </ion-segment-button>\n }\n</ion-segment>\n\n<ng-content />\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApolloQueryResult } from '@apollo/client/core';\nimport { Apollo, gql } from 'apollo-angular';\nimport { AuditTrail, AuditTrailCriteria } from './../../../../graphql/generated';\n\n@Injectable({ \n providedIn: 'root' \n})\nexport class AuditService {\n\n protected readonly baseAttr: string = `\n action\n createdAt\n description\n function\n guid\n msSource\n sourceIp\n user {\n name\n sourcePlatform\n status\n appLoginPrincipal {\n principalType\n principalId\n }\n }\n `;\n\n constructor(\n protected readonly apollo: Apollo\n ) { }\n\n public query(input: AuditTrailCriteria, extraAttr: string = ''): Observable<ApolloQueryResult<{ auditMsAuditTrail: AuditTrail[] }>> {\n return this.apollo.query({\n variables: { input },\n query: gql`\n query QueryAudit($input: AuditTrailCriteria!) {\n auditMsAuditTrail(input: $input) {\n ${ this.baseAttr }\n ${ extraAttr }\n }\n }\n `\n });\n }\n}\n","import { Attribute, Component, Input, OnChanges, SimpleChanges, ViewChild } from '@angular/core';\nimport { formatDate } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { map, of } from 'rxjs';\nimport { GridApi, GridReadyEvent } from '@ag-grid-community/core';\nimport { AuditTagEnum, AuditTrail, AuditTrailCriteria } from './../../../../graphql/generated';\nimport { GridConfig } from '../../grids/interfaces/grid-config.interface';\nimport { FilterConfig } from '../../filter/interfaces/filter-config.interface';\nimport { FilterSearchEvent } from '../../filter/interfaces/filter-search-event.interface';\nimport { AuditService } from '../service/audit.service';\nimport { FilterComponent } from '../../filter';\nimport { GridPaginationComponent } from '../../grids/grid-pagination/grid-pagination.component';\n\n@Component({\n standalone: true,\n selector: 'up-audit-list',\n templateUrl: './audit-list.component.html',\n styleUrls: ['./audit-list.component.scss'],\n host: {\n class: 'd-flex flex-column h-100'\n },\n imports: [\n FilterComponent,\n GridPaginationComponent\n ]\n})\nexport class AuditListComponent implements OnChanges {\n\n @Input({ required: true }) public relatedEntities!: string[];\n @Input() public tagKeys!: AuditTagEnum[];\n @ViewChild(GridPaginationComponent) protected gridComponent!: GridPaginationComponent;\n public readonly filterConfig: FilterConfig = { mode: 'simple', fields: [{ key: 'description', label: '', type: 'text' }] };\n public readonly gridConfig: GridConfig = {\n useTotalRecord: false,\n noRowText: 'Audit not found',\n colDefs: [\n { headerName: 'User', field: 'user.name', sortable: false },\n { headerName: 'Description', field: 'description', minWidth: 350, sortable: false },\n { headerName: 'Created Date', field: 'createdAt', sort: 'desc', valueFormatter: ({ value }) => value? formatDate(value, 'dd MMM yyyy HH:mm', 'en-US') : '' }\n ],\n getData: (page: number, pageSize: number, sortBy: string, dir: 'asc' | 'desc') => {\n if (!this.criteria.tagValues) return of({ data: [] });\n\n this.criteria.page = page;\n this.criteria.sortBy = sortBy;\n this.criteria.pageSize = pageSize;\n this.criteria.sortDirection = dir;\n \n return this.service.query(this.criteria).pipe(\n map(({ data: { auditMsAuditTrail: data }}) => ({ data }))\n );\n },\n };\n protected readonly criteria: AuditTrailCriteria = { sortBy: 'createdAt', sortDirection: 'desc', page: 0, pageSize: 50 };\n protected gridApi?: GridApi;\n\n constructor(\n @Attribute('id') public id: string,\n @Attribute('mainUrl') protected url: string,\n protected readonly router: Router,\n protected readonly service: AuditService\n ) { }\n\n public ngOnChanges(e: SimpleChanges): void{\n if (e['tagKeys']) this.criteria.tagKeys = this.tagKeys;\n if (e['relatedEntities']) this.criteria.relatedEntities = this.relatedEntities;\n }\n\n public setGridApi({ api }: GridReadyEvent): void{ this.gridApi = api; }\n\n public rowClicked({ guid }: AuditTrail): void{\n this.router.navigate([ `${ this.url }/${ this.criteria.tagValues![0] }/audit/${ guid }` ], { preserveFragment: true });\n }\n\n public search({ data }: FilterSearchEvent): void{\n this.criteria.description = data?.description;\n this.gridComponent.reset();\n }\n\n public setGuid(guid: string): void{\n this.criteria.description = null;\n this.criteria.tagValues = [ guid ];\n this.gridComponent.reset(); \n }\n}\n","<div class=\"d-flex justify-content-end px-4 pb-4 flex-shrink-0\">\n <up-filter class=\"w-100\" id=\"audit-filter\" placeholder=\"Type to search\" [config]=\"filterConfig\" (onSearch)=\"search($event);\" />\n</div>\n \n<up-pagination-grid id=\"grid-audit\" class=\"flex-grow-1\" [config]=\"gridConfig\" (onGridReady)=\"setGridApi($event)\" (onRowClick)=\"rowClicked($event)\" />\n","import { Component, OnDestroy } from '@angular/core';\nimport { formatDate } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { FormBuilder, FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { IonicModule, NavController } from '@ionic/angular';\nimport { GridApi, GridReadyEvent } from '@ag-grid-community/core';\nimport { AuditTrail } from './../../../../graphql/generated';\nimport { AuditDetailForm } from '../types/audit-detail-form.type';\nimport { GridConfig } from '../../grids/interfaces/grid-config.interface';\nimport { AuditService } from '../service/audit.service';\nimport { FormInputComponent } from '../../forms/input/form-input.component';\nimport { FormTextareaComponent } from '../../forms/textarea/form-textarea.component';\nimport { GridPaginationComponent } from '../../grids/grid-pagination/grid-pagination.component';\nimport { TabContentComponent, TabGroupComponent } from '../../tabs';\n\n@Component({\n standalone: true,\n selector: 'up-audit-detail',\n styleUrl: './audit-detail.component.scss',\n templateUrl: './audit-detail.component.html',\n imports: [\n IonicModule,\n TabGroupComponent,\n TabContentComponent,\n GridPaginationComponent,\n FormInputComponent,\n FormTextareaComponent,\n ReactiveFormsModule\n ]\n})\nexport class AuditDetailComponent implements OnDestroy {\n\n public readonly gridConfig: GridConfig = {\n useTotalRecord: false,\n colDefs: [\n { headerName: 'Attribute Name', field: 'attribute', sort: 'asc' },\n { headerName: 'Old Value', field: 'oldData' },\n { headerName: 'New Value', field: 'newData' }\n ]\n };\n public readonly form: FormGroup<AuditDetailForm> = this.fb.group<AuditDetailForm>({\n guid: new FormControl({ value: null, disabled: true}),\n action: new FormControl({ value: null, disabled: true}),\n description: new FormControl({ value: null, disabled: true}),\n userName: new FormControl({ value: null, disabled: true}),\n sourceIp: new FormControl({ value: null, disabled: true}),\n createdAt: new FormControl({ value: null, disabled: true}),\n msSource: new FormControl({ value: null, disabled: true}),\n sourcePlatform: new FormControl({ value: null, disabled: true}),\n function: new FormControl({ value: null, disabled: true}),\n });\n public data!: AuditTrail;\n public isLoading: boolean = true;\n protected guid: string = '';\n protected gridApi!: GridApi;\n protected sub?: Subscription;\n\n constructor(\n protected readonly fb: FormBuilder,\n protected readonly service: AuditService,\n protected readonly route: ActivatedRoute,\n protected readonly navCtrl: NavController\n ) { }\n\n public ngOnDestroy(): void{\n this.sub?.unsubscribe();\n }\n\n public setGridApi({ api }: GridReadyEvent): void{\n this.gridApi = api;\n this.getData();\n }\n\n public isIsoDateString(str: string): boolean{\n const regex = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,9})?Z$/;\n return regex.test(str);\n }\n\n public formatData(value: any): any{\n if (value === null) return value;\n if (typeof value === 'object') return JSON.stringify(value);\n if (this.isIsoDateString(value)) return formatDate(value, 'dd MMM yyyy HH:mm', 'en-US');\n return value;\n }\n\n public getData(): void{\n const newGuid = this.route.children[0].snapshot.params['audit'];\n if (!newGuid || this.guid === newGuid) return;\n\n this.sub?.unsubscribe();\n this.gridApi?.showLoadingOverlay();\n\n this.guid = newGuid;\n this.isLoading = true;\n this.sub = this.service.query({ guid: this.guid }, 'data tags { tagKey tagValue }').subscribe({\n next: ({ data: { auditMsAuditTrail: data }}) => {\n this.gridApi?.hideOverlay();\n\n if (data.length !== 1) {\n this.navCtrl.back();\n return;\n }\n\n const { guid, action, description, function: func, msSource, sourceIp, createdAt } = data[0];\n this.form.patchValue({\n guid,\n function: func, \n msSource, sourceIp,\n action, description,\n userName: data[0].user?.name,\n sourcePlatform: data[0].user?.sourcePlatform,\n createdAt: formatDate(createdAt, 'dd MMM yyyy HH:mm', 'en-US'),\n });\n\n this.isLoading = false;\n this.getChangedData(data[0].data);\n },\n error: () => this.navCtrl.back()\n });\n }\n\n protected getChangedData({ oldData, newData }: any): void{\n if (!newData || Array.isArray(JSON.parse(newData))) {\n this.gridApi.setGridOption('rowData', []);\n return;\n }\n\n const objNewData = JSON.parse(newData);\n const changedData = Object.entries(oldData? JSON.parse(oldData) : JSON.parse(newData))\n .filter(([key, oldVal]) => JSON.stringify(oldData? oldVal : null) !== JSON.stringify(objNewData[key]) && !key.match(/update|created/))\n .map(([key, oldVal]) => ({\n attribute: key,\n oldData: oldData? this.formatData(oldVal) : null,\n newData: this.formatData(objNewData[key])\n })\n );\n\n this.gridApi.setGridOption('rowData', changedData);\n }\n}\n","<up-tab-group class=\"h-100\">\n <up-tab-content header=\"Detail\" fragment=\"detail\">\n @if (isLoading) {\n @for(i of [0,1,2,3,4,5,6]; track $index) {\n <ion-skeleton-text class=\"sk-input mx-4 mb-4\" />\n }\n } @else {\n <form [formGroup]=\"form\" class=\"px-4 pb-4\">\n <div class=\"d-flex align-items-center gap-2 pb-3\">\n <ion-icon name=\"information-circle\" />\n <h5 class=\"m-0\">Information</h5>\n </div>\n \n <div class=\"d-flex flex-column flex-lg-row gap-4\">\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-lg-4\" label=\"Action\" formControlName=\"action\" />\n </div>\n \n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"Source IP\" formControlName=\"sourceIp\" />\n </div>\n </div>\n \n <up-input class=\"mb-4\" label=\"User Name\" formControlName=\"userName\" />\n <up-textarea class=\"mb-4\" label=\"Description\" formControlName=\"description\" />\n \n <div class=\"d-flex align-items-center gap-2 pb-3 pt-2\">\n <ion-icon name=\"laptop\" />\n <h5 class=\"m-0\">System Information</h5>\n </div>\n \n <div class=\"d-flex flex-column flex-lg-row gap-4\">\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"Action Date\" formControlName=\"createdAt\" />\n <up-input class=\"mb-lg-4\" label=\"Source Platform\" formControlName=\"sourcePlatform\" />\n </div>\n \n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"MS Source\" formControlName=\"msSource\" />\n <up-input class=\"mb-4\" label=\"Function\" formControlName=\"function\" />\n </div>\n </div>\n </form>\n } \n </up-tab-content>\n\n <up-tab-content header=\"Attributes\" fragment=\"attributes\">\n <up-pagination-grid id=\"grid-audit-detail\" rowModelType=\"clientSide\" [config]=\"gridConfig\" (onGridReady)=\"setGridApi($event)\" />\n </up-tab-content>\n</up-tab-group>\n","import { InjectionToken, Provider } from '@angular/core';\n\nexport const APPROVAL_ENTITIES = new InjectionToken<string[]>('APPROVAL_ENTITIES');\n\nexport function provideApprovalEntities(entities: string[]): Provider{\n return { \n provide: APPROVAL_ENTITIES, \n useValue: entities \n };\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApolloQueryResult, FetchPolicy } from '@apollo/client/core';\nimport { Apollo, gql, MutationResult } from 'apollo-angular';\nimport { ApprovalCriteria, PageableResponse, MutationApprovalMsApproveOrDeclineRequestArgs } from './../../../../graphql/generated';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApprovalService {\n\n protected readonly baseAttr: string = `guid createdAt entity remark sourcePlatform status type approvalGroup { guid }`;\n\n constructor(\n protected readonly apollo: Apollo\n ) { }\n\n public query(input: ApprovalCriteria, extraAttr: string = '', fetchPolicy?: FetchPolicy): Observable<ApolloQueryResult<{ approvalMsApprovals: PageableResponse }>>{\n return this.apollo.query({\n fetchPolicy,\n variables: { input },\n query: gql`\n query QueryApproval($input: ApprovalCriteria) {\n approvalMsApprovals(input: $input) {\n data {\n ${ this.baseAttr }\n ${ extraAttr }\n }\n ${ input.page === 0? 'totalRecord' : '' }\n }\n }\n `\n });\n }\n\n public request(variables: MutationApprovalMsApproveOrDeclineRequestArgs): Observable<MutationResult<{ approvalMsApproveOrDeclineRequest: string }>>{\n return this.apollo.mutate({\n variables,\n mutation: gql`\n mutation ${ variables.isApprove? 'ApproveApproval' : 'DeclineApproval' }($approvalGroupGuid: String, $guids: [String], $isApprove: Boolean, $reason: String) {\n approvalMsApproveOrDeclineRequest(approvalGroupGuid: $approvalGroupGuid, guids: $guids, isApprove: $isApprove, reason: $reason)\n }\n `\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\nimport { formatDate } from '@angular/common';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { map, Observable } from 'rxjs';\nimport { AlertController } from '@ionic/angular';\nimport { FetchPolicy } from '@apollo/client/core';\nimport { GridApi, GridReadyEvent } from '@ag-grid-community/core';\nimport { ApprovalCriteria, ApprovalGroup, ApprovalStatusEnum } from '../../../../graphql/generated';\nimport { GridConfig } from '../../grids/interfaces/grid-config.interface';\nimport { FilterConfig } from '../../filter/interfaces/filter-config.interface';\nimport { FilterSearchEvent } from '../../filter/interfaces/filter-search-event.interface';\nimport { ButtonGroupConfig } from '../../buttons/group/interfaces/btn-group-config.interface';\nimport { APPROVAL_ENTITIES } from './provide-approval-entities.util';\nimport { ApprovalService } from '../services/approval.service';\nimport { FilterComponent } from '../../filter/filter.component';\nimport { ButtonGroupComponent } from '../../buttons/group/btn-group.component';\nimport { ButtonLoadingComponent } from '../../buttons/loading/btn-loading.component';\nimport { GridPaginationComponent } from '../../grids/grid-pagination/grid-pagination.component';\n\n@Component({\n standalone: true,\n selector: 'up-approval-list',\n styleUrl: './approval-list.component.scss',\n templateUrl: './approval-list.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-flex flex-column h-100 w-100'\n },\n imports: [\n FilterComponent,\n ButtonGroupComponent,\n GridPaginationComponent\n ]\n})\nexport class ApprovalListComponent {\n\n public readonly gridConfig: GridConfig = {\n noRowText: 'Approval not found',\n colDefs: [\n { headerName: 'Entity', field: 'entity', checkboxSelection: ({ data: d }) => this.isCheckboxSelectable(d?.approvalGroup) },\n { headerName: 'Remark', field: 'remark' },\n { headerName: 'Source Platform', field: 'sourcePlatform' },\n { headerName: 'Status', field: 'status', maxWidth: 100, cellRenderer: ({ value }: any) => value? `<div class=\"badge m-auto bg-${ value === ApprovalStatusEnum.Pending? 'warning' : value === ApprovalStatusEnum.Approved? 'success' : 'danger'}\">${ value }</div>` : '' },\n { headerName: 'Type', field: 'type', maxWidth: 100 },\n { headerName: 'Created Date', field: 'createdAt', sort: 'desc', valueFormatter: ({ value }) => value? formatDate(value, 'dd MMM yyyy HH:mm', 'en-US') : '' }\n ],\n getData: (page: number, pageSize: number, sortBy: string, dir: 'asc' | 'desc'): Observable<{ data: any, totalRecord: number }> => {\n const policy: FetchPolicy | undefined = this.input.page === page? 'no-cache' : undefined;\n\n this.input.page = page;\n this.input.sortBy = sortBy;\n this.input.pageSize = pageSize;\n this.input.sortDirection = dir;\n\n return this.service.query(this.input, '', policy).pipe(\n map(({ data: { approvalMsApprovals: { data, totalRecord: t } }}) => ({ data, totalRecord: t! }))\n );\n }\n };\n public readonly filterConfig: FilterConfig = {\n mode: 'advanced',\n fields: [\n { key: 'status', label: 'Status', type: 'select', initialValue: [ 'PENDING' ], options: [\n { label: 'Approved', value: [ 'APPROVED' ] as any },\n { label: 'Declined', value: [ 'DECLINED' ] as any },\n { label: 'Pending', value: [ 'PENDING' ] as any }\n ]},\n { key: 'type', label: 'Type', type: 'select', options: [\n { label: 'Creation', value: [ 'CREATION' ] as any },\n { label: 'Deletion', value: [ 'DELETION' ] as any },\n { label: 'Linkage', value: [ 'LINKAGE' ] as any },\n { label: 'Unlink', value: [ 'UNLINK' ] as any },\n { label: 'Update', value: [ 'UPDATE' ] as any }\n ]}\n ]\n };\n public btnConfig: ButtonGroupConfig[] = [\n { label: 'Approve', icon: 'checkmark', description: 'Approve the approvals' , disabled: true, onClick: this.multipleApproval.bind(this) },\n { label: 'Decline', icon: 'close', description: 'Decline the approvals', color: 'danger', disabled: true, onClick: this.multipleApproval.bind(this) }\n ];\n protected gridApi!: GridApi;\n protected selectedApprovalGroupGuid?: string;\n protected input: ApprovalCriteria = { page: 0, pageSize: 50, entity: this.entities };\n\n constructor(\n @Inject(APPROVAL_ENTITIES) public readonly entities: string[],\n protected readonly router: Router,\n protected readonly route: ActivatedRoute,\n protected readonly service: ApprovalService,\n protected readonly alertCtrl: AlertController\n ) { }\n\n public setGridApi({ api }: GridReadyEvent): void{ \n this.gridApi = api; \n }\n\n public openDetail({ guid }: any): void{ \n this.router.navigate([ `/approval/${ guid }` ], { preserveFragment: true }); \n }\n\n public selectApprovals(): void{\n const dataGrid: any[] = this.gridApi.getSelectedRows();\n\n this.btnConfig[0].disabled = this.btnConfig[1].disabled = dataGrid.length < 1;\n\n this.selectedApprovalGroupGuid = dataGrid.length === 0? undefined : dataGrid[0].approvalGroup.guid;\n this.gridApi.refreshCells({ force: true });\n }\n\n public search({ data }: FilterSearchEvent): void{\n this.input.type = data?.type;\n this.input.status = data?.status;\n\n this.gridApi.getSelectedNodes().forEach((e) => e.setSelected(false));\n this.gridApi.refreshInfiniteCache();\n }\n\n protected isCheckboxSelectable(approvalGroup?: ApprovalGroup): boolean{\n if (!approvalGroup) return false;\n if (approvalGroup.guid === this.selectedApprovalGroupGuid) return true;\n return true;\n }\n\n protected multipleApproval(btn: ButtonLoadingComponent): void{\n btn.toggleLoading();\n\n this.router.navigate([ `/approval/approval-group` ], {\n preserveFragment: true,\n queryParams: {\n isApprove: btn.color !== 'danger',\n approvalGroupGuid: this.selectedApprovalGroupGuid,\n guids: this.gridApi.getSelectedRows().map(({ guid }) => guid)\n }\n });\n }\n}\n","<div class=\"d-flex align-items-center justify-content-between gap-4 p-4 flex-shrink-0 flex-wrap\">\n <div class=\"flex-grow-1 d-flex align-items-center gap-3\">\n <h3 class=\"m-0\">Approval</h3>\n\n <up-btn-group id=\"approval-list\" [config]=\"btnConfig\" />\n </div>\n\n <div class=\"flex-shrink-0 flex-grow-1\">\n <up-filter placeholder=\"Type to search\" id=\"filter-approval-list\" [config]=\"filterConfig\" (onSearch)=\"search($event)\" />\n </div>\n</div>\n\n<div class=\"flex-grow-1 px-1 pb-1\">\n <up-pagination-grid [config]=\"gridConfig\" id=\"grid-approval-list\" rowSelection=\"multiple\" (onGridReady)=\"setGridApi($event)\" (onRowClick)=\"openDetail($event)\" (onSelectionChanged)=\"selectApprovals()\" />\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy } from '@angular/core';\nimport { DatePipe, JsonPipe } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { AlertButton, AlertController, IonicModule } from '@ionic/angular';\nimport { Approval, ApprovalStatusEnum } from '../../../../graphql/generated';\nimport { ButtonGroupConfig } from '../../buttons/group/interfaces/btn-group-config.interface';\nimport { ApprovalService } from '../services/approval.service';\nimport { GridService } from '../../grids/services/grid.service';\nimport { PermissionService } from '../../../modules/permission/services/permission.service';\nimport { FormInputComponent } from '../../forms/input/form-input.component';\nimport { ButtonLoadingComponent } from '../../buttons/loading/btn-loading.component';\nimport { FormTextareaComponent } from '../../forms/textarea/form-textarea.component';\n\n@Component({\n standalone: true,\n selector: 'up-approval-form',\n styleUrl: './approval-form.component.scss',\n templateUrl: './approval-form.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'px-4 pb-4 d-block'\n },\n imports: [\n DatePipe,\n JsonPipe,\n IonicModule,\n FormInputComponent,\n FormTextareaComponent\n ]\n})\nexport class ApprovalFormComponent implements OnDestroy {\n\n @Input() public isLoading: boolean = true;\n public readonly btnConfig: ButtonGroupConfig[] = [];\n public data: Approval[] = [];\n protected guids!: string[];\n protected sub?: Subscription;\n protected approvalGroupGuid?: string;\n\n constructor(\n protected readonly router: Router,\n protected readonly ch: ChangeDetectorRef,\n protected readonly service: ApprovalService,\n protected readonly gridService: GridService,\n protected readonly alertCtrl: AlertController,\n protected readonly permService: PermissionService\n ) { }\n\n public ngOnDestroy(): void{\n this.sub?.unsubscribe();\n }\n\n public setGuid(guids: string[], approvalGroupGuid?: string, isApprove?: boolean): void{\n this.guids = guids;\n if (approvalGroupGuid) {\n this.approvalGroupGuid = approvalGroupGuid;\n }\n\n this.btnConfig.length = 0;\n this.setLoading(true);\n\n this.sub = this.service.query({ guids, status: [ ApprovalStatusEnum.Approved, ApprovalStatusEnum.Declined, ApprovalStatusEnum.Pending ] }, 'data permission reason').subscribe({\n next: ({ data: { approvalMsApprovals: { data }}}) => {\n if (!data || data.length === 0) {\n this.router.navigateByUrl('approval');\n return;\n }\n\n this.data = data as any;\n if (data.length === 1) {\n const { status, permission } = data[0] as any;\n\n if (status === ApprovalStatusEnum.Pending) {\n const perm: string[] = permission!.split('.');\n\n if (this.permService.checkPermission(perm[0], perm[1], perm[2])) {\n this.btnConfig.push(\n { label: 'Approve', icon: 'checkmark', description: 'Approve the approval' , disabled: false, onClick: this.request.bind(this) },\n { label: 'Decline', icon: 'close', description: 'Decline the approval', color: 'danger', disabled: false, onClick: this.request.bind(this) }\n );\n }\n }\n } else {\n let dataCount: number = 0;\n\n data.map(({ permission, status }: any) => {\n if (status === ApprovalStatusEnum.Pending) {\n const perm: string[] = permission.split('.');\n\n if (this.permService.checkPermission(perm[0], perm[1], perm[2])) {\n dataCount++;\n }\n\n if (dataCount === data.length) {\n if (isApprove) {\n this.btnConfig.push({ label: 'Approve', icon: 'checkmark', description: 'Approve the approval(s)' , disabled: false, onClick: this.request.bind(this) });\n } else {\n this.btnConfig.push({ label: 'Decline', icon: 'close', description: 'Decline the approval', color: 'danger', disabled: false, onClick: this.request.bind(this) })\n } \n }\n }\n });\n }\n this.setLoading(false);\n },\n error: ({ message }) => {\n this.showAlert('Error', message);\n this.router.navigateByUrl('approval');\n }\n });\n }\n\n protected request(btn: ButtonLoadingComponent): void{\n const isApprove: boolean = btn.color !== 'danger';\n\n this.showAlert('Confirm', `Are you sure want to ${ isApprove? 'approve the approval?' : 'decline the approval? Please input the reason if you want to decline.' }`, [\n { text: 'Cancel', handler: () => btn.toggleLoading() },\n {\n text: `${ isApprove? 'Approve' : 'Decline' }`,\n handler: ({ reason }) => {\n this.sub?.unsubscribe();\n\n this.sub = this.service.request({\n reason,\n isApprove,\n guids: this.guids,\n approvalGroupGuid: this.approvalGroupGuid\n }).subscribe({\n next: () => {\n this.showAlert('Success', `Approval ${ isApprove? 'approved' : 'declined' }`);\n this.router.navigateByUrl('approval');\n\n this.gridService.refreshGridCache('grid-approval-list');\n },\n error: ({ message }: any) => {\n btn.toggleLoading();\n this.showAlert('Error', message);\n }\n });\n }\n }\n ], [{ name: 'reason', type: 'textarea', placeholder: 'Reason' }]);\n }\n\n protected setLoading(b: boolean): void{\n this.isLoading = b;\n this.ch.markForCheck();\n }\n\n protected async showAlert(header: string, message: string, buttons: (AlertButton | string)[] = ['OK'], inputs: any[] = []): Promise<void>{ (await this.alertCtrl.create({ header, message, buttons, inputs })).present(); }\n}\n","@if (isLoading) {\n <div class=\"d-flex flex-column flex-lg-row gap-4\">\n <div class=\"flex-grow-1\">\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n </div>\n\n <div class=\"flex-grow-1\">\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n </div>\n </div>\n \n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n <ion-skeleton-text class=\"m-0 sk-input\" />\n}\n@else {\n @for (d of data; track $index) {\n @if (data.length > 1) {\n <div class=\"d-flex align-items-center gap-2 pb-3 pt-2\">\n <ion-icon name=\"document\" />\n <h5 class=\"m-0\">Approval {{ $index + 1 }}</h5>\n </div>\n }\n \n <div class=\"d-flex flex-column flex-lg-row gap-4\">\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"Entity\" [disabled]=\"true\" [value]=\"d.entity\" />\n <up-input class=\"mb-4\" label=\"Remark\" [disabled]=\"true\" [value]=\"d.remark\" />\n </div>\n\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"Created At\" [disabled]=\"true\" [value]=\"d.createdAt | date:'dd MMM yyyy HH:mm'\" />\n <up-input class=\"mb-4\" label=\"Status\" [disabled]=\"true\" [value]=\"d.status\" />\n </div>\n </div>\n\n <up-textarea label=\"JSON\" [disabled]=\"true\" [value]=\"d.data | json\" />\n <up-textarea class=\"mt-4\" label=\"Reason\" [disabled]=\"true\" [value]=\"d.reason\" *ngIf=\"d.status !== 'PENDING'\" />\n }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { filter, Subscription } from 'rxjs';\nimport { IonicModule } from '@ionic/angular';\nimport { TabContentComponent, TabGroupComponent, TabsChangedEvent } from '../../tabs';\nimport { ButtonGroupConfig } from '../../buttons/group/interfaces/btn-group-config.interface';\nimport { ApprovalFormComponent } from '../form/approval-form.component';\nimport { ButtonGroupComponent } from '../../buttons/group/btn-group.component';\nimport { ColumnHeaderContainerComponent } from '../../containers/colum-header-container/column-header-container.component';\n\n@Component({\n standalone: true,\n selector: 'up-approval-detail',\n styleUrl: './approval-detail.component.scss',\n templateUrl: './approval-detail.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-block h-100'\n },\n imports: [\n IonicModule,\n TabGroupComponent,\n TabContentComponent,\n ButtonGroupComponent,\n ColumnHeaderContainerComponent,\n ApprovalFormComponent\n ]\n})\nexport class ApprovalDetailComponent implements OnInit, AfterViewInit, OnDestroy {\n\n @ViewChild(ApprovalFormComponent) public formComponent?: ApprovalFormComponent;\n public btnConfig: ButtonGroupConfig[] = [];\n protected guids?: string[];\n protected guid: string = '';\n protected sub!: Subscription; \n protected isApprove?: boolean;\n protected approvalGroupGuid?: string;\n\n constructor(\n protected readonly router: Router,\n protected readonly activatedRoute: ActivatedRoute\n ) { }\n\n public ngOnInit(): void {\n this.sub = this.activatedRoute.queryParams.subscribe((params) => {\n if (params) {\n this.guids = params['guids'];\n this.isApprove = params['isApprove'] === 'true';\n\n this.approvalGroupGuid = params['approvalGroupGuid'];\n }\n });\n }\n\n public ngAfterViewInit(): void{\n if (this.guids) {\n this.setChildGuid(this.guids);\n this.changeTab({ fragment: this.activatedRoute.snapshot.fragment, index: 0 });\n } else {\n this.setChildGuid([this.activatedRoute.children[0].snapshot.params['guid']]);\n this.changeTab({ fragment: this.activatedRoute.snapshot.fragment, index: 0 });\n\n this.sub = this.router.events.pipe(filter((e) => e instanceof NavigationEnd)).subscribe({\n next: () => {\n const newGuid: string = this.activatedRoute.children[0].snapshot.params['guid'];\n\n if (this.guid !== newGuid) {\n this.guid = newGuid;\n this.setChildGuid([ this.guid ]);\n }\n }\n });\n }\n }\n\n public ngOnDestroy(): void{ \n this.sub.unsubscribe(); \n }\n\n public changeTab({ fragment }: TabsChangedEvent): void{\n switch (fragment) {\n default:\n this.btnConfig = this.formComponent?.btnConfig?? [];\n }\n }\n\n protected setChildGuid(guids: string[]): void{\n this.formComponent?.setGuid(guids, this.approvalGroupGuid, this.isApprove);\n }\n}\n","<up-column-header-container header=\"Approval Detail\" prevUrl=\"/approval\" class=\"bg-white\">\n @if (!formComponent?.isLoading) {\n <up-btn-group id=\"approval-detail-button\" [config]=\"btnConfig\" button />\n }\n @else {\n <ion-skeleton-text class=\"m-0 sk-btn\" button />\n }\n\n <up-tab-group class=\"h-100\" (onChange)=\"changeTab($event)\">\n <up-tab-content header=\"Detail\" fragment=\"detail\">\n <up-approval-form />\n </up-tab-content>\n </up-tab-group>\n</up-column-header-container>\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: '[upInfiniteScroll]',\n})\nexport class InfiniteScrollDirective implements OnInit, AfterViewInit, OnDestroy {\n\n /**\n * Threshold at which to trigger the callback. A value of 0.0 means that the callback\n * will be triggered as soon as a single pixel is visible. 1.0 means that the callback will only be triggered when the entire element is visible.\n * @type {number}\n */\n @Input() public threshold: number = 0.5;\n\n /**\n * Margin around the root. This can be used to grow or shrink the area used to\n * determine intersections. It follows the same syntax as the CSS margin property.\n * Example values: '10px', '10px 20px', '10%', '10% 20% 30% 40%'.\n * @type {string}\n */\n @Input() public rootMargin: string = '0px';\n\n /**\n * Event emitted when the observed element scrolls into view.\n * This triggers the component to load more data.\n * @type {EventEmitter<boolean>}\n */\n @Output() public readonly onScrollThreshold: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /**\n * IntersectionObserver instance used to observe the element.\n * @type {IntersectionObserver}\n */\n protected observer!: IntersectionObserver;\n\n constructor(\n protected readonly element: ElementRef\n ) {}\n\n /**\n * Lifecycle hook that is called after Angular has initialized all data-bound properties.\n * Initializes the IntersectionObserver with specific options.\n */\n public ngOnInit(): void{\n const options = { \n root: null, \n rootMargin: this.rootMargin, \n threshold: Math.max(0, Math.min(1, this.threshold))\n };\n \n this.observer = new IntersectionObserver((entries: IntersectionObserverEntry[]) => {\n if (entries[0].isIntersecting) this.onScrollThreshold.emit(true);\n }, options);\n }\n\n /**\n * Lifecycle hook that is called after Angular has fully initialized the component's view.\n * Starts observing the element.\n */\n public ngAfterViewInit(): void{\n this.observer.observe(this.element.nativeElement);\n }\n\n /**\n * Lifecycle hook that is called when the directive is being destroyed.\n * Disconnects the IntersectionObserver to stop observing the element to prevent memory leaks.\n */\n public ngOnDestroy(): void{\n this.observer.disconnect();\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { InfiniteScrollDirective } from './directive/infinite-scroll.directive';\n\n@Component({\n standalone: true,\n selector: 'up-infinite-scroll',\n styleUrl: './infinite-scroll.component.scss',\n templateUrl: './infinite-scroll.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n IonicModule,\n InfiniteScrollDirective\n ]\n})\nexport class InfiniteScrollComponent {\n \n /**\n * Text to display when loading more items.\n * @type {string}\n */\n @Input() public loadingText?: string;\n\n /**\n * Threshold at which to trigger the callback. A value of 0.0 means that the callback\n * will be triggered as soon as a single pixel is visible. 1.0 means that the callback will only be triggered when the entire element is visible.\n * @type {number}\n */\n @Input() public threshold: number = 0.5;\n\n /**\n * Margin around the root. This can be used to grow or shrink the area used to\n * determine intersections. It follows the same syntax as the CSS margin property.\n * Example values: '10px', '10px 20px', '10%', '10% 20% 30% 40%'.\n * @type {string}\n */\n @Input() public rootMargin: string = '0px';\n\n /**\n * Icon to display while loading more items. \n * Can be one of 'bubbles', 'circles', 'circular', 'crescent', 'dots', 'lines', 'lines-sharp', 'lines-sharp-small', or 'lines-small'.\n * @type {'bubbles' | 'circles' | 'circular' | 'crescent' | 'dots' | 'lines' | 'lines-sharp' | 'lines-sharp-small' | 'lines-small'}\n * @default 'dots'\n */\n @Input() public loadingIcon: 'bubbles' | 'circles' | 'circular' | 'crescent' | 'dots' | 'lines' | 'lines-sharp' | 'lines-sharp-small' | 'lines-small' = 'dots';\n\n /**\n * Event emitted when the user has scrolled to the bottom of the list.\n * Used for triggering the component to load more data.\n * @type {EventEmitter<void>}\n */\n @Output() public onScrollThreshold: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * Method to emit the scrolled event, indicating that the user has reached the bottom of the list.\n * This triggers the component to load more data.\n */\n public scroll(): void{\n this.onScrollThreshold.emit();\n }\n}\n","<div \n class=\"scroll-container\" \n [threshold]=\"threshold\" \n [rootMargin]=\"rootMargin\" \n (onScrollThreshold)=\"scroll()\"\n upInfiniteScroll \n>\n <ion-spinner [name]=\"loadingIcon\" />\n\n @if (loadingText) {\n <div class=\"loading-text\">{{ loadingText }}</div>\n }\n</div>\n","import { Injectable } from '@angular/core';\nimport { AuthService } from '../../services';\n\n/**\n * The `AuthResolver` service provides methods for handling authentication-related tasks,\n * such as checking user login status, retrieving authentication tokens, and managing token expiration.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthResolver {\n\n /**\n * Checks if the user is logged in by verifying the presence of an authentication token.\n * @returns {boolean} - True if the user is logged in; otherwise, false.\n */\n public isUserLoggedIn(): boolean{ \n return AuthService.authToken !== ''; \n }\n\n /**\n * Retrieves the authentication token, resolving it if needed.\n * @returns {string | null} - The authentication token if the user is logged in; otherwise, null.\n */\n public getAuthToken(): string | null{\n this.resolveUserAuthToken();\n \n if (this.isUserLoggedIn()) return AuthService.authToken;\n \treturn null;\n }\n\n /**\n * Resolves the user's authentication token by checking expiration and whether the user still logged in or not.\n */\n protected resolveUserAuthToken(): void{\n if (!this.isUserLoggedIn() || !this.isTokenExpired(AuthService.authToken)) return;\n \n AuthService.authToken = '';\n AuthService.refreshToken = '';\n localStorage.removeItem('authToken');\n localStorage.removeItem('refreshToken');\n }\n\n /**\n * Checks if a given token is expired or not yet.\n * @param {string | null} token - The token to be checked for expiration.\n * @returns {boolean} - True if the token is expired; otherwise, false.\n */\n protected isTokenExpired(token: string | null): boolean{\n if (!token || token === '') return true;\n const date = this.getTokenExpirationDate(token);\n\n if (date === null) return false;\n return !(<number>date.valueOf() > new Date().valueOf() + 0 * 1000);\n }\n\n /**\n * Retrieves the expiration date of a token.\n * @param {string | null} token - The token for which to retrieve the expiration date.\n * @returns {Date | null} - The expiration date of the token if available; otherwise, null.\n */\n protected getTokenExpirationDate(token: string | null): Date | null{\n const decoded: any = this.decodeToken(token); \n if (!decoded || !decoded.hasOwnProperty('exp')) return null;\n \n const date = new Date(0);\n date.setUTCSeconds(decoded.exp);\n\n return date;\n }\n\n /**\n * Decodes a JWT token to extract payload information.\n * @param {string | null} token - The JWT token to be decoded.\n * @returns {string | null} - The decoded payload as a string if successful; otherwise, null.\n */\n protected decodeToken(token: string | null): string | null{\n if (!token || token === '') return null;\n\n const parts = token.split('.');\n if (parts.length !== 3) throw new Error(`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 const decoded = this.urlBase64Decode(parts[1]);\n if (!decoded) throw new Error('Cannot decode the token.');\n\n return JSON.parse(decoded);\n }\n\n /**\n * Decodes a base64url-encoded string.\n * @param {string} str - The base64url-encoded string to be decoded.\n * @returns {string} - The decoded string.\n */\n protected 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 return this.b64DecodeUnicode(output);\n }\n\n /**\n * Decodes a Unicode string from a base64-encoded string.\n * @param {string} str - The base64-encoded string to be decoded.\n * @returns {string} - The decoded Unicode string.\n */\n protected b64DecodeUnicode(str: string): string{\n return decodeURIComponent(Array.prototype.map.call(this.b64decode(str), (c: any) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join(''));\n }\n\n /**\n * Decodes a base64-encoded string.\n * @param {string} str - The base64-encoded string to be decoded.\n * @returns {string} - The decoded string.\n */\n protected b64decode(str: string): string{\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n let output = '';\n\n str = String(str).replace(/=+$/, '');\n if (str.length % 4 === 1) throw new Error(`'atob' failed: The string to be decoded is not correctly encoded.`);\n\n for (\n let bc = 0, bs: any, buffer: any, idx = 0;\n (buffer = str.charAt(idx++));\n \n ~buffer && ((bs = bc % 4? bs * 64 + buffer : buffer), bc++ % 4)? (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6)))) : 0\n ) buffer = chars.indexOf(buffer);\n\n return output;\n }\n}\n","import { inject } from '@angular/core';\nimport { AuthResolver } from '../../resolvers';\n\nexport const AuthGuard: () => boolean = (): boolean => {\n const resolver = inject(AuthResolver);\n \n if (!resolver.isUserLoggedIn()) {\n location.href = '/auth/login';\n }\n return true;\n};\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpHandlerFn, HttpInterceptor, HttpInterceptorFn, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { AuthService } from '../../services';\n\nexport const headerInterceptor: HttpInterceptorFn = (\n request: HttpRequest<any>,\n next: HttpHandlerFn\n): Observable<HttpEvent<any>> => {\n return next(\n request.clone({\n headers: request.headers,\n setHeaders: {\n project: 'unipin',\n authorization: AuthService.authToken,\n },\n })\n );\n};\n\n/**\n * @deprecated - DI based interceptor will be removed at v19.0.0, use function based interceptor instead\n */\n@Injectable()\nexport class HeaderInterceptor implements HttpInterceptor {\n\n public intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>{\n return next.handle(request.clone({\n headers: request.headers,\n setHeaders: {\n authorization: AuthService.authToken,\n project: 'unipin'\n }\n }));\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpHandlerFn, HttpInterceptor, HttpInterceptorFn, HttpRequest } from '@angular/common/http';\nimport { catchError, Observable, switchMap, throwError } from 'rxjs';\nimport { AuthService } from '../../services';\n\nexport const refreshTokenInterceptor: HttpInterceptorFn = (\n request: HttpRequest<any>, \n next: HttpHandlerFn\n): Observable<HttpEvent<any>> => {\n const authService = inject(AuthService);\n\n return next(request).pipe(\n catchError(({ error: { errors } }) => {\n if (errors[0].extensions.code !== 'USER_INVALID_TOKEN') {\n return throwError(() => errors[0]);\n }\n\n return authService.refreshToken({ refreshToken: AuthService.refreshToken }).pipe(\n switchMap(({ data }) => {\n const { accessToken, refreshToken } = data!.authMsRefreshAccessToken;\n\n AuthService.authToken = accessToken!;\n AuthService.refreshToken = refreshToken!;\n\n localStorage.setItem('authToken', accessToken!);\n localStorage.setItem('refreshToken', refreshToken!);\n\n return next(request.clone({\n setHeaders: {\n authorization: accessToken!,\n },\n }));\n }),\n catchError(() => {\n localStorage.removeItem('roles');\n localStorage.removeItem('userGuid');\n localStorage.removeItem('authToken');\n localStorage.removeItem('refreshToken');\n\n AuthService.authToken = '';\n AuthService.refreshToken = '';\n authService.user = undefined;\n\n location.href = '/auth/login';\n return throwError(() => errors[0]);\n })\n );\n })\n );\n};\n\n/**\n * @deprecated - DI based interceptor will be removed at v19.0.0, use function based interceptor instead\n */\n@Injectable()\nexport class RefreshTokenInterceptor implements HttpInterceptor {\n\n constructor(\n protected readonly authService: AuthService\n ) { }\n\n public intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>{\n return next.handle(request).pipe(\n catchError(({ error: { errors } }) => {\n if (errors[0].extensions.code === 'USER_INVALID_TOKEN') {\n return this.authService.refreshToken({ refreshToken: AuthService.refreshToken }).pipe(\n switchMap(({ data }) => {\n const { accessToken, refreshToken } = data!.authMsRefreshAccessToken;\n\n AuthService.authToken = accessToken!;\n AuthService.refreshToken = refreshToken!;\n\n localStorage.setItem('authToken', accessToken!);\n localStorage.setItem('refreshToken', refreshToken!);\n\n return next.handle(request.clone({\n setHeaders: {\n authorization: accessToken!\n }\n }));\n }),\n catchError(() => {\n localStorage.removeItem('roles');\n localStorage.removeItem('userGuid');\n localStorage.removeItem('authToken');\n localStorage.removeItem('refreshToken');\n \n AuthService.authToken = '';\n AuthService.refreshToken = '';\n this.authService.user = undefined;\n\n location.href = '/auth/login';\n return throwError(() => errors[0]);\n })\n );\n }\n\n return throwError(() => errors[0]);\n })\n );\n }\n}\n"],"names":["i1","i2.PermissionService","i3","i1.PermissionService","i2","i2.ProfileService","i1.CurrencyService","i1.CountryService","i1.GridService","i2.AuditService","i4","i2.ApprovalService","i3.GridService","i5.PermissionService","i1.AuthService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"unipin-angular-applet.mjs","sources":["../../../projects/unipin-angular/src/lib/components/buttons/loading/btn-loading.component.ts","../../../projects/unipin-angular/src/lib/components/buttons/loading/btn-loading.component.html","../../../projects/unipin-angular/src/lib/components/buttons/group/btn-group.component.ts","../../../projects/unipin-angular/src/lib/components/buttons/group/btn-group.component.html","../../../projects/unipin-angular/src/lib/components/containers/applet-container/provide-applet-config.util.ts","../../../projects/unipin-angular/src/lib/modules/micro-frontend/utils/mf-global-state.util.ts","../../../projects/unipin-angular/src/lib/modules/micro-frontend/utils/mf-bootstrap.util.ts","../../../projects/unipin-angular/src/lib/modules/permission/pages/loading/provide-loading-config.util.ts","../../../projects/unipin-angular/src/lib/modules/permission/services/permission.service.ts","../../../projects/unipin-angular/src/lib/modules/permission/pages/loading/loading.page.ts","../../../projects/unipin-angular/src/lib/modules/permission/pages/loading/loading.page.html","../../../projects/unipin-angular/src/lib/modules/permission/directive/permission.directive.ts","../../../projects/unipin-angular/src/lib/modules/permission/guards/permission.guard.ts","../../../projects/unipin-angular/src/lib/modules/permission/pages/401/unauthorized.page.ts","../../../projects/unipin-angular/src/lib/modules/permission/pages/401/unauthorized.page.html","../../../projects/unipin-angular/src/lib/components/containers/applet-container/applet-container.component.ts","../../../projects/unipin-angular/src/lib/components/containers/applet-container/applet-container.component.html","../../../projects/unipin-angular/src/lib/components/containers/column-container/directives/lazy-route.directive.ts","../../../projects/unipin-angular/src/lib/components/containers/column-container/column-container.component.ts","../../../projects/unipin-angular/src/lib/components/containers/column-container/column-container.component.html","../../../projects/unipin-angular/src/lib/components/containers/colum-header-container/column-header-container.component.ts","../../../projects/unipin-angular/src/lib/components/containers/colum-header-container/column-header-container.component.html","../../../projects/unipin-angular/src/lib/components/containers/modal-container/modal-container.component.ts","../../../projects/unipin-angular/src/lib/components/containers/modal-container/modal-container.component.html","../../../projects/unipin-angular/src/lib/utils/format-capitalize/format-capitalize.util.ts","../../../projects/unipin-angular/src/lib/utils/form-error-message/form-error-message.util.ts","../../../projects/unipin-angular/src/lib/utils/contrast-color-generator/contrast-color-generator.util.ts","../../../projects/unipin-angular/src/lib/components/forms/date/form-date.component.ts","../../../projects/unipin-angular/src/lib/components/forms/date/form-date.component.html","../../../projects/unipin-angular/src/lib/components/forms/input/form-input.component.ts","../../../projects/unipin-angular/src/lib/components/forms/input/form-input.component.html","../../../projects/unipin-angular/src/lib/components/forms/number/pipes/locale-number.pipe.ts","../../../projects/unipin-angular/src/lib/components/forms/number/form-number.component.ts","../../../projects/unipin-angular/src/lib/components/forms/number/form-number.component.html","../../../projects/unipin-angular/src/lib/components/forms/password/form-password.component.ts","../../../projects/unipin-angular/src/lib/components/forms/password/form-password.component.html","../../../projects/unipin-angular/src/lib/components/forms/searchable-select/form-searchable-select.component.ts","../../../projects/unipin-angular/src/lib/components/forms/searchable-select/form-searchable-select.component.html","../../../projects/unipin-angular/src/lib/components/forms/select/form-select.component.ts","../../../projects/unipin-angular/src/lib/components/forms/select/form-select.component.html","../../../projects/unipin-angular/src/lib/components/forms/textarea/form-textarea.component.ts","../../../projects/unipin-angular/src/lib/components/forms/textarea/form-textarea.component.html","../../../projects/unipin-angular/src/lib/components/forms/image-picker/directives/drag-n-drop.directive.ts","../../../projects/unipin-angular/src/lib/components/forms/image-picker/form-image-picker.component.ts","../../../projects/unipin-angular/src/lib/components/forms/image-picker/form-image-picker.component.html","../../../projects/unipin-angular/src/graphql/generated.ts","../../../projects/unipin-angular/src/lib/services/profile/profile.service.ts","../../../projects/unipin-angular/src/lib/services/auth/auth.service.ts","../../../projects/unipin-angular/src/lib/services/currency/currency.service.ts","../../../projects/unipin-angular/src/lib/services/country/country.service.ts","../../../projects/unipin-angular/src/lib/components/forms/currency-input/form-currency-input.component.ts","../../../projects/unipin-angular/src/lib/components/forms/currency-input/form-currency-input.component.html","../../../projects/unipin-angular/src/lib/components/forms/country-input/form-country-input.component.ts","../../../projects/unipin-angular/src/lib/components/forms/country-input/form-country-input.component.html","../../../projects/unipin-angular/src/lib/components/filter/filter.component.ts","../../../projects/unipin-angular/src/lib/components/filter/filter.component.html","../../../projects/unipin-angular/src/lib/components/grids/services/grid.service.ts","../../../projects/unipin-angular/src/lib/components/grids/grid-snapshot/grid-snapshot.component.ts","../../../projects/unipin-angular/src/lib/components/grids/grid-snapshot/grid-snapshot.component.html","../../../projects/unipin-angular/src/lib/components/grids/grid-pagination/grid-pagination.component.ts","../../../projects/unipin-angular/src/lib/components/grids/grid-pagination/grid-pagination.component.html","../../../projects/unipin-angular/src/lib/components/containers/list-container/list-pagination-container/list-pagination-container.component.ts","../../../projects/unipin-angular/src/lib/components/containers/list-container/list-pagination-container/list-pagination-container.component.html","../../../projects/unipin-angular/src/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.component.ts","../../../projects/unipin-angular/src/lib/components/containers/list-container/list-snapshot-container/list-snapshot-container.component.html","../../../projects/unipin-angular/src/lib/components/tabs/tab-content/tab-content.component.ts","../../../projects/unipin-angular/src/lib/components/tabs/tab-content/tab-content.component.html","../../../projects/unipin-angular/src/lib/components/tabs/tab-group/tab-group.component.ts","../../../projects/unipin-angular/src/lib/components/tabs/tab-group/tab-group.component.html","../../../projects/unipin-angular/src/lib/components/audit/service/audit.service.ts","../../../projects/unipin-angular/src/lib/components/audit/list/audit-list.component.ts","../../../projects/unipin-angular/src/lib/components/audit/list/audit-list.component.html","../../../projects/unipin-angular/src/lib/components/audit/detail/audit-detail.component.ts","../../../projects/unipin-angular/src/lib/components/audit/detail/audit-detail.component.html","../../../projects/unipin-angular/src/lib/components/approval/list/provide-approval-entities.util.ts","../../../projects/unipin-angular/src/lib/components/approval/services/approval.service.ts","../../../projects/unipin-angular/src/lib/components/approval/list/approval-list.component.ts","../../../projects/unipin-angular/src/lib/components/approval/list/approval-list.component.html","../../../projects/unipin-angular/src/lib/components/approval/form/approval-form.component.ts","../../../projects/unipin-angular/src/lib/components/approval/form/approval-form.component.html","../../../projects/unipin-angular/src/lib/components/approval/detail/approval-detail.component.ts","../../../projects/unipin-angular/src/lib/components/approval/detail/approval-detail.component.html","../../../projects/unipin-angular/src/lib/components/infinite-scroll/directive/infinite-scroll.directive.ts","../../../projects/unipin-angular/src/lib/components/infinite-scroll/infinite-scroll.component.ts","../../../projects/unipin-angular/src/lib/components/infinite-scroll/infinite-scroll.component.html","../../../projects/unipin-angular/src/lib/resolvers/auth/auth.resolver.ts","../../../projects/unipin-angular/src/lib/guards/auth/auth.guard.ts","../../../projects/unipin-angular/src/lib/interceptors/header/header.interceptor.ts","../../../projects/unipin-angular/src/lib/interceptors/refresh-token/refresh-token.interceptor.ts"],"sourcesContent":["import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { IonButton, IonicModule } from '@ionic/angular';\n\n@Component({\n standalone: true,\n selector: 'up-btn-loading',\n styleUrl: './btn-loading.component.scss',\n templateUrl: './btn-loading.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n IonicModule\n ]\n})\nexport class ButtonLoadingComponent {\n\n /**\n * An input variable that used to control showed button. When set the value to true, the button\n * will be disabled and cannot be pressed. When set the value to false, the button will be enabled\n * and can be pressed. Default value is false.\n * @type {boolean}\n */\n @Input() public disabled: boolean = false;\n\n /**\n * An input variable that used to set form of ion-button.\n * @type {HTMLFormElement | string | undefined}\n */\n @Input() public form: HTMLFormElement | string | undefined;\n\n /**\n * An input variable that used to set type of ion-button. Default value is 'button'.\n * @type {'button' | 'reset' | 'submit'}\n */\n @Input() public type?: 'button' | 'reset' | 'submit' = 'button';\n\n /**\n * An input variable that used to set fill of ion-button. Default value is 'solid'.\n * @type {'clear' | 'default' | 'outline' | 'solid'}\n */\n @Input() public fill: 'clear' | 'default' | 'outline' | 'solid' = 'solid';\n\n /**\n * An input variable that used to set color of ion-button. Default value is 'primary'.\n * @type {'danger' | 'dark' | 'light' | 'medium' | 'primary' | 'secondary' | 'success' | 'tertiary' | 'warning' | string}\n */\n @Input() public color?: 'danger' | 'dark' | 'light' | 'medium' | 'primary' | 'secondary' | 'success' | 'tertiary' | 'warning' | string = 'primary';\n\n /**\n * An output variable that used to emits event of type ButtonLoadingComponent when clicked. This\n * output variable, when subscribed to, emits events containing instances of ButtonLoadingComponent\n * or its subclass.\n * @type {EventEmitter<ButtonLoadingComponent>}\n */\n @Output() public onClick: EventEmitter<ButtonLoadingComponent> = new EventEmitter();\n @ViewChild(IonButton) protected btn!: IonButton;\n\n /**\n * A flag variable that used to control showed button. When set the value to true, the button\n * will replaced to ion-spinner for marking the application still loading. When set the value\n * to false, it will shown the button. Default value is false.\n * @type {boolean}\n */\n public isLoading: boolean = false;\n\n constructor(\n protected readonly ch: ChangeDetectorRef,\n ) { }\n\n /**\n * A method that emit onClick variable and call toggleLoading function after a button is clicked.\n */\n public clickBtn(): void{\n this.onClick.emit(this);\n this.toggleLoading();\n }\n\n /**\n * A method when it's called, it'll make either the button is in loading state or in normal state.\n * If the current condition is normal state, the button will be in loading state and vice versa.\n */\n public toggleLoading(): void{\n this.isLoading = !this.isLoading;\n this.btn.disabled = !this.btn.disabled;\n\n this.ch.markForCheck();\n }\n}\n","<ion-button type=\"{{ type }}\" fill=\"{{ fill }}\" color=\"{{ color }}\" expand=\"block\" mode=\"md\" [disabled]=\"disabled\" [form]=\"form\" (click)=\"clickBtn()\">\n @if (isLoading) {\n <ion-spinner />\n } @else {\n <ng-content select=\"ion-icon\" />\n }\n \n <ng-content />\n</ion-button>\n","import { Attribute, ChangeDetectionStrategy, Component, HostBinding, input, InputSignal, SimpleChanges } from '@angular/core';\nimport { IonicModule, PopoverController } from '@ionic/angular';\nimport { ButtonGroupConfig } from './interfaces/btn-group-config.interface';\nimport { ButtonLoadingComponent } from '../loading/btn-loading.component';\n\n@Component({\n standalone: true,\n selector: 'up-btn-group',\n styleUrl: './btn-group.component.scss',\n templateUrl: './btn-group.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n IonicModule,\n ButtonLoadingComponent\n ]\n})\nexport class ButtonGroupComponent {\n\n /**\n * An input variable that used to configuration object for customizing button group properties. This\n * object defined by ButtonGroupConfig interface allows specifying button such as icon,\n * color, description, disabled, form, label, and type\n * @type {ButtonGroupConfig[]}\n */\n public readonly config: InputSignal<ButtonGroupConfig[]> = input.required();\n @HostBinding('class.d-none') protected isHidden: boolean = false;\n\n /**\n * A flag variable that used to control showed button. When set a new value, current button\n * is hidden and and a new button is shown. Default value is 0.\n * @type {number}\n */\n public activeIndex: number = 0;\n\n constructor(\n /**\n * An identifier that used to uniquely identify an HTML element such as a ion-button and\n * a ion-popover.\n * @type {string}\n */\n @Attribute('id') public id: string,\n protected readonly popoverCtrl: PopoverController\n ) { }\n\n public ngOnChanges(changes: SimpleChanges): void{\n if (changes['config']) {\n this.isHidden = this.config().length <= 0;\n this.activeIndex = 0;\n }\n }\n\n /**\n * A method that executes another method inside active button defined within ButtonGroupConfig\n * interface after a button is clicked. It receives a ButtonLoadingComponent as a parameter\n * allowing modification of the active button.\n * @param {ButtonLoadingComponent} b - Contain values from current button.\n */\n public clickBtn(b: ButtonLoadingComponent): void{\n this.config()[this.activeIndex].onClick(b);\n }\n\n /**\n * A method that change variable activeIndex value to current index of the active button and dismiss\n * popover. It receives a number variable as a parameter and the value of the parameter will be set\n * to variable activeIndex.\n * @param {number} i - New index of the active button.\n */\n public change(i: number): void{\n this.activeIndex = i;\n this.popoverCtrl.dismiss();\n }\n}\n","@if (config().length > 0) {\n @let c = config();\n\n <up-btn-loading class=\"flex-grow-1\" [class.multi]=\"config.length > 1\" [type]=\"c[activeIndex].type\" [disabled]=\"c[activeIndex].disabled\" [form]=\"c[activeIndex].form\" [color]=\"c[activeIndex].color\" (onClick)=\"clickBtn($event);\">\n @if (c[activeIndex].icon) {\n <ion-icon class=\"me-2\" name=\"{{ c[activeIndex].icon }}\" />\n }\n {{ c[activeIndex].label }}\n </up-btn-loading>\n\n @defer (when config().length > 1) {\n @if (config().length > 1) {\n <ion-button class=\"flex-shrink-0\" id=\"btn-{{ id }}\" [color]=\"c[activeIndex].color\">\n <ion-icon name=\"caret-down-outline\" />\n </ion-button>\n\n <ion-popover trigger=\"btn-{{ id }}\" triggerAction=\"click\">\n <ng-template>\n @for (c of c; track $index; let i = $index) {\n <div class=\"item px-2 py-3 cursor-pointer border-bottom d-flex gap-2\" (click)=\"change(i);\">\n <div class=\"icon flex-shrink-0\">\n @if (i === activeIndex) {\n <ion-icon name=\"checkmark\" />\n }\n </div>\n\n <div class=\"flex-grow-1\">\n <div class=\"fw-medium\">{{ c.label }}</div>\n\n @if (c.description) {\n <div class=\"f12 pt-1\">\n {{ c.description }}\n </div>\n }\n </div>\n </div>\n }\n </ng-template>\n </ion-popover>\n }\n }\n}\n","import { InjectionToken, Provider } from '@angular/core';\n\nexport const APPLET_CONFIG = new InjectionToken<AppletConfig>('APPLET_CONFIG');\n\nexport interface AppletConfig {\n icon: string;\n name: string;\n version: string;\n enabledSetting?: boolean;\n containers: {\n icon: string;\n label: string;\n permModule: string;\n path: `/${ string }`;\n }[];\n}\n\nexport function provideAppletConfig(config: AppletConfig): Provider{\n return { \n provide: APPLET_CONFIG, \n useValue: config \n };\n}\n","export const packageNamespace = '@angular-architects/module-federation-tools';\n\nfunction getGlobalState<T>(): T {\n const globalState = window as unknown as { [packageNamespace]: T };\n globalState[packageNamespace] = globalState[packageNamespace] || ({} as unknown as T);\n \n return globalState[packageNamespace];\n}\n\nexport function getGlobalStateSlice<T>(): T;\nexport function getGlobalStateSlice<T, R>(selector: (globalState: T) => R): R;\n\nexport function getGlobalStateSlice<T, R>(selector?: (globalState: T) => R): R | T {\n const globalState = getGlobalState<T>();\n return selector? selector(globalState) : globalState;\n}\n\nexport function setGlobalStateSlice<T extends object>(slice: T): T {\n return Object.assign(getGlobalState<T>(), slice);\n}\n","import { ApplicationConfig, enableProdMode, Injector, NgZone, Type } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { bootstrapApplication, createApplication } from '@angular/platform-browser';\nimport { getGlobalStateSlice, setGlobalStateSlice } from './mf-global-state.util';\nimport { createCustomElement } from '@angular/elements';\n\nexport type AppType = 'shell' | 'microfrontend';\n\nexport type Options = {\n production: boolean;\n appType: AppType;\n elementName?: string;\n};\n\nfunction getNgZone(): NgZone{\n return (getGlobalStateSlice((state: { ngZone: NgZone }) => state.ngZone));\n}\n\nexport function shareNgZone(zone: NgZone): void{\n setGlobalStateSlice({ ngZone: zone });\n}\n\nexport function bootstrap<M>(component: Type<M>, options: Options, config: ApplicationConfig): void{\n options.production && enableProdMode();\n\n if (options.appType === 'shell') {\n bootstrapApplication(component, config).then((ref) => {\n shareShellZone(ref.injector);\n });\n return;\n }\n\n if (!getNgZone() && isLocalhost()) {\n bootstrapApplication(component, config).then((ref) => {\n connectMicroFrontendRouter(ref.injector);\n });\n return;\n }\n \n (async () => {\n config.providers.push({ provide: NgZone, useValue: getNgZone() });\n\n const app = await createApplication(config);\n customElements.define(<string> options.elementName, createCustomElement(component, { injector: app.injector }));\n\n connectMicroFrontendRouter(app.injector);\n })();\n}\n\nfunction shareShellZone(injector: Injector): void{\n const ngZone = injector.get(NgZone, null);\n if (!ngZone) {\n console.warn('No NgZone to share found');\n return;\n }\n shareNgZone(ngZone);\n}\n\nfunction connectMicroFrontendRouter(injector: Injector): void{\n const router = injector.get(Router);\n const location = injector.get(Location);\n\n if (!router) {\n console.warn('No router to connect found');\n return;\n }\n router.navigateByUrl(location.path() + window.location.hash);\n}\n\nfunction isLocalhost(): boolean{\n const hostname = window.location.hostname;\n return hostname === 'localhost' || hostname === '127.0.0.1';\n}\n","import { InjectionToken, Provider } from '@angular/core';\nimport { FetchPolicy } from '@apollo/client/core';\n\nexport const LOADING_CONFIG = new InjectionToken<LoadingConfig>('LOADING_CONFIG');\n\nexport interface LoadingConfig {\n\tpermTypes: string[];\n permModules: string[];\n\tfetchPolicy?: FetchPolicy;\n\tsubjectGuidStorageKey?: string;\n}\n\nexport function provideLoadingConfig(config: LoadingConfig): Provider{\n return {\n provide: LOADING_CONFIG,\n useValue: config\n };\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { ApolloQueryResult, FetchPolicy } from '@apollo/client/core';\nimport { Apollo, gql } from 'apollo-angular';\nimport { AppPermDfn, PermissionFilter } from '../../../../graphql/generated';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionService {\n\n /**\n * A readonly variable that used to store permission modules in an applet then check if the user\n * has the permission or not. This variable controls menu's icon visibility on the sidebar. The\n * icon will appear if the user has the permission that menu's needed and it will disappear if\n * the user don't have the permission.\n * @type {Subject<string[]>}\n */\n public readonly permModules: Subject<string[]> = new Subject<string[]>();\n\n /**\n * A flag variable that used to know if the applet already initiated or not. Default value is\n * false.\n * @type {boolean}\n */\n public isInitiated: boolean = false;\n protected permissions: Map<string, boolean> = new Map();\n\n constructor(\n protected readonly apollo: Apollo\n ) { }\n\n /**\n * A method that set the permissions and permission modules.\n * @param {string[]} permCodes - Contain list of permission codes.\n * @param {string[]} permModules - Contain list of permission modules. Default value [].\n */\n public setPermission(permCodes: string[], permModules: string[] = []): void{\n for (let i = 0; i < permCodes.length; i++) this.permissions.set(permCodes[i], true);\n this.permModules.next(permModules);\n }\n\n /**\n * A method that checking if the user has the permission or not based on the params value.\n * @param {string} scope - Contain scope of the user's permission.\n * @param {string} module - Contain module of the user's permission.\n * @param {string} type - Contain type of the user's permission.\n * @returns {boolean} Contain boolean value that tells the user has the permission or not.\n */\n public checkPermission(scope: string, module: string, type: string): boolean{\n if (this.permissions.has(`${ scope }.${ module }.ADMIN`)) return true;\n if (this.permissions.has(`${ scope }.${ module }.${ type }`)) return true;\n\n return false;\n }\n\n /**\n * A method that get the query value with authMsPermission as the object.\n * @param {PermissionFilter} filter - Contain filter as a conditions for the query.\n * @returns {Observable<ApolloQueryResult<{ authMsPermission: { data: AppPermDfn[] }}>>} Contain query value.\n */\n public getPermissions(filter: PermissionFilter, fetchPolicy?: FetchPolicy): Observable<ApolloQueryResult<{ authMsPermission: { data: AppPermDfn[] }}>>{\n return this.apollo.query({\n fetchPolicy,\n variables: { filter },\n query: gql`\n query QueryPermission($filter: PermissionFilter!) {\n authMsPermission(filter: $filter) {\n data { permCode }\n }\n }\n `\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { IonicModule } from '@ionic/angular';\nimport { PermissionService } from '../../services/permission.service';\nimport { LOADING_CONFIG, LoadingConfig } from './provide-loading-config.util';\n\n@Component({\n standalone: true,\n selector: 'up-loading',\n styleUrl: './loading.page.scss',\n templateUrl: './loading.page.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-flex flex-column align-items-center justify-content-center h-100 w-75 mx-auto'\n },\n imports: [\n IonicModule\n ]\n})\nexport class LoadingPage implements OnInit, OnDestroy {\n\n protected sub?: Subscription;\n\n constructor(\n @Inject(LOADING_CONFIG) public readonly config: LoadingConfig,\n protected readonly router: Router,\n protected readonly route: ActivatedRoute,\n protected readonly permissionService: PermissionService\n ) { }\n\n public ngOnInit(): void{\n const subjectGuid = localStorage.getItem(this.config.subjectGuidStorageKey || 'userGuid');\n if (!subjectGuid) {\n this.router.navigate([ '401' ]);\n return;\n }\n \n const permCodeList: string[] = [];\n this.sub = this.permissionService.getPermissions({ \n subjectGuid, \n pageSize: 1000,\n permModule: this.config.permModules, \n permType: this.config.permTypes \n }, this.config.fetchPolicy).subscribe({\n error: () => {\n this.router.navigate([ '401' ]);\n },\n next: ({ data: { authMsPermission: { data }}}) => {\n data.forEach(({ permCode }) => {\n if (!permCode) return;\n\n permCodeList.push(permCode);\n });\n\n this.permissionService.isInitiated = true;\n this.permissionService.setPermission(permCodeList, this.config.permModules);\n\n this.router.navigateByUrl(this.route.snapshot.queryParamMap.get('url')?? '');\n }\n });\n }\n\n public ngOnDestroy(): void{\n this.sub?.unsubscribe();\n }\n}\n","<ion-spinner class=\"mb-4\" />\n<h3 class=\"text-center\">Please wait, we're preparing the applet. Drink water or coffee while waiting.</h3>\n","import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { PermissionService } from '../services/permission.service';\n\n/**\n * The `PermissionDirective` is a directive that conditionally renders content based on user permissions.\n * `Scope` param is default to `GLOBAL`\n * @selector '[hasPermission]'\n * @example\n * ```html\n * <div *hasPermission=\"'POST_AUDIT'; type: 'READ'; scope: 'MERCHANT'\"></div>\n * ```\n */\n@Directive({\n standalone: true,\n selector: '[hasPermission]'\n})\nexport class PermissionDirective {\n \n /**\n * The module name for which permissions are being checked.\n * @type {string}\n * @default {null}\n */\n protected module!: string;\n\n /**\n * The permission scope.\n * @type {string}\n * @default {'GLOBAL'}\n */\n protected scope: string = 'GLOBAL';\n\n /**\n * Sets the module name for which permissions are being checked.\n * @example 'POST_AUDIT'.\n * @param {string} m - The module name.\n */\n @Input() set hasPermission(m: string) {\n this.module = m; \n }\n\n /**\n * Sets the permission scope. Default is 'GLOBAL'.\n * @param {string} s - The permission scope.\n */\n @Input() set hasPermissionScope(s: string) { \n this.scope = s; \n }\n\n /**\n * Sets the permission type and conditionally renders content based on user permissions.\n * @param {string} t - The permission type, e.g., 'READ', 'WRITE'.\n */\n @Input() set hasPermissionType(t: string) {;\n if (this.permissionService.checkPermission(this.scope, this.module, t)) {\n this.viewContainer.createEmbeddedView(this.templateRef);\n return;\n }\n\n this.viewContainer.clear();\n }\n\n constructor(\n protected readonly templateRef: TemplateRef<any>,\n protected readonly viewContainer: ViewContainerRef,\n protected readonly permissionService: PermissionService\n ) { }\n}\n","import { inject } from '@angular/core';\nimport { Location } from '@angular/common';\nimport { ActivatedRouteSnapshot, CanActivateFn, Router } from '@angular/router';\nimport { PermissionService } from '../services/permission.service';\n\nexport const PermissionGuard: CanActivateFn = (route: ActivatedRouteSnapshot): boolean => {\n \n const router: Router = inject(Router);\n const location: Location = inject(Location);\n const permissionService: PermissionService = inject(PermissionService);\n\n const permissions: { scope: string, module: string, type: string }[] = route.data['requiredPermissions'];\n \n if (!permissions || permissions.length === 0) throw new Error('Invalid config: requiredPermissions is a required parameter in route data for PermissionGuard');\n\n if (!permissionService.isInitiated) {\n router.navigate([ 'loading' ], { queryParams: { url: `${ location.path() + window.location.hash }` } });\n return false;\n }\n\n if (permissions) {\n for (let i = 0; i < permissions.length; i++) {\n const { scope, module, type } = permissions[i];\n if (permissionService.checkPermission(scope, module, type)) return true;\n }\n }\n\n router.navigate([ '401' ]);\n return false;\n};\n","import { Component } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\n\n@Component({\n standalone: true,\n selector: 'up-unauthorized',\n templateUrl: './unauthorized.page.html',\n styleUrls: ['./unauthorized.page.scss'],\n host: {\n class: 'd-flex flex-column align-items-center justify-content-center h-100 w-75 mx-auto'\n },\n imports: [ IonicModule ]\n})\nexport class UnauthorizedPage { }\n","<ion-icon name=\"lock-closed\" class=\"mb-4\" />\n<h3 class=\"text-center\">Oops! You're not authorized to access this page.</h3>\n<p class=\"text-center\">Please log in or re-check your permissions.</p>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { RouterLink, RouterLinkActive } from '@angular/router';\nimport { IonicModule } from '@ionic/angular';\nimport { Subscription, fromEvent } from 'rxjs';\nimport { PermissionService } from '../../../modules';\nimport { APPLET_CONFIG, AppletConfig } from './provide-applet-config.util';\n\n@Component({\n standalone: true,\n selector: 'up-applet-container',\n styleUrl: './applet-container.component.scss',\n templateUrl: './applet-container.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-flex h-100 w-100'\n },\n imports: [\n IonicModule,\n RouterLink,\n RouterLinkActive\n ]\n})\nexport class AppletContainerComponent implements OnInit, OnDestroy {\n\n /**\n * A flag variable that used to control sidebar. When set the the value to true, the component will open the sidebar.\n * when set the value to false, the component will close the sidebar.\n * @type {boolean}\n */\n public isCollapsed: boolean = false;\n\n /**\n * A flag variable that used to control sidebar menu. When set value to true, the component will hide the sidebar menu.\n * When set false, the component will show the sidebar menu.\n * @type {boolean[]}\n */\n public isHidden: boolean[] = Array(this.config.containers.length).fill(true);\n \n /**\n * A flag variable for indicates whether the sidebar menu is active or not in mobile view.\n * When set false the sidebar menu will be hidden\n * @type {boolean[]}\n */\n public isMenuActive: boolean = false;\n protected sub!: Subscription;\n protected subEvent!: Subscription;\n\n constructor(\n @Inject(APPLET_CONFIG) public readonly config: AppletConfig,\n protected readonly ch: ChangeDetectorRef,\n protected readonly permissionService: PermissionService\n ) { }\n\n /**\n * Lifecycle hook to initialize the components.\n * Subscribes to permission changes and window events.\n */\n public ngOnInit(): void{\n this.sub = this.permissionService.permModules.subscribe((listPermModule: string[]) => {\n this.isHidden = this.config.containers.map(({ permModule }) => {\n return !listPermModule.includes(permModule);\n });\n });\n\n this.subEvent = fromEvent(window, 'menuEvent').subscribe((event: any) => {\n this.isMenuActive = event.detail.isActive;\n this.ch.markForCheck();\n });\n }\n\n /**\n * Lifecycle hook to handle component destruction.\n * Cleans up subscriptions to prevent memory leaks\n */\n public ngOnDestroy(): void{ \n this.sub.unsubscribe();\n this.subEvent.unsubscribe();\n }\n\n /**\n * When the method is called, it will change the value of isCollapsed to its opposite value. \n * If isCollapsed is currently true, it will be set to false, and if it is currently false, it will be set to true. \n * This method is typically used to toggle the visibility of a side navigation menu.\n */\n public toggleSidenav(): void{\n this.isCollapsed = !this.isCollapsed;\n }\n\n /**\n * Handles menu selection by dispatching a custom event.\n * This method is called when a sidebar menu item is selected.\n * It dispatches a custom 'menuEvent' with detail indicating the menu is inactive.\n * This event is typically used to close the sidebar menu.\n */\n public selectMenu(): void{\n dispatchEvent(new CustomEvent('menuEvent', { detail: { isActive: false } }));\n }\n}\n","<div class=\"sidenav flex-shrink-0 h-100 py-4 d-flex flex-column\" [class.collapsed]=\"isCollapsed\" [class.show]=\"isMenuActive\">\n <div class=\"logo-container px-3 pb-3 border-bottom flex-shrink-0 position-relative d-flex align-items-center gap-3 d-none d-md-flex\">\n <img alt=\"Applet Icon\" width=\"44px\" height=\"44px\" class=\"rounded\" [src]=\"config.icon\" />\n\n <div class=\"info w-75 pe-2\">\n <div class=\"name fw-medium text-truncate\">{{ config.name }}</div>\n \n <div class=\"tenant pt-1 fw-medium\">\n v{{ config.version }}\n </div>\n </div>\n\n <button class=\"btn-close cursor-pointer position-absolute border-0 rounded-circle d-none d-md-block\" (click)=\"toggleSidenav()\">\n <ion-icon name=\"chevron-forward\" class=\"mt-1\" />\n </button>\n </div>\n\n <div class=\"flex-grow-1 px-3 pt-3 overflow-y-auto d-none d-md-block\" (click)=\"selectMenu()\">\n @for (c of config.containers; track $index) {\n <a class=\"nav align-items-center text-decoration-none gap-2 rounded mb-1 {{ isHidden[$index]? 'd-none' : 'd-flex' }}\" routerLinkActive=\"fw-medium\" title=\"{{ c.label }}\" [routerLink]=\"c.path\">\n <ion-icon name=\"{{ c.icon }}\" />\n <div class=\"text-truncate\">{{ c.label }}</div>\n </a>\n }\n </div>\n\n @if (config.enabledSetting) {\n <div class=\"flex-shrink-0 px-3 pt-3 border-top d-none d-md-block\" (click)=\"selectMenu()\">\n <a class=\"nav d-flex align-items-center text-decoration-none gap-2 rounded\" title=\"Setting\" routerLink=\"setting\" routerLinkActive=\"fw-medium\">\n <ion-icon name=\"settings\" />\n <div class=\"text-truncate\">Setting</div>\n </a>\n </div>\n }\n</div>\n\n<div class=\"flex-grow-1 w-100 overflow-y-auto\">\n <ng-content />\n</div>\n","import { Directive, Input, OnInit, ViewContainerRef } from '@angular/core';\n\n/**\n * The `LazyRouteDirective` is a directive that enables lazy loading of components based on a specified route.\n * Use this directive on an HTML element with the `[loadRoute]` attribute to dynamically load a component when the route is activated.\n * @example\n * ```html\n * <div [loadRoute]=\"routeConfig\"></div>\n * ```\n */\n@Directive({\n standalone: true,\n selector: '[loadRoute]'\n})\nexport class LazyRouteDirective implements OnInit {\n \n /**\n * An input public variable as configuration object containing the `loadComponent` method.\n * @type {any}\n */\n @Input({ required: true }) public loadRoute: any;\n\n constructor(\n protected readonly vcr: ViewContainerRef\n ){}\n \n /**\n * Lifecycle hook that is called after the directive's data-bound properties have been initialized.\n * Dynamically loads the component using the `loadComponent` method and creates it within the directive's view container.\n */\n public ngOnInit(): void{\n this.loadRoute.loadComponent().then((m: any) => this.vcr.createComponent(m));\n }\n}\n","import { Component, HostListener, OnDestroy } from '@angular/core';\nimport { NavigationEnd, Router, ActivatedRoute, Route } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { AngularSplitModule } from 'angular-split';\nimport { LazyRouteDirective } from './directives/lazy-route.directive';\n\n/**\n * The `ColumnContainerComponent` is a component representing a container with dynamic columns that\n * are loaded based on route navigation.\n * * It uses lazy loading with the `LazyRouteDirective` to load components dynamically.\n * @example\n * ```html\n * <up-column-container></up-column-container>\n * ```\n */\n@Component({\n standalone: true,\n selector: 'up-column-container',\n styleUrl: './column-container.component.scss',\n templateUrl: './column-container.component.html',\n host: {\n class: 'd-block h-100 w-100'\n },\n imports: [\n AngularSplitModule,\n LazyRouteDirective\n ]\n})\nexport class ColumnContainerComponent implements OnDestroy {\n\n /**\n * An array of objects representing the columns, each containing a visibility flag and the associated route.\n * @type {{ visible: boolean, route: Route }[]}\n * @default {[]}\n */\n public readonly areas: { visible: boolean, route: Route }[] = [];\n\n /**\n * The default size for the split area: 100 means it will be full width, and 50 means it will be divided in half.\n */\n public colSize: number = 50;\n\n /**\n * An object to keep track of the position of opened areas based on their route paths.\n * @type {{ [key: string]: number }}\n * @default {{}}\n */\n protected readonly openedArea: { [key: string]: number } = {};\n\n /**\n * Subscription to router events for dynamic navigation handling.\n */\n protected sub!: Subscription;\n\n constructor(\n protected readonly router: Router,\n protected readonly activeRoute: ActivatedRoute\n ) { }\n\n /**\n * Lifecycle hook called after the component has been initialized.\n * Subscribes to router events, initializes columns based on the initial route, and sets up the first visible column.\n */\n public ngOnInit(): void{\n this.checkScreen();\n\n this.sub = this.router.events.subscribe((e) => {\n if (e instanceof NavigationEnd) this.navigate();\n });\n\n const url: string | undefined = this.activeRoute.firstChild?.routeConfig?.path;\n const routeList: Route[] = ((this.activeRoute.snapshot.routeConfig) as any)._loadedRoutes;\n\n this.next(routeList[0]);\n\n for (let i = 1; i < routeList.length; i++) {\n if (url?.startsWith(<string> routeList[i].path)) this.next(routeList[i]);\n }\n }\n\n /**\n * Lifecycle hook called when the component is about to be destroyed.\n * Unsubscribes from the router events to prevent memory leaks.\n */\n public ngOnDestroy(): void{ this.sub.unsubscribe(); }\n\n /**\n * Handles router navigation events and adjusts the display of columns accordingly.\n */\n protected navigate(): void{\n const route: Route = this.activeRoute.firstChild!.routeConfig!;\n \n if (this.openedArea[`r-${ route.path }`] <= this.areas.length) this.previous(this.openedArea[`r-${ route.path }`]);\n else this.next(route); \n }\n\n /**\n * Adds a new column to the container and updates visibility based on the route navigation.\n * @param {Route} route - Contain next route.\n */\n protected next(route: Route): void{\n if (this.colSize === 100 && this.areas.length >= 1) {\n this.areas[this.areas.length - 1].visible = false;\n } else if (this.areas.length >= 2) {\n this.areas[this.areas.length - 2].visible = false;\n }\n\n this.areas.push({ visible: true, route });\n this.openedArea[`r-${ route.path }`] = this.areas.length;\n }\n\n /**\n * Removes columns from the container based on the route navigation.\n * @param {number} pos - Contain position of the last active area index.\n */\n protected previous(pos: number): void{\n this.areas.splice(pos);\n\n if (this.colSize === 100) {\n this.areas[this.areas.length - 1].visible = true;\n return;\n }\n \n if (this.areas.length === 1) this.areas[0].visible = true;\n else {\n this.areas[pos - 1].visible = true;\n this.areas[pos - 2].visible = true;\n }\n }\n\n /**\n * Event listener for the window resize event. Adjusts the default size of the split area based on the screen width.\n * @param {Event} event - The resize event.\n */\n @HostListener('window:resize', ['$event'])\n protected checkScreen(): void{\n this.colSize = window.innerWidth <= 768? 100 : 50;\n }\n}\n","<as-split \n [gutterSize]=\"0\"\n [disabled]=\"true\" \n [useTransition]=\"true\" \n>\n @for (a of areas; track $index; let i = $index) {\n <as-split-area \n class=\"border-start\"\n [attr.order]=\"i\"\n [size]=\"colSize\" \n [visible]=\"a.visible\"\n >\n <ng-container [loadRoute]=\"a.route\" />\n </as-split-area>\n }\n</as-split>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { RouterLink } from '@angular/router';\n\n@Component({\n standalone: true,\n selector: 'up-column-header-container',\n styleUrl: './column-header-container.component.scss',\n templateUrl: './column-header-container.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n class: 'd-flex flex-column h-100' \n },\n imports: [ \n IonicModule,\n RouterLink\n ]\n})\nexport class ColumnHeaderContainerComponent {\n\n /**\n * An input variable that used to set header text.\n *@type {string}\n */\n @Input() public header?: string;\n\n /**\n * An input variable that used to set prevUrl.\n *@type {string}\n */\n @Input() public prevUrl!: string;\n}\n","<div class=\"d-flex justify-content-between align-items-center border-bottom py-1 ps-1 pe-4 flex-shrink-0\">\n\t<div class=\"flex-grow-1 d-flex align-items-center pe-3\">\n\t\t<ion-buttons class=\"flex-shrink-0\">\n\t\t\t<ion-button routerLink=\"{{ prevUrl }}\">\n\t\t\t\t<ion-icon slot=\"icon-only\" name=\"close\" />\n\t\t\t</ion-button>\n\t\t</ion-buttons>\n\n\t\t<div class=\"f20 fw-medium flex-grow-1 text-truncate\">{{ header }}</div>\n\t</div>\n\n\t<ng-content select=\"[button]\" />\n</div>\n\n<div class=\"p-1 flex-grow-1 overflow-auto\">\n\t<ng-content/>\n</div>\n","import { ChangeDetectionStrategy, Component, HostListener, Input, OnInit } from '@angular/core';\nimport { IonicModule, ModalController } from '@ionic/angular';\n\n/**\n * `ModalContainerComponent` is a container to display a modal dialog\n * this component provide the modal header.\n * @example\n * ```html\n * <up-modal-container header=\"The title\">\n * The content\n * </up-modal-container>\n * ```\n */\n@Component({\n standalone: true,\n selector: 'up-modal-container',\n styleUrl: './modal-container.component.scss',\n templateUrl: './modal-container.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n IonicModule\n ]\n})\nexport class ModalContainerComponent implements OnInit {\n\n /**\n * An input public variable to set the modal header text visible on top left of the modal.\n * Considered as modal title represent what is the modal for.\n * @type {string}\n * @default {null}\n * @required\n */\n @Input({ required: true }) public header!: string;\n\n /**\n * An input public variable to set the disabled state of the modal's interactive elements.\n * When set to true, buttons and other interactive elements within the modal will be disabled.\n * This is useful for preventing user actions while the modal is in a specific state or when\n * certain conditions are met (e.g., when 'suggestedLogin' is 'ChangePassword').\n * @type {boolean}\n * @default false\n */\n @Input() public disabled: boolean = false;\n\n /**\n * A protected variable to set the key for window state purpose.\n * @type {string}\n * @default {null}\n */\n protected key!: string;\n\n constructor(\n protected readonly modalCtrl: ModalController\n ) { }\n\n /**\n * Lifecycle hook to initialize the component.\n * Set key use the header and replaicng the empty space with `-`.\n * Push state to the window history.\n */\n public ngOnInit(): void{\n this.key = this.header.replace(/ /g, '-');\n history.pushState({ [this.key]: true }, '');\n }\n\n /**\n * Lifecycle hook to handle componen destruction.\n * Check if the state history exist then navigate to previous state.\n */\n public ngOnDestroy(): void{\n if (history.state[this.key]) history.back();\n }\n\n /**\n * This procedure is a listener for the 'popstate' event on the window.\n * It is to handle browser navigation changes (e.g., back or forward button clicks).\n * @param {PopStateEvent} ev - The PopStateEvent object containing information about the state change.\n */\n @HostListener('window:popstate', [ '$event' ])\n public popState(ev: PopStateEvent): void{\n if (!ev.state[this.key]) this.modalCtrl.dismiss();\n }\n\n /**\n * A porcedure to dismiss the modal.\n */\n public close(): void{ this.modalCtrl.dismiss(); }\n}\n","<ion-header class=\"ion-no-border\">\n <ion-toolbar>\n <ion-buttons slot=\"start\">\n <ion-button [disabled]=\"disabled\" (click)=\"close()\">\n <ion-icon slot=\"icon-only\" name=\"close\" />\n </ion-button>\n </ion-buttons>\n\n <ion-title class=\"p-0 fs-5\">{{ header }}</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<div class=\"p-4\">\n <ng-content />\n</div>\n","/**\n * A function that create a capitalize word.\n * @param {string | string[]} str - Word that want to be capitalized.\n * @param {boolean} [eachWord=false] - Determine whether each word will be capitalize or not by a certain separator. If the first param is not array, this parameter will be ignored. Default to `false`.\n * @param {string} [separator=\" \"] - A string used to separate one element of the words from the next in the resulting string. If the first param is not array, this parameter will be ignored. If omitted, words are separated with a space.\n * @returns {string} Capitalized word string\n */\nexport function formatCapitalize(str: string | string[], eachWord: boolean = false, separator: string = ' '): string{\n if (!str) return str;\n if (typeof str === 'string') return `${ str.at(0)!.toUpperCase() }${ str.substring(1).toLowerCase() }`;\n\n str[0] = `${ str[0].at(0)!.toUpperCase() }${ str[0].substring(1).toLowerCase() }`;\n for (let i = 1; i < str.length; i++) {\n if (!str[i]) continue;\n\n if (!eachWord) str[i] = str[i].toLowerCase();\n else {\n str[i] = `${ str[i].at(0)!.toUpperCase() }${ str[i].substring(1).toLowerCase() }`;\n }\n }\n return str.join(separator);\n}\n","import { ValidationErrors } from '@angular/forms';\n\nconst errMessage: { [k: string]: (l: string, arg?: number) => string } = {\n email: (label: string) => `${ label } is not a valid email`,\n required: (label: string) => `${ label } is required`,\n minlength: (label: string, length?: number) => `${ label } must be at least ${ length } characters`,\n maxlength: (label: string, length?: number) => `${ label } must not exceed ${ length } characters`,\n max: (label: string, max?: number) => `${ label } value must be lower than ${ max }`,\n min: (label: string, min?: number) => `${ label } value must be larger than ${ min }`,\n};\n\nconst extraParamKey: { [k: string]: string } = {\n minlength: 'requiredLength',\n maxlength: 'requiredLength',\n max: 'max',\n min: 'min'\n};\n\n/**\n * A function that get detail error description based on param err.\n * @param {ValidationErrors | null} err - Contain error from the form input.\n * @param {string} label - Contain label name of the form input.\n * @returns {string} Contain either detail error description or empty string ('')\n */\nexport function getFormErrorMessage(err: ValidationErrors | null, label?: string): string{\n if (!err) return '';\n\n const key = Object.keys(err)[0];\n return errMessage[key](label?? 'Column', err[key][extraParamKey[key]]);\n}\n","/**\n * A function that generate random background and text color for badge based on given string. The text color has 2 values, either white [for dark background] or black [for light background].\n * The first char will act as red color.\n * The second char will act as green color.\n * The third char will act as blue color.\n * And the final char will act as opacity value.\n * @param {string} str - A string that acts as the random seeder. String length should not exceeding 8 characters. String length will be truncated to 8 if the given string length is exceeding 8 chars.\n * @returns {Object} generatedColor - Generated random color object\n * @property {string} generatedColor.background - Generated background hex color\n * @property {string} generatedColor.color - Generated text hex color\n */\nexport function generateContrastColor(str: string): { background: `#${ string }`, color: `#${ string }` }{\n if (str.length > 4) str = str.substring(0, 4);\n\n let res = '';\n let total = 0;\n\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i).toString(16);\n \n res += c;\n total += +c;\n }\n return {\n background: `#${ res }`,\n color: total > 187? '#000' : '#fff'\n }\n}\n","import { Attribute, ChangeDetectorRef, ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { DatePipe } from '@angular/common';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { IonicModule } from '@ionic/angular';\nimport { getFormErrorMessage } from '../../../utils';\n\n@Component({\n standalone: true,\n selector: 'up-date',\n styleUrl: './form-date.component.scss',\n templateUrl: './form-date.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-block position-relative'\n },\n imports: [\n DatePipe,\n IonicModule\n ],\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: FormDateComponent\n },\n {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: FormDateComponent\n }\n ]\n})\nexport class FormDateComponent implements ControlValueAccessor, Validator, OnInit {\n\n /**\n * Input variable for the label associated with the date input.\n * @type {string | undefined}\n */\n @Input() public label?: string;\n\n /**\n * Input variable to determine whether the date input is required.\n * @type {boolean}\n * @default false\n */\n @Input() public required: boolean = false;\n\n /**\n * Input variable to determine whether the date input is disabled.\n * @type {boolean}\n * @default false\n */\n @Input() public disabled: boolean = false;\n\n /**\n * Input variable to determine whether the date picker is date only or date and time.\n * @type {string}\n * @default 'date'\n */\n @Input() public presentation: 'date' | 'date-time' = 'date';\n\n /**\n * Input variable to determine what is the minimum date allowed.\n * @type {string}\n */\n @Input() public minDate?: string;\n\n /**\n * Input variable to determine what is the maximum date allowed.\n * @type {string}\n */\n @Input() public maxDate?: string;\n\n /**\n * Boolean flag indicating whether the date input has been touched.\n * @type {boolean}\n * @default false\n */\n public isTouched: boolean = false;\n\n /**\n * The value of the date input.\n * @type {string}\n * @default ''\n */\n public value: string = '';\n\n /**\n * The value of the localization date.\n * @type {string}\n * @default ''\n */\n public localValue: string= '';\n\n /**\n * The format of date.\n * @type {string}\n * @default 'dd LLL yyyy'\n */\n public dateFormat: string = 'dd LLL yyyy';\n\n /**\n * Error message associated with the date input.\n * @type {string}\n * @default undefined\n */\n public errorMsg!: string;\n\n /**\n * The form control associated with the date input.\n * @type {AbstractControl}\n */\n protected formControl!: AbstractControl;\n\n /**\n * Callback function to handle value changes in the date input.\n * @type {(_val: any) => void}\n */\n protected onChange: (_val: any) => void = (_val: any) => {};\n\n /**\n * Callback function to handle touch events in the date input.\n * @type {() => void}\n */\n protected onTouched: () => void = () => {};\n\n constructor(\n @Attribute('name') public name: string,\n @Attribute('placeholder') public placeholder: string,\n protected readonly ch: ChangeDetectorRef\n ) {}\n\n /**\n * Lifecycle hook called a moment before the component is created.\n * Check if the presentation is 'date-time' then the date format should be changed to dd LLL yyyy HH:mm.\n */\n public ngOnInit(): void{\n if (this.presentation === 'date-time') this.dateFormat = `${ this.dateFormat } HH:mm`;\n }\n\n /**\n * Registers a callback function to be called when the date input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{ this.onChange = fn; }\n\n /**\n * Registers a callback function to be called when the date input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{ this.onTouched = fn; }\n\n /**\n * Writes a new value to the date input.\n * Calculate and writes the local value for ionic datetime picker.\n * @param {*} val - The new value to be set.\n */\n public writeValue(val: any): void{ \n this.value = val;\n if (!val) {\n this.ch.markForCheck();\n return;\n };\n\n let localTime = new Date(val);\n\n localTime = new Date(localTime.getTime() - (localTime.getTimezoneOffset() * 60000));\n this.localValue = localTime.toISOString();\n\n this.ch.markForCheck();\n }\n\n /**\n * Sets the disabled state of the date input.\n * @param {boolean} d - Whether the date input should be disabled or not.\n */\n public setDisabledState?(d: boolean): void{ \n this.disabled = d; \n this.ch.markForCheck();\n }\n\n /**\n * Validates the date input.\n * @param {AbstractControl} control - The abstract control representing the date input.\n * @returns {(ValidationErrors | null)} - Validation errors if any, otherwise null.\n */\n public validate(control: AbstractControl): ValidationErrors | null{\n this.formControl = control;\n return null;\n }\n\n /**\n * Event handler for date changes in the date input.\n * If not touched, marks the input as touched.\n * If not disabled, updates the value, triggers change detection, and emits the change event.\n * Updates the error message based on form control errors and label.\n * @param {any} param0 - Event detail containing the new date value.\n */\n public changeDate({ detail: { value }}: any): void{\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled) {\n this.value = this.localValue = value;\n this.ch.markForCheck();\n\n this.onChange(this.value);\n this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);\n }\n }\n}\n","<label class=\"form-label d-flex align-items-center\">\n <ng-content select=\"[icon]\" />\n <span>{{ label }}</span>\n</label>\n\n<input readonly type=\"text\" id=\"{{ name }}-date\" placeholder=\"{{ placeholder }}\" class=\"form-control cursor-pointer\" [disabled]=\"disabled\" [required]=\"required\" [value]=\"value | date:dateFormat \">\n<ion-icon name=\"calendar\" class=\"position-absolute fs-4 cursor-pointer\" />\n\n<ion-modal trigger=\"{{ name }}-date\">\n <ng-template>\n <ion-datetime \n mode=\"md\" \n hourCycle=\"h23\" \n value=\"{{ localValue }}\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [showDefaultButtons]=\"true\" \n [presentation]=\"presentation\"\n (ionChange)=\"changeDate($event)\" \n />\n </ng-template>\n</ion-modal>\n\n@if (errorMsg) {\n <label class=\"is-invalid\">{{ errorMsg }}</label>\n}\n","import { Attribute, ChangeDetectorRef, ChangeDetectionStrategy, Component, Input, Output, EventEmitter } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { getFormErrorMessage } from '../../../utils';\n\n@Component({\n standalone: true,\n selector: 'up-input',\n styleUrl: './form-input.component.scss',\n templateUrl: './form-input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-block'\n },\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: FormInputComponent\n },\n {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: FormInputComponent\n }\n ]\n})\nexport class FormInputComponent implements ControlValueAccessor, Validator {\n\n /**\n * Input variable for the label associated with the input.\n * @type {string | undefined}\n */\n @Input() public label?: string;\n\n /**\n * Input variable for the initial value of the input.\n * @type {string | null | undefined}\n */\n @Input() public value?: string | null;\n\n /**\n * Input variable to determine whether the input is required.\n * @type {boolean}\n * @default false\n */\n @Input() public required: boolean = false;\n\n /**\n * Input variable to determine whether the input is disabled.\n * @type {boolean}\n * @default false\n */\n @Input() public disabled: boolean = false;\n\n /**\n * Output variable for emitting input events.\n * @type {EventEmitter<any>}\n */\n @Output() public onInput: EventEmitter<any> = new EventEmitter<any>();\n\n /**\n * Boolean flag indicating whether the input has been touched.\n * @type {boolean}\n * @default false\n */\n public isTouched: boolean = false;\n\n /**\n * Error message associated with the input.\n * @type {string}\n * @default undefined\n */\n public errorMsg!: string;\n\n /**\n * The form control associated with the input.\n * @type {AbstractControl}\n */\n protected formControl!: AbstractControl;\n\n /**\n * Callback function to handle value changes in the input.\n * @type {(_val: any) => void}\n */\n protected onChange: (_val: any) => void = (_val: any) => {};\n\n /**\n * Callback function to handle touch events in the input.\n * @type {() => void}\n */\n protected onTouched: () => void = () => {};\n\n constructor(\n @Attribute('placeholder') public placeholder: string,\n @Attribute('type') public type: 'email' | 'hidden' | 'number' | 'search' | 'tel' | 'text' | 'url',\n @Attribute('autocomplete') public autocomplete: 'name' | 'email' | 'tel' | 'url' | 'on' | 'off' | 'honorific-prefix' | 'given-name' | 'additional-name' | 'family-name' | 'honorific-suffix' | 'nickname' | 'username' | 'one-time-code' | 'organization-title' | 'organization' | 'street-address' | 'address-line1' | 'address-line2' | 'address-line3' | 'address-level4' | 'address-level3' | 'address-level2' | 'address-level1' | 'country' | 'country-name' | 'postal-code' | 'cc-name' | 'cc-given-name' | 'cc-additional-name' | 'cc-family-name' | 'cc-number' | 'cc-exp' | 'cc-exp-month' | 'cc-exp-year' | 'cc-csc' | 'cc-type' | 'transaction-currency' | 'transaction-amount' | 'language' | 'bday' | 'bday-day' | 'bday-month' | 'bday-year' | 'sex' | 'tel-country-code' | 'tel-national' | 'tel-area-code' | 'tel-local' | 'tel-extension',\n protected readonly ch: ChangeDetectorRef\n ) { }\n\n /**\n * Registers a callback function to be called when the input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{ this.onChange = fn; }\n\n /**\n * Registers a callback function to be called when the input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{ this.onTouched = fn; } \n\n /**\n * Emits an input event when the input value changes.\n * @param {any} val - The new value of the input.\n */\n public input(val: any): void{ this.onInput.emit(val); }\n\n /**\n * Writes a new value to the input.\n * @param {*} val - The new value to be set.\n */\n public writeValue(val: any): void{\n this.value = val; \n this.ch.markForCheck();\n }\n\n /**\n * Sets the disabled state of the input.\n * @param {boolean} d - Whether the input should be disabled or not.\n */\n public setDisabledState?(d: boolean): void{ \n this.disabled = d; \n this.ch.markForCheck();\n }\n\n /**\n * Validates the input.\n * @param {AbstractControl} control - The abstract control representing the input.\n * @returns {(ValidationErrors | null)} - Validation errors if any, otherwise null.\n */\n public validate(control: AbstractControl): ValidationErrors | null{\n this.formControl = control;\n return null;\n }\n\n /**\n * Event handler for input changes in the input.\n * If not touched, marks the input as touched.\n * If not disabled, updates the value, triggers change detection, and emits the input event.\n * Updates the error message based on form control errors and label.\n * @param {any} param0 - Event detail containing the new input value.\n */\n public change({ value }: any): void{\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled) {\n this.value = value;\n this.onChange(this.value);\n this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);\n }\n }\n}\n","<label class=\"form-label d-flex align-items-center\">\n <ng-content select=\"[icon]\" />\n <span>{{ label }}</span>\n</label>\n\n<input type=\"{{ type }}\" autocomplete=\"{{ autocomplete }}\" placeholder=\"{{ placeholder }}\" class=\"form-control\" [required]=\"required\" [disabled]=\"disabled\" [value]=\"value\" (change)=\"change($event.target)\" (input)=\"input($event)\" />\n\n@if (errorMsg) {\n <label class=\"is-invalid\">{{ errorMsg }}</label>\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n standalone: true,\n name: 'localeNumber',\n pure: true\n})\nexport class LocaleNumberPipe implements PipeTransform {\n\n public transform(value: string | null | undefined, locale: string): string{\n if (!value) return '';\n \n if (!/[.,]/.test(value)) return Number(value).toLocaleString(locale);\n else {\n if (/,/.test(value) && /\\./.test(value)) {\n const seperator = this.extractSeperator(value);\n const splitValue = value.split(seperator[seperator.length -1] === ','? /,/ : /\\./);\n\n return Number(splitValue[0].replaceAll(/[,.]/g, '')).toLocaleString(locale) + seperator[seperator.length -1] + splitValue[1];\n }\n return Number(value.replaceAll(/[,.]/g, '')).toLocaleString(locale);\n }\n }\n\n protected extractSeperator(input: string): string[]{\n const seperators: string[] = [];\n\n for (let i = 0; i < input.length; i++) {\n const char = input[i];\n if (char === '.' || char === ',') seperators.push(char);\n }\n return seperators;\n }\n}\n","import { Attribute, ChangeDetectorRef, ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { getFormErrorMessage } from '../../../utils';\nimport { LocaleNumberPipe } from './pipes/locale-number.pipe';\n\n@Component({\n standalone: true,\n selector: 'up-number',\n styleUrl: './form-number.component.scss',\n templateUrl: './form-number.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-block'\n },\n imports: [ \n FormsModule, \n LocaleNumberPipe \n ],\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: FormNumberComponent\n },\n {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: FormNumberComponent\n }\n ]\n})\nexport class FormNumberComponent implements ControlValueAccessor, Validator {\n\n /**\n * Input variable for the label associated with the input.\n * @type {string | undefined}\n */\n @Input() public label?: string;\n \n /**\n * Input variable for the initial value of the input.\n * @type {string | null | undefined}\n */\n @Input() public value?: string | null;\n \n /**\n * Input variable to determine whether the input is required.\n * @type {boolean}\n * @default false\n */\n @Input() public required: boolean = false;\n\n /**\n * Input variable to determine whether the input is disabled.\n * @type {boolean}\n * @default false\n */\n @Input() public disabled: boolean = false;\n\n /**\n * Input variable specifying the locale to be used for masking numbers based on locale.\n * @type {string}\n * @default navigator.language\n */\n @Input() public locale: string = navigator.language;\n \n /**\n * Boolean flag indicating whether the input has been touched.\n * @type {boolean}\n * @default false\n */\n public isTouched: boolean = false;\n\n /**\n * Error message associated with the input.\n * @type {string}\n * @default undefined\n */\n public errorMsg!: string;\n\n /**\n * The form control associated with the input.\n * @type {AbstractControl}\n */\n protected formControl!: AbstractControl;\n\n /**\n * Callback function to handle value changes in the input.\n * @type {(_val: any) => void}\n */\n protected onChange: (_val: any) => void = (_val: any) => {};\n\n /**\n * Callback function to handle touch events in the input.\n * @type {() => void}\n */\n protected onTouched: () => void = () => {};\n\n constructor(\n @Attribute('placeholder') public placeholder: string,\n protected readonly ch: ChangeDetectorRef\n ) { }\n\n /**\n * Registers a callback function to be called when the input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{ this.onChange = fn; }\n\n /**\n * Registers a callback function to be called when the input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{ this.onTouched = fn; } \n\n /**\n * Writes a new value to the input.\n * @param {*} val - The new value to be set.\n */\n public writeValue(val: any): void{\n this.value = val; \n this.ch.markForCheck();\n }\n\n /**\n * Sets the disabled state of the input.\n * @param {boolean} d - Whether the input should be disabled or not.\n */\n public setDisabledState?(d: boolean): void{ \n this.disabled = d; \n this.ch.markForCheck();\n }\n\n /**\n * Validates the input.\n * @param {AbstractControl} control - The abstract control representing the input.\n * @returns {(ValidationErrors | null)} - Validation errors if any, otherwise null.\n */\n public validate(control: AbstractControl): ValidationErrors | null{\n this.formControl = control;\n return null;\n }\n\n /**\n * Event handler for input changes in the input.\n * If not touched, marks the input as touched.\n * If not disabled, updates the value, triggers change detection, and emits the input event.\n * Updates the error message based on form control errors and label.\n * @param {any} param - Event detail containing the new input value.\n */\n public change({ value }: any): void{\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled) {\n this.value = value; \n this.onChange(this.value);\n this.errorMsg = getFormErrorMessage(this.formControl?.errors, this.label);\n }\n }\n\n /**\n * Event handler for keydown events in the input.\n * Prevents input of non-numeric characters except for specific allowed keys.\n * @param {KeyboardEvent} event - The keyboard event object.\n */\n public onKeyDown(ev: KeyboardEvent): void{\n const allowedKeys = new Set(['Backspace', 'Delete', 'ArrowLeft', 'ArrowRight', 'Tab', 'Home', 'End', ',', '.']);\n const key = ev.key;\n\n if (allowedKeys.has(key)) return;\n if (!/^\\d$/.test(key)) ev.preventDefault();\n }\n}\n","<label class=\"form-label\">{{ label }}</label>\n<input type=\"text\" placeholder=\"{{ placeholder }}\" class=\"form-control\" [required]=\"required\" [disabled]=\"disabled\" [value]=\"value | localeNumber:locale\" (keydown)=\"onKeyDown($event)\" (change)=\"change($event.target)\" />\n\n@if (errorMsg) {\n <label class=\"is-invalid\">{{ errorMsg }}</label>\n}\n","import { Attribute, ChangeDetectorRef, ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { IonicModule } from '@ionic/angular';\nimport { getFormErrorMessage } from '../../../utils';\n\n@Component({\n standalone: true,\n selector: 'up-password',\n styleUrl: './form-password.component.scss',\n templateUrl: './form-password.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-block position-relative'\n },\n imports: [\n IonicModule\n ],\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: FormPasswordComponent\n },\n {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: FormPasswordComponent\n }\n ]\n})\nexport class FormPasswordComponent implements ControlValueAccessor, Validator {\n\n /**\n * Input variable to determine whether the password is required.\n * @type {boolean}\n * @default false\n */\n @Input() public required: boolean = false;\n\n /**\n * Input variable to determine whether the password must be the same as another input.\n * @type {boolean}\n * @default false\n */\n @Input() public mustSame: boolean = false;\n\n /**\n * Boolean flag indicating whether the password input has been touched.\n * @type {boolean}\n * @default false\n */\n public isTouched: boolean = false;\n\n /**\n * The type of the password input (text or password).\n * @type {'text' | 'password'}\n * @default 'password'\n */\n public type: 'text' | 'password' = 'password';\n\n /**\n * The value of the password input.\n * @type {string}\n * @default ''\n */\n public value: string = '';\n\n /**\n * Error message associated with the password input.\n * @type {string}\n * @default undefined\n */\n public errorMsg!: string;\n\n /**\n * The form control associated with the password input.\n * @type {AbstractControl}\n */\n protected formControl!: AbstractControl;\n\n /**\n * Callback function to handle value changes in the password input.\n * @type {(_val: any) => void}\n */\n protected onChange: (_val: any) => void = (_val: any) => {};\n\n /**\n * Callback function to handle touch events in the password input.\n * @type {() => void}\n */\n protected onTouched: () => void = () => {};\n\n constructor(\n @Attribute('label') public label: string,\n @Attribute('autocomplete') public autocomplete: 'current-password' | 'new-password',\n protected readonly ch: ChangeDetectorRef\n ) { }\n\n /**\n * Registers a callback function to be called when the password input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{ this.onChange = fn; }\n\n /**\n * Registers a callback function to be called when the password input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{ this.onTouched = fn; } \n\n /**\n * Toggles the type of the password input between text and password.\n */\n public changeType(): void{ \n this.type = this.type === 'text'? 'password' : 'text';\n }\n\n /**\n * Writes a new value to the password input.\n * @param {*} val - The new value to be set.\n */\n public writeValue(val: any): void{ \n this.value = val; \n this.ch.markForCheck();\n }\n\n /**\n * Validates the password input.\n * @param {AbstractControl} control - The abstract control representing the password input.\n * @returns {(ValidationErrors | null)} - Validation errors if any, otherwise null.\n */\n public validate(control: AbstractControl): ValidationErrors | null{\n this.formControl = control;\n return null;\n }\n\n /**\n * Event handler to handle touch status.\n * If the passsword input got focused, it will retrigger get error message to show the error message properly\n * \n * @returns {void}\n */\n public touch(): void{\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n }\n this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);\n }\n\n /**\n * Event handler for changes in the password input.\n * If not touched, marks the input as touched.\n * Updates the value, triggers change detection, and handles validation based on form control errors and label.\n * @param {any} param0 - Event detail containing the new password input value.\n */\n public change({ value }: any): void{\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n }\n\n this.value = value;\n this.onChange(this.value);\n\n if (this.formControl.parent?.errors) {\n if (this.mustSame && this.formControl.parent.hasError('isNotEqual')) {\n this.errorMsg = `${ this.label } is not the same`;\n return;\n }\n\n this.errorMsg = this.formControl.parent?.errors!['message'] || `${ this.label } has an invalid value`;\n return;\n }\n this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);\n }\n}\n","<label class=\"form-label d-flex align-items-center\">\n <ng-content select=\"[icon]\"/>\n <span>{{ label }}</span>\n</label>\n\n<input [type]=\"type\" autocomplete=\"{{ autocomplete }}\" [required]=\"required\" class=\"form-control pe-5\" [value]=\"value\" (change)=\"change($event.target)\" (focus)=\"touch()\" />\n<ion-icon name=\"{{ type === 'password'? 'eye' : 'eye-off' }}\" class=\"position-absolute fs-4 cursor-pointer\" (click)=\"changeType()\"></ion-icon>\n\n@if (errorMsg) {\n <label class=\"is-invalid\">{{ errorMsg }}</label>\n}\n","import { Attribute, ChangeDetectorRef, ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges, Output, EventEmitter } from '@angular/core';\nimport { AsyncPipe } from '@angular/common';\nimport { AbstractControl, ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { Observable, Subject, catchError, concat, debounceTime, distinctUntilChanged, map, of, switchMap, tap } from 'rxjs';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { getFormErrorMessage } from '../../../utils';\n\n@Component({\n standalone: true,\n selector: 'up-searchable-select',\n styleUrl: './form-searchable-select.component.scss',\n templateUrl: './form-searchable-select.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n class: 'd-block' \n },\n imports: [\n AsyncPipe,\n FormsModule,\n NgSelectModule\n ],\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: FormSearchableSelectComponent\n },\n {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: FormSearchableSelectComponent\n }\n ]\n})\nexport class FormSearchableSelectComponent implements ControlValueAccessor, Validator, OnChanges {\n\n /**\n * Input variable for the function to retrieve items based on a search keyword.\n * @type {(keyword: string) => Observable<any>}\n * @required\n */\n @Input({ required: true }) public queryFunc!: (keyword: string) => Observable<any>;\n\n /**\n * Input variable to determine whether the select input is clearable.\n * @type {boolean}\n * @default true\n */\n @Input() public clearable: boolean = true;\n\n /**\n * Input variable for the label associated with the select input.\n * @type {string}\n * @default ''\n */\n @Input() public label: string = '';\n\n /**\n * Input variable for the initial items to be displayed in the select input.\n * @type {any[]}\n * @default []\n */\n @Input() public initialItems: any[] = [];\n\n /**\n * Input variable to determine whether the select input is required.\n * @type {boolean}\n * @default false\n */\n @Input() public required: boolean = false;\n\n /**\n * Input variable to determine whether tags can be added to the select input.\n * @type {boolean}\n * @default false\n */\n @Input() public addTag: boolean = false;\n\n /**\n * Input variable to determine whether the select input is disabled.\n * @type {boolean}\n * @default false\n */\n @Input() public disabled: boolean = false;\n\n /**\n * Input variable to determine whether the select input allows multiple selections.\n * @type {boolean}\n * @default false\n */\n @Input() public multiple: boolean = false;\n\n /**\n * Input variable specifying the property to bind as the label for items in the select input.\n * @type {string}\n * @default 'label'\n */\n @Input() public bindLabel: string = 'label';\n\n /**\n * Input variable specifying the property to bind as the value for items in the select input.\n * @type {string}\n * @default 'value'\n */\n @Input() public bindValue: string = 'value';\n\n /**\n * Input variable specifying append dropdown to body or any other element using css selector. For correct positioning body should have position:relative.\n * @type {string}\n * @default ''\n */\n @Input() public appendTo: string = '';\n\n /**\n * Output variable to emit changes when the select input value changes.\n * @type {EventEmitter<any>}\n */\n @Output() public onChange: EventEmitter<any> = new EventEmitter<any>();\n\n /**\n * Subject for handling typeahead events to trigger item queries based on the search keyword.\n * @type {Subject<string>}\n */\n public readonly typeahead: Subject<string> = new Subject<string>();\n\n /**\n * Observable for handling item queries based on the search keyword.\n * @type {Observable<any[]>}\n */\n protected readonly query$: Observable<any[]> = this.typeahead.pipe(\n distinctUntilChanged(),\n debounceTime(300),\n tap(() => this.isLoading = true),\n switchMap((k: string) => this.queryFunc(k).pipe(\n map((result: any[]) => result.length === 0? this.initialItems : result),\n catchError(() => of(this.initialItems))\n )),\n tap(() => this.isLoading = false)\n );\n\n /**\n * Observable for displaying items in the select input.\n * @type {Observable<any[]>}\n */\n public items$: Observable<any[]> = this.query$;\n\n /**\n * Boolean flag indicating whether the select input is loading.\n * @type {boolean}\n * @default false\n */\n public isLoading: boolean = false;\n\n /**\n * Boolean flag indicating whether the select input has been touched.\n * @type {boolean}\n * @default false\n */\n public isTouched: boolean = false;\n\n /**\n * The value of the select input.\n * @type {any | null}\n * @default null\n */\n public value: any | null = null;\n\n /**\n * Error message associated with the select input.\n * @type {string}\n * @default undefined\n */\n public errorMsg!: string;\n\n /**\n * The form control associated with the select input.\n * @type {AbstractControl}\n */\n protected formControl!: AbstractControl;\n\n /**\n * Callback function to handle value changes in the select input.\n * @type {(_val: any) => void}\n */\n protected changed: (_val: any) => void = (_val: any) => {};\n\n /**\n * Callback function to handle touch events in the select input.\n * @type {() => void}\n */\n protected onTouched: () => void = () => {};\n\n constructor(\n @Attribute('placeholder') public placeholder: string,\n protected readonly ch: ChangeDetectorRef\n ) { }\n\n /**\n * Lifecycle hook called when changes occur to input properties.\n * Updates the items$ observable when the initialItems input changes.\n * @param {SimpleChanges} changes - Object containing the changed properties.\n */\n public ngOnChanges(changes: SimpleChanges): void{\n if (changes['initialItems']) this.items$ = concat(of(this.initialItems), this.query$);\n }\n\n /**\n * Registers a callback function to be called when the select input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{ this.changed = fn; }\n \n /**\n * Registers a callback function to be called when the select input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{ this.onTouched = fn; } \n \n /**\n * Writes a new value to the select input.\n * @param {*} val - The new value to be set.\n */\n public writeValue(val: any): void{ \n this.value = val; \n this.ch.markForCheck();\n }\n \n /**\n * Sets the disabled state of the select input.\n * @param {boolean} d - The new disabled state.\n */\n public setDisabledState?(d: boolean): void{ \n this.disabled = d; \n this.ch.markForCheck();\n }\n\n /**\n * Validates the select input.\n * @param {AbstractControl} control - The abstract control representing the select input.\n * @returns {(ValidationErrors | null)} - Validation errors if any, otherwise null.\n */\n public validate(control: AbstractControl): ValidationErrors | null{ \n this.formControl = control;\n return null;\n }\n\n /**\n * Event handler for changes in the select input.\n * Emits the onChange event, updates the initialItems, and handles validation based on form control errors and label.\n * @param {any} e - The event containing the new select input value.\n */\n public change(e?: any): void{\n this.onChange.emit(e);\n this.initialItems = e;\n\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n }\n \n if (!this.disabled) {\n if (!e) this.value = null;\n else {\n this.value = !this.multiple? e[this.bindValue] : e.map((o: any) => o[this.bindValue]);\n }\n\n this.changed(this.value);\n this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);\n }\n }\n}\n","<label class=\"form-label d-flex align-items-center\" [class.required]=\"required\">\n <ng-content select=\"[icon]\" />\n <span>{{ label }}</span>\n</label>\n\n<ng-select \n typeToSearchText=\"Please enter 3 or more characters\"\n bindLabel=\"{{ bindLabel }}\"\n bindValue=\"{{ bindValue }}\"\n placeholder=\"{{ placeholder }}\"\n [minTermLength]=\"3\"\n [virtualScroll]=\"true\"\n [editableSearchTerm]=\"true\"\n [ngModel]=\"value\" \n [addTag]=\"addTag\"\n [multiple]=\"multiple\"\n [readonly]=\"disabled\" \n [loading]=\"isLoading\"\n [appendTo]=\"appendTo\" \n [clearable]=\"clearable\"\n [typeahead]=\"typeahead\"\n [items]=\"items$ | async\"\n (change)=\"change($event);\"\n/>\n\n@if (errorMsg) {\n <label class=\"is-invalid\">{{ errorMsg }}</label>\n}\n","import { Attribute, ChangeDetectorRef, ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { getFormErrorMessage } from '../../../utils';\n\n@Component({\n standalone: true,\n selector: 'up-select',\n styleUrl: './form-select.component.scss',\n templateUrl: './form-select.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n class: 'd-block' \n },\n imports: [\n FormsModule,\n NgSelectModule\n ],\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: FormSelectComponent\n },\n {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: FormSelectComponent\n }\n ]\n})\nexport class FormSelectComponent implements ControlValueAccessor, Validator {\n\n /**\n * Input variable for the items to be displayed in the select input.\n * @type {any[]}\n * @required\n */\n @Input({ required: true }) public items!: any[];\n\n /**\n * Input variable to determine whether the select input is clearable.\n * @type {boolean}\n * @default true\n */\n @Input() public clearable: boolean = true;\n\n /**\n * Input variable for the label associated with the select input.\n * @type {string}\n * @default ''\n */\n @Input() public label: string = '';\n\n /**\n * Input variable to determine whether the select input allows multiple selections.\n * @type {boolean}\n * @default false\n */\n @Input() public multiple: boolean = false;\n\n /**\n * Input variable to determine whether the select input is required.\n * @type {boolean}\n * @default false\n */\n @Input() public required: boolean = false;\n\n /**\n * Input variable to determine whether tags can be added to the select input.\n * @type {boolean}\n * @default false\n */\n @Input() public addTag: boolean = false;\n \n /**\n * Input variable to determine whether the select input is disabled.\n * @type {boolean}\n * @default false\n */\n @Input() public disabled: boolean = false;\n\n /**\n * Input variable to determine whether the select input is searchable.\n * @type {boolean}\n * @default false\n */\n @Input() public searchable: boolean = false;\n\n /**\n * Input variable specifying the property to bind as the label for items in the select input.\n * @type {string}\n * @default 'label'\n */\n @Input() public bindLabel: string = 'label';\n\n /**\n * Input variable specifying the property to bind as the value for items in the select input.\n * @type {string}\n * @default 'value'\n */\n @Input() public bindValue: string = 'value';\n\n /**\n * Input variable specifying append dropdown to body or any other element using css selector. For correct positioning body should have position:relative.\n * @type {string}\n * @default ''\n */\n @Input() public appendTo: string = '';\n\n /**\n * Boolean flag indicating whether the select input has been touched.\n * @type {boolean}\n * @default false\n */\n public isTouched: boolean = false;\n\n /**\n * The value of the select input.\n * @type {any | null}\n * @default null\n */\n public value: any | null = null;\n\n /**\n * Error message associated with the select input.\n * @type {string}\n * @default undefined\n */\n public errorMsg!: string;\n\n /**\n * The form control associated with the select input.\n * @type {AbstractControl}\n */\n protected formControl!: AbstractControl;\n\n /**\n * Callback function to handle value changes in the select input.\n * @type {(_val: any) => void}\n */\n protected onChange: (_val: any) => void = (_val: any) => {};\n\n /**\n * Callback function to handle touch events in the select input.\n * @type {() => void}\n */\n protected onTouched: () => void = () => {};\n\n constructor(\n @Attribute('placeholder') public placeholder: string,\n protected readonly ch: ChangeDetectorRef\n ) { }\n\n /**\n * Registers a callback function to be called when the select input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{ this.onChange = fn; }\n\n /**\n * Registers a callback function to be called when the select input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{ this.onTouched = fn; }\n\n /**\n * Writes a new value to the select input.\n * @param {*} val - The new value to be set.\n */\n public writeValue(val: any): void{\n this.value = val;\n this.ch.markForCheck();\n }\n\n /**\n * Sets the disabled state of the select input.\n * @param {boolean} d - The new disabled state.\n */\n public setDisabledState?(d: boolean): void{ \n this.disabled = d;\n this.ch.markForCheck();\n }\n\n /**\n * Validates the select input.\n * @param {AbstractControl} control - The abstract control representing the select input.\n * @returns {(ValidationErrors | null)} - Validation errors if any, otherwise null.\n */\n public validate(control: AbstractControl): ValidationErrors | null{\n this.formControl = control;\n return null;\n }\n\n /**\n * Event handler for changes in the select input.\n * Emits the onChange event and handles validation based on form control errors and label.\n * @param {any} e - The event containing the new select input value.\n */\n public change(e?: any): void{\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled) {\n if (!e) this.value = null;\n else {\n this.value = !this.multiple? e[this.bindValue] : e.map((o: any) => o[this.bindValue]);\n }\n \n this.onChange(this.value);\n this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);\n }\n }\n}\n","<label class=\"form-label d-flex align-items-center\" [class.required]=\"required\">\n <ng-content select=\"[icon]\"/>\n <span>{{ label }}</span>\n</label>\n\n<ng-select\n bindLabel=\"{{ bindLabel }}\"\n bindValue=\"{{ bindValue }}\"\n placeholder=\"{{ placeholder }}\"\n [virtualScroll]=\"true\"\n [items]=\"items\"\n [ngModel]=\"value\"\n [addTag]=\"addTag\"\n [multiple]=\"multiple\"\n [readonly]=\"disabled\"\n [appendTo]=\"appendTo\"\n [clearable]=\"clearable\"\n [searchable]=\"searchable\"\n (change)=\"change($event);\"\n/>\n\n@if (errorMsg) {\n <label class=\"is-invalid\">{{ errorMsg }}</label>\n}\n","import { Attribute, ChangeDetectorRef, ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { getFormErrorMessage } from '../../../utils';\n\n@Component({\n standalone: true,\n selector: 'up-textarea',\n styleUrl: './form-textarea.component.scss',\n templateUrl: './form-textarea.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-block'\n },\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: FormTextareaComponent\n },\n {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: FormTextareaComponent\n }\n ]\n})\nexport class FormTextareaComponent implements ControlValueAccessor, Validator {\n\n /**\n * Input variable to determine the initial value of the textarea.\n * @type {(string | null)}\n * @default undefined\n */\n @Input() public value?: string | null;\n\n /**\n * Input variable to determine whether the textarea is required.\n * @type {boolean}\n * @default false\n */\n @Input() public required: boolean = false;\n\n /**\n * Input variable to determine whether the textarea is disabled.\n * @type {boolean}\n * @default false\n */\n @Input() public disabled: boolean = false;\n\n /**\n * Boolean flag indicating whether the textarea has been touched.\n * @type {boolean}\n * @default false\n */\n public isTouched: boolean = false;\n\n /**\n * Error message associated with the textarea.\n * @type {string}\n * @default undefined\n */\n public errorMsg!: string;\n\n /**\n * The form control associated with the textarea.\n * @type {AbstractControl}\n */\n protected formControl!: AbstractControl;\n\n /**\n * Callback function to handle value changes in the textarea.\n * @type {(_val: any) => void}\n */\n protected onChange: (_val: any) => void = (_val: any) => {};\n\n /**\n * Callback function to handle touch events in the textarea.\n * @type {() => void}\n */\n protected onTouched: () => void = () => {};\n\n constructor(\n @Attribute('label') public label: string,\n @Attribute('placeholder') public placeholder: string,\n @Attribute('autocomplete') public autocomplete: 'url' | 'on' | 'off' | 'street-address' | 'address-line1' | 'address-line2' | 'address-line3' | 'address-level4' | 'address-level3' | 'address-level2' | 'address-level1',\n protected readonly ch: ChangeDetectorRef\n ) { }\n\n /**\n * Registers a callback function to be called when the textarea value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{ this.onChange = fn; }\n\n /**\n * Registers a callback function to be called when the textarea is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{ this.onTouched = fn; }\n\n /**\n * Writes a new value to the textarea.\n * @param {*} val - The new value to be set.\n */\n public writeValue(val: any): void{ \n this.value = val; \n this.ch.markForCheck();\n }\n\n /**\n * Sets the disabled state of the textarea.\n * @param {boolean} d - The new disabled state.\n */\n public setDisabledState?(d: boolean): void{ \n this.disabled = d; \n this.ch.markForCheck();\n }\n\n /**\n * Validates the textarea.\n * @param {AbstractControl} control - The abstract control representing the textarea.\n * @returns {(ValidationErrors | null)} - Validation errors if any, otherwise null.\n */\n public validate(control: AbstractControl): ValidationErrors | null{\n this.formControl = control;\n return null;\n }\n\n /**\n * Event handler for changes in the textarea.\n * Emits the onChange event and handles validation based on form control errors and label.\n * @param {any} value - The new textarea value.\n */\n public change({ value }: any): void{\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n }\n\n if (!this.disabled) {\n this.value = value;\n this.onChange(this.value);\n this.errorMsg = getFormErrorMessage(this.formControl.errors, this.label);\n }\n }\n}\n","<label class=\"form-label d-flex align-items-center\">\n <ng-content select=\"[icon]\"/>\n <span>{{ label }}</span>\n</label>\n<textarea autocomplete=\"{{ autocomplete }}\" placeholder=\"{{ placeholder }}\" rows=\"3\" class=\"form-control\" [required]=\"required\" [disabled]=\"disabled\" [value]=\"value\" (change)=\"change($event.target)\"></textarea>\n\n@if (errorMsg) {\n <label class=\"is-invalid\">{{ errorMsg }}</label>\n}\n","import { Directive, Output, EventEmitter, HostListener } from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: '[upDragNDrop]'\n})\nexport class DragNDropDirective {\n\n @Output() public fileDropped = new EventEmitter<any>();\n\n @HostListener('dragover', [ '$event' ]) \n public onDragOver(evt: any): void{\n evt.preventDefault();\n evt.stopPropagation();\n\n const target = evt.target as HTMLImageElement;\n target.classList.add('dragging');\n }\n\n @HostListener('dragleave', [ '$event' ]) \n public onDragLeave(evt: any): void{\n evt.preventDefault();\n evt.stopPropagation();\n\n const target = evt.target as HTMLImageElement;\n target.classList.remove('dragging');\n }\n\n @HostListener('drop', [ '$event' ]) \n public onDrop(evt: any): void{\n evt.preventDefault();\n evt.stopPropagation();\n\n const target = evt.target as HTMLImageElement;\n target.classList.remove('dragging');\n\n const files = evt.dataTransfer.files;\n if (files.length > 0) this.fileDropped.emit(files);\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, ChangeDetectorRef } from '@angular/core';\nimport { NgStyle } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IonicModule } from '@ionic/angular';\nimport { DragNDropDirective } from './directives/drag-n-drop.directive';\n\n@Component({\n standalone: true,\n selector: 'up-image-picker',\n templateUrl: './form-image-picker.component.html',\n styleUrls: ['./form-image-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-block'\n },\n imports: [\n IonicModule,\n NgStyle,\n DragNDropDirective\n ],\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: FormImagePickerComponent\n },\n ]\n})\nexport class FormImagePickerComponent implements ControlValueAccessor {\n\n /**\n * A public input variable to adjust image container aspect ratio by css, to keep the image width and height proportional.\n * The common aspect ratio namely 1/1, 4/3, 16/9 etc.\n * @type {string}\n * @default `16/9`\n */\n @Input() public ratio: string = '16/9';\n /**\n * A public input variable to set the form label.\n * @type {string}\n * @default undefined\n */\n @Input() public label?: string;\n /**\n * A public input variable to show or hide astr (*) sign.\n * It will show if the value is true mean the field is can not be empty and hide if the value is false.\n * @type {boolean}\n * @default false\n */\n @Input() public required: boolean = false;\n /**\n * A public output variable to emit the File to the parent component.\n * @type {EventEmitter<File>}\n */\n @Output() public onChange: EventEmitter<File> = new EventEmitter<File>();\n /**\n * A public variable contain temporary image url shown on the preview.\n * @type {string}\n * @default undefined\n */\n public imgSrc!: string;\n /**\n * Both two methods are mandatory as implementation of ControlValueAccessor.\n */\n protected onChanged: (_val: any) => void = (_val: any) => {};\n protected onTouched: () => void = () => {};\n\n constructor(\n protected readonly ch: ChangeDetectorRef\n ) { }\n\n /**\n * Both two methods are mandatory as implementation of ControlValueAccessor.\n */\n public registerOnChange(fn: any): void{ this.onChanged = fn; }\n \n public registerOnTouched(fn: any): void{ this.onTouched = fn; }\n\n /**\n * A procedure called to clear the image preview.\n */\n public clear(ev?: Event): void{\n this.writeValue('');\n ev?.stopPropagation();\n }\n\n /**\n * A procedure called when the image was set previously in the parent formControlName component and the user want to change with another one.\n * It is mandatory as an implementation of ControlValueAccessor.\n * @param {any} val - contain image url.\n */\n public writeValue(val: any): void{\n this.imgSrc = val;\n this.ch.markForCheck();\n }\n\n /**\n * A procedure called when user pick or drag and drop image.\n * @param {any} files - files?.target?.files to check if image come from drag and drop and files[0] from normal pick image.\n */\n public selectPhoto(files: any): void{\n if (files?.target?.files) files = files.target.files;\n\n if (files && files[0]) {\n this.imgSrc = URL.createObjectURL((files[0]));\n this.onChange.emit(files[0]);\n }\n }\n}\n","<div class=\"flex-shrink-0 mb-4\">\n <label class=\"mb-2 d-flex align-items-center form-label\">\n @if (required) {\n <span class=\"text-danger me-2\">*</span>\n }\n \n <ng-content select=\"[icon]\"/>\n <span>{{ label }}</span>\n </label>\n \n <div class=\"img-container position-relative border rounded\" [ngStyle]=\"{ 'aspect-ratio': ratio }\" upDragNDrop (fileDropped)=\"selectPhoto($event)\"> \n @if (imgSrc) {\n <img alt=\"{{ label }}\" class=\"rounded\" width=\"100%\" height=\"100%\" src=\"{{ imgSrc }}\" />\n }\n \n <div class=\"upload-icon rounded position-absolute text-white align-items-center justify-content-center px-3 py-2 w-100\" [ngStyle]=\"{ 'aspect-ratio': ratio }\" (click)=\"file.click();\">\n @if (!imgSrc) {\n <ion-icon class=\"upload-icon\" name=\"cloud-upload\" title=\"Drop file or click to browse\" />\n } \n @else {\n <div class=\"position-absolute display-flex justify-content-center rounded p-1 d-btn\">\n <ion-icon name=\"trash\" class=\"text-red-600\" title=\"Clear Image\" (click)=\"clear($event)\" />\n </div>\n }\n </div>\n \n <input type=\"file\" hidden accept=\"image/png, image/jpeg, image/jpg\" multiple=\"false\" (change)=\"selectPhoto($event)\" #file />\n </div>\n</div>\n","export type Maybe<T> = T | null;\nexport type InputMaybe<T> = Maybe<T>;\nexport type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] };\nexport type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> };\nexport type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> };\nexport type MakeEmpty<T extends { [key: string]: unknown }, K extends keyof T> = { [_ in K]?: never };\nexport type Incremental<T> = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never };\n/** All built-in and custom scalars, mapped to their actual values */\nexport type Scalars = {\n ID: { input: string; output: string; }\n String: { input: string; output: string; }\n Boolean: { input: boolean; output: boolean; }\n Int: { input: number; output: number; }\n Float: { input: number; output: number; }\n /** An RFC-3339 compliant Full Date Scalar */\n Date: { input: any; output: any; }\n /** A slightly refined version of RFC-3339 compliant DateTime Scalar */\n DateTime: { input: any; output: any; }\n Double: { input: any; output: any; }\n /** A JSON scalar */\n JSON: { input: any; output: any; }\n /** A 64-bit signed integer */\n Long: { input: any; output: any; }\n /** An object scalar */\n Object: { input: any; output: any; }\n /** A custom scalar that represents files */\n Upload: { input: any; output: any; }\n};\n\nexport type ActivityHistory = {\n __typename?: 'ActivityHistory';\n board?: Maybe<Board>;\n boardGuid?: Maybe<Scalars['String']['output']>;\n card?: Maybe<Card>;\n cardAttachmentGuid?: Maybe<Scalars['String']['output']>;\n cardExt?: Maybe<CardExt>;\n cardGuid?: Maybe<Scalars['String']['output']>;\n changedValue?: Maybe<Scalars['JSON']['output']>;\n comment?: Maybe<Comment>;\n commentAttachmentGuid?: Maybe<Scalars['String']['output']>;\n commentExt?: Maybe<CommentExt>;\n commentGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n request?: Maybe<Request>;\n requestAttachmentGuid?: Maybe<Scalars['String']['output']>;\n requestExt?: Maybe<RequestExt>;\n requestGuid?: Maybe<Scalars['String']['output']>;\n showOnRequest?: Maybe<Scalars['Boolean']['output']>;\n type?: Maybe<ActivityHistoryType>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ActivityHistoryCriteria = {\n boardGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n cardAttachmentGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n cardGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n commentAttachmentGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n commentGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n requestAttachmentGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n requestGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n showOnRequest?: InputMaybe<Scalars['Boolean']['input']>;\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n type?: InputMaybe<ActivityHistoryType>;\n};\n\nexport type ActivityHistoryRs = {\n __typename?: 'ActivityHistoryRs';\n data?: Maybe<Array<Maybe<ActivityHistory>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum ActivityHistoryType {\n AttachmentAdd = 'ATTACHMENT_ADD',\n AttachmentRemove = 'ATTACHMENT_REMOVE',\n BoardIn = 'BOARD_IN',\n BoardOut = 'BOARD_OUT',\n CardMove = 'CARD_MOVE',\n CommentAdd = 'COMMENT_ADD',\n CommentEdit = 'COMMENT_EDIT',\n CommentRemove = 'COMMENT_REMOVE'\n}\n\nexport type AddDenomToDenomGroupRq = {\n denomGroupGuid: Scalars['String']['input'];\n denomGuids: Array<Scalars['String']['input']>;\n};\n\nexport enum AggregationTypeEnum {\n CountValue = 'COUNT_VALUE',\n SumValue = 'SUM_VALUE'\n}\n\nexport type Agreement = {\n __typename?: 'Agreement';\n code?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type AgreementQueryCriteria = {\n code?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n countryCode?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport enum AlertTypeEnum {\n Fcm = 'FCM',\n PasswordReset = 'PASSWORD_RESET',\n RequestNeeded = 'REQUEST_NEEDED'\n}\n\nexport type ApiCredential = {\n __typename?: 'ApiCredential';\n accessKey?: Maybe<Scalars['String']['output']>;\n activeAt?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['String']['output']>;\n deletedAt?: Maybe<Scalars['String']['output']>;\n expiredAt?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n merchantContractGuid?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n permission?: Maybe<Array<Maybe<AppPermDfn>>>;\n status?: Maybe<Scalars['String']['output']>;\n transactionalUser?: Maybe<AppLoginSubject>;\n version?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ApiCredentialFilterRq = {\n accessKey?: InputMaybe<Scalars['String']['input']>;\n activeAt?: InputMaybe<Scalars['String']['input']>;\n createdAt?: InputMaybe<Scalars['String']['input']>;\n expiredAt?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantContractGuid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n permissionCode?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: Status;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n version?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type ApiCredentialFilterRs = {\n __typename?: 'ApiCredentialFilterRs';\n data?: Maybe<Array<Maybe<ApiCredential>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type ApiCredentialPrivate = {\n __typename?: 'ApiCredentialPrivate';\n guid?: Maybe<Scalars['String']['output']>;\n secret?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ApiCredentialRole = {\n __typename?: 'ApiCredentialRole';\n apiCredentialGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['String']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n roleGuid?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ApiCredentialRoleFilterRq = {\n apiCredentialGuid?: InputMaybe<Scalars['String']['input']>;\n createdAt?: InputMaybe<Scalars['String']['input']>;\n createdBy?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n roleGuid?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n updatedAt?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type ApiCredentialSpecialFilter = {\n accessKey?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\nexport type AppLoginPrincipal = {\n __typename?: 'AppLoginPrincipal';\n /** ... date time when user created */\n createdDate?: Maybe<Scalars['Date']['output']>;\n /** ... user creadential */\n credential?: Maybe<Scalars['String']['output']>;\n /** ... user principal identifier */\n guid?: Maybe<Scalars['String']['output']>;\n /** ... user principal id to store email or phone number */\n principalId?: Maybe<Scalars['String']['output']>;\n /** ... user principal type [EMAIL_USERNAME, MOBILE_USERNAME] */\n principalType?: Maybe<Scalars['String']['output']>;\n /** ... data version */\n revision?: Maybe<Scalars['String']['output']>;\n /** ... user valid date end */\n sourcePlatform?: Maybe<SourcePlatform>;\n /** ... user status */\n status?: Maybe<PrincipalStatus>;\n /** ... date time when user last updated */\n updatedDate?: Maybe<Scalars['Date']['output']>;\n /** ... user valid date end */\n validDateEnd?: Maybe<Scalars['Date']['output']>;\n /** ... user valid date */\n validDateStart?: Maybe<Scalars['Date']['output']>;\n};\n\nexport type AppLoginRole = {\n __typename?: 'AppLoginRole';\n code?: Maybe<Scalars['String']['output']>;\n createdBy?: Maybe<AppLoginSubject>;\n createdDate?: Maybe<Scalars['String']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n isInternal?: Maybe<Scalars['Boolean']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Status>;\n updatedBy?: Maybe<AppLoginSubject>;\n updatedDate?: Maybe<Scalars['String']['output']>;\n};\n\nexport type AppLoginSubject = {\n __typename?: 'AppLoginSubject';\n /** ... user extension */\n appLoginExt?: Maybe<Array<Maybe<AppLoginSubjectExt>>>;\n /** ... user principal */\n appLoginPrincipal?: Maybe<Array<Maybe<AppLoginPrincipal>>>;\n /** ... date with format YYYY-MM-DD */\n birthday?: Maybe<Scalars['Date']['output']>;\n /** ... user category */\n category?: Maybe<Scalars['String']['output']>;\n /** ... user company if any */\n company?: Maybe<Company>;\n /** ... date time when user created */\n createdDate?: Maybe<Scalars['String']['output']>;\n /** ... user gender */\n gender?: Maybe<Gender>;\n /** ... user unique identifier */\n guid?: Maybe<Scalars['String']['output']>;\n merchants?: Maybe<Array<Maybe<Merchant>>>;\n /** ... user full name */\n name?: Maybe<Scalars['String']['output']>;\n /** ... data version */\n revision?: Maybe<Scalars['String']['output']>;\n /** ... user roles */\n roles?: Maybe<Array<Maybe<AppLoginRole>>>;\n /** ... soure platfrom where user registered */\n sourcePlatform?: Maybe<SourcePlatform>;\n /** ... user status */\n status?: Maybe<Status>;\n /** ... date time when user last updated */\n updatedDate?: Maybe<Scalars['String']['output']>;\n};\n\n/** AppLoginSubject Connection */\nexport type AppLoginSubjectConnection = {\n __typename?: 'AppLoginSubjectConnection';\n /** Field edges */\n edges?: Maybe<Array<Maybe<AppLoginSubjectEdge>>>;\n /** Field pageInfo */\n pageInfo: PageInfo;\n};\n\n/** AppLoginSubject Edge */\nexport type AppLoginSubjectEdge = {\n __typename?: 'AppLoginSubjectEdge';\n /** Field cursor */\n cursor?: Maybe<Scalars['String']['output']>;\n /** Field node */\n node?: Maybe<AppLoginSubject>;\n};\n\nexport type AppLoginSubjectExt = {\n __typename?: 'AppLoginSubjectExt';\n /** ... date time when extension created */\n createdDate?: Maybe<Scalars['String']['output']>;\n /** ... user extension code */\n extCode?: Maybe<Scalars['String']['output']>;\n /** ... user extension option */\n extOption?: Maybe<Scalars['String']['output']>;\n /** ... user extension type */\n extType?: Maybe<Scalars['String']['output']>;\n file?: Maybe<FetchFileResponse>;\n /** ... unique user extension identifier */\n guid?: Maybe<Scalars['String']['output']>;\n /** ... user guid to link column */\n loginSubjectGuid?: Maybe<Scalars['String']['output']>;\n /** ... user extension parameter code */\n paramCode?: Maybe<Scalars['String']['output']>;\n /** ... user extension parameter name */\n paramName?: Maybe<Scalars['String']['output']>;\n /** ... user extension parameter type */\n paramType?: Maybe<Scalars['String']['output']>;\n /** ... data version */\n revision?: Maybe<Scalars['String']['output']>;\n /** ... user extension status */\n status?: Maybe<Status>;\n /** ... date time when extension last updated */\n updatedDate?: Maybe<Scalars['String']['output']>;\n /** ... can store datetime value */\n valueDatetime?: Maybe<Scalars['String']['output']>;\n /** ... can store file value */\n valueFile?: Maybe<Scalars['String']['output']>;\n /** ... can store json value */\n valueJson?: Maybe<Scalars['String']['output']>;\n /** ... can store numeric value */\n valueNumeric?: Maybe<Scalars['Int']['output']>;\n /** ... can store string value */\n valueString?: Maybe<Scalars['String']['output']>;\n};\n\nexport type AppLoginSubjectExtRq = {\n /** ... user extension code */\n extCode?: InputMaybe<Scalars['String']['input']>;\n /** ... user extension option */\n extOption?: InputMaybe<Scalars['String']['input']>;\n /** ... user extension type */\n extType?: InputMaybe<Scalars['String']['input']>;\n /** ... user extension parameter code */\n paramCode?: InputMaybe<Scalars['String']['input']>;\n /** ... user extension parameter name */\n paramName?: InputMaybe<Scalars['String']['input']>;\n /** ... user extension parameter type */\n paramType?: InputMaybe<Scalars['String']['input']>;\n /** ... can store datetime value */\n valueDatetime?: InputMaybe<Scalars['String']['input']>;\n /** ... can store file value */\n valueFile?: InputMaybe<Scalars['String']['input']>;\n /** ... can store json value */\n valueJson?: InputMaybe<Scalars['String']['input']>;\n /** ... can store numeric value */\n valueNumeric?: InputMaybe<Scalars['Int']['input']>;\n /** ... can store string value */\n valueString?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum AppLoginSubjectSortByEnum {\n CreatedDate = 'createdDate',\n UpdatedDate = 'updatedDate'\n}\n\nexport type AppPermDfn = {\n __typename?: 'AppPermDfn';\n createdBy?: Maybe<AppLoginSubject>;\n createdDate?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n parentId?: Maybe<Scalars['String']['output']>;\n permCode?: Maybe<Scalars['String']['output']>;\n permDescription?: Maybe<Scalars['String']['output']>;\n permModule?: Maybe<Scalars['String']['output']>;\n permName?: Maybe<Scalars['String']['output']>;\n permScope?: Maybe<Scalars['String']['output']>;\n permType?: Maybe<Scalars['String']['output']>;\n relatedMf?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Status>;\n updatedBy?: Maybe<AppLoginSubject>;\n updatedDate?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ApplyVacancyRq = {\n email?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n reason?: InputMaybe<Scalars['String']['input']>;\n vacancyGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type Approval = {\n __typename?: 'Approval';\n approvalGroup?: Maybe<ApprovalGroup>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n data?: Maybe<Scalars['JSON']['output']>;\n entity?: Maybe<Scalars['String']['output']>;\n entityGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n permission?: Maybe<Scalars['String']['output']>;\n reason?: Maybe<Scalars['String']['output']>;\n remark?: Maybe<Scalars['String']['output']>;\n sourcePlatform?: Maybe<Scalars['String']['output']>;\n status?: Maybe<ApprovalStatusEnum>;\n type?: Maybe<ApprovalTypeEnum>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n urlToCall?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ApprovalCriteria = {\n approvalGroupGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n approvalGroupName?: InputMaybe<Scalars['String']['input']>;\n entity?: InputMaybe<Array<Scalars['String']['input']>>;\n entityGuid?: InputMaybe<Array<Scalars['String']['input']>>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n permission?: InputMaybe<Array<Scalars['String']['input']>>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n sourcePlatform?: InputMaybe<Array<Scalars['String']['input']>>;\n status?: InputMaybe<Array<ApprovalStatusEnum>>;\n type?: InputMaybe<Array<ApprovalTypeEnum>>;\n};\n\nexport type ApprovalGroup = {\n __typename?: 'ApprovalGroup';\n UpdatedAt?: Maybe<Scalars['DateTime']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum ApprovalStatusEnum {\n Approved = 'APPROVED',\n Declined = 'DECLINED',\n Pending = 'PENDING'\n}\n\nexport enum ApprovalTypeEnum {\n Creation = 'CREATION',\n Deletion = 'DELETION',\n Linkage = 'LINKAGE',\n Unlink = 'UNLINK',\n Update = 'UPDATE'\n}\n\nexport type ApprovalUserSign = {\n __typename?: 'ApprovalUserSign';\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n signFile?: Maybe<Scalars['String']['output']>;\n userGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type AssignTierToMember = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n memberGuid?: InputMaybe<Scalars['String']['input']>;\n tierGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type AttachPermRq = {\n /** permission identifier */\n permsGuid: Array<InputMaybe<Scalars['String']['input']>>;\n /** role identifier */\n roleGuid: Scalars['String']['input'];\n};\n\nexport type AuditTag = {\n __typename?: 'AuditTag';\n createdAt?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n relatedEntity?: Maybe<Scalars['String']['output']>;\n tagKey: Scalars['String']['output'];\n tagValue?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum AuditTagEnum {\n AuthMsCredentialCreate = 'AUTH_MS_CREDENTIAL_CREATE',\n AuthMsCredentialDelete = 'AUTH_MS_CREDENTIAL_DELETE',\n AuthMsCredentialToRoleLink = 'AUTH_MS_CREDENTIAL_TO_ROLE_LINK',\n AuthMsCredentialToRoleLinkCredentialNotFound = 'AUTH_MS_CREDENTIAL_TO_ROLE_LINK_CREDENTIAL_NOT_FOUND',\n AuthMsCredentialToRoleLinkRoleNotFound = 'AUTH_MS_CREDENTIAL_TO_ROLE_LINK_ROLE_NOT_FOUND',\n AuthMsCredentialToRoleUnlink = 'AUTH_MS_CREDENTIAL_TO_ROLE_UNLINK',\n AuthMsCredentialToRoleUnlinkCredentialNotFound = 'AUTH_MS_CREDENTIAL_TO_ROLE_UNLINK_CREDENTIAL_NOT_FOUND',\n AuthMsCredentialToRoleUnlinkCredentialRoleLinkNotFound = 'AUTH_MS_CREDENTIAL_TO_ROLE_UNLINK_CREDENTIAL_ROLE_LINK_NOT_FOUND',\n AuthMsCredentialToRoleUnlinkRoleNotFound = 'AUTH_MS_CREDENTIAL_TO_ROLE_UNLINK_ROLE_NOT_FOUND',\n AuthMsCredentialUpdate = 'AUTH_MS_CREDENTIAL_UPDATE',\n AuthMsPermissionCreate = 'AUTH_MS_PERMISSION_CREATE',\n AuthMsPermissionCreatePermissionAlreadyExists = 'AUTH_MS_PERMISSION_CREATE_PERMISSION_ALREADY_EXISTS',\n AuthMsPermissionDelete = 'AUTH_MS_PERMISSION_DELETE',\n AuthMsPermissionDeletePermissionNotFound = 'AUTH_MS_PERMISSION_DELETE_PERMISSION_NOT_FOUND',\n AuthMsPermissionDeleteRoleAttached = 'AUTH_MS_PERMISSION_DELETE_ROLE_ATTACHED',\n AuthMsPermissionImport = 'AUTH_MS_PERMISSION_IMPORT',\n AuthMsPermissionToRoleLink = 'AUTH_MS_PERMISSION_TO_ROLE_LINK',\n AuthMsPermissionToRoleLinkPermissionAlreadyExists = 'AUTH_MS_PERMISSION_TO_ROLE_LINK_PERMISSION_ALREADY_EXISTS',\n AuthMsPermissionToRoleLinkPermissionEmpty = 'AUTH_MS_PERMISSION_TO_ROLE_LINK_PERMISSION_EMPTY',\n AuthMsPermissionToRoleLinkRoleNotFound = 'AUTH_MS_PERMISSION_TO_ROLE_LINK_ROLE_NOT_FOUND',\n AuthMsPermissionToRoleUnlink = 'AUTH_MS_PERMISSION_TO_ROLE_UNLINK',\n AuthMsPermissionToRoleUnlinkPermissionEmpty = 'AUTH_MS_PERMISSION_TO_ROLE_UNLINK_PERMISSION_EMPTY',\n AuthMsPermissionToRoleUnlinkPermissionNotFound = 'AUTH_MS_PERMISSION_TO_ROLE_UNLINK_PERMISSION_NOT_FOUND',\n AuthMsPermissionToRoleUnlinkRoleNotFound = 'AUTH_MS_PERMISSION_TO_ROLE_UNLINK_ROLE_NOT_FOUND',\n AuthMsPermissionUpdate = 'AUTH_MS_PERMISSION_UPDATE',\n AuthMsPermissionUpdatePermissionNotFound = 'AUTH_MS_PERMISSION_UPDATE_PERMISSION_NOT_FOUND',\n AuthMsRoleCreate = 'AUTH_MS_ROLE_CREATE',\n AuthMsRoleCreateRoleAlreadyExists = 'AUTH_MS_ROLE_CREATE_ROLE_ALREADY_EXISTS',\n AuthMsRoleDelete = 'AUTH_MS_ROLE_DELETE',\n AuthMsRoleDeleteRoleAttached = 'AUTH_MS_ROLE_DELETE_ROLE_ATTACHED',\n AuthMsRoleDeleteRoleNotFound = 'AUTH_MS_ROLE_DELETE_ROLE_NOT_FOUND',\n AuthMsRoleUpdate = 'AUTH_MS_ROLE_UPDATE',\n AuthMsRoleUpdateRoleNotFound = 'AUTH_MS_ROLE_UPDATE_ROLE_NOT_FOUND',\n AuthMsUserLogin = 'AUTH_MS_USER_LOGIN',\n AuthMsUserLoginPasswordNotMatch = 'AUTH_MS_USER_LOGIN_PASSWORD_NOT_MATCH',\n AuthMsUserLoginUserNotConfirmed = 'AUTH_MS_USER_LOGIN_USER_NOT_CONFIRMED',\n AuthMsUserLoginUserNotFound = 'AUTH_MS_USER_LOGIN_USER_NOT_FOUND',\n AuthMsUserLoginUserNotRegistered = 'AUTH_MS_USER_LOGIN_USER_NOT_REGISTERED',\n AuthMsUserLogout = 'AUTH_MS_USER_LOGOUT',\n AuthMsUserToRoleLink = 'AUTH_MS_USER_TO_ROLE_LINK',\n AuthMsUserToRoleLinkRoleNotFound = 'AUTH_MS_USER_TO_ROLE_LINK_ROLE_NOT_FOUND',\n AuthMsUserToRoleLinkUserNotFound = 'AUTH_MS_USER_TO_ROLE_LINK_USER_NOT_FOUND',\n AuthMsUserToRoleUnlink = 'AUTH_MS_USER_TO_ROLE_UNLINK',\n AuthMsUserToRoleUnlinkRolesToUsersNotFound = 'AUTH_MS_USER_TO_ROLE_UNLINK_ROLES_TO_USERS_NOT_FOUND',\n AuthMsUserToRoleUnlinkRoleNotFound = 'AUTH_MS_USER_TO_ROLE_UNLINK_ROLE_NOT_FOUND',\n AuthMsUserToRoleUnlinkUserNotFound = 'AUTH_MS_USER_TO_ROLE_UNLINK_USER_NOT_FOUND',\n ProductMsProductCreate = 'PRODUCT_MS_PRODUCT_CREATE',\n ProductMsProductUpdate = 'PRODUCT_MS_PRODUCT_UPDATE',\n ProductMsProductUpdateProductNotFound = 'PRODUCT_MS_PRODUCT_UPDATE_PRODUCT_NOT_FOUND'\n}\n\nexport type AuditTagRq = {\n relatedEntity?: InputMaybe<Scalars['String']['input']>;\n tagKey: Scalars['String']['input'];\n tagValue?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type AuditTrail = {\n __typename?: 'AuditTrail';\n action?: Maybe<Scalars['String']['output']>;\n class?: Maybe<Scalars['String']['output']>;\n codeLine?: Maybe<Scalars['String']['output']>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n data?: Maybe<Scalars['JSON']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n function?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n isActionTaken?: Maybe<Scalars['Boolean']['output']>;\n isSystemGenerated?: Maybe<Scalars['Boolean']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n msSource?: Maybe<Scalars['String']['output']>;\n sourceIp?: Maybe<Scalars['String']['output']>;\n tags?: Maybe<Array<Maybe<AuditTag>>>;\n user?: Maybe<AppLoginSubject>;\n};\n\nexport type AuditTrailCriteria = {\n /** ... audit action */\n action?: InputMaybe<Scalars['String']['input']>;\n /** ... class in microservice that send audit */\n class?: InputMaybe<Scalars['String']['input']>;\n /** ... code line in microservice that send audit */\n codeLine?: InputMaybe<Scalars['String']['input']>;\n /** ... country code */\n countryCode?: InputMaybe<Scalars['String']['input']>;\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n /** ... audit description */\n description?: InputMaybe<Scalars['String']['input']>;\n /** ... function in microservice that send audit */\n function?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n /** ... merchant guid */\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n /** ... microservice where audit from */\n msSource?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n /** ... related enitity changes */\n relatedEntities?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n /** ... user ip that make changes */\n sourceIp?: InputMaybe<Scalars['String']['input']>;\n /** ... tags key */\n tagKeys?: InputMaybe<Array<InputMaybe<AuditTagEnum>>>;\n /** ... tags value */\n tagValues?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n /** ... user guid that make changes */\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type AuthSettings = {\n __typename?: 'AuthSettings';\n /** ... Setting code */\n code?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['String']['output']>;\n /** ... user that create this setting */\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n /** ... Setting identifier */\n guid?: Maybe<Scalars['String']['output']>;\n /** ... Setting name */\n name?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['String']['output']>;\n /** ... last user that update this setting */\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n /** ... Setting value */\n value?: Maybe<Scalars['String']['output']>;\n};\n\nexport type AuthSettingsFilter = {\n code?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n value?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type AuthSettingsWithFilterRs = {\n __typename?: 'AuthSettingsWithFilterRs';\n data?: Maybe<Array<Maybe<AuthSettings>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type AuthorHistoricalSlug = {\n __typename?: 'AuthorHistoricalSlug';\n cmsUserGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n slug?: Maybe<Scalars['String']['output']>;\n};\n\nexport type AuthorHistoricalSlugCriteria = {\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n slug?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type AuthorHistoricalSlugResult = {\n __typename?: 'AuthorHistoricalSlugResult';\n data: Array<Maybe<AuthorHistoricalSlug>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type BirthdayTierBonusRule = {\n __typename?: 'BirthdayTierBonusRule';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n tierGuid?: Maybe<Scalars['String']['output']>;\n type?: Maybe<BirthdayTierBonusRuleTypeEnum>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n value?: Maybe<Scalars['Float']['output']>;\n};\n\nexport type BirthdayTierBonusRuleCriteria = {\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: Scalars['String']['input'];\n tierGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n type?: InputMaybe<BirthdayTierBonusRuleTypeEnum>;\n value?: InputMaybe<Scalars['Float']['input']>;\n};\n\nexport enum BirthdayTierBonusRuleTypeEnum {\n Fixed = 'FIXED'\n}\n\nexport type BirthdayTierBonusRulesRs = {\n __typename?: 'BirthdayTierBonusRulesRs';\n data?: Maybe<Array<Maybe<BirthdayTierBonusRule>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type Board = {\n __typename?: 'Board';\n boardAccess?: Maybe<Array<Maybe<BoardAccess>>>;\n code?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n model?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type BoardAccess = {\n __typename?: 'BoardAccess';\n board?: Maybe<Board>;\n boardGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n role?: Maybe<AppLoginRole>;\n roleGuid?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type BoardAccessCriteria = {\n boardGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n roleGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type BoardAccessRs = {\n __typename?: 'BoardAccessRs';\n data?: Maybe<Array<Maybe<BoardAccess>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type BoardCriteria = {\n code?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n model?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type BoardRs = {\n __typename?: 'BoardRs';\n data?: Maybe<Array<Maybe<Board>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type BookmarksQueryCriteria = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n postGuid?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum CacheControlScope {\n Private = 'PRIVATE',\n Public = 'PUBLIC'\n}\n\nexport type Card = {\n __typename?: 'Card';\n assignedLead?: Maybe<Scalars['String']['output']>;\n assignedMember?: Maybe<Scalars['String']['output']>;\n assignedMentor?: Maybe<Scalars['String']['output']>;\n assignedPmo?: Maybe<Scalars['String']['output']>;\n cardSprint?: Maybe<Array<Maybe<CardSprint>>>;\n code?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n deletedBy?: Maybe<Scalars['String']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n dueDateAt?: Maybe<Scalars['DateTime']['output']>;\n exts?: Maybe<Array<Maybe<CardExt>>>;\n guid?: Maybe<Scalars['String']['output']>;\n milliEffortPoint?: Maybe<Scalars['Int']['output']>;\n relatedConversationChild?: Maybe<Array<Maybe<GithubEventCardLink>>>;\n relatedConversationGroup?: Maybe<Array<Maybe<GithubEventCardLink>>>;\n relatedIssues?: Maybe<Array<Maybe<GithubEventCardLink>>>;\n relatedPRReview?: Maybe<Array<Maybe<GithubEventCardLink>>>;\n relatedPullRequest?: Maybe<Array<Maybe<GithubEventCardLink>>>;\n requestDetails?: Maybe<Request>;\n requestGuid?: Maybe<Scalars['String']['output']>;\n requestedAt?: Maybe<Scalars['DateTime']['output']>;\n sectionDetails?: Maybe<Section>;\n sectionGuid?: Maybe<Scalars['String']['output']>;\n sectionOrder?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n title?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CardCriteria = {\n assignedLead?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n assignedMember?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n assignedMentor?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n assignedPmo?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n code?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n milliEffortPoint?: InputMaybe<Scalars['Int']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n requestGuid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n sectionGuid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n sectionOrder?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type CardExt = {\n __typename?: 'CardExt';\n cardGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n extType?: Maybe<Scalars['String']['output']>;\n extValue?: Maybe<Scalars['String']['output']>;\n file?: Maybe<FetchFileResponse>;\n guid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CardLabel = {\n __typename?: 'CardLabel';\n card?: Maybe<Card>;\n cardGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n deletedBy?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n label?: Maybe<Label>;\n labelGuid?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CardLabelCriteria = {\n cardGuid?: InputMaybe<Scalars['String']['input']>;\n guids: Array<InputMaybe<Scalars['String']['input']>>;\n labelGuid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type CardLabelRs = {\n __typename?: 'CardLabelRs';\n data?: Maybe<Array<Maybe<CardLabel>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CardRs = {\n __typename?: 'CardRs';\n data?: Maybe<Array<Maybe<Card>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CardSprint = {\n __typename?: 'CardSprint';\n card?: Maybe<Card>;\n cardGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n deletedBy?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n sprint?: Maybe<Sprint>;\n sprintGuid?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CardSprintCriteria = {\n cardGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n createdBy?: InputMaybe<Scalars['String']['input']>;\n deletedBy?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n sprintGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n updatedBy?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CardSprintRs = {\n __typename?: 'CardSprintRs';\n data?: Maybe<Array<Maybe<CardSprint>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type Catalog = {\n __typename?: 'Catalog';\n categories?: Maybe<Array<Maybe<CatalogCategory>>>;\n countryId?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n currencyCode?: Maybe<Scalars['String']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n estDeliveryTimeUnit?: Maybe<EstDeliveryTimeUnit>;\n estDeliveryTimeValue?: Maybe<Scalars['Int']['output']>;\n exts?: Maybe<Array<Maybe<CatalogExt>>>;\n guid?: Maybe<Scalars['String']['output']>;\n isNeedApproval?: Maybe<Scalars['Boolean']['output']>;\n minLevelToReach?: Maybe<Scalars['Int']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n price?: Maybe<Scalars['Double']['output']>;\n productDenomGuid?: Maybe<Scalars['String']['output']>;\n redeemCount?: Maybe<Scalars['Int']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<CatalogStatus>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CatalogCategory = {\n __typename?: 'CatalogCategory';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n slug?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CatalogCategoryCriteria = {\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n slug?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: Scalars['String']['input'];\n};\n\nexport type CatalogCategoryRs = {\n __typename?: 'CatalogCategoryRs';\n data?: Maybe<Array<Maybe<CatalogCategory>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CatalogCriteria = {\n category?: InputMaybe<Scalars['String']['input']>;\n countryIds?: InputMaybe<Array<Scalars['String']['input']>>;\n currencyCodes?: InputMaybe<Array<Scalars['String']['input']>>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n isNeedApproval?: InputMaybe<Scalars['String']['input']>;\n minLevelToReach?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n price?: InputMaybe<Scalars['Double']['input']>;\n productDenomGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: CatalogStatus;\n};\n\nexport type CatalogExt = {\n __typename?: 'CatalogExt';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n extType?: Maybe<Scalars['String']['output']>;\n extValue?: Maybe<Scalars['String']['output']>;\n file?: Maybe<FetchFileResponse>;\n guid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CatalogRs = {\n __typename?: 'CatalogRs';\n data?: Maybe<Array<Maybe<Catalog>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum CatalogStatus {\n Active = 'ACTIVE',\n Deleted = 'DELETED'\n}\n\nexport type ChangePassRq = {\n /** ... new password to replace registered password */\n newPassword: Scalars['String']['input'];\n /** ... old registered password */\n oldPassword: Scalars['String']['input'];\n};\n\nexport type ChannelSelectionInput = {\n /** provider code */\n selectedProviderCode: Scalars['String']['input'];\n};\n\nexport type Checklist = {\n __typename?: 'Checklist';\n card?: Maybe<Card>;\n cardGuid?: Maybe<Scalars['String']['output']>;\n cardOrder?: Maybe<Scalars['Int']['output']>;\n checklistItem?: Maybe<Array<Maybe<ChecklistItem>>>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n deletedAt?: Maybe<Scalars['DateTime']['output']>;\n deletedBy?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n itemCount?: Maybe<Scalars['Int']['output']>;\n itemCountChecked?: Maybe<Scalars['Int']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ChecklistCriteria = {\n cardGuid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n cardOrder?: InputMaybe<Scalars['Int']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n itemCount?: InputMaybe<Scalars['Int']['input']>;\n itemCountChecked?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type ChecklistItem = {\n __typename?: 'ChecklistItem';\n assignedUser?: Maybe<Scalars['String']['output']>;\n checklist?: Maybe<Checklist>;\n checklistGuid?: Maybe<Scalars['String']['output']>;\n checklistOrder?: Maybe<Scalars['Int']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n deletedAt?: Maybe<Scalars['DateTime']['output']>;\n deletedBy?: Maybe<Scalars['String']['output']>;\n dueAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n isChecked?: Maybe<Scalars['Boolean']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ChecklistItemCriteria = {\n assignedUser?: InputMaybe<Scalars['String']['input']>;\n checklistGuid?: InputMaybe<Scalars['String']['input']>;\n checklistOrder?: InputMaybe<Scalars['Int']['input']>;\n dueAt?: InputMaybe<Scalars['DateTime']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n isChecked?: InputMaybe<Scalars['Boolean']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type ChecklistItemRs = {\n __typename?: 'ChecklistItemRs';\n data?: Maybe<Array<Maybe<ChecklistItem>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type ChecklistRs = {\n __typename?: 'ChecklistRs';\n data?: Maybe<Array<Maybe<Checklist>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CheckoutRequest = {\n amount: Scalars['String']['input'];\n channelCategory: Scalars['String']['input'];\n channelCode: Scalars['String']['input'];\n countryCode: Scalars['String']['input'];\n credentialGuid: Scalars['String']['input'];\n currencyCode: Scalars['String']['input'];\n denomGuid: Scalars['String']['input'];\n gameChildCode: Scalars['String']['input'];\n gameFieldJson: Scalars['JSON']['input'];\n gameParentCode: Scalars['String']['input'];\n merchantGuid: Scalars['String']['input'];\n platform: PlatformEnum;\n productGuid: Scalars['String']['input'];\n productId: Scalars['String']['input'];\n transactionRef: Scalars['String']['input'];\n txnAmount: Scalars['String']['input'];\n userGuid: Scalars['String']['input'];\n userLang?: Scalars['String']['input'];\n};\n\nexport type CheckoutResponse = {\n __typename?: 'CheckoutResponse';\n data?: Maybe<Scalars['JSON']['output']>;\n error?: Maybe<Scalars['JSON']['output']>;\n status?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CmsBookmarks = {\n __typename?: 'CmsBookmarks';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n postGuid?: Maybe<Scalars['String']['output']>;\n /** Bookmarked Post. */\n posts?: Maybe<Array<Maybe<CmsPost>>>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n userGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CmsCommentReaction = {\n __typename?: 'CmsCommentReaction';\n commentGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n lastCount?: Maybe<Scalars['String']['output']>;\n mutation?: Maybe<Scalars['String']['output']>;\n newCount?: Maybe<Scalars['Int']['output']>;\n postGuid?: Maybe<Scalars['String']['output']>;\n reactionType?: Maybe<Scalars['String']['output']>;\n userGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CmsLockPost = {\n __typename?: 'CmsLockPost';\n guid?: Maybe<Scalars['String']['output']>;\n postGuid?: Maybe<Scalars['String']['output']>;\n timestamp?: Maybe<Scalars['Long']['output']>;\n user?: Maybe<AppLoginSubject>;\n userGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CmsLockPostQueryCriteria = {\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n postGuid?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CmsPost = {\n __typename?: 'CmsPost';\n author?: Maybe<CmsUser>;\n authorGuid?: Maybe<Scalars['String']['output']>;\n authorName?: Maybe<Scalars['String']['output']>;\n /** Bookmark status based on user guid in Authorization header */\n bookmarkStatus?: Maybe<CmsBookmarks>;\n /** Category terms of the post */\n categories?: Maybe<Array<Maybe<CmsPostTerm>>>;\n commentCount?: Maybe<Scalars['Int']['output']>;\n /** Open/Closed post comment status */\n commentStatus?: Maybe<Scalars['String']['output']>;\n /** Comments of the post */\n comments?: Maybe<Array<Maybe<CmsPostComment>>>;\n /** Video thumbnail/Live thumbnail */\n contentOption?: Maybe<ContentOption>;\n country?: Maybe<Country>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n expiredAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n /** Pin or un-pin a post */\n isPinned?: Maybe<Scalars['Boolean']['output']>;\n lockPost?: Maybe<LockPost>;\n /** Content of the post */\n postBody?: Maybe<Scalars['String']['output']>;\n /** Ext of the post */\n postExt?: Maybe<Array<Maybe<CmsPostExt>>>;\n /** For SEO purposes. Max length: 160 */\n postMetaDescription?: Maybe<Scalars['String']['output']>;\n /** DRAFT/ON_REVIEW/PUBLISHED post status */\n postStatus?: Maybe<Scalars['String']['output']>;\n postTitle?: Maybe<Scalars['String']['output']>;\n publishedAt?: Maybe<Scalars['DateTime']['output']>;\n /** Reaction status of the post */\n reactionStatus?: Maybe<Array<Maybe<CmsReactionStatus>>>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n /** Tag terms of the post */\n tags?: Maybe<Array<Maybe<CmsPostTerm>>>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n urlKey?: Maybe<Scalars['String']['output']>;\n /** Video/Live content option source */\n videoSource?: Maybe<Scalars['String']['output']>;\n /** Settings for view count */\n viewCount?: Maybe<Scalars['Boolean']['output']>;\n /** views of the post */\n views?: Maybe<CmsPostViewsRecord>;\n};\n\nexport type CmsPostComment = {\n __typename?: 'CmsPostComment';\n author?: Maybe<CmsUser>;\n /** User browser information */\n commentAgent?: Maybe<Scalars['String']['output']>;\n commentAuthor?: Maybe<AppLoginSubject>;\n commentAuthorEmail: Scalars['String']['output'];\n commentAuthorIp: Scalars['String']['output'];\n commentAuthorName: Scalars['String']['output'];\n commentContent: Scalars['String']['output'];\n commentCount?: Maybe<CommentCount>;\n commentEmojiNo?: Maybe<Scalars['Int']['output']>;\n commentParentGuid?: Maybe<Scalars['String']['output']>;\n /** Possible value: APPROVED/UNAPPROVED */\n commentStatus: Scalars['String']['output'];\n createdAt: Scalars['DateTime']['output'];\n createdBy?: Maybe<AppLoginSubject>;\n guid: Scalars['String']['output'];\n postGuid?: Maybe<Scalars['String']['output']>;\n /** Reaction status of the comment */\n reactionStatus?: Maybe<Array<Maybe<CmsReactionStatus>>>;\n revision: Scalars['String']['output'];\n status: Scalars['String']['output'];\n updatedAt: Scalars['DateTime']['output'];\n updatedBy?: Maybe<AppLoginSubject>;\n};\n\nexport type CmsPostCommentFilter = {\n /** User browser information */\n commentAgent?: InputMaybe<Scalars['String']['input']>;\n commentAuthorEmail?: InputMaybe<Scalars['String']['input']>;\n commentAuthorGuid?: InputMaybe<Scalars['String']['input']>;\n commentAuthorIp?: InputMaybe<Scalars['String']['input']>;\n commentAuthorName?: InputMaybe<Scalars['String']['input']>;\n commentContent?: InputMaybe<Scalars['String']['input']>;\n commentEmojiNo?: InputMaybe<Scalars['Int']['input']>;\n commentParentGuid?: InputMaybe<Scalars['String']['input']>;\n /** Possible value: APPROVED/UNAPPROVED */\n commentStatus?: InputMaybe<Scalars['String']['input']>;\n createdAt?: InputMaybe<Scalars['DateTime']['input']>;\n createdByGuid?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n postGuid?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n updatedAt?: InputMaybe<Scalars['DateTime']['input']>;\n updatedByGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CmsPostCommentResult = {\n __typename?: 'CmsPostCommentResult';\n data: Array<Maybe<CmsPostComment>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\n/** CmsPost Connection */\nexport type CmsPostConnection = {\n __typename?: 'CmsPostConnection';\n /** Field edges */\n edges?: Maybe<Array<Maybe<CmsPostEdge>>>;\n /** Field pageInfo */\n pageInfo: PageInfo;\n};\n\n/** CmsPost Edge */\nexport type CmsPostEdge = {\n __typename?: 'CmsPostEdge';\n /** Field cursor */\n cursor?: Maybe<Scalars['String']['output']>;\n /** Field node */\n node?: Maybe<CmsPost>;\n};\n\nexport type CmsPostExt = {\n __typename?: 'CmsPostExt';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n /** Possible value: CONTENT_IMAGE_POST/SQUARE_THUMBNAIL */\n extType?: Maybe<Scalars['String']['output']>;\n /** Guid value referencing to Amazon S3 image file */\n extValue?: Maybe<Scalars['String']['output']>;\n file?: Maybe<FetchFileResponse>;\n guid?: Maybe<Scalars['String']['output']>;\n postGuid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CmsPostExtQueryCriteria = {\n createdAt?: InputMaybe<Scalars['DateTime']['input']>;\n createdByGuid?: InputMaybe<Scalars['String']['input']>;\n /** Possible value: CONTENT_IMAGE_POST/SQUARE_THUMBNAIL */\n extType?: InputMaybe<Scalars['String']['input']>;\n /** Guid value referencing to Amazon S3 image file */\n extValue?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n postGuid?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n updatedAt?: InputMaybe<Scalars['DateTime']['input']>;\n updatedByGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CmsPostFilter = {\n /** fill with end cursor id to get next data/page, cannot use this if already use 'before' filter */\n after?: InputMaybe<Scalars['String']['input']>;\n authorGuid?: InputMaybe<Scalars['String']['input']>;\n authorName?: InputMaybe<Scalars['String']['input']>;\n /** fill with start cursor id to get prev data/page, cannot use this if already use 'after' filter */\n before?: InputMaybe<Scalars['String']['input']>;\n commentCount?: InputMaybe<Scalars['Int']['input']>;\n /** Open/Closed post comment status */\n commentStatus?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n /** Country guid of the post */\n countryGuid?: InputMaybe<Scalars['String']['input']>;\n createdAt?: InputMaybe<Scalars['DateTime']['input']>;\n createdByGuid?: InputMaybe<Scalars['String']['input']>;\n expiredAt?: InputMaybe<Scalars['DateTime']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n /** Pin or un-pin a post */\n isPinned?: InputMaybe<Scalars['Boolean']['input']>;\n pageSize?: Scalars['Int']['input'];\n /** Content of the post */\n postBody?: InputMaybe<Scalars['String']['input']>;\n /** For SEO purposes. Max length: 160 */\n postMetaDescription?: InputMaybe<Scalars['String']['input']>;\n /** DRAFT/ON_REVIEW/PUBLISHED post status */\n postStatus?: InputMaybe<Scalars['String']['input']>;\n postTitle?: InputMaybe<Scalars['String']['input']>;\n publishedAt?: InputMaybe<Scalars['DateTime']['input']>;\n sortBy: CmsPostSortByEnum;\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n /** Search by termName: Name of the Category/Post tag */\n termNames?: InputMaybe<Array<Scalars['String']['input']>>;\n /** Search by termType, possible value: CATEGORY/POST_TAG */\n termType?: InputMaybe<Scalars['String']['input']>;\n updatedAt?: InputMaybe<Scalars['DateTime']['input']>;\n updatedByGuid?: InputMaybe<Scalars['String']['input']>;\n /** The part of a static URL that describes the post */\n urlKey?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CmsPostFilterPublic = {\n /** fill with end cursor id to get next data/page, cannot use this if already use 'before' filter */\n after?: InputMaybe<Scalars['String']['input']>;\n authorGuid?: InputMaybe<Scalars['String']['input']>;\n /** fill with start cursor id to get prev data/page, cannot use this if already use 'after' filter */\n before?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n expiredAt?: InputMaybe<Scalars['DateTime']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n /** Pin or un-pin a post */\n isPinned?: InputMaybe<Scalars['Boolean']['input']>;\n pageSize?: Scalars['Int']['input'];\n publishedAt?: InputMaybe<Scalars['DateTime']['input']>;\n sortBy: CmsPostPublicSortByEnum;\n sortDirection?: Scalars['String']['input'];\n /** Search by termName: Name of the Category/Post tag */\n termName?: InputMaybe<Scalars['String']['input']>;\n /** Search by termType, possible value: CATEGORY/POST_TAG */\n termType?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n /** The part of a static URL that describes the post */\n urlKey?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum CmsPostPublicSortByEnum {\n PublishedAt = 'publishedAt'\n}\n\nexport type CmsPostResult = {\n __typename?: 'CmsPostResult';\n data: Array<Maybe<CmsPost>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum CmsPostSortByEnum {\n ExpiredAt = 'expiredAt',\n PublishedAt = 'publishedAt',\n UpdatedAt = 'updatedAt'\n}\n\nexport type CmsPostTerm = {\n __typename?: 'CmsPostTerm';\n createdAt: Scalars['DateTime']['output'];\n createdBy?: Maybe<AppLoginSubject>;\n guid: Scalars['String']['output'];\n isHidden?: Maybe<Scalars['Boolean']['output']>;\n lastPostImageUrl?: Maybe<Scalars['String']['output']>;\n /** Cms Posts under selected Term */\n posts?: Maybe<Array<Maybe<CmsPost>>>;\n revision: Scalars['String']['output'];\n status: Scalars['String']['output'];\n termDescription?: Maybe<Scalars['String']['output']>;\n /** Name of the Category/Tag. Ex: Anime & Manga, Profile */\n termName: Scalars['String']['output'];\n termParentGuid?: Maybe<Scalars['String']['output']>;\n /** Possible value: CATEGORY/POST_TAG */\n termType: TermType;\n updatedAt: Scalars['DateTime']['output'];\n updatedBy?: Maybe<AppLoginSubject>;\n urlKey?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CmsPostTermFilter = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n createdAt?: InputMaybe<Scalars['DateTime']['input']>;\n createdByGuid?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n isHidden?: InputMaybe<Scalars['Boolean']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n termDescription?: InputMaybe<Scalars['String']['input']>;\n /** Name of the Category/Tag. Ex: Anime & Manga, Profile */\n termName?: InputMaybe<Scalars['String']['input']>;\n termParentGuid?: InputMaybe<Scalars['String']['input']>;\n /** Possible value: CATEGORY/POST_TAG */\n termType?: InputMaybe<TermType>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n updatedAt?: InputMaybe<Scalars['DateTime']['input']>;\n updatedByGuid?: InputMaybe<Scalars['String']['input']>;\n urlKey?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CmsPostTermRelationship = {\n __typename?: 'CmsPostTermRelationship';\n guid: Scalars['String']['output'];\n postGuid: Scalars['String']['output'];\n termGuid: Scalars['String']['output'];\n /** Category/Post tag ordering */\n termOrder: Scalars['Int']['output'];\n};\n\nexport type CmsPostTermRelationshipQueryCriteria = {\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n postGuid?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n termGuid?: InputMaybe<Scalars['String']['input']>;\n /** Category/Post tag ordering */\n termOrder?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type CmsPostTermResult = {\n __typename?: 'CmsPostTermResult';\n data: Array<Maybe<CmsPostTerm>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CmsPostViews = {\n __typename?: 'CmsPostViews';\n createdAt?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n postGuid?: Maybe<Scalars['String']['output']>;\n userGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CmsPostViewsCriteria = {\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n postGuid?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CmsPostViewsRecord = {\n __typename?: 'CmsPostViewsRecord';\n totalCount?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CmsPostViewsResult = {\n __typename?: 'CmsPostViewsResult';\n data: Array<Maybe<CmsPostViews>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CmsReactionCriteria = {\n commentGuid?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n isMutation?: InputMaybe<Scalars['Boolean']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n postGuid?: InputMaybe<Scalars['String']['input']>;\n /** Possible value: LIKE, HEART */\n reactionType?: InputMaybe<ReactionType>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CmsReactionResult = {\n __typename?: 'CmsReactionResult';\n data: Array<Maybe<CmsCommentReaction>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CmsReactionStatus = {\n __typename?: 'CmsReactionStatus';\n /** Possible value: 1= LIKE/HEART, -1= UNLIKE/UNHEART, null */\n mutation?: Maybe<Scalars['Int']['output']>;\n /** Possible value: LIKE, HEART */\n reactionType?: Maybe<Scalars['String']['output']>;\n totalCount?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CmsUser = {\n __typename?: 'CmsUser';\n authUserGuid?: Maybe<Scalars['String']['output']>;\n bio?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n file?: Maybe<FetchFileResponse>;\n guid?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n url?: Maybe<Scalars['String']['output']>;\n userName?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CmsUserFilter = {\n authUserGuid?: InputMaybe<Scalars['String']['input']>;\n bio?: InputMaybe<Scalars['String']['input']>;\n createdAt?: InputMaybe<Scalars['DateTime']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n picture?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n updatedAt?: InputMaybe<Scalars['DateTime']['input']>;\n updatedByGuid?: InputMaybe<Scalars['String']['input']>;\n url?: InputMaybe<Scalars['String']['input']>;\n userName?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type Comment = {\n __typename?: 'Comment';\n cardDetails?: Maybe<Card>;\n cardGuid?: Maybe<Scalars['String']['output']>;\n content?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n deletedBy?: Maybe<Scalars['String']['output']>;\n exts?: Maybe<Array<Maybe<CommentExt>>>;\n guid?: Maybe<Scalars['String']['output']>;\n requestDetails?: Maybe<Request>;\n requestGuid?: Maybe<Scalars['String']['output']>;\n showOnRequest?: Maybe<Scalars['Boolean']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CommentCount = {\n __typename?: 'CommentCount';\n count: Scalars['Int']['output'];\n};\n\nexport type CommentCriteria = {\n cardGuid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n requestGuid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n showOnRequest?: InputMaybe<Scalars['Boolean']['input']>;\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type CommentExt = {\n __typename?: 'CommentExt';\n commentGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n extType?: Maybe<Scalars['String']['output']>;\n extValue?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type CommentRs = {\n __typename?: 'CommentRs';\n data?: Maybe<Array<Maybe<Comment>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum CommentStatus {\n Approved = 'APPROVED',\n Unapproved = 'UNAPPROVED'\n}\n\nexport type Company = {\n __typename?: 'Company';\n approvalData?: Maybe<Scalars['String']['output']>;\n approvalGroupGuid?: Maybe<Scalars['String']['output']>;\n approvalGuid?: Maybe<Scalars['String']['output']>;\n approvalRemark?: Maybe<Scalars['String']['output']>;\n approvalStatus?: Maybe<Scalars['String']['output']>;\n approvalType?: Maybe<Scalars['String']['output']>;\n /** ... company code */\n code?: Maybe<Scalars['String']['output']>;\n /** ... company country */\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n /** ... user that create this company */\n createdBy?: Maybe<AppLoginSubject>;\n /** ... company description */\n description?: Maybe<Scalars['String']['output']>;\n /** ... company displayed name */\n displayName?: Maybe<Scalars['String']['output']>;\n /** ... Company identifier */\n guid?: Maybe<Scalars['String']['output']>;\n isInternal?: Maybe<Scalars['Boolean']['output']>;\n /** ... company name */\n name?: Maybe<Scalars['String']['output']>;\n /** ... data version */\n revision?: Maybe<Scalars['String']['output']>;\n /** ... company status */\n status?: Maybe<Status>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n /** ... last user that update this company */\n updatedBy?: Maybe<AppLoginSubject>;\n};\n\nexport type CompanyFilter = {\n code?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n displayName?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n isInternal?: Scalars['Boolean']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: Status;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type CompanyWithFilterRs = {\n __typename?: 'CompanyWithFilterRs';\n data?: Maybe<Array<Maybe<Company>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type Contact = {\n __typename?: 'Contact';\n address?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['String']['output']>;\n createdBy?: Maybe<AppLoginSubject>;\n deletedAt?: Maybe<Scalars['String']['output']>;\n email?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n phone?: Maybe<Scalars['String']['output']>;\n position?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Status>;\n type?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['String']['output']>;\n updatedBy?: Maybe<AppLoginSubject>;\n};\n\nexport enum ContentOption {\n LiveThumbnail = 'LIVE_THUMBNAIL',\n VideoThumbnail = 'VIDEO_THUMBNAIL'\n}\n\nexport type ContractTemplate = {\n __typename?: 'ContractTemplate';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n details?: Maybe<Array<ContractTemplateDetail>>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Status>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ContractTemplateCriteria = {\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n /** ... for filter by name ilike */\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n productSelection?: InputMaybe<ProductSelectionEnum>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: Status;\n};\n\nexport type ContractTemplateDetail = {\n __typename?: 'ContractTemplateDetail';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n paymentProvider?: Maybe<PaymentProvider>;\n product?: Maybe<ProductPage>;\n productDenom?: Maybe<ProductDenomination>;\n productSelection?: Maybe<ProductSelectionEnum>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ContractTemplateRs = PageableRs & {\n __typename?: 'ContractTemplateRs';\n data?: Maybe<Array<ContractTemplate>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type ConversionRq = {\n amount: Scalars['String']['input'];\n baseCurrency: Scalars['String']['input'];\n rateCurrency: Scalars['String']['input'];\n rateTime?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type ConversionRs = {\n __typename?: 'ConversionRs';\n conversionRate?: Maybe<Scalars['String']['output']>;\n convertedAmount?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Country = {\n __typename?: 'Country';\n code?: Maybe<Scalars['String']['output']>;\n createdDate?: Maybe<Scalars['DateTime']['output']>;\n defaultLangCode?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n langCodes?: Maybe<Array<Maybe<LangCode>>>;\n name?: Maybe<Scalars['String']['output']>;\n phoneCodes?: Maybe<Array<Maybe<PhoneCode>>>;\n status?: Maybe<Scalars['String']['output']>;\n updatedDate?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type CountryQueryCriteria = {\n code?: InputMaybe<Array<Scalars['String']['input']>>;\n defaultLangCode?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Array<Scalars['String']['input']>>;\n langCode?: InputMaybe<Array<Scalars['String']['input']>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n phoneCode?: InputMaybe<Array<Scalars['String']['input']>>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type CountryResult = {\n __typename?: 'CountryResult';\n data: Array<Maybe<Country>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CreateActivityHistoryRq = {\n boardGuid: Scalars['String']['input'];\n cardAttachmentGuid?: InputMaybe<Scalars['String']['input']>;\n cardGuid: Scalars['String']['input'];\n changedValue: Scalars['JSON']['input'];\n commentAttachmentGuid?: InputMaybe<Scalars['String']['input']>;\n commentGuid?: InputMaybe<Scalars['String']['input']>;\n requestAttachmentGuid?: InputMaybe<Scalars['String']['input']>;\n requestGuid: Scalars['String']['input'];\n showOnRequest?: Scalars['Boolean']['input'];\n type: ActivityHistoryType;\n};\n\nexport type CreateApiCredentialRoleRq = {\n apiCredentialGuid?: InputMaybe<Scalars['String']['input']>;\n createdAt?: InputMaybe<Scalars['String']['input']>;\n createdBy?: InputMaybe<Scalars['String']['input']>;\n roleGuid?: InputMaybe<Scalars['String']['input']>;\n updatedAt?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateApiCredentialRq = {\n accessKey?: InputMaybe<Scalars['String']['input']>;\n activeAt?: InputMaybe<Scalars['String']['input']>;\n createdAt?: InputMaybe<Scalars['String']['input']>;\n expiredAt?: InputMaybe<Scalars['String']['input']>;\n merchantContractGuid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n secret?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n transactionalUserGuid?: InputMaybe<Scalars['String']['input']>;\n version?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateApprovalRq = {\n approvalGroupGuid?: InputMaybe<Scalars['String']['input']>;\n /** ... required valid json string */\n data?: InputMaybe<Scalars['String']['input']>;\n entity: Scalars['String']['input'];\n entityGuid: Scalars['String']['input'];\n permission: Scalars['String']['input'];\n remark?: InputMaybe<Scalars['String']['input']>;\n sourcePlatform: Scalars['String']['input'];\n type: ApprovalTypeEnum;\n urlToCall: Scalars['String']['input'];\n};\n\nexport type CreateAuditTrailRq = {\n action?: InputMaybe<Scalars['String']['input']>;\n class?: InputMaybe<Scalars['String']['input']>;\n codeLine?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n data?: InputMaybe<Scalars['JSON']['input']>;\n description: Scalars['String']['input'];\n function?: InputMaybe<Scalars['String']['input']>;\n isSystemGenerated?: InputMaybe<Scalars['Boolean']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n msSource: Scalars['String']['input'];\n sourceIp: Scalars['String']['input'];\n tags?: InputMaybe<Array<InputMaybe<AuditTagRq>>>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateAuthSettingRq = {\n /** ... Setting code (not editable) */\n code?: InputMaybe<Scalars['String']['input']>;\n /** ... Setting name */\n name?: InputMaybe<Scalars['String']['input']>;\n /** ... Setting value */\n value?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateAuthorHistoricalSlugRq = {\n slug: Scalars['String']['input'];\n userGuid: Scalars['String']['input'];\n};\n\nexport type CreateBoardAccessRq = {\n /** Board Guid */\n boardGuid: Scalars['String']['input'];\n /** Expiration Time */\n expiredAt: Scalars['DateTime']['input'];\n /** Role Guid */\n roleGuid: Scalars['String']['input'];\n};\n\nexport type CreateBoardRq = {\n /** Board Code */\n code: Scalars['String']['input'];\n /** Board Model */\n model: Scalars['String']['input'];\n /** Board Name */\n name: Scalars['String']['input'];\n};\n\nexport type CreateBookmarkRq = {\n /** Post Guid that going to be saved. */\n postGuid?: InputMaybe<Scalars['String']['input']>;\n /** User Guid that saving the post. */\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateCardLabelRq = {\n /** Card Guid */\n cardGuid: Scalars['String']['input'];\n /** Label Guid */\n labelGuid: Scalars['String']['input'];\n};\n\nexport type CreateCardRq = {\n /** Card Lead */\n assignedLead?: InputMaybe<Scalars['String']['input']>;\n /** Card Member */\n assignedMember?: InputMaybe<Scalars['String']['input']>;\n /** Card Mentor */\n assignedMentor?: InputMaybe<Scalars['String']['input']>;\n /** Card PMO */\n assignedPmo?: InputMaybe<Scalars['String']['input']>;\n /** Card description */\n description?: InputMaybe<Scalars['String']['input']>;\n /** Card due date at */\n dueDateAt?: InputMaybe<Scalars['DateTime']['input']>;\n /** Card Effort Point */\n milliEffortPoint?: InputMaybe<Scalars['Int']['input']>;\n /** Card Request Guid */\n requestGuid: Scalars['String']['input'];\n /** Card requested at */\n requestedAt?: InputMaybe<Scalars['DateTime']['input']>;\n /** Card Section Guid */\n sectionGuid: Scalars['String']['input'];\n /** Card Section Order */\n sectionOrder: Scalars['Int']['input'];\n /** Card title */\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateCardSprintRq = {\n /** Card GUID */\n cardGuid: Scalars['String']['input'];\n /** Sprint GUID */\n sprintGuid: Scalars['String']['input'];\n};\n\nexport type CreateChecklistItemRq = {\n /** Checklist Item Assigned User */\n assignedUser?: InputMaybe<Scalars['String']['input']>;\n /** Checklist Item Checklist Guid */\n checklistGuid: Scalars['String']['input'];\n /** Checklist Item Checklist Order */\n checklistOrder: Scalars['Int']['input'];\n /** Checklist Item Due At */\n dueAt?: InputMaybe<Scalars['DateTime']['input']>;\n /** Checklist Item Is Checked */\n isChecked?: Scalars['Boolean']['input'];\n /** Checklist Item Name */\n name: Scalars['String']['input'];\n};\n\nexport type CreateChecklistRq = {\n /** Checklist Card Guid */\n cardGuid: Scalars['String']['input'];\n /** Checklist Card Order */\n cardOrder: Scalars['Int']['input'];\n /** Checklist Name */\n name: Scalars['String']['input'];\n};\n\nexport type CreateCmsPostCommentRq = {\n commentContent: Scalars['String']['input'];\n commentParentGuid?: InputMaybe<Scalars['String']['input']>;\n postGuid: Scalars['String']['input'];\n};\n\nexport type CreateCmsPostExtRq = {\n created_at?: InputMaybe<Scalars['DateTime']['input']>;\n created_by_guid?: InputMaybe<Scalars['String']['input']>;\n /** Possible value: CONTENT_IMAGE_POST/SQUARE_THUMBNAIL */\n ext_type: Scalars['String']['input'];\n /** Guid value referencing to Amazon S3 image file */\n ext_value: Scalars['String']['input'];\n post_guid: Scalars['String']['input'];\n status: Scalars['String']['input'];\n updated_at?: InputMaybe<Scalars['DateTime']['input']>;\n updated_by_guid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateCmsPostRq = {\n authorGuid: Scalars['String']['input'];\n authorName?: InputMaybe<Scalars['String']['input']>;\n commentCount?: InputMaybe<Scalars['Int']['input']>;\n /** Open/Closed post comment status */\n commentStatus: Scalars['String']['input'];\n /** Video thumbnail/Live thumbnail */\n contentOption?: InputMaybe<ContentOption>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n /** Country guid of the post */\n countryGuid?: InputMaybe<Scalars['String']['input']>;\n expiredAt?: InputMaybe<Scalars['DateTime']['input']>;\n /** Pin or un-pin a post */\n isPinned?: InputMaybe<Scalars['Boolean']['input']>;\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n /** Content of the post */\n postBody?: InputMaybe<Scalars['String']['input']>;\n /** Terms-Category guid of the post */\n postCategoryGuid?: InputMaybe<Scalars['String']['input']>;\n /** For SEO purposes. Max length: 160 */\n postMetaDescription?: InputMaybe<Scalars['String']['input']>;\n /** DRAFT/ON_REVIEW/PUBLISHED post status */\n postStatus: Scalars['String']['input'];\n /** Terms-PostTag names of the post */\n postTagNames: Array<InputMaybe<Scalars['String']['input']>>;\n postTitle: Scalars['String']['input'];\n publishedAt?: InputMaybe<Scalars['DateTime']['input']>;\n /** The part of a static URL that describes the post */\n urlKey: Scalars['String']['input'];\n /** Video/Live content option source */\n videoSource?: InputMaybe<Scalars['String']['input']>;\n /** Settings for view count */\n viewCount?: Scalars['Boolean']['input'];\n};\n\nexport type CreateCmsPostTermRelationshipRq = {\n postGuid: Scalars['String']['input'];\n termGuid?: InputMaybe<Scalars['String']['input']>;\n /** Category/Post tag ordering */\n termOrder: Scalars['Int']['input'];\n};\n\nexport type CreateCmsPostTermRq = {\n isHidden?: InputMaybe<Scalars['Boolean']['input']>;\n termDescription?: InputMaybe<Scalars['String']['input']>;\n /** Name of the Category/Tag. Ex: Anime & Manga, Profile */\n termName: Scalars['String']['input'];\n termParentGuid?: InputMaybe<Scalars['String']['input']>;\n /** Possible value: CATEGORY/POST_TAG */\n termType: TermType;\n urlKey?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateCmsReactionRq = {\n commentGuid?: InputMaybe<Scalars['String']['input']>;\n /** Possible value: true = LIKE/HEART , false = UNLIKE/UNHEART */\n isMutation: Scalars['Boolean']['input'];\n postGuid: Scalars['String']['input'];\n /** Possible value: LIKE, HEART */\n reactionType: ReactionType;\n userGuid: Scalars['String']['input'];\n};\n\nexport type CreateCmsUserRq = {\n authUserGuid?: InputMaybe<Scalars['String']['input']>;\n bio?: InputMaybe<Scalars['String']['input']>;\n picture?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n url?: InputMaybe<Scalars['String']['input']>;\n userName?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateCommentRq = {\n /** Comment Card Guid */\n cardGuid?: InputMaybe<Scalars['String']['input']>;\n /** Comment Content */\n content: Scalars['String']['input'];\n /** Comment Request Guid */\n requestGuid: Scalars['String']['input'];\n /** Comment Show On Request */\n showOnRequest?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type CreateCompanyRq = {\n /** ... company code */\n code?: InputMaybe<Scalars['String']['input']>;\n /** ... company country */\n countryCode?: InputMaybe<Scalars['String']['input']>;\n /** ... company description */\n description?: InputMaybe<Scalars['String']['input']>;\n /** ... company displayed name */\n displayName?: InputMaybe<Scalars['String']['input']>;\n isInternal?: InputMaybe<Scalars['Boolean']['input']>;\n /** ... company name */\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateConsentToAgreeRq = {\n historyAgreementGuid?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateContractTemplateRq = {\n contractTemplateDetailGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n name: Scalars['String']['input'];\n};\n\nexport type CreateCredentialDetailRq = {\n credentialGuid: Scalars['String']['input'];\n name: Scalars['String']['input'];\n type: CredentialType;\n value: Scalars['String']['input'];\n};\n\nexport type CreateDenomGroupRq = {\n name: Scalars['String']['input'];\n productPageGuid: Scalars['String']['input'];\n};\n\nexport type CreateEventLogsRq = {\n amount?: InputMaybe<Scalars['Float']['input']>;\n currency?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n paymentProviderGuid?: InputMaybe<Scalars['String']['input']>;\n pin?: InputMaybe<Scalars['String']['input']>;\n prizeGuid?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n reference?: InputMaybe<Scalars['String']['input']>;\n remark?: InputMaybe<Scalars['String']['input']>;\n serial?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n userInfo?: InputMaybe<Scalars['String']['input']>;\n utmCampaign?: InputMaybe<Scalars['String']['input']>;\n utmMedium?: InputMaybe<Scalars['String']['input']>;\n utmSource?: InputMaybe<Scalars['String']['input']>;\n value?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateEventManagementsRq = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n /** Discount Code Management GUID */\n dcmGuid?: InputMaybe<Scalars['String']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n eventAmount?: InputMaybe<Scalars['Long']['input']>;\n eventBonusAmount?: InputMaybe<Scalars['Long']['input']>;\n eventBonusType?: InputMaybe<EventBonusType>;\n eventQuota?: InputMaybe<Scalars['Int']['input']>;\n eventQuotaType?: InputMaybe<EventQuotaType>;\n fields?: InputMaybe<Scalars['String']['input']>;\n imageGuid?: InputMaybe<Scalars['String']['input']>;\n isFirstTimePay?: InputMaybe<Scalars['Boolean']['input']>;\n isRedRibbonFlag?: InputMaybe<Scalars['Boolean']['input']>;\n isReload?: InputMaybe<Scalars['Boolean']['input']>;\n isUniquePaymentQuota?: InputMaybe<Scalars['Boolean']['input']>;\n isUniqueUserDaily?: InputMaybe<Scalars['Boolean']['input']>;\n isWebtopup?: InputMaybe<Scalars['Boolean']['input']>;\n isWeekendOnly?: InputMaybe<Scalars['Boolean']['input']>;\n maximumEventBonus?: InputMaybe<Scalars['Int']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n mobileImageGuid?: InputMaybe<Scalars['String']['input']>;\n paymentProvider?: InputMaybe<Array<PciEventMgmtRq>>;\n productPageGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n slug?: InputMaybe<Scalars['String']['input']>;\n specialPriceAmount?: InputMaybe<Scalars['JSON']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n startHour?: InputMaybe<Scalars['Int']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n title: Scalars['String']['input'];\n tncUrl?: InputMaybe<Scalars['String']['input']>;\n type: Scalars['String']['input'];\n};\n\nexport type CreateEventParticipationRq = {\n additionalData?: InputMaybe<Scalars['String']['input']>;\n address?: InputMaybe<Scalars['String']['input']>;\n email?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n paymentProviderGuid?: InputMaybe<Scalars['String']['input']>;\n phone?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n reference?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateGithubEventCardLinkRq = {\n cardGuids: Array<Scalars['String']['input']>;\n createdByGithubUser?: InputMaybe<Scalars['String']['input']>;\n needActionFromGithubUser?: InputMaybe<Scalars['String']['input']>;\n repositoryUrl: Scalars['String']['input'];\n state: Scalars['String']['input'];\n type: GithubEventTypeEnum;\n typeNumber: Scalars['Int']['input'];\n typeUrl: Scalars['String']['input'];\n updatedByGithubUser?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateHistoryAgreementRq = {\n agreementCode?: InputMaybe<Scalars['String']['input']>;\n content?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n publishDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<Status>;\n version?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type CreateIdempotentRq = {\n /** date.beginningofday / date.beginningofmonth */\n dateRemark: Scalars['String']['input'];\n eventGuid: Scalars['String']['input'];\n userGuid: Scalars['String']['input'];\n};\n\nexport type CreateIpRq = {\n ipRange: Scalars['String']['input'];\n};\n\nexport type CreateLabelRq = {\n /** Board Guid */\n boardGuid: Scalars['String']['input'];\n /** Label Color */\n color: Scalars['String']['input'];\n /** Label Name */\n name: Scalars['String']['input'];\n /** Label Order */\n order: Scalars['Int']['input'];\n /** Label Type */\n type: Scalars['String']['input'];\n};\n\nexport type CreateMemberRq = {\n birthdayAt?: InputMaybe<Scalars['DateTime']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n email?: InputMaybe<Scalars['String']['input']>;\n gender?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n phone?: InputMaybe<Scalars['String']['input']>;\n preferredLangCode?: InputMaybe<Scalars['String']['input']>;\n referralCode?: InputMaybe<Scalars['String']['input']>;\n source?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateMerchantContactRq = {\n address?: InputMaybe<Scalars['String']['input']>;\n createdBy?: InputMaybe<Scalars['String']['input']>;\n email: Scalars['String']['input'];\n merchantGuid: Scalars['String']['input'];\n name: Scalars['String']['input'];\n phone: Scalars['String']['input'];\n position?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n updatedBy?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateMerchantContractRq = {\n contractTemplateGuid: Scalars['String']['input'];\n merchantGuid: Scalars['String']['input'];\n name: Scalars['String']['input'];\n};\n\nexport type CreateMerchantPaymentDenomRq = {\n amount?: InputMaybe<Scalars['Double']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateMerchantPaymentProviderRq = {\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n providerGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateMerchantRq = {\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n creditLimit?: InputMaybe<Scalars['Float']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n settlementCurrency?: InputMaybe<Scalars['String']['input']>;\n settlementType?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateMessageTemplateRq = {\n /** ... message id */\n messageId: Scalars['String']['input'];\n /** ... base64 encoded html or message template */\n value: Scalars['String']['input'];\n};\n\nexport type CreateNotificationAlertRq = {\n description: Scalars['String']['input'];\n receiverCompanyGuid?: InputMaybe<Scalars['String']['input']>;\n receiverGuid?: InputMaybe<Scalars['String']['input']>;\n receiverMerchantGuid?: InputMaybe<Scalars['String']['input']>;\n receiverPermissionCode?: InputMaybe<Scalars['String']['input']>;\n status: NotifAlertStatusEnum;\n targetGuid: Scalars['String']['input'];\n targetType: Scalars['String']['input'];\n title: Scalars['String']['input'];\n type: AlertTypeEnum;\n};\n\nexport type CreatePaymentChannelDenomRq = {\n amount?: InputMaybe<Scalars['Double']['input']>;\n code?: InputMaybe<Scalars['String']['input']>;\n credit?: InputMaybe<Scalars['Long']['input']>;\n payamentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreatePaymentChannelGuidelineRq = {\n paymentChannelGuid: Scalars['String']['input'];\n postGuid: Scalars['String']['input'];\n};\n\nexport type CreatePaymentChannelRq = {\n category?: InputMaybe<Scalars['String']['input']>;\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n charge?: InputMaybe<Scalars['Float']['input']>;\n chargeType?: InputMaybe<Scalars['String']['input']>;\n code?: InputMaybe<Scalars['String']['input']>;\n contractorCompanyGuid: Scalars['String']['input'];\n countryCode?: InputMaybe<Scalars['String']['input']>;\n credentialGuid: Scalars['String']['input'];\n field?: InputMaybe<Scalars['String']['input']>;\n isInquiryAvail?: InputMaybe<Scalars['Boolean']['input']>;\n isSupportLinkage?: Scalars['Boolean']['input'];\n isWhitelabel?: InputMaybe<Scalars['Boolean']['input']>;\n maxAmount?: InputMaybe<Scalars['Double']['input']>;\n metaFieldJson?: InputMaybe<Array<InputMaybe<PaymentChannelMetaField>>>;\n minAmount?: InputMaybe<Scalars['Double']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n parameter?: InputMaybe<Scalars['String']['input']>;\n providerCode?: InputMaybe<Scalars['String']['input']>;\n providerCompanyGuid?: InputMaybe<Scalars['String']['input']>;\n providerPriority?: InputMaybe<Scalars['String']['input']>;\n rateTemplateGuid?: InputMaybe<Scalars['String']['input']>;\n remark?: InputMaybe<Scalars['String']['input']>;\n requiredFieldJson?: InputMaybe<Array<InputMaybe<RequiredField>>>;\n route?: InputMaybe<Scalars['String']['input']>;\n serviceCompanyGuid: Scalars['String']['input'];\n vatPercentage?: InputMaybe<Scalars['Float']['input']>;\n};\n\nexport type CreatePaymentProviderRq = {\n category?: InputMaybe<Scalars['String']['input']>;\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n code?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n isSupportLinkage?: Scalars['Boolean']['input'];\n maxAmount?: InputMaybe<Scalars['Long']['input']>;\n minAmount?: InputMaybe<Scalars['Long']['input']>;\n providerExternalName?: InputMaybe<Scalars['String']['input']>;\n providerInternalName?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreatePermRq = {\n /** ... permission parent identifier */\n parentId?: InputMaybe<Scalars['String']['input']>;\n /** ... permission code */\n permCode: Scalars['String']['input'];\n /** ... permission description */\n permDescription?: InputMaybe<Scalars['String']['input']>;\n /** ... permission module */\n permModule: Scalars['String']['input'];\n /** ... permission name */\n permName: Scalars['String']['input'];\n /** ... permission scope */\n permScope: Scalars['String']['input'];\n /** ... permission type eX: WRITE, READ, etc */\n permType: Scalars['String']['input'];\n /** ... related micro frontend */\n relatedMf?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreatePostHistoricalSlugRq = {\n postGuid: Scalars['String']['input'];\n slug: Scalars['String']['input'];\n};\n\nexport type CreatePrizeEventRq = {\n amount?: InputMaybe<Scalars['Long']['input']>;\n category?: InputMaybe<Scalars['String']['input']>;\n code?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n remark?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateProductDenominationRq = {\n denomGroupGuid?: InputMaybe<Scalars['String']['input']>;\n imageGuid?: InputMaybe<Scalars['String']['input']>;\n isAdjustableSellingPrice?: InputMaybe<Scalars['Boolean']['input']>;\n isDirectVoucher?: InputMaybe<Scalars['Boolean']['input']>;\n isVoucherApi?: InputMaybe<Scalars['Boolean']['input']>;\n itemCode?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n partnerProductId?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n remark?: InputMaybe<Scalars['String']['input']>;\n voucherGroupGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateProductPageRq = {\n category: ProductPageCategory;\n communityLink?: InputMaybe<Scalars['String']['input']>;\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n content?: InputMaybe<Scalars['String']['input']>;\n countryCode: Scalars['String']['input'];\n credentialGuid?: InputMaybe<Scalars['String']['input']>;\n downloadLink?: InputMaybe<Scalars['String']['input']>;\n gameCenterImage?: InputMaybe<Scalars['String']['input']>;\n gameChildCode?: InputMaybe<Scalars['String']['input']>;\n gameParentCode?: InputMaybe<Scalars['String']['input']>;\n huaweiDownloadLink?: InputMaybe<Scalars['String']['input']>;\n iconGuid?: InputMaybe<Scalars['String']['input']>;\n influencerLink?: InputMaybe<Scalars['String']['input']>;\n iosDownloadLink?: InputMaybe<Scalars['String']['input']>;\n isEvent?: InputMaybe<Scalars['Boolean']['input']>;\n isNew?: InputMaybe<Scalars['Boolean']['input']>;\n isPromo?: InputMaybe<Scalars['Boolean']['input']>;\n isShowOnLandingPage?: InputMaybe<Scalars['Boolean']['input']>;\n isTesting?: InputMaybe<Scalars['Boolean']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n metaDescription?: InputMaybe<Scalars['String']['input']>;\n metaFieldJson?: InputMaybe<Array<InputMaybe<ProductPageMetaField>>>;\n metaTitle?: InputMaybe<Scalars['String']['input']>;\n officialSiteLink?: InputMaybe<Scalars['String']['input']>;\n providerCompanyGuid?: InputMaybe<Scalars['String']['input']>;\n reloadType?: ProductPageReloadTypeEnum;\n requiredFieldJson?: InputMaybe<Array<InputMaybe<RequiredField>>>;\n route?: InputMaybe<Scalars['String']['input']>;\n schemaMarkUp?: InputMaybe<Scalars['String']['input']>;\n tags?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n topUpGuideLink?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateProductPriceListRq = {\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n contractTemplateGuid: Scalars['String']['input'];\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n eventCode?: InputMaybe<Scalars['String']['input']>;\n magnifyValue?: InputMaybe<Scalars['Int']['input']>;\n paymentProviderCode?: InputMaybe<Scalars['String']['input']>;\n price?: InputMaybe<Scalars['Int']['input']>;\n priority: Scalars['Int']['input'];\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n rateTemplateGuid: Scalars['String']['input'];\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n type: PriceListType;\n};\n\nexport type CreateRaffleManagementsRq = {\n amount?: InputMaybe<Scalars['Long']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n eventQuota?: InputMaybe<Scalars['Int']['input']>;\n fields?: InputMaybe<Scalars['String']['input']>;\n imageGuid?: InputMaybe<Scalars['String']['input']>;\n isHide?: InputMaybe<Scalars['Boolean']['input']>;\n isLogin?: InputMaybe<Scalars['Boolean']['input']>;\n isReload?: InputMaybe<Scalars['Boolean']['input']>;\n isVoucher?: InputMaybe<Scalars['Boolean']['input']>;\n isWebtopup?: InputMaybe<Scalars['Boolean']['input']>;\n merchantGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n paymentChannelTargetType?: InputMaybe<PaymentChannelTargetType>;\n paymentProvider?: InputMaybe<Array<PciEventMgmtRq>>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n title: Scalars['String']['input'];\n type: Scalars['String']['input'];\n userDailyQuota?: InputMaybe<Scalars['Int']['input']>;\n userLimitQuota?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type CreateRateCardTemplateDetailsRq = {\n endAt?: InputMaybe<Scalars['DateTime']['input']>;\n magnifyValue: Scalars['Int']['input'];\n minimumRate: Scalars['Int']['input'];\n name: Scalars['String']['input'];\n paymentProviderCode?: InputMaybe<Scalars['String']['input']>;\n priority: Scalars['Int']['input'];\n rate: Scalars['Float']['input'];\n rateLogic: RateLogic;\n startAt?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type CreateRateCardTemplateRq = {\n code: Scalars['String']['input'];\n name: Scalars['String']['input'];\n};\n\nexport type CreateRatesRq = {\n /** currency base guid */\n baseGuid?: InputMaybe<Scalars['String']['input']>;\n /** list of currency code for rate */\n rateCcy?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\nexport type CreateRequestNatureRq = {\n code: Scalars['String']['input'];\n name: Scalars['String']['input'];\n};\n\nexport type CreateRequestNatureTypeRq = {\n attachmentConfigJson?: InputMaybe<Scalars['JSON']['input']>;\n codePrefix: Scalars['String']['input'];\n defaultBoardGuid?: InputMaybe<Scalars['String']['input']>;\n defaultPicUserGuid: Scalars['String']['input'];\n defaultSlaUnit?: InputMaybe<SlaUnit>;\n defaultSlaValue?: InputMaybe<Scalars['Int']['input']>;\n natureGuid: Scalars['String']['input'];\n /** Notification email cc */\n notificationCc: Scalars['String']['input'];\n /** Notification email to */\n notificationTo: Scalars['String']['input'];\n typeGuid: Scalars['String']['input'];\n};\n\nexport type CreateRequestRq = {\n assignedPicUserGuid: Scalars['String']['input'];\n countryCode: Scalars['String']['input'];\n isRequirementComplete?: Scalars['Boolean']['input'];\n picStatus?: Scalars['String']['input'];\n requestNatureGuid: Scalars['String']['input'];\n requestTypeGuid: Scalars['String']['input'];\n requestedTargetDate: Scalars['DateTime']['input'];\n sla: Scalars['Int']['input'];\n slaUnit: SlaUnit;\n status?: Scalars['String']['input'];\n title: Scalars['String']['input'];\n urgency: Scalars['Int']['input'];\n};\n\nexport type CreateRequestTypeRq = {\n code: Scalars['String']['input'];\n name: Scalars['String']['input'];\n};\n\nexport type CreateRoleRq = {\n /** ... role code */\n code: Scalars['String']['input'];\n /** ... role description */\n description?: InputMaybe<Scalars['String']['input']>;\n isInternal?: InputMaybe<Scalars['Boolean']['input']>;\n /** ... role name */\n name: Scalars['String']['input'];\n};\n\nexport type CreateSectionRq = {\n boardGuid: Scalars['String']['input'];\n name: Scalars['String']['input'];\n sectionOrder?: Scalars['Int']['input'];\n};\n\nexport type CreateSprintRq = {\n /** Sprint Finish At */\n finishAt: Scalars['DateTime']['input'];\n /** Sprint Name */\n name: Scalars['String']['input'];\n /** Sprint Start At */\n startAt: Scalars['DateTime']['input'];\n};\n\nexport type CreateSuspiciousTagRq = {\n actionCode?: InputMaybe<Scalars['String']['input']>;\n actionJson?: InputMaybe<Scalars['JSON']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n intervalParam?: InputMaybe<Scalars['String']['input']>;\n targetCode?: InputMaybe<Scalars['String']['input']>;\n threshold?: InputMaybe<Scalars['Int']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateTemplateDetailRq = {\n paymentProviderGuid?: InputMaybe<Scalars['String']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n productGuid?: InputMaybe<Scalars['String']['input']>;\n productSelection?: ProductSelectionEnum;\n};\n\nexport type CreateUserRq = {\n /** ... email to register user [Optional] */\n email?: InputMaybe<Scalars['String']['input']>;\n /** ... user gender [MALE/FEMALE] */\n gender: Gender;\n /** ... mobile nunber to register user [Optional] */\n mobileNumber?: InputMaybe<Scalars['String']['input']>;\n /** ... user full name */\n name: Scalars['String']['input'];\n};\n\nexport type CreateVacancyRq = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n requirement?: InputMaybe<Scalars['String']['input']>;\n responsibility?: InputMaybe<Scalars['String']['input']>;\n slug?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateVacancySettingsRq = {\n name?: InputMaybe<Scalars['String']['input']>;\n value?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\nexport type CreateVoucherGroupAutoGenRq = {\n /** amount of voucher that will auto generate */\n amount?: InputMaybe<Scalars['Int']['input']>;\n /** Timeout generation Input number in second */\n generationTimeout?: InputMaybe<Scalars['Int']['input']>;\n /** Minimum stock that will auto generate after reach */\n minThreshold?: InputMaybe<Scalars['Int']['input']>;\n /** GUID of voucher group */\n voucherGroupGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateVoucherGroupRq = {\n /** Currency */\n currency?: InputMaybe<Scalars['String']['input']>;\n /** to magnify value above before display to user */\n magnifyValue?: InputMaybe<Scalars['Int']['input']>;\n /** Name of voucher group */\n name?: InputMaybe<Scalars['String']['input']>;\n /** Voucher that have pin, this one to set the pattern */\n pinPattern?: InputMaybe<Scalars['JSON']['input']>;\n /** Voucher that have serial, this one to set the pattern */\n serialPattern?: InputMaybe<Scalars['JSON']['input']>;\n /** Type of voucher group */\n type?: InputMaybe<VoucherGroupType>;\n /** Voucher price to check when redeem */\n value?: InputMaybe<Scalars['Int']['input']>;\n /** Code for API type voucher only */\n voucherApiCode?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateVoucherRequestRq = {\n amount?: InputMaybe<Scalars['Int']['input']>;\n emailTo?: InputMaybe<Scalars['String']['input']>;\n expiredAt?: InputMaybe<Scalars['DateTime']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n merchantReference?: InputMaybe<Scalars['String']['input']>;\n messageTo?: InputMaybe<Scalars['String']['input']>;\n msSource?: InputMaybe<Scalars['String']['input']>;\n quantity?: InputMaybe<Scalars['Int']['input']>;\n remark?: InputMaybe<Scalars['String']['input']>;\n remarkExt?: InputMaybe<Scalars['String']['input']>;\n voucherGroupGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateVoucherRq = {\n /** voucher activation pin */\n activationPin?: InputMaybe<Scalars['String']['input']>;\n /** merchant guid */\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n /** voucher name */\n name?: InputMaybe<Scalars['String']['input']>;\n /** start date for this voucher able to redeemed */\n redeemableFrom?: InputMaybe<Scalars['DateTime']['input']>;\n /** end date for this voucher able to redeemed */\n redeemableTo?: InputMaybe<Scalars['DateTime']['input']>;\n /** voucher serial number */\n serialNumber?: InputMaybe<Scalars['String']['input']>;\n /** voucher softpin */\n softpin?: InputMaybe<Scalars['String']['input']>;\n /** voucher url key */\n urlKey?: InputMaybe<Scalars['String']['input']>;\n /** voucher group associated with this voucher */\n voucherGroupGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateVoucherTransactionRq = {\n amount: Scalars['Float']['input'];\n countryCode?: InputMaybe<Scalars['String']['input']>;\n createdIp?: InputMaybe<Scalars['String']['input']>;\n currencyCode: Scalars['String']['input'];\n emailTo?: InputMaybe<Scalars['String']['input']>;\n itemCode: Scalars['String']['input'];\n merchantGuid: Scalars['String']['input'];\n merchantReference: Scalars['String']['input'];\n messageTo?: InputMaybe<Scalars['String']['input']>;\n msSource: Scalars['String']['input'];\n parentItemCode: Scalars['String']['input'];\n paymentGatewayRef?: InputMaybe<Scalars['String']['input']>;\n quantity: Scalars['Int']['input'];\n remark?: InputMaybe<Scalars['String']['input']>;\n remarkExt?: InputMaybe<Scalars['String']['input']>;\n transactionReference: Scalars['String']['input'];\n type: Scalars['String']['input'];\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateVoucherTransactionTrailRq = {\n createdIp?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n request?: InputMaybe<Scalars['JSON']['input']>;\n response?: InputMaybe<Scalars['JSON']['input']>;\n transactionGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CreateWebConfigRq = {\n code?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n jsonValue?: InputMaybe<Scalars['String']['input']>;\n numberValue?: InputMaybe<Scalars['Int']['input']>;\n stringValue?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type Credential = {\n __typename?: 'Credential';\n code?: Maybe<Scalars['String']['output']>;\n companyGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n credentialDetail?: Maybe<Array<Maybe<CredentialDetail>>>;\n guid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<CredentialStatus>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n version?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CredentialDetail = {\n __typename?: 'CredentialDetail';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n credentialGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n isLatest?: Maybe<Scalars['Boolean']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n type?: Maybe<CredentialType>;\n value?: Maybe<Scalars['String']['output']>;\n version?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CredentialFilter = {\n code?: InputMaybe<Scalars['String']['input']>;\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n isDecrypt?: Scalars['Boolean']['input'];\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: CredentialStatus;\n type?: InputMaybe<CredentialType>;\n};\n\nexport type CredentialRs = {\n __typename?: 'CredentialRs';\n data?: Maybe<Array<Maybe<Credential>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum CredentialStatus {\n Active = 'ACTIVE',\n Deleted = 'DELETED'\n}\n\nexport type CredentialTrail = {\n __typename?: 'CredentialTrail';\n code?: Maybe<Scalars['String']['output']>;\n companyGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n details?: Maybe<Array<Maybe<CredentialDetail>>>;\n guid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<CredentialStatus>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n version?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type CredentialTrailRs = {\n __typename?: 'CredentialTrailRs';\n data?: Maybe<Array<Maybe<CredentialTrail>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum CredentialType {\n Secret = 'SECRET',\n Variable = 'VARIABLE'\n}\n\nexport type Currency = {\n __typename?: 'Currency';\n code?: Maybe<Scalars['String']['output']>;\n createdDate?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n magnifyValue?: Maybe<Scalars['Int']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedDate?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type CurrencyBase = {\n __typename?: 'CurrencyBase';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n currencyByCode?: Maybe<Currency>;\n guid?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type CurrencyBaseFilter = {\n currencyCode?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type CurrencyQueryCriteria = {\n code?: InputMaybe<Array<Scalars['String']['input']>>;\n guid?: InputMaybe<Array<Scalars['String']['input']>>;\n magnifyValues?: InputMaybe<Array<Scalars['Int']['input']>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type CurrencyResult = {\n __typename?: 'CurrencyResult';\n data: Array<Maybe<Currency>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type DeliveryRequest = {\n credentialGuid: Scalars['String']['input'];\n gameChildCode: Scalars['String']['input'];\n gameParentCode: Scalars['String']['input'];\n merchantCode: Scalars['String']['input'];\n platform: PlatformEnum;\n signature: Scalars['String']['input'];\n transactionRef: Scalars['String']['input'];\n txnAmount: Scalars['String']['input'];\n};\n\nexport type DeliveryResponse = {\n __typename?: 'DeliveryResponse';\n data?: Maybe<Scalars['JSON']['output']>;\n error?: Maybe<Scalars['JSON']['output']>;\n status?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type DenomGroup = {\n __typename?: 'DenomGroup';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n denominations?: Maybe<Array<Maybe<ProductDenomination>>>;\n file?: Maybe<FetchFileResponse>;\n guid?: Maybe<Scalars['String']['output']>;\n imageGuid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n productPageGuid?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type DenomGroupCriteria = {\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n productPageGuid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type DenomGroupRs = {\n __typename?: 'DenomGroupRs';\n data?: Maybe<Array<Maybe<DenomGroup>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type DenomSelectionInput = {\n /** amount */\n selectedAmount: Scalars['String']['input'];\n /** description */\n selectedDenom: Scalars['String']['input'];\n};\n\nexport type DenominationDetails = {\n __typename?: 'DenominationDetails';\n ccyCode?: Maybe<Scalars['String']['output']>;\n itemCode?: Maybe<Scalars['String']['output']>;\n magnifyValue?: Maybe<Scalars['Int']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n price?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type DenominationDetailsQueryCriteria = {\n itemCode?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type DetachPermRq = {\n /** permission identifier */\n permsGuid: Array<InputMaybe<Scalars['String']['input']>>;\n /** role identifier */\n roleGuid: Scalars['String']['input'];\n};\n\nexport type DocumentRequest = {\n __typename?: 'DocumentRequest';\n authUserGuid?: Maybe<Scalars['String']['output']>;\n fields?: Maybe<Array<Maybe<DocumentRequestField>>>;\n file?: Maybe<DocumentRequestFile>;\n guid?: Maybe<Scalars['String']['output']>;\n requestStatus?: Maybe<DocumentRequestStatus>;\n signer?: Maybe<Array<Maybe<DocumentRequestSigner>>>;\n subject?: Maybe<Scalars['String']['output']>;\n templateGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type DocumentRequestField = {\n __typename?: 'DocumentRequestField';\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n value?: Maybe<Scalars['String']['output']>;\n};\n\nexport type DocumentRequestFieldReq = {\n name?: InputMaybe<Scalars['String']['input']>;\n value?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type DocumentRequestFile = {\n __typename?: 'DocumentRequestFile';\n fileGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n version?: Maybe<Scalars['String']['output']>;\n};\n\nexport type DocumentRequestFileReq = {\n fileGuid?: InputMaybe<Scalars['String']['input']>;\n version?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type DocumentRequestFilter = {\n documentGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type DocumentRequestInput = {\n fields?: InputMaybe<Array<InputMaybe<DocumentRequestFieldReq>>>;\n signer?: InputMaybe<Array<InputMaybe<DocumentRequestSignerReq>>>;\n subject?: InputMaybe<Scalars['String']['input']>;\n templateGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum DocumentRequestSignStatus {\n Approved = 'APPROVED',\n Pending = 'PENDING',\n Rejected = 'REJECTED'\n}\n\nexport type DocumentRequestSigner = {\n __typename?: 'DocumentRequestSigner';\n actionAt?: Maybe<Scalars['DateTime']['output']>;\n authUserGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n permissionGuid?: Maybe<Scalars['String']['output']>;\n signIndex?: Maybe<Scalars['Int']['output']>;\n signStatus?: Maybe<Scalars['String']['output']>;\n};\n\nexport type DocumentRequestSignerReq = {\n authUserGuid?: InputMaybe<Scalars['String']['input']>;\n permissionGuid?: InputMaybe<Scalars['String']['input']>;\n signIndex?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport enum DocumentRequestStatus {\n Approved = 'APPROVED',\n Pending = 'PENDING',\n Rejected = 'REJECTED'\n}\n\nexport type DocumentRequestUpdateInput = {\n fields?: InputMaybe<Array<InputMaybe<DocumentRequestFieldReq>>>;\n file?: InputMaybe<Array<InputMaybe<DocumentRequestFileReq>>>;\n guid?: InputMaybe<Scalars['String']['input']>;\n signer?: InputMaybe<Array<InputMaybe<DocumentRequestSignerReq>>>;\n subject?: InputMaybe<Scalars['String']['input']>;\n templateGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type DocumentTemplate = {\n __typename?: 'DocumentTemplate';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n fields?: Maybe<Scalars['JSON']['output']>;\n footer?: Maybe<Scalars['JSON']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n header?: Maybe<Scalars['JSON']['output']>;\n logo?: Maybe<FetchFileResponse>;\n name?: Maybe<Scalars['String']['output']>;\n signs?: Maybe<Scalars['JSON']['output']>;\n status?: Maybe<DocumentTemplateStatus>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n watermark?: Maybe<FetchFileResponse>;\n};\n\nexport type DocumentTemplateFilter = {\n guid?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<DocumentTemplateStatus>;\n};\n\nexport type DocumentTemplateResponse = {\n __typename?: 'DocumentTemplateResponse';\n data?: Maybe<Array<Maybe<DocumentTemplate>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum DocumentTemplateStatus {\n Active = 'ACTIVE',\n Deleted = 'DELETED'\n}\n\nexport type EmailMessageTemplate = {\n __typename?: 'EmailMessageTemplate';\n createdDate?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n messageId?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedDate?: Maybe<Scalars['DateTime']['output']>;\n value?: Maybe<Scalars['String']['output']>;\n};\n\nexport type EmailMessageTemplatePageableResult = {\n __typename?: 'EmailMessageTemplatePageableResult';\n data: Array<Maybe<EmailMessageTemplate>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type EmailMsgTemplateCriteria = {\n /** ... message template identifier */\n guid?: InputMaybe<Scalars['String']['input']>;\n /** ... message id */\n messageId?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport enum ErrorDetail {\n /**\n * The deadline expired before the operation could complete.\n *\n * For operations that change the state of the system, this error\n * may be returned even if the operation has completed successfully.\n * For example, a successful response from a server could have been\n * delayed long enough for the deadline to expire.\n *\n * HTTP Mapping: 504 Gateway Timeout\n * Error Type: UNAVAILABLE\n */\n DeadlineExceeded = 'DEADLINE_EXCEEDED',\n /**\n * The server detected that the client is exhibiting a behavior that\n * might be generating excessive load.\n *\n * HTTP Mapping: 429 Too Many Requests or 420 Enhance Your Calm\n * Error Type: UNAVAILABLE\n */\n EnhanceYourCalm = 'ENHANCE_YOUR_CALM',\n /**\n * The requested field is not found in the schema.\n *\n * This differs from `NOT_FOUND` in that `NOT_FOUND` should be used when a\n * query is valid, but is unable to return a result (if, for example, a\n * specific video id doesn't exist). `FIELD_NOT_FOUND` is intended to be\n * returned by the server to signify that the requested field is not known to exist.\n * This may be returned in lieu of failing the entire query.\n * See also `PERMISSION_DENIED` for cases where the\n * requested field is invalid only for the given user or class of users.\n *\n * HTTP Mapping: 404 Not Found\n * Error Type: BAD_REQUEST\n */\n FieldNotFound = 'FIELD_NOT_FOUND',\n /**\n * The client specified an invalid argument.\n *\n * Note that this differs from `FAILED_PRECONDITION`.\n * `INVALID_ARGUMENT` indicates arguments that are problematic\n * regardless of the state of the system (e.g., a malformed file name).\n *\n * HTTP Mapping: 400 Bad Request\n * Error Type: BAD_REQUEST\n */\n InvalidArgument = 'INVALID_ARGUMENT',\n /**\n * The provided cursor is not valid.\n *\n * The most common usage for this error is when a client is paginating\n * through a list that uses stateful cursors. In that case, the provided\n * cursor may be expired.\n *\n * HTTP Mapping: 404 Not Found\n * Error Type: NOT_FOUND\n */\n InvalidCursor = 'INVALID_CURSOR',\n /**\n * Unable to perform operation because a required resource is missing.\n *\n * Example: Client is attempting to refresh a list, but the specified\n * list is expired. This requires an action by the client to get a new list.\n *\n * If the user is simply trying GET a resource that is not found,\n * use the NOT_FOUND error type. FAILED_PRECONDITION.MISSING_RESOURCE\n * is to be used particularly when the user is performing an operation\n * that requires a particular resource to exist.\n *\n * HTTP Mapping: 400 Bad Request or 500 Internal Server Error\n * Error Type: FAILED_PRECONDITION\n */\n MissingResource = 'MISSING_RESOURCE',\n /**\n * Service Error.\n *\n * There is a problem with an upstream service.\n *\n * This may be returned if a gateway receives an unknown error from a service\n * or if a service is unreachable.\n * If a request times out which waiting on a response from a service,\n * `DEADLINE_EXCEEDED` may be returned instead.\n * If a service returns a more specific error Type, the specific error Type may\n * be returned instead.\n *\n * HTTP Mapping: 502 Bad Gateway\n * Error Type: UNAVAILABLE\n */\n ServiceError = 'SERVICE_ERROR',\n /**\n * Request failed due to network errors.\n *\n * HTTP Mapping: 503 Unavailable\n * Error Type: UNAVAILABLE\n */\n TcpFailure = 'TCP_FAILURE',\n /**\n * Request throttled based on server concurrency limits.\n *\n * HTTP Mapping: 503 Unavailable\n * Error Type: UNAVAILABLE\n */\n ThrottledConcurrency = 'THROTTLED_CONCURRENCY',\n /**\n * Request throttled based on server CPU limits\n *\n * HTTP Mapping: 503 Unavailable.\n * Error Type: UNAVAILABLE\n */\n ThrottledCpu = 'THROTTLED_CPU',\n /**\n * The operation is not implemented or is not currently supported/enabled.\n *\n * HTTP Mapping: 501 Not Implemented\n * Error Type: BAD_REQUEST\n */\n Unimplemented = 'UNIMPLEMENTED',\n /**\n * Unknown error.\n *\n * This error should only be returned when no other error detail applies.\n * If a client sees an unknown errorDetail, it will be interpreted as UNKNOWN.\n *\n * HTTP Mapping: 500 Internal Server Error\n */\n Unknown = 'UNKNOWN'\n}\n\nexport enum ErrorType {\n /**\n * Bad Request.\n *\n * There is a problem with the request.\n * Retrying the same request is not likely to succeed.\n * An example would be a query or argument that cannot be deserialized.\n *\n * HTTP Mapping: 400 Bad Request\n */\n BadRequest = 'BAD_REQUEST',\n /**\n * The operation was rejected because the system is not in a state\n * required for the operation's execution. For example, the directory\n * to be deleted is non-empty, an rmdir operation is applied to\n * a non-directory, etc.\n *\n * Service implementers can use the following guidelines to decide\n * between `FAILED_PRECONDITION` and `UNAVAILABLE`:\n *\n * - Use `UNAVAILABLE` if the client can retry just the failing call.\n * - Use `FAILED_PRECONDITION` if the client should not retry until\n * the system state has been explicitly fixed. E.g., if an \"rmdir\"\n * fails because the directory is non-empty, `FAILED_PRECONDITION`\n * should be returned since the client should not retry unless\n * the files are deleted from the directory.\n *\n * HTTP Mapping: 400 Bad Request or 500 Internal Server Error\n */\n FailedPrecondition = 'FAILED_PRECONDITION',\n /**\n * Internal error.\n *\n * An unexpected internal error was encountered. This means that some\n * invariants expected by the underlying system have been broken.\n * This error code is reserved for serious errors.\n *\n * HTTP Mapping: 500 Internal Server Error\n */\n Internal = 'INTERNAL',\n /**\n * The requested entity was not found.\n *\n * This could apply to a resource that has never existed (e.g. bad resource id),\n * or a resource that no longer exists (e.g. cache expired.)\n *\n * Note to server developers: if a request is denied for an entire class\n * of users, such as gradual feature rollout or undocumented allowlist,\n * `NOT_FOUND` may be used. If a request is denied for some users within\n * a class of users, such as user-based access control, `PERMISSION_DENIED`\n * must be used.\n *\n * HTTP Mapping: 404 Not Found\n */\n NotFound = 'NOT_FOUND',\n /**\n * The caller does not have permission to execute the specified\n * operation.\n *\n * `PERMISSION_DENIED` must not be used for rejections\n * caused by exhausting some resource or quota.\n * `PERMISSION_DENIED` must not be used if the caller\n * cannot be identified (use `UNAUTHENTICATED`\n * instead for those errors).\n *\n * This error Type does not imply the\n * request is valid or the requested entity exists or satisfies\n * other pre-conditions.\n *\n * HTTP Mapping: 403 Forbidden\n */\n PermissionDenied = 'PERMISSION_DENIED',\n /**\n * The request does not have valid authentication credentials.\n *\n * This is intended to be returned only for routes that require\n * authentication.\n *\n * HTTP Mapping: 401 Unauthorized\n */\n Unauthenticated = 'UNAUTHENTICATED',\n /**\n * Currently Unavailable.\n *\n * The service is currently unavailable. This is most likely a\n * transient condition, which can be corrected by retrying with\n * a backoff.\n *\n * HTTP Mapping: 503 Unavailable\n */\n Unavailable = 'UNAVAILABLE',\n /**\n * Unknown error.\n *\n * For example, this error may be returned when\n * an error code received from another address space belongs to\n * an error space that is not known in this address space. Also\n * errors raised by APIs that do not return enough error information\n * may be converted to this error.\n *\n * If a client sees an unknown errorType, it will be interpreted as UNKNOWN.\n * Unknown errors MUST NOT trigger any special behavior. These MAY be treated\n * by an implementation as being equivalent to INTERNAL.\n *\n * When possible, a more specific error should be provided.\n *\n * HTTP Mapping: 520 Unknown Error\n */\n Unknown = 'UNKNOWN'\n}\n\nexport enum EstDeliveryTimeUnit {\n Day = 'DAY',\n Month = 'MONTH',\n Week = 'WEEK',\n Workday = 'WORKDAY'\n}\n\nexport enum EvaluationUnitEnum {\n Day = 'DAY',\n Month = 'MONTH',\n Year = 'YEAR'\n}\n\nexport enum EventBonusType {\n FixAmount = 'FIX_AMOUNT',\n Percentage = 'PERCENTAGE',\n SpecialPrice = 'SPECIAL_PRICE'\n}\n\nexport type EventLog = {\n __typename?: 'EventLog';\n amount?: Maybe<Scalars['Float']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n currency?: Maybe<Scalars['String']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n eventChannel?: Maybe<PaymentChannel>;\n eventProduct?: Maybe<ProductPage>;\n guid?: Maybe<Scalars['String']['output']>;\n paymentProviderGuid?: Maybe<Scalars['String']['output']>;\n pin?: Maybe<Scalars['String']['output']>;\n prizeGuid?: Maybe<Scalars['String']['output']>;\n reference?: Maybe<Scalars['String']['output']>;\n remark?: Maybe<Scalars['String']['output']>;\n serial?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n user?: Maybe<AppLoginSubject>;\n userInfo?: Maybe<Scalars['String']['output']>;\n utmCampaign?: Maybe<Scalars['String']['output']>;\n utmMedium?: Maybe<Scalars['String']['output']>;\n utmSource?: Maybe<Scalars['String']['output']>;\n value?: Maybe<Scalars['String']['output']>;\n};\n\nexport type EventLogRs = {\n __typename?: 'EventLogRs';\n data?: Maybe<Array<Maybe<EventLog>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type EventLogsCriteria = {\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n paymentProviderGuid?: InputMaybe<Scalars['String']['input']>;\n pin?: InputMaybe<Scalars['String']['input']>;\n prizeGuid?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n reference?: InputMaybe<Scalars['String']['input']>;\n serial?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n utmCampaign?: InputMaybe<Scalars['String']['input']>;\n utmMedium?: InputMaybe<Scalars['String']['input']>;\n utmSource?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type EventManagements = {\n __typename?: 'EventManagements';\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n dcmGuid?: Maybe<Scalars['String']['output']>;\n endDate?: Maybe<Scalars['DateTime']['output']>;\n eventAmount?: Maybe<Scalars['Long']['output']>;\n eventBonusAmount?: Maybe<Scalars['Long']['output']>;\n eventBonusType?: Maybe<Scalars['String']['output']>;\n eventQuota?: Maybe<Scalars['Int']['output']>;\n eventQuotaType?: Maybe<Scalars['String']['output']>;\n fields?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n imageGuid?: Maybe<Scalars['String']['output']>;\n isFirstTimePay?: Maybe<Scalars['Boolean']['output']>;\n isRedRibbonFlag?: Maybe<Scalars['Boolean']['output']>;\n isReload?: Maybe<Scalars['Boolean']['output']>;\n isUniquePaymentQuota?: Maybe<Scalars['Boolean']['output']>;\n isUniqueUserDaily?: Maybe<Scalars['Boolean']['output']>;\n isWebtopup?: Maybe<Scalars['Boolean']['output']>;\n isWeekendOnly?: Maybe<Scalars['Boolean']['output']>;\n maximumEventBonus?: Maybe<Scalars['Int']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n mobileImageGuid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n slug?: Maybe<Scalars['String']['output']>;\n specialPriceAmount?: Maybe<Scalars['JSON']['output']>;\n startDate?: Maybe<Scalars['DateTime']['output']>;\n startHour?: Maybe<Scalars['Int']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n title?: Maybe<Scalars['String']['output']>;\n tncUrl?: Maybe<Scalars['String']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type EventManagementsQueryCriteria = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type EventManagementsRs = {\n __typename?: 'EventManagementsRs';\n data: Array<Maybe<EventManagements>>;\n totalRecord: Scalars['Int']['output'];\n};\n\nexport type EventParticipation = {\n __typename?: 'EventParticipation';\n additionalData?: Maybe<Scalars['String']['output']>;\n address?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n email?: Maybe<Scalars['String']['output']>;\n eventChannel?: Maybe<PaymentChannel>;\n eventProduct?: Maybe<ProductPage>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n paymentProviderGuid?: Maybe<Scalars['String']['output']>;\n phone?: Maybe<Scalars['String']['output']>;\n reference?: Maybe<Scalars['String']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n user?: Maybe<AppLoginSubject>;\n};\n\nexport type EventParticipationCriteria = {\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n email?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n paymentProviderGuid?: InputMaybe<Scalars['String']['input']>;\n phone?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n reference?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type EventParticipationRs = {\n __typename?: 'EventParticipationRs';\n data?: Maybe<Array<Maybe<EventParticipation>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum EventQuotaType {\n ByAmount = 'BY_AMOUNT',\n Daily = 'DAILY',\n Monthly = 'MONTHLY'\n}\n\nexport enum EventType {\n Created = 'CREATED',\n Update = 'UPDATE'\n}\n\nexport type FetchFileResponse = {\n __typename?: 'FetchFileResponse';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n fileName?: Maybe<Scalars['String']['output']>;\n filePath?: Maybe<Scalars['String']['output']>;\n fileSize?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n publicUrl?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n userGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type File = {\n __typename?: 'File';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n fileName?: Maybe<Scalars['String']['output']>;\n filePath?: Maybe<Scalars['String']['output']>;\n fileSize?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n userGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type FileUploadResponse = {\n __typename?: 'FileUploadResponse';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n fileName?: Maybe<Scalars['String']['output']>;\n filePath?: Maybe<Scalars['String']['output']>;\n fileSize?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n isPublic?: Maybe<Scalars['Boolean']['output']>;\n publicUrl?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n userGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type FirebaseIdTokenRes = {\n __typename?: 'FirebaseIdTokenRes';\n expiresIn?: Maybe<Scalars['String']['output']>;\n idToken?: Maybe<Scalars['String']['output']>;\n isNewUser?: Maybe<Scalars['Boolean']['output']>;\n refreshToken?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ForceUpdateTransactionStatusRq = {\n remark?: InputMaybe<Scalars['String']['input']>;\n status: PaymentTxnResponseStatusEnum;\n transactionGuid: Scalars['String']['input'];\n};\n\nexport type ForgotPassOtpRq = {\n /** ... email attached to user */\n email?: InputMaybe<Scalars['String']['input']>;\n /** ... mobile number attached to user */\n mobileNumber?: InputMaybe<Scalars['String']['input']>;\n /** ... source platform where user registered */\n sourcePlatform: SourcePlatform;\n};\n\nexport type ForgotPassRq = {\n /** ... new user password to replace old password */\n newPassword: Scalars['String']['input'];\n /** ... email or mobile nummber attached to user */\n principalId: Scalars['String']['input'];\n /** ... source platform where user registered */\n sourcePlatform: SourcePlatform;\n /** ... verification code requested before restet password */\n verifCode: Scalars['String']['input'];\n};\n\nexport type GameRequiredField = {\n __typename?: 'GameRequiredField';\n dependant?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n options?: Maybe<Array<Maybe<Option>>>;\n type?: Maybe<Scalars['String']['output']>;\n};\n\nexport type GameRequiredFieldInput = {\n serverId?: InputMaybe<Scalars['String']['input']>;\n userId?: InputMaybe<Scalars['String']['input']>;\n username?: InputMaybe<Scalars['String']['input']>;\n zoneId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type GameTrail = {\n __typename?: 'GameTrail';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n eventType?: Maybe<Scalars['String']['output']>;\n gameId?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n requestData?: Maybe<Scalars['JSON']['output']>;\n requestPlatform?: Maybe<Scalars['String']['output']>;\n responseData?: Maybe<Scalars['JSON']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n txnRef?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type GameTransactionCreateRequest = {\n additionalData?: InputMaybe<Scalars['JSON']['input']>;\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n productGuid?: InputMaybe<Scalars['String']['input']>;\n requestPlatform?: InputMaybe<PlatformEnum>;\n sourceIp?: InputMaybe<Scalars['String']['input']>;\n transactionRef?: InputMaybe<Scalars['String']['input']>;\n txnCountryCode?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type GameTransactionQueryCriteria = {\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n gameRef?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n productGuid?: InputMaybe<Scalars['String']['input']>;\n requestPlatform?: InputMaybe<Scalars['String']['input']>;\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n sourceIp?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n transactionRef?: InputMaybe<Scalars['String']['input']>;\n txnCountryCode?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type GameTransactionUpdateRequest = {\n additionalData?: InputMaybe<Scalars['JSON']['input']>;\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n productGuid?: InputMaybe<Scalars['String']['input']>;\n requestPlatform?: InputMaybe<PlatformEnum>;\n sourceIp?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n txnCountryCode?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type GameTransactions = {\n __typename?: 'GameTransactions';\n additionalData?: Maybe<Scalars['JSON']['output']>;\n ccyCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['String']['output']>;\n gameRef?: Maybe<Scalars['String']['output']>;\n gameTrail?: Maybe<GameTrail>;\n guid?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n productDenomGuid?: Maybe<Scalars['String']['output']>;\n productGuid?: Maybe<Scalars['String']['output']>;\n requestPlatform?: Maybe<Scalars['String']['output']>;\n sourceIp?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n transactionRef?: Maybe<Scalars['String']['output']>;\n txnCountryCode?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['String']['output']>;\n userGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type GatewayCreateOrderRq = {\n /** Voucher Code on our side */\n denominationCode?: InputMaybe<Scalars['String']['input']>;\n /** Transaction Id for this voucher transaction */\n orderNo: Scalars['String']['input'];\n /** Product Id on 3rd party side */\n partnerProductId?: InputMaybe<Scalars['String']['input']>;\n /** Voucher API Code from Voucher Group */\n voucherCode?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum Gender {\n Female = 'FEMALE',\n Male = 'MALE'\n}\n\nexport type GenerateVoucherRq = {\n expiredDate?: InputMaybe<Scalars['DateTime']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n quantity: Scalars['Int']['input'];\n voucherGroupGuid: Scalars['String']['input'];\n};\n\nexport type GithubEvent = {\n __typename?: 'GithubEvent';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n eventAction?: Maybe<Scalars['String']['output']>;\n eventNumber?: Maybe<Scalars['Int']['output']>;\n eventType?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n messageJson?: Maybe<Scalars['JSON']['output']>;\n};\n\nexport type GithubEventCardLink = {\n __typename?: 'GithubEventCardLink';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGithubUser?: Maybe<Scalars['String']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n events?: Maybe<GithubEvent>;\n guid?: Maybe<Scalars['String']['output']>;\n needActionFromGithubUser?: Maybe<Scalars['String']['output']>;\n relatedConversationChild?: Maybe<Array<Maybe<GithubEventCardLink>>>;\n relatedConversationGroup?: Maybe<Array<Maybe<GithubEventCardLink>>>;\n relatedIssues?: Maybe<Array<Maybe<GithubEventCardLink>>>;\n relatedPRReview?: Maybe<Array<Maybe<GithubEventCardLink>>>;\n relatedPullRequest?: Maybe<Array<Maybe<GithubEventCardLink>>>;\n repositoryUrl?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n state?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n type?: Maybe<GithubEventTypeEnum>;\n typeNumber?: Maybe<Scalars['Int']['output']>;\n typeUrl?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGithubUser?: Maybe<Scalars['String']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type GithubEventCardLinkFilter = {\n cardGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n repositoryUrl?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n states?: InputMaybe<Array<Scalars['String']['input']>>;\n status?: InputMaybe<Scalars['String']['input']>;\n typeNumber?: InputMaybe<Scalars['Int']['input']>;\n typeUrl?: InputMaybe<Scalars['String']['input']>;\n types?: InputMaybe<Array<GithubEventTypeEnum>>;\n};\n\nexport type GithubEventCardLinkRs = {\n __typename?: 'GithubEventCardLinkRs';\n data?: Maybe<Array<Maybe<GithubEventCardLink>>>;\n totalData?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum GithubEventTypeEnum {\n CommitComment = 'COMMIT_COMMENT',\n Create = 'CREATE',\n Delete = 'DELETE',\n Deployment = 'DEPLOYMENT',\n DeploymentStatus = 'DEPLOYMENT_STATUS',\n Fork = 'FORK',\n Gollum = 'GOLLUM',\n Issues = 'ISSUES',\n IssueComment = 'ISSUE_COMMENT',\n Label = 'LABEL',\n Member = 'MEMBER',\n Membership = 'MEMBERSHIP',\n Milestone = 'MILESTONE',\n Organization = 'ORGANIZATION',\n OrgBlock = 'ORG_BLOCK',\n PageBuild = 'PAGE_BUILD',\n Ping = 'PING',\n Project = 'PROJECT',\n ProjectCard = 'PROJECT_CARD',\n ProjectColumn = 'PROJECT_COLUMN',\n Public = 'PUBLIC',\n PullRequest = 'PULL_REQUEST',\n PullRequestReview = 'PULL_REQUEST_REVIEW',\n PullRequestReviewComment = 'PULL_REQUEST_REVIEW_COMMENT',\n PullRequestReviewThread = 'PULL_REQUEST_REVIEW_THREAD',\n Push = 'PUSH',\n Release = 'RELEASE',\n Repository = 'REPOSITORY',\n RepositoryDispatch = 'REPOSITORY_DISPATCH',\n Status = 'STATUS',\n Team = 'TEAM',\n TeamAdd = 'TEAM_ADD',\n Watch = 'WATCH'\n}\n\nexport type HistoryAgreement = {\n __typename?: 'HistoryAgreement';\n content?: Maybe<Scalars['String']['output']>;\n countryCode?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n publishDate?: Maybe<Scalars['DateTime']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n version?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type HistoryAgreementQueryCriteria = {\n agreementCode?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n countryCode?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n guid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Array<InputMaybe<Status>>>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n version?: InputMaybe<Array<InputMaybe<Scalars['Int']['input']>>>;\n};\n\nexport type Idempotent = {\n __typename?: 'Idempotent';\n idempotent: Scalars['String']['output'];\n};\n\nexport type InitiateLinkageRq = {\n phone?: InputMaybe<Scalars['String']['input']>;\n providerCode: Scalars['String']['input'];\n};\n\nexport type InquiryRequest = {\n amount: Scalars['String']['input'];\n channelCategory: Scalars['String']['input'];\n channelCode: Scalars['String']['input'];\n countryCode: Scalars['String']['input'];\n credentialGuid: Scalars['String']['input'];\n currencyCode: Scalars['String']['input'];\n gameChildCode: Scalars['String']['input'];\n gameFieldJson: Scalars['JSON']['input'];\n gameParentCode: Scalars['String']['input'];\n platform: PlatformEnum;\n productId: Scalars['String']['input'];\n userLang?: Scalars['String']['input'];\n};\n\nexport type InquiryResponse = {\n __typename?: 'InquiryResponse';\n data?: Maybe<Scalars['JSON']['output']>;\n error?: Maybe<Scalars['JSON']['output']>;\n status?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum InternalRefundStatusEnum {\n Done = 'DONE',\n Pending = 'PENDING',\n ProcessedByMaker = 'PROCESSED_BY_MAKER',\n Processing = 'PROCESSING'\n}\n\nexport enum InternalStatus {\n Completed = 'COMPLETED',\n Fail = 'FAIL',\n PendingApproval = 'PENDING_APPROVAL',\n Processing = 'PROCESSING',\n Rejected = 'REJECTED',\n Todo = 'TODO'\n}\n\nexport type Ip = {\n __typename?: 'Ip';\n createdAt?: Maybe<Scalars['String']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n ipRange?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['String']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type IpQueryCriteria = {\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n ipRange?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type IpRs = {\n __typename?: 'IpRs';\n data?: Maybe<Array<Maybe<Ip>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type ItemPriceList = {\n __typename?: 'ItemPriceList';\n amount?: Maybe<Scalars['String']['output']>;\n code?: Maybe<Scalars['String']['output']>;\n currency?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Label = {\n __typename?: 'Label';\n board?: Maybe<Board>;\n boardGuid?: Maybe<Scalars['String']['output']>;\n cardLabel?: Maybe<Array<Maybe<CardLabel>>>;\n color?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n deletedBy?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n order?: Maybe<Scalars['Int']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type LabelCriteria = {\n boardGuid?: InputMaybe<Scalars['String']['input']>;\n color?: InputMaybe<Scalars['String']['input']>;\n guids: Array<InputMaybe<Scalars['String']['input']>>;\n name?: InputMaybe<Scalars['String']['input']>;\n order?: InputMaybe<Scalars['Int']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type LabelRs = {\n __typename?: 'LabelRs';\n data?: Maybe<Array<Maybe<Label>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type LangCode = {\n __typename?: 'LangCode';\n code?: Maybe<Scalars['String']['output']>;\n createdDate?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedDate?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type LinkablePaymentProvider = {\n __typename?: 'LinkablePaymentProvider';\n paymentProviders?: Maybe<Array<Maybe<PaymentProvider>>>;\n};\n\nexport type LinkageAccount = {\n __typename?: 'LinkageAccount';\n createdAt?: Maybe<Scalars['String']['output']>;\n expiredAt?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n linkagePaymentData?: Maybe<LinkagePaymentData>;\n paymentChannelGuid?: Maybe<Scalars['String']['output']>;\n paymentProviderCode?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['String']['output']>;\n userGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type LinkageAction = {\n __typename?: 'LinkageAction';\n qrCodeLink?: Maybe<Scalars['String']['output']>;\n redirectAppLink?: Maybe<Scalars['String']['output']>;\n redirectWebLink?: Maybe<Scalars['String']['output']>;\n};\n\nexport type LinkageInquiryRs = {\n __typename?: 'LinkageInquiryRs';\n linkageAccount?: Maybe<Array<Maybe<LinkageAccount>>>;\n};\n\nexport type LinkagePaymentData = {\n __typename?: 'LinkagePaymentData';\n active?: Maybe<Scalars['Boolean']['output']>;\n balance?: Maybe<Scalars['Int']['output']>;\n currency?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n};\n\nexport type LinkageRs = {\n __typename?: 'LinkageRs';\n action?: Maybe<LinkageAction>;\n linkageAccount?: Maybe<LinkageAccount>;\n message?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n};\n\nexport type LockPost = {\n __typename?: 'LockPost';\n guid?: Maybe<Scalars['String']['output']>;\n timestamp?: Maybe<Scalars['DateTime']['output']>;\n user?: Maybe<AppLoginSubject>;\n};\n\nexport type LoginResponse = {\n __typename?: 'LoginResponse';\n /** ... simple access token */\n accessToken?: Maybe<Scalars['String']['output']>;\n /** ... refresh token can use to request access token */\n refreshToken?: Maybe<Scalars['String']['output']>;\n roles?: Maybe<Array<Maybe<AppLoginRole>>>;\n /** ... suggested action */\n suggestedAction?: Maybe<SuggestedAction>;\n /** ... user detail */\n user?: Maybe<UserLogin>;\n};\n\nexport type LoginRq = {\n /** ... email registered to user */\n email?: InputMaybe<Scalars['String']['input']>;\n /** ... mobile number registered to user */\n mobileNumber?: InputMaybe<Scalars['String']['input']>;\n /** ... user password */\n password: Scalars['String']['input'];\n /** ... source platform where user registered */\n sourcePlatform: SourcePlatform;\n};\n\nexport enum MainAction {\n GoToChannelSelectionPage = 'GO_TO_CHANNEL_SELECTION_PAGE',\n GoToDenomSelectionPage = 'GO_TO_DENOM_SELECTION_PAGE',\n GoToFillPaymentRequiredFieldPage = 'GO_TO_FILL_PAYMENT_REQUIRED_FIELD_PAGE',\n GoToPciInitiationPage = 'GO_TO_PCI_INITIATION_PAGE'\n}\n\nexport type Member = {\n __typename?: 'Member';\n authUser?: Maybe<AppLoginSubject>;\n birthdayAt?: Maybe<Scalars['DateTime']['output']>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n email?: Maybe<Scalars['String']['output']>;\n gender?: Maybe<Scalars['String']['output']>;\n guid: Scalars['String']['output'];\n memberBan?: Maybe<MemberBan>;\n name?: Maybe<Scalars['String']['output']>;\n phone?: Maybe<Scalars['String']['output']>;\n preferredLangCode?: Maybe<Scalars['String']['output']>;\n referralCode?: Maybe<Scalars['String']['output']>;\n tiers?: Maybe<Array<Maybe<Tier>>>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type MemberBan = {\n __typename?: 'MemberBan';\n approvalActionAt?: Maybe<Scalars['DateTime']['output']>;\n approvalActionBy?: Maybe<AppLoginSubject>;\n approvalCreatedAt?: Maybe<Scalars['DateTime']['output']>;\n approvalData?: Maybe<Scalars['JSON']['output']>;\n approvalGuid?: Maybe<Scalars['String']['output']>;\n approvalStatus?: Maybe<Scalars['String']['output']>;\n approvalType?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<AppLoginSubject>;\n expiredAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n memberGuid?: Maybe<Scalars['String']['output']>;\n type?: Maybe<MemberBanType>;\n};\n\nexport enum MemberBanType {\n Ban = 'BAN',\n Unban = 'UNBAN'\n}\n\nexport type MemberCriteria = {\n banType?: InputMaybe<MemberBanType>;\n countryCodes?: InputMaybe<Array<Scalars['String']['input']>>;\n emails?: InputMaybe<Array<Scalars['String']['input']>>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n parentMemberGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n phones?: InputMaybe<Array<Scalars['String']['input']>>;\n referralCodes?: InputMaybe<Array<Scalars['String']['input']>>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n summaryCountryCodes?: InputMaybe<Array<Scalars['String']['input']>>;\n tierGuid?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type MemberPageableResponse = {\n __typename?: 'MemberPageableResponse';\n data?: Maybe<Array<Maybe<Member>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type MemberPoint = {\n __typename?: 'MemberPoint';\n amountSpent?: Maybe<Scalars['String']['output']>;\n countryId?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n currencyCode?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n memberGuid?: Maybe<Scalars['String']['output']>;\n pointRewarded?: Maybe<Scalars['Double']['output']>;\n reason?: Maybe<Scalars['String']['output']>;\n transactionRewardRef?: Maybe<Scalars['String']['output']>;\n type?: Maybe<MemberPointTypeEnum>;\n};\n\nexport type MemberPointCriteria = {\n amountSpent?: InputMaybe<Scalars['Int']['input']>;\n countryIds?: InputMaybe<Array<Scalars['String']['input']>>;\n currencyCodes?: InputMaybe<Array<Scalars['String']['input']>>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n memberGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n pointRewarded?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n transactionRewardRefs?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type MemberPointMutation = {\n __typename?: 'MemberPointMutation';\n countryId?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n currencyCode?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n isSystem?: Maybe<Scalars['Boolean']['output']>;\n memberGuid?: Maybe<Scalars['String']['output']>;\n pointAdd?: Maybe<Scalars['Double']['output']>;\n pointSubstract?: Maybe<Scalars['Double']['output']>;\n reason?: Maybe<Scalars['String']['output']>;\n transactionDate?: Maybe<Scalars['DateTime']['output']>;\n transactionSpentRef?: Maybe<Scalars['String']['output']>;\n type?: Maybe<MemberPointMutationTypeEnum>;\n};\n\nexport type MemberPointMutationCriteria = {\n countryIds?: InputMaybe<Array<Scalars['String']['input']>>;\n currencyCodes?: InputMaybe<Array<Scalars['String']['input']>>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n isSystem?: InputMaybe<Scalars['Boolean']['input']>;\n memberGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n pointAdd?: InputMaybe<Scalars['Int']['input']>;\n pointSubstract?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n transactionDate?: InputMaybe<Scalars['DateTime']['input']>;\n transactionSpentRefs?: InputMaybe<Array<Scalars['String']['input']>>;\n type?: InputMaybe<MemberPointMutationTypeEnum>;\n};\n\nexport enum MemberPointMutationTypeEnum {\n Adjustment = 'ADJUSTMENT',\n Bonus = 'BONUS',\n Rewarded = 'REWARDED',\n Spent = 'SPENT'\n}\n\nexport type MemberPointMutationsRs = {\n __typename?: 'MemberPointMutationsRs';\n data?: Maybe<Array<Maybe<MemberPointMutation>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type MemberPointSummary = {\n __typename?: 'MemberPointSummary';\n countryId?: Maybe<Scalars['String']['output']>;\n currencyCode?: Maybe<Scalars['String']['output']>;\n evaluationDate?: Maybe<Scalars['DateTime']['output']>;\n evaluationPoint?: Maybe<Scalars['Double']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n memberGuid?: Maybe<Scalars['String']['output']>;\n phone?: Maybe<Scalars['String']['output']>;\n points?: Maybe<Scalars['Double']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type MemberPointSummaryCriteria = {\n countryIds?: InputMaybe<Array<Scalars['String']['input']>>;\n currencyCodes?: InputMaybe<Array<Scalars['String']['input']>>;\n emails?: InputMaybe<Array<Scalars['String']['input']>>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n memberGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n phone?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n};\n\nexport type MemberPointSummaryRs = {\n __typename?: 'MemberPointSummaryRs';\n data?: Maybe<Array<Maybe<MemberPointSummary>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum MemberPointTypeEnum {\n Adjustment = 'ADJUSTMENT',\n Rewarded = 'REWARDED'\n}\n\nexport type MemberPointsRs = {\n __typename?: 'MemberPointsRs';\n data?: Maybe<Array<Maybe<MemberPoint>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type MembershipTimeseriesFilter = {\n aggType: AggregationTypeEnum;\n countryId?: InputMaybe<Scalars['String']['input']>;\n currencyCode?: InputMaybe<Scalars['String']['input']>;\n /** only for MEMBER_GROWTH_TS */\n gender?: InputMaybe<Scalars['String']['input']>;\n key: TimeseriesKeys;\n rangeInterval: RangeIntervalEnum;\n};\n\nexport type Merchant = {\n __typename?: 'Merchant';\n company?: Maybe<Company>;\n createBy?: Maybe<AppLoginSubject>;\n createdAt?: Maybe<Scalars['String']['output']>;\n creditLimit?: Maybe<Scalars['Float']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n logoGuid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n settlementCurrency?: Maybe<Scalars['String']['output']>;\n settlementType?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Status>;\n transactionalUser?: Maybe<AppLoginSubject>;\n updatedAt?: Maybe<Scalars['String']['output']>;\n updatedBy?: Maybe<AppLoginSubject>;\n};\n\nexport type MerchantBalance = {\n __typename?: 'MerchantBalance';\n ccyCode?: Maybe<Scalars['String']['output']>;\n createdBySubjectGuid?: Maybe<Scalars['String']['output']>;\n createdDate?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n merchantContractGuid?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n refundedCostAmount?: Maybe<Scalars['Int']['output']>;\n refundedCostMagnifyValue?: Maybe<Scalars['Int']['output']>;\n refundedFeeAmount?: Maybe<Scalars['Int']['output']>;\n refundedFeeMagnifyValue?: Maybe<Scalars['Int']['output']>;\n refundedGrossAmount?: Maybe<Scalars['Int']['output']>;\n refundedGrossMagnifyValue?: Maybe<Scalars['Int']['output']>;\n refundedNetAmount?: Maybe<Scalars['Int']['output']>;\n refundedNetMagnifyValue?: Maybe<Scalars['Int']['output']>;\n refundedTransactionCount?: Maybe<Scalars['Int']['output']>;\n refundedVatAmount?: Maybe<Scalars['Int']['output']>;\n refundedVatMagnifyValue?: Maybe<Scalars['Int']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n settlementCostAmount?: Maybe<Scalars['Int']['output']>;\n settlementCostMagnifyValue?: Maybe<Scalars['Int']['output']>;\n settlementFeeAmount?: Maybe<Scalars['Int']['output']>;\n settlementFeeMagnifyValue?: Maybe<Scalars['Int']['output']>;\n settlementGrossAmount?: Maybe<Scalars['Int']['output']>;\n settlementGrossMagnifyValue?: Maybe<Scalars['Int']['output']>;\n settlementNetAmount?: Maybe<Scalars['Int']['output']>;\n settlementNetMagnifyValue?: Maybe<Scalars['Int']['output']>;\n settlementVatAmount?: Maybe<Scalars['Int']['output']>;\n settlementVatMagnifyValue?: Maybe<Scalars['Int']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n transactionCount?: Maybe<Scalars['Int']['output']>;\n txnCostAmount?: Maybe<Scalars['Int']['output']>;\n txnCostMagnifyValue?: Maybe<Scalars['Int']['output']>;\n txnFeeAmount?: Maybe<Scalars['Int']['output']>;\n txnFeeMagnifyValue?: Maybe<Scalars['Int']['output']>;\n txnGrossAmount?: Maybe<Scalars['Int']['output']>;\n txnGrossMagnifyValue?: Maybe<Scalars['Int']['output']>;\n txnNetAmount?: Maybe<Scalars['Int']['output']>;\n txnNetMagnifyValue?: Maybe<Scalars['Int']['output']>;\n txnVatAmount?: Maybe<Scalars['Int']['output']>;\n txnVatMagnifyValue?: Maybe<Scalars['Int']['output']>;\n updatedBySubjectGuid?: Maybe<Scalars['String']['output']>;\n updatedDate?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type MerchantBalanceCriteria = {\n currencyCodes?: InputMaybe<Array<Scalars['String']['input']>>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n merchantContractGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n merchantGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n refundedTransactionCount?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: Scalars['String']['input'];\n transactionCount?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type MerchantBalanceRs = {\n __typename?: 'MerchantBalanceRs';\n data?: Maybe<Array<Maybe<MerchantBalance>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type MerchantContactFilterRq = {\n address?: InputMaybe<Scalars['String']['input']>;\n email?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n phone?: InputMaybe<Scalars['String']['input']>;\n position?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: Status;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type MerchantContactFilterRs = {\n __typename?: 'MerchantContactFilterRs';\n data?: Maybe<Array<Maybe<Contact>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type MerchantContract = {\n __typename?: 'MerchantContract';\n contractTemplate?: Maybe<ContractTemplate>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n merchant?: Maybe<Merchant>;\n name?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Status>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type MerchantContractCriteria = {\n code?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n merchantGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: Status;\n};\n\nexport type MerchantContractRs = PageableRs & {\n __typename?: 'MerchantContractRs';\n data?: Maybe<Array<Maybe<MerchantContract>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type MerchantFilter = {\n companyGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n companyName?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: Status;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type MerchantFilterRs = {\n __typename?: 'MerchantFilterRs';\n data?: Maybe<Array<Maybe<Merchant>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type MerchantPaymentDenomination = {\n __typename?: 'MerchantPaymentDenomination';\n amount?: Maybe<Scalars['Double']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n paymentChannelGuid?: Maybe<Scalars['String']['output']>;\n productDenomGuid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type MerchantPaymentProvider = {\n __typename?: 'MerchantPaymentProvider';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n providerGuid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type MerchantSummaryDetail = {\n __typename?: 'MerchantSummaryDetail';\n ccyCode?: Maybe<Scalars['String']['output']>;\n merchantRef?: Maybe<Scalars['String']['output']>;\n paymentProviderCode?: Maybe<Scalars['String']['output']>;\n paymentProviderGuid?: Maybe<Scalars['String']['output']>;\n paymentRef?: Maybe<Scalars['String']['output']>;\n summaryDetailProvider?: Maybe<PaymentProvider>;\n txnCostAmount?: Maybe<Scalars['Int']['output']>;\n txnDate?: Maybe<Scalars['DateTime']['output']>;\n txnFeeAmount?: Maybe<Scalars['Int']['output']>;\n txnGrossAmount?: Maybe<Scalars['Int']['output']>;\n txnNettAmount?: Maybe<Scalars['Int']['output']>;\n txnVatAmount?: Maybe<Scalars['Int']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n unipinRef?: Maybe<Scalars['String']['output']>;\n};\n\nexport type MerchantSummaryDetailFilter = {\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n keyword?: InputMaybe<Scalars['String']['input']>;\n merchantContractGuid?: InputMaybe<Scalars['String']['input']>;\n merchantRef?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n paymentProviderCode?: InputMaybe<Scalars['String']['input']>;\n paymentRef?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n summaryDateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n summaryDateTo?: InputMaybe<Scalars['DateTime']['input']>;\n summaryGuid: Scalars['String']['input'];\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n unipinRef?: InputMaybe<Scalars['String']['input']>;\n updatedDateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n updatedDateTo?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type MerchantSummaryDetailRs = {\n __typename?: 'MerchantSummaryDetailRs';\n data?: Maybe<Array<Maybe<MerchantSummaryDetail>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type MerchantSummaryFilter = {\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n contractGuid?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: Scalars['String']['input'];\n summaryDateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n summaryDateTo?: InputMaybe<Scalars['DateTime']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type MerchantSummaryRs = {\n __typename?: 'MerchantSummaryRs';\n data?: Maybe<Array<Maybe<MerchantTransactionSummaryEntity>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type MerchantTransactionSummaryEntity = {\n __typename?: 'MerchantTransactionSummaryEntity';\n ccyCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n isPaid?: Maybe<Scalars['Boolean']['output']>;\n magnifyValue?: Maybe<Scalars['Int']['output']>;\n merchantContractGuid?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n refundedCount?: Maybe<Scalars['Int']['output']>;\n refundedTxnCostAmount?: Maybe<Scalars['Int']['output']>;\n refundedTxnFeeAmount?: Maybe<Scalars['Int']['output']>;\n refundedTxnGrossAmount?: Maybe<Scalars['Int']['output']>;\n refundedTxnNettAmount?: Maybe<Scalars['Int']['output']>;\n refundedTxnVatAmount?: Maybe<Scalars['Int']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n settlementTxnCostAmount?: Maybe<Scalars['Int']['output']>;\n settlementTxnFeeAmount?: Maybe<Scalars['Int']['output']>;\n settlementTxnGrossAmount?: Maybe<Scalars['Int']['output']>;\n settlementTxnNettAmount?: Maybe<Scalars['Int']['output']>;\n settlementTxnVatAmount?: Maybe<Scalars['Int']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n summaryDate?: Maybe<Scalars['DateTime']['output']>;\n transactionCount?: Maybe<Scalars['Int']['output']>;\n txnCostAmount?: Maybe<Scalars['Int']['output']>;\n txnFeeAmount?: Maybe<Scalars['Int']['output']>;\n txnGrossAmount?: Maybe<Scalars['Int']['output']>;\n txnNettAmount?: Maybe<Scalars['Int']['output']>;\n txnVatAmount?: Maybe<Scalars['Int']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBySubjectGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Message = {\n __typename?: 'Message';\n message?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Mutation = {\n __typename?: 'Mutation';\n /** Create Author Historical Slug if user already exists */\n CmsMsCreateAuthorHistoricalSlug?: Maybe<AuthorHistoricalSlug>;\n ForexMsDeleteRates?: Maybe<Rates>;\n approvalMsApproveOrDeclineRequest?: Maybe<Scalars['String']['output']>;\n approvalMsCreateApprovalRequest?: Maybe<Array<Maybe<Approval>>>;\n approvalMsCreateDocumentApprovalRequest?: Maybe<DocumentRequest>;\n approvalMsDocumentApprovalRequestApprove?: Maybe<SimpleDocumentRequest>;\n approvalMsDocumentApprovalRequestReject?: Maybe<SimpleDocumentRequest>;\n approvalMsDocumentTemplateDelete?: Maybe<Scalars['String']['output']>;\n approvalMsUpdateDocumentApprovalRequest?: Maybe<DocumentRequest>;\n /** used by other ms to send their data changes audit */\n auditMsCreateAuditTrail?: Maybe<AuditTrail>;\n /** create supicious tag configuration */\n auditMsCreateSuspiciousTag?: Maybe<SuspiciousTag>;\n /** update supicious tag configuration */\n auditMsDeleteSuspiciousTag?: Maybe<SuspiciousTag>;\n /** update supicious tag configuration */\n auditMsUpdateSuspiciousTag?: Maybe<SuspiciousTag>;\n /** add permission to role */\n authMsAttachPermToRole?: Maybe<Scalars['String']['output']>;\n /**\n * add role to user.\n * expiredDuration (number of days) is use to calculated expired date (current date + expiredDuration)\n */\n authMsAttachRolesToUsers?: Maybe<Scalars['String']['output']>;\n /** This query allow user to change their password, need Authorization Header */\n authMsChangePassword?: Maybe<Scalars['String']['output']>;\n authMsCreateApiCredential?: Maybe<ApiCredential>;\n /** create auth ms settings */\n authMsCreateAuthSettings?: Maybe<AuthSettings>;\n /** create new Company */\n authMsCreateCompany?: Maybe<Company>;\n authMsCreateContactMerchant?: Maybe<Contact>;\n /** create new Merchant */\n authMsCreateMerchant?: Maybe<Merchant>;\n /** create new permission */\n authMsCreatePermission?: Maybe<AppPermDfn>;\n /** create new role */\n authMsCreateRole?: Maybe<AppLoginRole>;\n /** This query allow you to create super admin user. Cant create super admin if super admin already exists */\n authMsCreateSuperAdmin?: Maybe<Scalars['String']['output']>;\n /** create user by admin, need authorization and project header */\n authMsCreateUserProfile?: Maybe<UserByAdmin>;\n authMsDeleteApiCredential?: Maybe<ApiCredential>;\n /** delete existing auth ms settings */\n authMsDeleteAuthSettings?: Maybe<AuthSettings>;\n /** delete existing company */\n authMsDeleteCompany?: Maybe<Company>;\n authMsDeleteContactMerchant?: Maybe<Contact>;\n /** delete existing Merchant */\n authMsDeleteMerchant?: Maybe<Merchant>;\n /** delete existiing permission */\n authMsDeletePermission?: Maybe<Scalars['String']['output']>;\n /** delete existing role */\n authMsDeleteRole?: Maybe<AppLoginRole>;\n /** revoke permission to role */\n authMsDetachPermToRole?: Maybe<Scalars['String']['output']>;\n /** extend role to user linkage expired duration by days. */\n authMsExtendsRolesToUsersExpiredDate?: Maybe<Scalars['String']['output']>;\n /** This query allow user with certain perm to change other user password, need Authorization Header */\n authMsForceChangePassword?: Maybe<UserByAdmin>;\n /** This query allow user to reset their password */\n authMsForgotPassword?: Maybe<Scalars['String']['output']>;\n /** This query allow user to request reset password verification code */\n authMsForgotPasswordOtp?: Maybe<Scalars['String']['output']>;\n /** link company to merchants */\n authMsLinkCompanyToMerchants?: Maybe<Scalars['String']['output']>;\n /** link company to user */\n authMsLinkCompanyToUsers?: Maybe<Scalars['String']['output']>;\n /** link merchants to users */\n authMsLinkMerchantsToUsers?: Maybe<Scalars['String']['output']>;\n /** This query allow user to login */\n authMsLogin?: Maybe<LoginResponse>;\n /** This query allow user to refresh their access token */\n authMsRefreshAccessToken?: Maybe<Token>;\n /** This query allow user to do self registration */\n authMsRegister?: Maybe<AppLoginSubject>;\n /** This query use to resend email verification code */\n authMsResendEmailVerif?: Maybe<Scalars['String']['output']>;\n /** This query use to resend Mobile/OTP verification code */\n authMsResendMobileVerif?: Maybe<Scalars['String']['output']>;\n /** revole roles in from user */\n authMsRevokeRolesInUsers?: Maybe<Scalars['String']['output']>;\n /** This query allow user to validate firebase id token and login */\n authMsSocialLogin?: Maybe<LoginResponse>;\n /** temporary deactive user */\n authMsTemporaryUserDeactivation?: Maybe<Scalars['String']['output']>;\n /** unlink company to user */\n authMsUnLinkCompanyFromUsers?: Maybe<Scalars['String']['output']>;\n /** unlink company from merchants */\n authMsUnlinkCompanyFromMerchants?: Maybe<Scalars['String']['output']>;\n /** unlink merchnats from users */\n authMsUnlinkMerchantsFromUsers?: Maybe<Scalars['String']['output']>;\n authMsUpdateApiCredential?: Maybe<ApiCredential>;\n /** update existing auth ms settings */\n authMsUpdateAuthSettings?: Maybe<AuthSettings>;\n /** Update existion company */\n authMsUpdateCompany?: Maybe<Company>;\n authMsUpdateContactMerchant?: Maybe<Contact>;\n /** update existing Merchant */\n authMsUpdateMerchant?: Maybe<Merchant>;\n /** update existing permission */\n authMsUpdatePermission?: Maybe<AppPermDfn>;\n /** update user principal by admin */\n authMsUpdatePrincipalForAdmin?: Maybe<AppLoginSubject>;\n /** update existing role */\n authMsUpdateRole?: Maybe<AppLoginRole>;\n /** update user by admin */\n authMsUpdateUserForAdmin?: Maybe<AppLoginSubject>;\n /** update principal id by user owner */\n authMsUpdateUserPrincipalByOwner?: Maybe<AppLoginSubject>;\n /** request otp for update principal by owned user */\n authMsUpdateUserPrincipalOtp?: Maybe<Scalars['String']['output']>;\n /** update user profile by user it self, need authorization header */\n authMsUpdateUserProfile?: Maybe<AppLoginSubject>;\n /** This query allow user to do user confirmation after registration */\n authMsUserConfirm?: Maybe<Scalars['String']['output']>;\n cmsMsAssignTermToPost?: Maybe<CmsPostTermRelationship>;\n cmsMsCreateBookmark?: Maybe<CmsBookmarks>;\n cmsMsCreateComment?: Maybe<CmsPostComment>;\n cmsMsCreatePost?: Maybe<CmsPost>;\n cmsMsCreatePostExts?: Maybe<CmsPostExt>;\n cmsMsCreatePostHistoricalSlug?: Maybe<PostHistoricalSlug>;\n cmsMsCreatePostTerm?: Maybe<CmsPostTerm>;\n /** This query is used to insert post views, Authorization header [userGuid] is optional */\n cmsMsCreatePostViews?: Maybe<CmsPostViews>;\n cmsMsCreateReaction?: Maybe<CmsCommentReaction>;\n cmsMsCreateUser?: Maybe<CmsUser>;\n cmsMsDeleteBookmark?: Maybe<CmsBookmarks>;\n cmsMsDeleteComment?: Maybe<CmsPostComment>;\n cmsMsDeletePost?: Maybe<CmsPost>;\n cmsMsDeletePostExts?: Maybe<CmsPostExt>;\n cmsMsDeletePostTerm?: Maybe<Array<Maybe<CmsPostTerm>>>;\n cmsMsDeleteUser?: Maybe<Scalars['String']['output']>;\n /** This query is used to update the heartbeat timestamps for edited posts if exists for the given postGuid otherwise create a new entry, need Authorization Header */\n cmsMsLockingPost?: Maybe<IsSuccess>;\n cmsMsRemoveTermFromPost?: Maybe<Scalars['String']['output']>;\n cmsMsUpdateBookmark?: Maybe<CmsBookmarks>;\n cmsMsUpdatePost?: Maybe<CmsPost>;\n cmsMsUpdatePostExts?: Maybe<CmsPostExt>;\n cmsMsUpdatePostTerm?: Maybe<CmsPostTerm>;\n cmsMsUpdateUser?: Maybe<CmsUser>;\n consentMsConsentToAgree?: Maybe<UserConsent>;\n consentMsCreateHistoryAgreement?: Maybe<HistoryAgreement>;\n consentMsUpdateHistoryAgreement?: Maybe<HistoryAgreement>;\n deletePaymentProviderExt?: Maybe<Scalars['String']['output']>;\n /** remove this when there is field under mutation */\n emptyField?: Maybe<Scalars['String']['output']>;\n eventMsCreateEventLogs?: Maybe<EventLog>;\n eventMsCreateEventManagements?: Maybe<EventManagements>;\n eventMsCreateEventParticipation?: Maybe<EventParticipation>;\n eventMsCreateIdempotent?: Maybe<Idempotent>;\n eventMsCreatePrizeEvent?: Maybe<PrizeEvent>;\n eventMsCreateRaffleManagements?: Maybe<RaffleManagements>;\n eventMsDeleteEventManagements?: Maybe<EventManagements>;\n eventMsDeleteRaffleManagements?: Maybe<RaffleManagements>;\n eventMsParticipateRaffle?: Maybe<EventParticipation>;\n eventMsUpdateEventLogs?: Maybe<EventLog>;\n eventMsUpdateEventManagements?: Maybe<EventManagements>;\n eventMsUpdateEventParticipation?: Maybe<EventParticipation>;\n eventMsUpdateRaffleManagements?: Maybe<RaffleManagements>;\n fileMgmtSysMsDeleteReusableFile?: Maybe<Scalars['String']['output']>;\n fileMgmtSysMsFileAccessControl?: Maybe<File>;\n fileMgmtSysMsFileDeletion?: Maybe<IsSuccess>;\n fileMgmtSysMsFileDownload?: Maybe<File>;\n fileMgmtSysMsFileNotification?: Maybe<File>;\n fileMgmtSysMsFileSharing?: Maybe<File>;\n fileMgmtSysMsFileStreaming?: Maybe<File>;\n fileMgmtSysMsFileUpload?: Maybe<FileUploadResponse>;\n fileMgmtSysMsFileVersioning?: Maybe<File>;\n fileMgmtSysMsUpdateReusableFile?: Maybe<ReusableFile>;\n forexMsCreateCurrencyBase?: Maybe<CurrencyBase>;\n forexMsCreateRates?: Maybe<Array<Maybe<Rates>>>;\n forexMsDeleteCurrencyBase?: Maybe<CurrencyBase>;\n forexMsUpdateAllRateLog?: Maybe<Scalars['String']['output']>;\n forexMsUpdateCurrencyBase?: Maybe<CurrencyBase>;\n forexMsUpdateRates?: Maybe<Rates>;\n ggwMsCheckout?: Maybe<CheckoutResponse>;\n ggwMsCreateGameTransaction?: Maybe<GameTransactions>;\n ggwMsDeleteGameTransaction?: Maybe<GameTransactions>;\n ggwMsDelivery?: Maybe<DeliveryResponse>;\n ggwMsInquiry?: Maybe<InquiryResponse>;\n ggwMsUpdateGameTransaction?: Maybe<GameTransactions>;\n /**\n * This mutation is replaced by REST endpoint due to file upload issue on graphql\n * @deprecated No longer supported\n */\n humanResourcesMsApply?: Maybe<VacancyApplication>;\n humanResourcesMsCreateVacancy?: Maybe<Vacancy>;\n humanResourcesMsCreateVacancySettings?: Maybe<VacancySettings>;\n humanResourcesMsDeleteVacancy?: Maybe<Vacancy>;\n humanResourcesMsDeleteVacancySettings?: Maybe<VacancySettings>;\n humanResourcesMsUpdateVacancy?: Maybe<Vacancy>;\n humanResourcesMsUpdateVacancySettings?: Maybe<VacancySettings>;\n membershipMsAssignTierToMember?: Maybe<Scalars['String']['output']>;\n membershipMsBanUser?: Maybe<Scalars['String']['output']>;\n membershipMsCreateBirthdayTierBonusRule?: Maybe<BirthdayTierBonusRule>;\n membershipMsCreateCatalog?: Maybe<Catalog>;\n membershipMsCreateCatalogCategory?: Maybe<CatalogCategory>;\n membershipMsCreateMemberPoint?: Maybe<MemberPoint>;\n membershipMsCreateMemberPointMutation?: Maybe<MemberPointMutation>;\n membershipMsCreateRedeemTransaction?: Maybe<RedeemTransaction>;\n membershipMsCreateTier?: Maybe<Tier>;\n membershipMsCreateTierBonusRule?: Maybe<TierBonusRule>;\n membershipMsCreateTierUnlockBonusRule?: Maybe<TierUnlockBonusRule>;\n membershipMsDeleteBirthdayTierBonusRule?: Maybe<Scalars['String']['output']>;\n membershipMsDeleteCatalog?: Maybe<Scalars['String']['output']>;\n membershipMsDeleteCatalogCategory?: Maybe<Scalars['String']['output']>;\n membershipMsDeleteCatalogExt?: Maybe<Scalars['String']['output']>;\n membershipMsDeleteTier?: Maybe<Scalars['String']['output']>;\n membershipMsDeleteTierBonusRule?: Maybe<Scalars['String']['output']>;\n membershipMsDeleteTierExt?: Maybe<Scalars['String']['output']>;\n membershipMsDeleteTierUnlockBonusRule?: Maybe<Scalars['String']['output']>;\n membershipMsUpdateBirthdayTierBonusRule?: Maybe<BirthdayTierBonusRule>;\n membershipMsUpdateCatalog?: Maybe<Catalog>;\n membershipMsUpdateCatalogCategory?: Maybe<CatalogCategory>;\n membershipMsUpdateRedeemTransaction?: Maybe<RedeemTransaction>;\n membershipMsUpdateTier?: Maybe<Tier>;\n membershipMsUpdateTierBonusRule?: Maybe<TierBonusRule>;\n membershipMsUpdateTierUnlockBonusRule?: Maybe<TierUnlockBonusRule>;\n /** create new message template */\n notificationMsCreateEmailMessageTemplate?: Maybe<EmailMessageTemplate>;\n notificationMsCreateNotificationAlert?: Maybe<NotificationAlert>;\n notificationMsCreateUserFcm?: Maybe<UserFcm>;\n notificationMsReadNotificationAlert?: Maybe<Scalars['String']['output']>;\n /** update existing message template */\n notificationMsUpdateEmailMessageTemplate?: Maybe<EmailMessageTemplate>;\n pgwMsForceUpdateTransactionStatus?: Maybe<Scalars['String']['output']>;\n pgwMsInitiateLinkage?: Maybe<LinkageRs>;\n pgwMsUpdateInternalRefundStatus?: Maybe<UpdateInternalRefundStatusRs>;\n pgwMsUpdateMakerInternalRefundStatus?: Maybe<UpdateInternalRefundStatusRs>;\n pgwMsUpdateTransactionRefund?: Maybe<TransactionRefund>;\n productMsAddDenomToDenomGroup?: Maybe<Scalars['String']['output']>;\n productMsCreateContractTemplate?: Maybe<ContractTemplate>;\n productMsCreateDenomGroup?: Maybe<DenomGroup>;\n productMsCreateIp?: Maybe<Ip>;\n productMsCreateMerchantContract?: Maybe<MerchantContract>;\n productMsCreateMerchantPaymentDenomination?: Maybe<MerchantPaymentDenomination>;\n productMsCreateMerchantPaymentProvider?: Maybe<MerchantPaymentProvider>;\n productMsCreatePaymentChannel?: Maybe<PaymentChannel>;\n productMsCreatePaymentChannelDenomination?: Maybe<PaymentChannelDenomination>;\n productMsCreatePaymentChannelGuideline?: Maybe<PaymentChannelGuideline>;\n productMsCreatePaymentProvider?: Maybe<PaymentProvider>;\n productMsCreateProductDenomination?: Maybe<ProductDenomination>;\n productMsCreateProductPage?: Maybe<ProductPage>;\n productMsCreateProductPriceList?: Maybe<ProductPriceList>;\n productMsCreateRateCardTemplate?: Maybe<RateCardTemplate>;\n productMsCreateRateCardTemplateDetails?: Maybe<RateCardTemplate>;\n productMsDeleteContractTemplate?: Maybe<ContractTemplate>;\n productMsDeleteDenomGroup?: Maybe<DenomGroup>;\n productMsDeleteIp?: Maybe<Ip>;\n productMsDeleteMerchantContract?: Maybe<MerchantContract>;\n productMsDeletePaymentChannel?: Maybe<PaymentChannel>;\n productMsDeletePaymentChannelGuideline?: Maybe<PaymentChannelGuideline>;\n productMsDeletePaymentProvider?: Maybe<PaymentProvider>;\n productMsDeleteProductDenomination?: Maybe<Scalars['String']['output']>;\n productMsDeleteProductPage?: Maybe<Scalars['String']['output']>;\n productMsDeleteProductPriceList?: Maybe<ProductPriceList>;\n productMsDeleteRateCardTemplate?: Maybe<Scalars['String']['output']>;\n productMsDeleteRateCardTemplateDetail?: Maybe<Scalars['String']['output']>;\n productMsUpdateContractTemplate?: Maybe<ContractTemplate>;\n productMsUpdateDenomGroup?: Maybe<DenomGroup>;\n productMsUpdateIp?: Maybe<Ip>;\n productMsUpdateMerchantContract?: Maybe<MerchantContract>;\n productMsUpdateMerchantPaymentDenomination?: Maybe<MerchantPaymentDenomination>;\n productMsUpdateMerchantPaymentProvider?: Maybe<MerchantPaymentProvider>;\n productMsUpdatePaymentChannel?: Maybe<PaymentChannel>;\n productMsUpdatePaymentChannelDenomination?: Maybe<PaymentChannelDenomination>;\n productMsUpdatePaymentProvider?: Maybe<PaymentProvider>;\n productMsUpdateProductDenomination?: Maybe<ProductDenomination>;\n productMsUpdateProductPage?: Maybe<ProductPage>;\n productMsUpdateProductPriceList?: Maybe<ProductPriceList>;\n productMsUpdateRateCardTemplate?: Maybe<RateCardTemplate>;\n productMsUpdateRateCardTemplateDetail?: Maybe<RateCardTemplate>;\n projectMsCreateActivityHistory?: Maybe<ActivityHistory>;\n projectMsCreateBoard?: Maybe<Board>;\n projectMsCreateBoardAccess?: Maybe<BoardAccess>;\n projectMsCreateCard?: Maybe<Card>;\n projectMsCreateCardLabel?: Maybe<CardLabel>;\n projectMsCreateCardSprint?: Maybe<CardSprint>;\n projectMsCreateChecklist?: Maybe<Checklist>;\n projectMsCreateChecklistItem?: Maybe<ChecklistItem>;\n projectMsCreateComment?: Maybe<Comment>;\n projectMsCreateGithubEventCardLink?: Maybe<GithubEventCardLink>;\n projectMsCreateLabel?: Maybe<Label>;\n projectMsCreateRequest?: Maybe<Request>;\n projectMsCreateRequestNature?: Maybe<RequestNature>;\n projectMsCreateRequestNatureType?: Maybe<RequestNatureType>;\n projectMsCreateRequestType?: Maybe<RequestType>;\n projectMsCreateSection?: Maybe<Section>;\n projectMsCreateSprint?: Maybe<Sprint>;\n projectMsDeleteBoard?: Maybe<Board>;\n projectMsDeleteBoardAccess?: Maybe<Scalars['String']['output']>;\n projectMsDeleteCard?: Maybe<Card>;\n projectMsDeleteCardExt?: Maybe<Scalars['String']['output']>;\n projectMsDeleteCardLabel?: Maybe<CardLabel>;\n projectMsDeleteCardSprint?: Maybe<CardSprint>;\n projectMsDeleteChecklist?: Maybe<Checklist>;\n projectMsDeleteChecklistItem?: Maybe<ChecklistItem>;\n projectMsDeleteComment?: Maybe<Comment>;\n projectMsDeleteCommentExt?: Maybe<Scalars['String']['output']>;\n projectMsDeleteGithubEventCardLink?: Maybe<Scalars['String']['output']>;\n projectMsDeleteLabel?: Maybe<Label>;\n projectMsDeleteRequest?: Maybe<Scalars['String']['output']>;\n projectMsDeleteRequestExt?: Maybe<Scalars['String']['output']>;\n projectMsDeleteRequestNature?: Maybe<Scalars['String']['output']>;\n projectMsDeleteRequestNatureType?: Maybe<Scalars['String']['output']>;\n projectMsDeleteRequestType?: Maybe<Scalars['String']['output']>;\n projectMsDeleteSection?: Maybe<Scalars['String']['output']>;\n projectMsDeleteSprint?: Maybe<Sprint>;\n projectMsUpdateActivityHistory?: Maybe<ActivityHistory>;\n projectMsUpdateBoard?: Maybe<Board>;\n projectMsUpdateBoardAccess?: Maybe<BoardAccess>;\n projectMsUpdateCard?: Maybe<Card>;\n projectMsUpdateCardLabel?: Maybe<CardLabel>;\n projectMsUpdateCardSprint?: Maybe<CardSprint>;\n projectMsUpdateChecklist?: Maybe<Checklist>;\n projectMsUpdateChecklistItem?: Maybe<ChecklistItem>;\n projectMsUpdateComment?: Maybe<Comment>;\n projectMsUpdateGithubEventCardLink?: Maybe<GithubEventCardLink>;\n projectMsUpdateLabel?: Maybe<Label>;\n projectMsUpdateRequest?: Maybe<Request>;\n projectMsUpdateRequestNature?: Maybe<RequestNature>;\n projectMsUpdateRequestNatureType?: Maybe<RequestNatureType>;\n projectMsUpdateRequestType?: Maybe<RequestType>;\n projectMsUpdateSection?: Maybe<Section>;\n projectMsUpdateSprint?: Maybe<Sprint>;\n secretMsCreateCredential?: Maybe<Credential>;\n secretMsCreateCredentialDetail?: Maybe<CredentialDetail>;\n secretMsDeleteCredential?: Maybe<Scalars['String']['output']>;\n secretMsDeleteCredentialDetail?: Maybe<Scalars['String']['output']>;\n secretMsUpdateCredential?: Maybe<Credential>;\n secretMsUpdateCredentialDetail?: Maybe<CredentialDetail>;\n voucherMsBoughtVoucher?: Maybe<Voucher>;\n voucherMsCreateVoucher?: Maybe<Voucher>;\n voucherMsCreateVoucherGroup?: Maybe<VoucherGroup>;\n voucherMsCreateVoucherGroupAutoGen?: Maybe<VoucherGroupAutoGen>;\n voucherMsCreateVoucherGroupGenLock?: Maybe<IsSuccess>;\n voucherMsCreateVoucherTransaction?: Maybe<VoucherTransaction>;\n voucherMsCreateVoucherTransactionTrail?: Maybe<VoucherTransactionTrail>;\n voucherMsDeleteVoucherGroup?: Maybe<VoucherGroup>;\n voucherMsDeleteVoucherGroupAutoGen?: Maybe<Message>;\n voucherMsGenerateVoucher?: Maybe<VoucherGenerationLog>;\n voucherMsRedeemVoucher?: Maybe<Voucher>;\n voucherMsTriggerVoucherGroupAutoGen?: Maybe<Message>;\n voucherMsUpdateVoucherGroup?: Maybe<VoucherGroup>;\n voucherMsUpdateVoucherGroupAutoGen?: Maybe<VoucherGroupAutoGen>;\n voucherMsUpdateVoucherTransactionTrail?: Maybe<VoucherTransactionTrail>;\n voucherMsVoidVoucher?: Maybe<Scalars['String']['output']>;\n voucherMsVoucherRequest?: Maybe<VoucherRequestRs>;\n warehouseMsInsert?: Maybe<Scalars['String']['output']>;\n webConfigMsCreateWebConfig?: Maybe<WebConfig>;\n webConfigMsSetDefaultLangCode?: Maybe<Country>;\n webConfigMsUpdateSupportLanguage?: Maybe<Scalars['String']['output']>;\n webConfigMsUpdateWebConfig?: Maybe<WebConfig>;\n webtopupMsDeleteWebtopupTrx?: Maybe<WebtopupTransaction>;\n webtopupMsInitWebtopupTrx?: Maybe<WebtopupResponse>;\n};\n\n\nexport type MutationCmsMsCreateAuthorHistoricalSlugArgs = {\n input?: InputMaybe<CreateAuthorHistoricalSlugRq>;\n};\n\n\nexport type MutationForexMsDeleteRatesArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationApprovalMsApproveOrDeclineRequestArgs = {\n approvalGroupGuid?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n isApprove?: InputMaybe<Scalars['Boolean']['input']>;\n reason?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationApprovalMsCreateApprovalRequestArgs = {\n input?: InputMaybe<Array<InputMaybe<CreateApprovalRq>>>;\n};\n\n\nexport type MutationApprovalMsCreateDocumentApprovalRequestArgs = {\n input?: InputMaybe<DocumentRequestInput>;\n};\n\n\nexport type MutationApprovalMsDocumentApprovalRequestApproveArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationApprovalMsDocumentApprovalRequestRejectArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationApprovalMsDocumentTemplateDeleteArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationApprovalMsUpdateDocumentApprovalRequestArgs = {\n input?: InputMaybe<DocumentRequestUpdateInput>;\n};\n\n\nexport type MutationAuditMsCreateAuditTrailArgs = {\n input?: InputMaybe<CreateAuditTrailRq>;\n};\n\n\nexport type MutationAuditMsCreateSuspiciousTagArgs = {\n input?: InputMaybe<CreateSuspiciousTagRq>;\n};\n\n\nexport type MutationAuditMsDeleteSuspiciousTagArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationAuditMsUpdateSuspiciousTagArgs = {\n input?: InputMaybe<UpdateSuspiciousTagRq>;\n};\n\n\nexport type MutationAuthMsAttachPermToRoleArgs = {\n input: AttachPermRq;\n};\n\n\nexport type MutationAuthMsAttachRolesToUsersArgs = {\n expiredDuration: Scalars['Int']['input'];\n roleGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n subjectGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationAuthMsChangePasswordArgs = {\n input: ChangePassRq;\n};\n\n\nexport type MutationAuthMsCreateApiCredentialArgs = {\n input: CreateApiCredentialRq;\n};\n\n\nexport type MutationAuthMsCreateAuthSettingsArgs = {\n input?: InputMaybe<CreateAuthSettingRq>;\n};\n\n\nexport type MutationAuthMsCreateCompanyArgs = {\n input?: InputMaybe<CreateCompanyRq>;\n};\n\n\nexport type MutationAuthMsCreateContactMerchantArgs = {\n input: CreateMerchantContactRq;\n};\n\n\nexport type MutationAuthMsCreateMerchantArgs = {\n input?: InputMaybe<CreateMerchantRq>;\n};\n\n\nexport type MutationAuthMsCreatePermissionArgs = {\n input: CreatePermRq;\n};\n\n\nexport type MutationAuthMsCreateRoleArgs = {\n input: CreateRoleRq;\n};\n\n\nexport type MutationAuthMsCreateUserProfileArgs = {\n input?: InputMaybe<CreateUserRq>;\n};\n\n\nexport type MutationAuthMsDeleteApiCredentialArgs = {\n guid: Scalars['String']['input'];\n};\n\n\nexport type MutationAuthMsDeleteAuthSettingsArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationAuthMsDeleteCompanyArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationAuthMsDeleteContactMerchantArgs = {\n guid: Scalars['String']['input'];\n};\n\n\nexport type MutationAuthMsDeleteMerchantArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationAuthMsDeletePermissionArgs = {\n permGuid: Scalars['String']['input'];\n};\n\n\nexport type MutationAuthMsDeleteRoleArgs = {\n guid: Scalars['String']['input'];\n};\n\n\nexport type MutationAuthMsDetachPermToRoleArgs = {\n input: DetachPermRq;\n};\n\n\nexport type MutationAuthMsExtendsRolesToUsersExpiredDateArgs = {\n extendDuration: Scalars['Int']['input'];\n roleGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n subjectGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationAuthMsForceChangePasswordArgs = {\n subjectGuid: Scalars['String']['input'];\n};\n\n\nexport type MutationAuthMsForgotPasswordArgs = {\n input: ForgotPassRq;\n};\n\n\nexport type MutationAuthMsForgotPasswordOtpArgs = {\n input: ForgotPassOtpRq;\n};\n\n\nexport type MutationAuthMsLinkCompanyToMerchantsArgs = {\n companyGuid: Scalars['String']['input'];\n merchantGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationAuthMsLinkCompanyToUsersArgs = {\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n userGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationAuthMsLinkMerchantsToUsersArgs = {\n merchantGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n userGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationAuthMsLoginArgs = {\n input: LoginRq;\n};\n\n\nexport type MutationAuthMsRefreshAccessTokenArgs = {\n refreshToken: Scalars['String']['input'];\n};\n\n\nexport type MutationAuthMsRegisterArgs = {\n input: RegistrationRq;\n};\n\n\nexport type MutationAuthMsResendEmailVerifArgs = {\n email: Scalars['String']['input'];\n sourcePlatform: SourcePlatform;\n};\n\n\nexport type MutationAuthMsResendMobileVerifArgs = {\n mobileNum: Scalars['String']['input'];\n sourcePlatform: SourcePlatform;\n};\n\n\nexport type MutationAuthMsRevokeRolesInUsersArgs = {\n roleGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n userGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationAuthMsSocialLoginArgs = {\n input: SocialLoginRq;\n};\n\n\nexport type MutationAuthMsTemporaryUserDeactivationArgs = {\n input?: InputMaybe<TemporaryUserDeactivationRq>;\n};\n\n\nexport type MutationAuthMsUnLinkCompanyFromUsersArgs = {\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n userGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationAuthMsUnlinkCompanyFromMerchantsArgs = {\n companyGuid: Scalars['String']['input'];\n merchantGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationAuthMsUnlinkMerchantsFromUsersArgs = {\n merchantGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n userGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationAuthMsUpdateApiCredentialArgs = {\n input: UpdateApiCredentialRq;\n};\n\n\nexport type MutationAuthMsUpdateAuthSettingsArgs = {\n input?: InputMaybe<UpdateAuthSettingRq>;\n};\n\n\nexport type MutationAuthMsUpdateCompanyArgs = {\n input?: InputMaybe<UpdateCompanyRq>;\n};\n\n\nexport type MutationAuthMsUpdateContactMerchantArgs = {\n input: UpdateMerchantContactRq;\n};\n\n\nexport type MutationAuthMsUpdateMerchantArgs = {\n input?: InputMaybe<UpdateMerchantRq>;\n};\n\n\nexport type MutationAuthMsUpdatePermissionArgs = {\n guid: Scalars['String']['input'];\n input: UpdatePermRq;\n};\n\n\nexport type MutationAuthMsUpdatePrincipalForAdminArgs = {\n input?: InputMaybe<UpdatePrincipalRq>;\n};\n\n\nexport type MutationAuthMsUpdateRoleArgs = {\n guid: Scalars['String']['input'];\n input: UpdateRoleRq;\n};\n\n\nexport type MutationAuthMsUpdateUserForAdminArgs = {\n input?: InputMaybe<UpdateProfileRq>;\n};\n\n\nexport type MutationAuthMsUpdateUserPrincipalByOwnerArgs = {\n input?: InputMaybe<UpdatePrincipalRq>;\n};\n\n\nexport type MutationAuthMsUpdateUserPrincipalOtpArgs = {\n newPrincipal?: InputMaybe<Scalars['String']['input']>;\n sendTo: Scalars['String']['input'];\n};\n\n\nexport type MutationAuthMsUpdateUserProfileArgs = {\n input?: InputMaybe<UpdateProfileRq>;\n};\n\n\nexport type MutationAuthMsUserConfirmArgs = {\n input: UserConfirmRq;\n};\n\n\nexport type MutationCmsMsAssignTermToPostArgs = {\n input: CreateCmsPostTermRelationshipRq;\n};\n\n\nexport type MutationCmsMsCreateBookmarkArgs = {\n input?: InputMaybe<CreateBookmarkRq>;\n};\n\n\nexport type MutationCmsMsCreateCommentArgs = {\n input: CreateCmsPostCommentRq;\n};\n\n\nexport type MutationCmsMsCreatePostArgs = {\n input: CreateCmsPostRq;\n};\n\n\nexport type MutationCmsMsCreatePostExtsArgs = {\n input: CreateCmsPostExtRq;\n};\n\n\nexport type MutationCmsMsCreatePostHistoricalSlugArgs = {\n input: CreatePostHistoricalSlugRq;\n};\n\n\nexport type MutationCmsMsCreatePostTermArgs = {\n input: CreateCmsPostTermRq;\n};\n\n\nexport type MutationCmsMsCreatePostViewsArgs = {\n postGuid: Scalars['String']['input'];\n};\n\n\nexport type MutationCmsMsCreateReactionArgs = {\n input: CreateCmsReactionRq;\n};\n\n\nexport type MutationCmsMsCreateUserArgs = {\n input: CreateCmsUserRq;\n};\n\n\nexport type MutationCmsMsDeleteBookmarkArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationCmsMsDeleteCommentArgs = {\n guid: Scalars['String']['input'];\n};\n\n\nexport type MutationCmsMsDeletePostArgs = {\n guid: Scalars['String']['input'];\n};\n\n\nexport type MutationCmsMsDeletePostExtsArgs = {\n guid: Scalars['String']['input'];\n};\n\n\nexport type MutationCmsMsDeletePostTermArgs = {\n guids: Array<InputMaybe<Scalars['String']['input']>>;\n};\n\n\nexport type MutationCmsMsDeleteUserArgs = {\n guid: Scalars['String']['input'];\n subject_guid: Scalars['String']['input'];\n};\n\n\nexport type MutationCmsMsLockingPostArgs = {\n postGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationCmsMsRemoveTermFromPostArgs = {\n guid: Scalars['String']['input'];\n};\n\n\nexport type MutationCmsMsUpdateBookmarkArgs = {\n input?: InputMaybe<UpdateBookmarkRq>;\n};\n\n\nexport type MutationCmsMsUpdatePostArgs = {\n input: UpdateCmsPostRq;\n};\n\n\nexport type MutationCmsMsUpdatePostExtsArgs = {\n input: UpdateCmsPostExtRq;\n};\n\n\nexport type MutationCmsMsUpdatePostTermArgs = {\n input: UpdateCmsPostTermRq;\n};\n\n\nexport type MutationCmsMsUpdateUserArgs = {\n guid: Scalars['String']['input'];\n input: UpdateCmsUserRq;\n};\n\n\nexport type MutationConsentMsConsentToAgreeArgs = {\n input?: InputMaybe<CreateConsentToAgreeRq>;\n};\n\n\nexport type MutationConsentMsCreateHistoryAgreementArgs = {\n input?: InputMaybe<CreateHistoryAgreementRq>;\n};\n\n\nexport type MutationConsentMsUpdateHistoryAgreementArgs = {\n input?: InputMaybe<UpdateHistoryAgreementRq>;\n};\n\n\nexport type MutationDeletePaymentProviderExtArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationEventMsCreateEventLogsArgs = {\n input?: InputMaybe<CreateEventLogsRq>;\n};\n\n\nexport type MutationEventMsCreateEventManagementsArgs = {\n input: CreateEventManagementsRq;\n};\n\n\nexport type MutationEventMsCreateEventParticipationArgs = {\n input?: InputMaybe<CreateEventParticipationRq>;\n};\n\n\nexport type MutationEventMsCreateIdempotentArgs = {\n input: CreateIdempotentRq;\n};\n\n\nexport type MutationEventMsCreatePrizeEventArgs = {\n input: CreatePrizeEventRq;\n};\n\n\nexport type MutationEventMsCreateRaffleManagementsArgs = {\n input: CreateRaffleManagementsRq;\n};\n\n\nexport type MutationEventMsDeleteEventManagementsArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationEventMsDeleteRaffleManagementsArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationEventMsParticipateRaffleArgs = {\n input?: InputMaybe<RaffleParticipationRq>;\n};\n\n\nexport type MutationEventMsUpdateEventLogsArgs = {\n input?: InputMaybe<UpdateEventLogsRq>;\n};\n\n\nexport type MutationEventMsUpdateEventManagementsArgs = {\n input: UpdateEventManagementsRq;\n};\n\n\nexport type MutationEventMsUpdateEventParticipationArgs = {\n input?: InputMaybe<UpdateEventParticipationRq>;\n};\n\n\nexport type MutationEventMsUpdateRaffleManagementsArgs = {\n input: UpdateRaffleManagementsRq;\n};\n\n\nexport type MutationFileMgmtSysMsDeleteReusableFileArgs = {\n guid: Scalars['String']['input'];\n isDeleteFile: Scalars['Boolean']['input'];\n};\n\n\nexport type MutationFileMgmtSysMsFileAccessControlArgs = {\n input?: InputMaybe<TempFileRequest>;\n};\n\n\nexport type MutationFileMgmtSysMsFileDeletionArgs = {\n fileGuid?: InputMaybe<Scalars['String']['input']>;\n hardDelete?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n\nexport type MutationFileMgmtSysMsFileDownloadArgs = {\n input?: InputMaybe<TempFileRequest>;\n};\n\n\nexport type MutationFileMgmtSysMsFileNotificationArgs = {\n input?: InputMaybe<TempFileRequest>;\n};\n\n\nexport type MutationFileMgmtSysMsFileSharingArgs = {\n input?: InputMaybe<TempFileRequest>;\n};\n\n\nexport type MutationFileMgmtSysMsFileStreamingArgs = {\n input?: InputMaybe<TempFileRequest>;\n};\n\n\nexport type MutationFileMgmtSysMsFileUploadArgs = {\n attachment?: InputMaybe<Scalars['Upload']['input']>;\n isPublic?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\n\nexport type MutationFileMgmtSysMsFileVersioningArgs = {\n input?: InputMaybe<TempFileRequest>;\n};\n\n\nexport type MutationFileMgmtSysMsUpdateReusableFileArgs = {\n input?: InputMaybe<ReusableFileUpdateRq>;\n};\n\n\nexport type MutationForexMsCreateCurrencyBaseArgs = {\n currencyCode?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationForexMsCreateRatesArgs = {\n input?: InputMaybe<CreateRatesRq>;\n};\n\n\nexport type MutationForexMsDeleteCurrencyBaseArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationForexMsUpdateCurrencyBaseArgs = {\n currencyCode?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationForexMsUpdateRatesArgs = {\n input?: InputMaybe<UpdateRatesRq>;\n};\n\n\nexport type MutationGgwMsCheckoutArgs = {\n data?: InputMaybe<CheckoutRequest>;\n};\n\n\nexport type MutationGgwMsCreateGameTransactionArgs = {\n input?: InputMaybe<GameTransactionCreateRequest>;\n};\n\n\nexport type MutationGgwMsDeleteGameTransactionArgs = {\n input?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationGgwMsDeliveryArgs = {\n data?: InputMaybe<DeliveryRequest>;\n};\n\n\nexport type MutationGgwMsInquiryArgs = {\n data?: InputMaybe<InquiryRequest>;\n};\n\n\nexport type MutationGgwMsUpdateGameTransactionArgs = {\n input?: InputMaybe<GameTransactionUpdateRequest>;\n};\n\n\nexport type MutationHumanResourcesMsApplyArgs = {\n input?: InputMaybe<ApplyVacancyRq>;\n};\n\n\nexport type MutationHumanResourcesMsCreateVacancyArgs = {\n input?: InputMaybe<CreateVacancyRq>;\n};\n\n\nexport type MutationHumanResourcesMsCreateVacancySettingsArgs = {\n input?: InputMaybe<CreateVacancySettingsRq>;\n};\n\n\nexport type MutationHumanResourcesMsDeleteVacancyArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationHumanResourcesMsDeleteVacancySettingsArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationHumanResourcesMsUpdateVacancyArgs = {\n input?: InputMaybe<UpdateVacancyRq>;\n};\n\n\nexport type MutationHumanResourcesMsUpdateVacancySettingsArgs = {\n input?: InputMaybe<UpdateVacancySettingsRq>;\n};\n\n\nexport type MutationMembershipMsAssignTierToMemberArgs = {\n input?: InputMaybe<AssignTierToMember>;\n};\n\n\nexport type MutationMembershipMsBanUserArgs = {\n input?: InputMaybe<NewMemberBan>;\n};\n\n\nexport type MutationMembershipMsCreateBirthdayTierBonusRuleArgs = {\n input?: InputMaybe<NewBirthdayTierBonusRule>;\n};\n\n\nexport type MutationMembershipMsCreateCatalogArgs = {\n input?: InputMaybe<NewCatalog>;\n};\n\n\nexport type MutationMembershipMsCreateCatalogCategoryArgs = {\n input?: InputMaybe<NewCatalogCategory>;\n};\n\n\nexport type MutationMembershipMsCreateMemberPointArgs = {\n input?: InputMaybe<NewMemberPoint>;\n};\n\n\nexport type MutationMembershipMsCreateMemberPointMutationArgs = {\n input?: InputMaybe<NewMemberPointMutation>;\n};\n\n\nexport type MutationMembershipMsCreateRedeemTransactionArgs = {\n input?: InputMaybe<NewRedeem>;\n};\n\n\nexport type MutationMembershipMsCreateTierArgs = {\n input?: InputMaybe<NewTier>;\n};\n\n\nexport type MutationMembershipMsCreateTierBonusRuleArgs = {\n input?: InputMaybe<NewTierBonusRule>;\n};\n\n\nexport type MutationMembershipMsCreateTierUnlockBonusRuleArgs = {\n input?: InputMaybe<NewTierUnlockBonusRule>;\n};\n\n\nexport type MutationMembershipMsDeleteBirthdayTierBonusRuleArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationMembershipMsDeleteCatalogArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationMembershipMsDeleteCatalogCategoryArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationMembershipMsDeleteCatalogExtArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationMembershipMsDeleteTierArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationMembershipMsDeleteTierBonusRuleArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationMembershipMsDeleteTierExtArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationMembershipMsDeleteTierUnlockBonusRuleArgs = {\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\n\nexport type MutationMembershipMsUpdateBirthdayTierBonusRuleArgs = {\n input?: InputMaybe<UpdateBirthdayTierBonusRule>;\n};\n\n\nexport type MutationMembershipMsUpdateCatalogArgs = {\n input?: InputMaybe<UpdateCatalog>;\n};\n\n\nexport type MutationMembershipMsUpdateCatalogCategoryArgs = {\n input?: InputMaybe<UpdateCatalogCategory>;\n};\n\n\nexport type MutationMembershipMsUpdateRedeemTransactionArgs = {\n input?: InputMaybe<UpdateRedeem>;\n};\n\n\nexport type MutationMembershipMsUpdateTierArgs = {\n input?: InputMaybe<UpdateTier>;\n};\n\n\nexport type MutationMembershipMsUpdateTierBonusRuleArgs = {\n input?: InputMaybe<UpdateTierBonusRule>;\n};\n\n\nexport type MutationMembershipMsUpdateTierUnlockBonusRuleArgs = {\n input?: InputMaybe<UpdateTierUnlockBonusRule>;\n};\n\n\nexport type MutationNotificationMsCreateEmailMessageTemplateArgs = {\n input?: InputMaybe<CreateMessageTemplateRq>;\n};\n\n\nexport type MutationNotificationMsCreateNotificationAlertArgs = {\n input?: InputMaybe<CreateNotificationAlertRq>;\n};\n\n\nexport type MutationNotificationMsCreateUserFcmArgs = {\n userToken?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationNotificationMsReadNotificationAlertArgs = {\n guid: Scalars['String']['input'];\n};\n\n\nexport type MutationNotificationMsUpdateEmailMessageTemplateArgs = {\n input?: InputMaybe<UpdateEmailMessageTemplateRq>;\n};\n\n\nexport type MutationPgwMsForceUpdateTransactionStatusArgs = {\n input: ForceUpdateTransactionStatusRq;\n};\n\n\nexport type MutationPgwMsInitiateLinkageArgs = {\n input?: InputMaybe<InitiateLinkageRq>;\n};\n\n\nexport type MutationPgwMsUpdateInternalRefundStatusArgs = {\n refund_guid: Scalars['String']['input'];\n};\n\n\nexport type MutationPgwMsUpdateMakerInternalRefundStatusArgs = {\n refund_guid: Scalars['String']['input'];\n};\n\n\nexport type MutationPgwMsUpdateTransactionRefundArgs = {\n input: UpdateTransactionRefundRq;\n};\n\n\nexport type MutationProductMsAddDenomToDenomGroupArgs = {\n input?: InputMaybe<AddDenomToDenomGroupRq>;\n};\n\n\nexport type MutationProductMsCreateContractTemplateArgs = {\n input?: InputMaybe<CreateContractTemplateRq>;\n};\n\n\nexport type MutationProductMsCreateDenomGroupArgs = {\n input?: InputMaybe<CreateDenomGroupRq>;\n};\n\n\nexport type MutationProductMsCreateIpArgs = {\n input?: InputMaybe<CreateIpRq>;\n};\n\n\nexport type MutationProductMsCreateMerchantContractArgs = {\n input?: InputMaybe<CreateMerchantContractRq>;\n};\n\n\nexport type MutationProductMsCreateMerchantPaymentDenominationArgs = {\n input?: InputMaybe<CreateMerchantPaymentDenomRq>;\n};\n\n\nexport type MutationProductMsCreateMerchantPaymentProviderArgs = {\n input?: InputMaybe<CreateMerchantPaymentProviderRq>;\n};\n\n\nexport type MutationProductMsCreatePaymentChannelArgs = {\n input?: InputMaybe<CreatePaymentChannelRq>;\n};\n\n\nexport type MutationProductMsCreatePaymentChannelDenominationArgs = {\n input?: InputMaybe<CreatePaymentChannelDenomRq>;\n};\n\n\nexport type MutationProductMsCreatePaymentChannelGuidelineArgs = {\n input: CreatePaymentChannelGuidelineRq;\n};\n\n\nexport type MutationProductMsCreatePaymentProviderArgs = {\n input?: InputMaybe<CreatePaymentProviderRq>;\n};\n\n\nexport type MutationProductMsCreateProductDenominationArgs = {\n input?: InputMaybe<CreateProductDenominationRq>;\n};\n\n\nexport type MutationProductMsCreateProductPageArgs = {\n input?: InputMaybe<CreateProductPageRq>;\n};\n\n\nexport type MutationProductMsCreateProductPriceListArgs = {\n input: CreateProductPriceListRq;\n};\n\n\nexport type MutationProductMsCreateRateCardTemplateArgs = {\n input?: InputMaybe<CreateRateCardTemplateRq>;\n};\n\n\nexport type MutationProductMsCreateRateCardTemplateDetailsArgs = {\n input?: InputMaybe<Array<InputMaybe<CreateRateCardTemplateDetailsRq>>>;\n rateTemplateGuid: Scalars['String']['input'];\n};\n\n\nexport type MutationProductMsDeleteContractTemplateArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProductMsDeleteDenomGroupArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProductMsDeleteIpArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProductMsDeleteMerchantContractArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProductMsDeletePaymentChannelArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProductMsDeletePaymentChannelGuidelineArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProductMsDeletePaymentProviderArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProductMsDeleteProductDenominationArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProductMsDeleteProductPageArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProductMsDeleteProductPriceListArgs = {\n guid: Scalars['String']['input'];\n};\n\n\nexport type MutationProductMsDeleteRateCardTemplateArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProductMsDeleteRateCardTemplateDetailArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProductMsUpdateContractTemplateArgs = {\n input?: InputMaybe<UpdateContractTemplateRq>;\n};\n\n\nexport type MutationProductMsUpdateDenomGroupArgs = {\n input?: InputMaybe<UpdateDenomGroupRq>;\n};\n\n\nexport type MutationProductMsUpdateIpArgs = {\n input?: InputMaybe<UpdateIpRq>;\n};\n\n\nexport type MutationProductMsUpdateMerchantContractArgs = {\n input?: InputMaybe<UpdateMerchantContractRq>;\n};\n\n\nexport type MutationProductMsUpdateMerchantPaymentDenominationArgs = {\n input?: InputMaybe<UpdateMerchantPaymentDenomRq>;\n};\n\n\nexport type MutationProductMsUpdateMerchantPaymentProviderArgs = {\n input?: InputMaybe<UpdateMerchantPaymentProviderRq>;\n};\n\n\nexport type MutationProductMsUpdatePaymentChannelArgs = {\n input?: InputMaybe<UpdatePaymentChannelRq>;\n};\n\n\nexport type MutationProductMsUpdatePaymentChannelDenominationArgs = {\n input?: InputMaybe<UpdatePaymentChannelDenomRq>;\n};\n\n\nexport type MutationProductMsUpdatePaymentProviderArgs = {\n input?: InputMaybe<UpdatePaymentProviderRq>;\n};\n\n\nexport type MutationProductMsUpdateProductDenominationArgs = {\n input?: InputMaybe<UpdateProductDenominationRq>;\n};\n\n\nexport type MutationProductMsUpdateProductPageArgs = {\n input?: InputMaybe<UpdateProductPageRq>;\n};\n\n\nexport type MutationProductMsUpdateProductPriceListArgs = {\n input: UpdateProductPriceListRq;\n};\n\n\nexport type MutationProductMsUpdateRateCardTemplateArgs = {\n input?: InputMaybe<UpdateRateCardTemplateRq>;\n};\n\n\nexport type MutationProductMsUpdateRateCardTemplateDetailArgs = {\n input?: InputMaybe<UpdateRateCardTemplateDetailRq>;\n};\n\n\nexport type MutationProjectMsCreateActivityHistoryArgs = {\n input?: InputMaybe<CreateActivityHistoryRq>;\n};\n\n\nexport type MutationProjectMsCreateBoardArgs = {\n input?: InputMaybe<CreateBoardRq>;\n};\n\n\nexport type MutationProjectMsCreateBoardAccessArgs = {\n input?: InputMaybe<CreateBoardAccessRq>;\n};\n\n\nexport type MutationProjectMsCreateCardArgs = {\n input?: InputMaybe<CreateCardRq>;\n};\n\n\nexport type MutationProjectMsCreateCardLabelArgs = {\n input?: InputMaybe<CreateCardLabelRq>;\n};\n\n\nexport type MutationProjectMsCreateCardSprintArgs = {\n input?: InputMaybe<CreateCardSprintRq>;\n};\n\n\nexport type MutationProjectMsCreateChecklistArgs = {\n input?: InputMaybe<CreateChecklistRq>;\n};\n\n\nexport type MutationProjectMsCreateChecklistItemArgs = {\n input?: InputMaybe<CreateChecklistItemRq>;\n};\n\n\nexport type MutationProjectMsCreateCommentArgs = {\n input?: InputMaybe<CreateCommentRq>;\n};\n\n\nexport type MutationProjectMsCreateGithubEventCardLinkArgs = {\n input?: InputMaybe<CreateGithubEventCardLinkRq>;\n};\n\n\nexport type MutationProjectMsCreateLabelArgs = {\n input?: InputMaybe<CreateLabelRq>;\n};\n\n\nexport type MutationProjectMsCreateRequestArgs = {\n input?: InputMaybe<CreateRequestRq>;\n};\n\n\nexport type MutationProjectMsCreateRequestNatureArgs = {\n input?: InputMaybe<CreateRequestNatureRq>;\n};\n\n\nexport type MutationProjectMsCreateRequestNatureTypeArgs = {\n input?: InputMaybe<CreateRequestNatureTypeRq>;\n};\n\n\nexport type MutationProjectMsCreateRequestTypeArgs = {\n input?: InputMaybe<CreateRequestTypeRq>;\n};\n\n\nexport type MutationProjectMsCreateSectionArgs = {\n input?: InputMaybe<CreateSectionRq>;\n};\n\n\nexport type MutationProjectMsCreateSprintArgs = {\n input?: InputMaybe<CreateSprintRq>;\n};\n\n\nexport type MutationProjectMsDeleteBoardArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteBoardAccessArgs = {\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationProjectMsDeleteCardArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteCardExtArgs = {\n extType?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteCardLabelArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteCardSprintArgs = {\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationProjectMsDeleteChecklistArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteChecklistItemArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteCommentArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteCommentExtArgs = {\n extType?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteGithubEventCardLinkArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteLabelArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteRequestArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteRequestExtArgs = {\n extType?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteRequestNatureArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteRequestNatureTypeArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteRequestTypeArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteSectionArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsDeleteSprintArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationProjectMsUpdateActivityHistoryArgs = {\n input?: InputMaybe<UpdateActivityHistoryRq>;\n};\n\n\nexport type MutationProjectMsUpdateBoardArgs = {\n input?: InputMaybe<UpdateBoardRq>;\n};\n\n\nexport type MutationProjectMsUpdateBoardAccessArgs = {\n input?: InputMaybe<UpdateBoardAccessRq>;\n};\n\n\nexport type MutationProjectMsUpdateCardArgs = {\n input?: InputMaybe<UpdateCardRq>;\n};\n\n\nexport type MutationProjectMsUpdateCardLabelArgs = {\n input?: InputMaybe<UpdateCardLabelRq>;\n};\n\n\nexport type MutationProjectMsUpdateCardSprintArgs = {\n input?: InputMaybe<UpdateCardSprintRq>;\n};\n\n\nexport type MutationProjectMsUpdateChecklistArgs = {\n input?: InputMaybe<UpdateChecklistRq>;\n};\n\n\nexport type MutationProjectMsUpdateChecklistItemArgs = {\n input?: InputMaybe<UpdateChecklistItemRq>;\n};\n\n\nexport type MutationProjectMsUpdateCommentArgs = {\n input?: InputMaybe<UpdateCommentRq>;\n};\n\n\nexport type MutationProjectMsUpdateGithubEventCardLinkArgs = {\n input?: InputMaybe<UpdateGithubEventCardLinkRq>;\n};\n\n\nexport type MutationProjectMsUpdateLabelArgs = {\n input?: InputMaybe<UpdateLabelRq>;\n};\n\n\nexport type MutationProjectMsUpdateRequestArgs = {\n input?: InputMaybe<UpdateRequestRq>;\n};\n\n\nexport type MutationProjectMsUpdateRequestNatureArgs = {\n input?: InputMaybe<UpdateRequestNatureRq>;\n};\n\n\nexport type MutationProjectMsUpdateRequestNatureTypeArgs = {\n input?: InputMaybe<UpdateRequestNatureTypeRq>;\n};\n\n\nexport type MutationProjectMsUpdateRequestTypeArgs = {\n input?: InputMaybe<UpdateRequestTypeRq>;\n};\n\n\nexport type MutationProjectMsUpdateSectionArgs = {\n input?: InputMaybe<UpdateSectionRq>;\n};\n\n\nexport type MutationProjectMsUpdateSprintArgs = {\n input?: InputMaybe<UpdateSprintRq>;\n};\n\n\nexport type MutationSecretMsCreateCredentialArgs = {\n input?: InputMaybe<NewCredentialRq>;\n};\n\n\nexport type MutationSecretMsCreateCredentialDetailArgs = {\n input?: InputMaybe<CreateCredentialDetailRq>;\n};\n\n\nexport type MutationSecretMsDeleteCredentialArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationSecretMsDeleteCredentialDetailArgs = {\n credentialGuid: Scalars['String']['input'];\n name: Scalars['String']['input'];\n};\n\n\nexport type MutationSecretMsUpdateCredentialArgs = {\n input?: InputMaybe<UpdateCredentialRq>;\n};\n\n\nexport type MutationSecretMsUpdateCredentialDetailArgs = {\n input?: InputMaybe<UpdateCredentialDetailRq>;\n};\n\n\nexport type MutationVoucherMsBoughtVoucherArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationVoucherMsCreateVoucherArgs = {\n input?: InputMaybe<CreateVoucherRq>;\n};\n\n\nexport type MutationVoucherMsCreateVoucherGroupArgs = {\n input?: InputMaybe<CreateVoucherGroupRq>;\n};\n\n\nexport type MutationVoucherMsCreateVoucherGroupAutoGenArgs = {\n input?: InputMaybe<CreateVoucherGroupAutoGenRq>;\n};\n\n\nexport type MutationVoucherMsCreateVoucherGroupGenLockArgs = {\n input?: InputMaybe<VoucherGroupAutoGenLockRq>;\n};\n\n\nexport type MutationVoucherMsCreateVoucherTransactionArgs = {\n input?: InputMaybe<CreateVoucherTransactionRq>;\n};\n\n\nexport type MutationVoucherMsCreateVoucherTransactionTrailArgs = {\n input?: InputMaybe<CreateVoucherTransactionTrailRq>;\n};\n\n\nexport type MutationVoucherMsDeleteVoucherGroupArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationVoucherMsDeleteVoucherGroupAutoGenArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationVoucherMsGenerateVoucherArgs = {\n input?: InputMaybe<GenerateVoucherRq>;\n};\n\n\nexport type MutationVoucherMsRedeemVoucherArgs = {\n id?: InputMaybe<VoucherId>;\n};\n\n\nexport type MutationVoucherMsTriggerVoucherGroupAutoGenArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationVoucherMsUpdateVoucherGroupArgs = {\n input?: InputMaybe<UpdateVoucherGroupRq>;\n};\n\n\nexport type MutationVoucherMsUpdateVoucherGroupAutoGenArgs = {\n input?: InputMaybe<UpdateVoucherGroupAutoGenRq>;\n};\n\n\nexport type MutationVoucherMsUpdateVoucherTransactionTrailArgs = {\n input?: InputMaybe<UpdateVoucherTransactionTrailRq>;\n};\n\n\nexport type MutationVoucherMsVoidVoucherArgs = {\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\n\nexport type MutationVoucherMsVoucherRequestArgs = {\n input?: InputMaybe<CreateVoucherRequestRq>;\n};\n\n\nexport type MutationWarehouseMsInsertArgs = {\n input?: InputMaybe<NewWarehouseData>;\n};\n\n\nexport type MutationWebConfigMsCreateWebConfigArgs = {\n input?: InputMaybe<CreateWebConfigRq>;\n};\n\n\nexport type MutationWebConfigMsSetDefaultLangCodeArgs = {\n countryGuid?: InputMaybe<Scalars['String']['input']>;\n langCode?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationWebConfigMsUpdateSupportLanguageArgs = {\n countryGuid?: InputMaybe<Scalars['String']['input']>;\n langCodes?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type MutationWebConfigMsUpdateWebConfigArgs = {\n input?: InputMaybe<UpdateWebConfigRq>;\n};\n\n\nexport type MutationWebtopupMsDeleteWebtopupTrxArgs = {\n guid: Scalars['String']['input'];\n};\n\n\nexport type MutationWebtopupMsInitWebtopupTrxArgs = {\n input: WebtopupRequest;\n};\n\nexport type NewBirthdayTierBonusRule = {\n tierGuid: Scalars['String']['input'];\n type: BirthdayTierBonusRuleTypeEnum;\n value: Scalars['Float']['input'];\n};\n\nexport type NewCatalog = {\n categoryGuids: Array<Scalars['String']['input']>;\n countryId?: InputMaybe<Scalars['String']['input']>;\n currencyCode: Scalars['String']['input'];\n description?: InputMaybe<Scalars['String']['input']>;\n estDeliveryTimeUnit?: InputMaybe<EstDeliveryTimeUnit>;\n estDeliveryTimeValue?: InputMaybe<Scalars['Int']['input']>;\n isNeedApproval?: Scalars['Boolean']['input'];\n minLevelToReach?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n price?: InputMaybe<Scalars['Double']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type NewCatalogCategory = {\n name: Scalars['String']['input'];\n slug?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type NewCredentialRq = {\n code: Scalars['String']['input'];\n companyGuid: Scalars['String']['input'];\n};\n\nexport type NewMemberBan = {\n expiredAt?: InputMaybe<Scalars['DateTime']['input']>;\n memberGuid: Scalars['String']['input'];\n type: MemberBanType;\n};\n\nexport type NewMemberPoint = {\n amountSpent?: InputMaybe<Scalars['String']['input']>;\n countryId: Scalars['String']['input'];\n createdAt?: InputMaybe<Scalars['DateTime']['input']>;\n currencyCode: Scalars['String']['input'];\n memberGuid: Scalars['String']['input'];\n pointRewarded?: InputMaybe<Scalars['Double']['input']>;\n reason?: InputMaybe<Scalars['String']['input']>;\n transactionRewardRef?: InputMaybe<Scalars['String']['input']>;\n type?: MemberPointTypeEnum;\n};\n\nexport type NewMemberPointMutation = {\n countryId?: InputMaybe<Scalars['String']['input']>;\n currencyCode?: InputMaybe<Scalars['String']['input']>;\n isSystem: Scalars['Boolean']['input'];\n memberGuid: Scalars['String']['input'];\n memberPointGuid?: InputMaybe<Scalars['String']['input']>;\n pointAdd?: InputMaybe<Scalars['Double']['input']>;\n pointSubstract?: InputMaybe<Scalars['Double']['input']>;\n reason?: InputMaybe<Scalars['String']['input']>;\n transactionDate?: InputMaybe<Scalars['DateTime']['input']>;\n transactionSpentRef?: InputMaybe<Scalars['String']['input']>;\n type: MemberPointMutationTypeEnum;\n};\n\nexport type NewRedeem = {\n catalogGuid: Scalars['String']['input'];\n memberGuid: Scalars['String']['input'];\n};\n\nexport type NewTier = {\n benefitField?: InputMaybe<Scalars['JSON']['input']>;\n countryCode: Scalars['String']['input'];\n currencyCode?: InputMaybe<Scalars['String']['input']>;\n levelValue: Scalars['Int']['input'];\n minPointToKeep: Scalars['Int']['input'];\n minPointToReach: Scalars['Int']['input'];\n name: Scalars['String']['input'];\n};\n\nexport type NewTierBonusRule = {\n baseValue: TierBonusRuleBaseValueEnum;\n isForBirthday?: Scalars['Boolean']['input'];\n isForReferral?: Scalars['Boolean']['input'];\n maximumAmount: Scalars['Long']['input'];\n minimumAmount: Scalars['Int']['input'];\n priority: Scalars['Int']['input'];\n stopNow: Scalars['Boolean']['input'];\n tierGuid: Scalars['String']['input'];\n type: TierBonusRuleTypeEnum;\n value: Scalars['Double']['input'];\n};\n\nexport type NewTierUnlockBonusRule = {\n tierGuid: Scalars['String']['input'];\n value: Scalars['Long']['input'];\n};\n\nexport type NewWarehouseData = {\n /** require valid json string */\n data: Scalars['String']['input'];\n dataSetName: Scalars['String']['input'];\n msSource: Scalars['String']['input'];\n tableName: Scalars['String']['input'];\n tableNameInterval: TableNameIntervalEnum;\n};\n\nexport enum NotifAlertSortByEnum {\n CreatedAt = 'createdAt'\n}\n\nexport enum NotifAlertStatusEnum {\n Danger = 'DANGER',\n Info = 'INFO',\n Success = 'SUCCESS',\n Warning = 'WARNING'\n}\n\nexport type NotificationAlert = {\n __typename?: 'NotificationAlert';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n guid: Scalars['String']['output'];\n isRead?: Maybe<Scalars['Boolean']['output']>;\n receiverCompanyGuid?: Maybe<Scalars['String']['output']>;\n receiverMerchantGuid?: Maybe<Scalars['String']['output']>;\n receiverPermissionCode?: Maybe<Scalars['String']['output']>;\n status?: Maybe<NotifAlertStatusEnum>;\n title: Scalars['String']['output'];\n type?: Maybe<AlertTypeEnum>;\n};\n\n/** NotificationAlert Connection */\nexport type NotificationAlertConnection = {\n __typename?: 'NotificationAlertConnection';\n /** Field edges */\n edges?: Maybe<Array<Maybe<NotificationAlertEdge>>>;\n /** Field pageInfo */\n pageInfo: PageInfo;\n};\n\nexport type NotificationAlertCriteria = {\n /** fill with end cursor id to get next data/page, cannot use this if already use 'before' filter */\n after?: InputMaybe<Scalars['String']['input']>;\n /** fill with start cursor id to get prev data/page, cannot use this if already use 'after' filter */\n before?: InputMaybe<Scalars['String']['input']>;\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n pageSize?: Scalars['Int']['input'];\n receiverCompanyGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n receiverMerchantGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n receiverPermissionCodes?: InputMaybe<Array<Scalars['String']['input']>>;\n sortBy: NotifAlertSortByEnum;\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Array<NotifAlertStatusEnum>>;\n types?: InputMaybe<Array<AlertTypeEnum>>;\n};\n\n/** NotificationAlert Edge */\nexport type NotificationAlertEdge = {\n __typename?: 'NotificationAlertEdge';\n /** Field cursor */\n cursor?: Maybe<Scalars['String']['output']>;\n /** Field node */\n node?: Maybe<NotificationAlert>;\n};\n\nexport type NotificationAlertResponse = {\n __typename?: 'NotificationAlertResponse';\n count?: Maybe<Scalars['Int']['output']>;\n /** data: [NotificationAlert] */\n data?: Maybe<NotificationAlertConnection>;\n};\n\nexport type NotificationAlertResponses = {\n __typename?: 'NotificationAlertResponses';\n company?: Maybe<NotificationAlertResponse>;\n merchant?: Maybe<NotificationAlertResponse>;\n user?: Maybe<NotificationAlertResponse>;\n};\n\nexport type Option = {\n __typename?: 'Option';\n display?: Maybe<Scalars['String']['output']>;\n value?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PgwTimeseriesFilter = {\n aggType: AggregationTypeEnum;\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n key: PgwTimeseriesKeys;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n rangeInterval: RangeIntervalEnum;\n status?: InputMaybe<PaymentTxnResponseStatusEnum>;\n};\n\nexport enum PgwTimeseriesKeys {\n TransactionTs = 'TRANSACTION_TS'\n}\n\nexport type PageInfo = {\n __typename?: 'PageInfo';\n /** Field endCursor */\n endCursor?: Maybe<Scalars['String']['output']>;\n /** Field hasNextPage */\n hasNextPage: Scalars['Boolean']['output'];\n /** Field hasPreviousPage */\n hasPreviousPage: Scalars['Boolean']['output'];\n /** Field startCursor */\n startCursor?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PageableResponse = {\n __typename?: 'PageableResponse';\n data?: Maybe<Array<Maybe<Approval>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type PageableRs = {\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type PaginationPermissionResponse = {\n __typename?: 'PaginationPermissionResponse';\n data: Array<Maybe<AppPermDfn>>;\n totalRecord: Scalars['Int']['output'];\n};\n\nexport type PaginationRoleResponse = {\n __typename?: 'PaginationRoleResponse';\n data: Array<Maybe<AppLoginRole>>;\n totalRecord: Scalars['Int']['output'];\n};\n\nexport type PaginationVacancyApplicationResponse = {\n __typename?: 'PaginationVacancyApplicationResponse';\n data: Array<Maybe<VacancyApplication>>;\n totalRecord: Scalars['Int']['output'];\n};\n\nexport type PaginationVacancyResponse = {\n __typename?: 'PaginationVacancyResponse';\n data: Array<Maybe<Vacancy>>;\n totalRecord: Scalars['Int']['output'];\n};\n\nexport type PaymentActionResponse = {\n __typename?: 'PaymentActionResponse';\n ccyCode?: Maybe<Scalars['String']['output']>;\n customStyle?: Maybe<Scalars['JSON']['output']>;\n /** inquiry action data */\n data?: Maybe<Scalars['JSON']['output']>;\n /** error tracing id */\n errorId?: Maybe<Scalars['String']['output']>;\n magnifiedAmount?: Maybe<Scalars['String']['output']>;\n mainAction?: Maybe<MainAction>;\n message?: Maybe<Scalars['String']['output']>;\n selectedItemDescription?: Maybe<Scalars['String']['output']>;\n selectedPciLogoUrl?: Maybe<Scalars['String']['output']>;\n /** signature is only returned for inquiry pci execution */\n signature?: Maybe<Scalars['String']['output']>;\n /** 1 = success, 0 = fail */\n status?: Maybe<Scalars['Int']['output']>;\n time?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PaymentChannel = {\n __typename?: 'PaymentChannel';\n approvalData?: Maybe<Scalars['JSON']['output']>;\n approvalGuid?: Maybe<Scalars['String']['output']>;\n approvalRemark?: Maybe<Scalars['String']['output']>;\n approvalStatus?: Maybe<Scalars['String']['output']>;\n approvalType?: Maybe<Scalars['String']['output']>;\n category?: Maybe<Scalars['String']['output']>;\n charge?: Maybe<Scalars['Float']['output']>;\n chargeType?: Maybe<Scalars['String']['output']>;\n code?: Maybe<Scalars['String']['output']>;\n companyCredentialGuid?: Maybe<Scalars['String']['output']>;\n contractorCompany?: Maybe<Company>;\n countryByCode?: Maybe<Country>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBySubjectGuid?: Maybe<Scalars['String']['output']>;\n credentialPaymentChannel?: Maybe<Credential>;\n currencyByCode?: Maybe<Currency>;\n field?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n isInquiryAvail?: Maybe<Scalars['Boolean']['output']>;\n isSupportLinkage?: Maybe<Scalars['Boolean']['output']>;\n isWhitelabel?: Maybe<Scalars['Boolean']['output']>;\n maxAmount?: Maybe<Scalars['Double']['output']>;\n metaFieldJson?: Maybe<Scalars['JSON']['output']>;\n minAmount?: Maybe<Scalars['Double']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n parameter?: Maybe<Scalars['String']['output']>;\n paymentChannelGuideline?: Maybe<PaymentChannelGuideline>;\n providerCode?: Maybe<Scalars['String']['output']>;\n providerCompany?: Maybe<Company>;\n providerPriority?: Maybe<Scalars['String']['output']>;\n rateTemplate?: Maybe<Array<Maybe<RateCardTemplate>>>;\n remark?: Maybe<Scalars['String']['output']>;\n requiredFieldJson?: Maybe<Scalars['JSON']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n route?: Maybe<Scalars['String']['output']>;\n serviceCompany?: Maybe<Company>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBySubjectGuid?: Maybe<Scalars['String']['output']>;\n vatPercentage?: Maybe<Scalars['Float']['output']>;\n};\n\nexport type PaymentChannelByProviderCodeCriteria = {\n amount?: InputMaybe<Scalars['String']['input']>;\n merchantContractGuid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n productId?: InputMaybe<Scalars['String']['input']>;\n providerCode?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PaymentChannelDenomQueryCriteria = {\n amount?: InputMaybe<Scalars['Double']['input']>;\n code?: InputMaybe<Scalars['String']['input']>;\n credit?: InputMaybe<Scalars['Long']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PaymentChannelDenomination = {\n __typename?: 'PaymentChannelDenomination';\n amount?: Maybe<Scalars['Double']['output']>;\n code?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n credit?: Maybe<Scalars['Long']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n paymentChannelGuid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type PaymentChannelDetail = {\n __typename?: 'PaymentChannelDetail';\n category?: Maybe<Scalars['String']['output']>;\n code?: Maybe<Scalars['String']['output']>;\n file?: Maybe<FetchFileResponse>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n parameter?: Maybe<Scalars['String']['output']>;\n providerCode?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PaymentChannelDetailQueryCriteria = {\n code?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PaymentChannelGuideline = {\n __typename?: 'PaymentChannelGuideline';\n guid: Scalars['String']['output'];\n paymentChannelGuid: Scalars['String']['output'];\n post?: Maybe<CmsPost>;\n};\n\nexport type PaymentChannelGuidelineQueryCriteria = {\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n postGuid?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PaymentChannelMetaField = {\n apiType: Array<PaymentChannelMetaFieldApiEnum>;\n desc?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum PaymentChannelMetaFieldApiEnum {\n Callback = 'CALLBACK',\n CreateOrder = 'CREATE_ORDER',\n Inquiry = 'INQUIRY',\n Otp = 'OTP'\n}\n\nexport type PaymentChannelPublic = {\n __typename?: 'PaymentChannelPublic';\n code?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n providerCode?: Maybe<Scalars['String']['output']>;\n providerPriority?: Maybe<Scalars['String']['output']>;\n requiredFieldJson?: Maybe<Scalars['JSON']['output']>;\n};\n\nexport type PaymentChannelPublicRs = {\n __typename?: 'PaymentChannelPublicRs';\n data?: Maybe<Array<Maybe<PaymentChannelPublic>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type PaymentChannelQueryCriteria = {\n category?: InputMaybe<Scalars['String']['input']>;\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n chargeType?: InputMaybe<Scalars['String']['input']>;\n code?: InputMaybe<Scalars['String']['input']>;\n companyCredentialGuid?: InputMaybe<Scalars['String']['input']>;\n contractorCompanyGuid?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n credentialGuid?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n isInquiryAvail?: InputMaybe<Scalars['Boolean']['input']>;\n isSupportLinkage?: InputMaybe<Scalars['Boolean']['input']>;\n isWhitelabel?: InputMaybe<Scalars['Boolean']['input']>;\n maxAmount?: InputMaybe<Scalars['Double']['input']>;\n minAmount?: InputMaybe<Scalars['Double']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n providerCode?: InputMaybe<Scalars['String']['input']>;\n providerCompanyGuid?: InputMaybe<Scalars['String']['input']>;\n providerPriority?: InputMaybe<Scalars['String']['input']>;\n rateTemplateGuid?: InputMaybe<Scalars['String']['input']>;\n serviceCompanyGuid?: InputMaybe<Scalars['String']['input']>;\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PaymentChannelRs = {\n __typename?: 'PaymentChannelRs';\n data?: Maybe<Array<Maybe<PaymentChannel>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum PaymentChannelTargetType {\n /** Exclude PC target */\n Exclude = 'EXCLUDE',\n /** Include PC target */\n Include = 'INCLUDE'\n}\n\nexport type PaymentGatewayTransactionDetail = {\n __typename?: 'PaymentGatewayTransactionDetail';\n amount?: Maybe<Scalars['Int']['output']>;\n ccyCode?: Maybe<Scalars['String']['output']>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n magnifyValue?: Maybe<Scalars['Int']['output']>;\n merchantRefNo?: Maybe<Scalars['String']['output']>;\n paymentProviderCode?: Maybe<Scalars['String']['output']>;\n transactionTrail?: Maybe<TransactionTrail>;\n txnRefNo?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PaymentGatewayTransactionQueryCriteria = {\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantAccessKey?: InputMaybe<Scalars['String']['input']>;\n merchantContractGuid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n merchantRefNo?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n paymentChannelCode?: InputMaybe<Scalars['String']['input']>;\n paymentProviderCode?: InputMaybe<Scalars['String']['input']>;\n providerType?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n txnRefNo?: InputMaybe<Scalars['String']['input']>;\n webtopupRefNo?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PaymentGatewayTransactionResult = {\n __typename?: 'PaymentGatewayTransactionResult';\n data: Array<Maybe<PaymentGatewayTransactions>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type PaymentGatewayTransactions = {\n __typename?: 'PaymentGatewayTransactions';\n additionalData?: Maybe<Scalars['JSON']['output']>;\n amount?: Maybe<Scalars['Int']['output']>;\n callbackUrl?: Maybe<Scalars['String']['output']>;\n ccyCode?: Maybe<Scalars['String']['output']>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n denominationField?: Maybe<Scalars['JSON']['output']>;\n errorPageUrl?: Maybe<Scalars['String']['output']>;\n failPageUrl?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n ipCreated?: Maybe<Scalars['String']['output']>;\n magnifyValue?: Maybe<Scalars['Int']['output']>;\n merchant?: Maybe<Merchant>;\n merchantAccessKey?: Maybe<Scalars['String']['output']>;\n merchantContractGuid?: Maybe<Scalars['String']['output']>;\n merchantRefNo?: Maybe<Scalars['String']['output']>;\n paymentChannel?: Maybe<PaymentChannel>;\n paymentProviderCode?: Maybe<Scalars['String']['output']>;\n providerType?: Maybe<Scalars['String']['output']>;\n requiredField?: Maybe<Scalars['JSON']['output']>;\n styleData?: Maybe<Scalars['JSON']['output']>;\n successPageUrl?: Maybe<Scalars['String']['output']>;\n transactionTrail?: Maybe<TransactionTrail>;\n txnRefNo?: Maybe<Scalars['String']['output']>;\n webtopupTransaction?: Maybe<WebtopupTransaction>;\n};\n\nexport type PaymentProvider = {\n __typename?: 'PaymentProvider';\n approvalData?: Maybe<Scalars['JSON']['output']>;\n approvalGuid?: Maybe<Scalars['String']['output']>;\n approvalRemark?: Maybe<Scalars['String']['output']>;\n approvalStatus?: Maybe<Scalars['String']['output']>;\n approvalType?: Maybe<Scalars['String']['output']>;\n category?: Maybe<Scalars['String']['output']>;\n code?: Maybe<Scalars['String']['output']>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n currency?: Maybe<Currency>;\n exts?: Maybe<Array<Maybe<PaymentProviderExt>>>;\n guid?: Maybe<Scalars['String']['output']>;\n isSupportLinkage?: Maybe<Scalars['Boolean']['output']>;\n maxAmount?: Maybe<Scalars['Long']['output']>;\n minAmount?: Maybe<Scalars['Long']['output']>;\n paymentChannels?: Maybe<Array<Maybe<PaymentChannel>>>;\n providerExternalName?: Maybe<Scalars['String']['output']>;\n providerInternalName?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n};\n\n/** PaymentProvider Connection */\nexport type PaymentProviderConnection = {\n __typename?: 'PaymentProviderConnection';\n /** Field edges */\n edges?: Maybe<Array<Maybe<PaymentProviderEdge>>>;\n /** Field pageInfo */\n pageInfo: PageInfo;\n};\n\n/** PaymentProvider Edge */\nexport type PaymentProviderEdge = {\n __typename?: 'PaymentProviderEdge';\n /** Field cursor */\n cursor?: Maybe<Scalars['String']['output']>;\n /** Field node */\n node?: Maybe<PaymentProvider>;\n};\n\nexport type PaymentProviderExt = {\n __typename?: 'PaymentProviderExt';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n extType?: Maybe<Scalars['String']['output']>;\n extValue?: Maybe<Scalars['String']['output']>;\n file?: Maybe<FetchFileResponse>;\n guid?: Maybe<Scalars['String']['output']>;\n paymentProviderGuid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PaymentProviderQueryCriteria = {\n category?: InputMaybe<Scalars['String']['input']>;\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n code?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n isSupportLinkage?: InputMaybe<Scalars['Boolean']['input']>;\n maxAmount?: InputMaybe<Scalars['Long']['input']>;\n merchantGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n minAmount?: InputMaybe<Scalars['Long']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n providerExternalName?: InputMaybe<Scalars['String']['input']>;\n providerInternalName?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PaymentProviderQueryCriteriaPublic = {\n advanceSearch?: InputMaybe<Scalars['String']['input']>;\n /** fill with end cursor id to get next data/page, cannot use this if already use 'before' filter */\n after?: InputMaybe<Scalars['String']['input']>;\n /** fill with start cursor id to get prev data/page, cannot use this if already use 'after' filter */\n before?: InputMaybe<Scalars['String']['input']>;\n category?: InputMaybe<Scalars['String']['input']>;\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n code?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n maxAmount?: InputMaybe<Scalars['Long']['input']>;\n minAmount?: InputMaybe<Scalars['Long']['input']>;\n pageSize?: Scalars['Int']['input'];\n providerExternalName?: InputMaybe<Scalars['String']['input']>;\n providerInternalName?: InputMaybe<Scalars['String']['input']>;\n sortBy: PaymentProviderSortByEnum;\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PaymentProviderRs = {\n __typename?: 'PaymentProviderRs';\n data?: Maybe<Array<Maybe<PaymentProvider>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum PaymentProviderSortByEnum {\n CreatedAt = 'createdAt',\n UpdatedAt = 'updatedAt'\n}\n\nexport type PaymentStatusInquiryResponse = {\n __typename?: 'PaymentStatusInquiryResponse';\n data?: Maybe<Scalars['JSON']['output']>;\n errorId?: Maybe<Scalars['String']['output']>;\n message?: Maybe<Scalars['String']['output']>;\n signature?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['Int']['output']>;\n time?: Maybe<Scalars['String']['output']>;\n transactionStatus?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum PaymentTxnResponseStatusEnum {\n CanceledByCustomer = 'CANCELED_BY_CUSTOMER',\n CanceledByInternal = 'CANCELED_BY_INTERNAL',\n CanceledByPc = 'CANCELED_BY_PC',\n CanceledByTester = 'CANCELED_BY_TESTER',\n Expired = 'EXPIRED',\n Fail = 'FAIL',\n PayerActionRequired = 'PAYER_ACTION_REQUIRED',\n Pending = 'PENDING',\n PendingRefund = 'PENDING_REFUND',\n Processing = 'PROCESSING',\n ProcessingRefund = 'PROCESSING_REFUND',\n RejectedByProvider = 'REJECTED_BY_PROVIDER',\n RejectedRefund = 'REJECTED_REFUND',\n Success = 'SUCCESS',\n SuccessRefund = 'SUCCESS_REFUND'\n}\n\nexport type PciEventMgmtRq = {\n guid: Scalars['String']['input'];\n paymentChannelGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type PermissionCheckRq = {\n /** ... user guid */\n subjectGuid: Scalars['String']['input'];\n /** ... target permission that want to check */\n targetPerms: Array<InputMaybe<Scalars['String']['input']>>;\n};\n\nexport type PermissionFilter = {\n /** ...get permission by perm guid */\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n /** ... filter permission by perCode equal */\n permCode?: InputMaybe<Scalars['String']['input']>;\n /** ... filter permission by description ilike */\n permDescription?: InputMaybe<Scalars['String']['input']>;\n /** ... filter permission by permission module in */\n permModule?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n /** ... filter permission by name ilike */\n permName?: InputMaybe<Scalars['String']['input']>;\n /** ... filter for perm scope equal */\n permScope?: InputMaybe<Scalars['String']['input']>;\n /** ... filter permission by permType in */\n permType?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n /** ... filter permission by related micro fe equal */\n relatedMf?: InputMaybe<Scalars['String']['input']>;\n /** ... filter permission by role(s) */\n roleGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n /** ... filter permission by status equal */\n status?: Status;\n /** ...get permission by user guid */\n subjectGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PhoneCode = {\n __typename?: 'PhoneCode';\n code?: Maybe<Scalars['String']['output']>;\n createdDate?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedDate?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport enum PlatformEnum {\n DirectTopUp = 'DIRECT_TOP_UP',\n Webtopup = 'WEBTOPUP'\n}\n\nexport type Post = {\n __typename?: 'Post';\n postGuid?: Maybe<Scalars['String']['output']>;\n urlKey?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PostHistoricalSlug = {\n __typename?: 'PostHistoricalSlug';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n postGuid?: Maybe<Scalars['String']['output']>;\n slug?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PostHistoricalSlugCriteria = {\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n postGuid?: InputMaybe<Scalars['String']['input']>;\n slug?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type PostHistoricalSlugResult = {\n __typename?: 'PostHistoricalSlugResult';\n data: Array<Maybe<PostHistoricalSlug>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum PostStatus {\n Draft = 'DRAFT',\n OnReview = 'ON_REVIEW',\n Published = 'PUBLISHED'\n}\n\nexport enum PriceListType {\n Directtopup = 'DIRECTTOPUP',\n Unibox = 'UNIBOX',\n Webtopup = 'WEBTOPUP'\n}\n\nexport type PriceWebtopup = {\n __typename?: 'PriceWebtopup';\n bonusUc?: Maybe<Scalars['Int']['output']>;\n eventGuid?: Maybe<Scalars['String']['output']>;\n eventType?: Maybe<Scalars['String']['output']>;\n isEvent?: Maybe<Scalars['Boolean']['output']>;\n promoAmount?: Maybe<Scalars['Int']['output']>;\n tncUrl?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PriceWebtopupQueryCriteria = {\n amount?: InputMaybe<Scalars['Int']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n paymentProviderGuid?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n userId?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum PrincipalStatus {\n Deleted = 'DELETED',\n Inactive = 'INACTIVE',\n UserConfirmed = 'USER_CONFIRMED',\n UserUnconfirmed = 'USER_UNCONFIRMED'\n}\n\nexport type PrizeEvent = {\n __typename?: 'PrizeEvent';\n amount?: Maybe<Scalars['Long']['output']>;\n category?: Maybe<Scalars['String']['output']>;\n code?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n remark?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type PrizeEventQueryCriteria = {\n category?: InputMaybe<Scalars['String']['input']>;\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n remark?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PrizeEventRs = {\n __typename?: 'PrizeEventRs';\n data: Array<Maybe<PrizeEvent>>;\n totalRecord: Scalars['Int']['output'];\n};\n\nexport enum ProductDenomStatusEnum {\n Active = 'ACTIVE',\n Deleted = 'DELETED'\n}\n\nexport type ProductDenomination = {\n __typename?: 'ProductDenomination';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n denomGroupGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n imageGuid?: Maybe<Scalars['String']['output']>;\n isAdjustableSellingPrice?: Maybe<Scalars['Boolean']['output']>;\n isDirectVoucher?: Maybe<Scalars['Boolean']['output']>;\n isVoucherApi?: Maybe<Scalars['Boolean']['output']>;\n itemCode?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n partnerProductId?: Maybe<Scalars['String']['output']>;\n productPageGuid?: Maybe<Scalars['String']['output']>;\n remark?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n stock?: Maybe<VoucherGroup>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ProductDenominationQueryCriteria = {\n denomGroupGuid?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n isAdjustableSellingPrice?: InputMaybe<Scalars['Boolean']['input']>;\n isDirectVoucher?: InputMaybe<Scalars['Boolean']['input']>;\n isVoucherApi?: InputMaybe<Scalars['Boolean']['input']>;\n itemCode?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n partnerProductId?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n status?: ProductDenomStatusEnum;\n};\n\nexport type ProductDetailsResponse = {\n __typename?: 'ProductDetailsResponse';\n denominations?: Maybe<Array<Maybe<Scalars['JSON']['output']>>>;\n gameRequiredField?: Maybe<Array<Maybe<Scalars['JSON']['output']>>>;\n product?: Maybe<Scalars['JSON']['output']>;\n};\n\nexport type ProductPage = {\n __typename?: 'ProductPage';\n advanceSearch?: Maybe<Scalars['String']['output']>;\n category?: Maybe<ProductPageCategory>;\n communityLink?: Maybe<Scalars['String']['output']>;\n company?: Maybe<Company>;\n content?: Maybe<Scalars['String']['output']>;\n country?: Maybe<Country>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n credentialProductPage?: Maybe<Credential>;\n denominations?: Maybe<Array<Maybe<ProductDenomination>>>;\n downloadLink?: Maybe<Scalars['String']['output']>;\n gameCenterImage?: Maybe<Scalars['String']['output']>;\n gameChildCode?: Maybe<Scalars['String']['output']>;\n gameParentCode?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n huaweiDownloadLink?: Maybe<Scalars['String']['output']>;\n iconGuid?: Maybe<Scalars['String']['output']>;\n influencerLink?: Maybe<Scalars['String']['output']>;\n iosDownloadLink?: Maybe<Scalars['String']['output']>;\n isEvent?: Maybe<Scalars['Boolean']['output']>;\n isNew?: Maybe<Scalars['Boolean']['output']>;\n isPromo?: Maybe<Scalars['Boolean']['output']>;\n isShowOnLandingPage?: Maybe<Scalars['Boolean']['output']>;\n isTesting?: Maybe<Scalars['Boolean']['output']>;\n merchant?: Maybe<Merchant>;\n metaDescription?: Maybe<Scalars['String']['output']>;\n metaFieldJson?: Maybe<Scalars['JSON']['output']>;\n metaTitle?: Maybe<Scalars['String']['output']>;\n officialSiteLink?: Maybe<Scalars['String']['output']>;\n providerCompanyByGuid?: Maybe<Company>;\n reloadType?: Maybe<ProductPageReloadTypeEnum>;\n requiredFieldJson?: Maybe<Scalars['JSON']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n route?: Maybe<Scalars['String']['output']>;\n schemaMarkUp?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n tags?: Maybe<Scalars['String']['output']>;\n title?: Maybe<Scalars['String']['output']>;\n topUpGuideLink?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum ProductPageCategory {\n Voucher = 'VOUCHER',\n Webtopup = 'WEBTOPUP'\n}\n\n/** ProductPage Connection */\nexport type ProductPageConnection = {\n __typename?: 'ProductPageConnection';\n /** Field edges */\n edges?: Maybe<Array<Maybe<ProductPageEdge>>>;\n /** Field pageInfo */\n pageInfo: PageInfo;\n};\n\n/** ProductPage Edge */\nexport type ProductPageEdge = {\n __typename?: 'ProductPageEdge';\n /** Field cursor */\n cursor?: Maybe<Scalars['String']['output']>;\n /** Field node */\n node?: Maybe<ProductPage>;\n};\n\nexport type ProductPageMetaField = {\n apiType: Array<ProductPageMetaFieldApiEnum>;\n desc?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum ProductPageMetaFieldApiEnum {\n Checkout = 'CHECKOUT',\n Delivery = 'DELIVERY',\n Inquiry = 'INQUIRY',\n Server = 'SERVER'\n}\n\nexport type ProductPageQueryCriteria = {\n advanceSearch?: InputMaybe<Scalars['String']['input']>;\n approvalData?: InputMaybe<Scalars['JSON']['input']>;\n approvalGuid?: InputMaybe<Scalars['String']['input']>;\n approvalRemark?: InputMaybe<Scalars['String']['input']>;\n approvalStatus?: InputMaybe<Scalars['String']['input']>;\n approvalType?: InputMaybe<Scalars['String']['input']>;\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n gameChildCode?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n gameParentCode?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n isEvent?: InputMaybe<Scalars['Boolean']['input']>;\n isNew?: InputMaybe<Scalars['Boolean']['input']>;\n isPromo?: InputMaybe<Scalars['Boolean']['input']>;\n isShowOnLandingPage?: InputMaybe<Scalars['Boolean']['input']>;\n isTesting?: InputMaybe<Scalars['Boolean']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n providerCompanyGuid?: InputMaybe<Scalars['String']['input']>;\n reloadType?: InputMaybe<ProductPageReloadTypeEnum>;\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type ProductPageQueryCriteriaPublic = {\n advanceSearch?: InputMaybe<Scalars['String']['input']>;\n /** fill with end cursor id to get next data/page, cannot use this if already use 'before' filter */\n after?: InputMaybe<Scalars['String']['input']>;\n approvalData?: InputMaybe<Scalars['JSON']['input']>;\n approvalGuid?: InputMaybe<Scalars['String']['input']>;\n approvalRemark?: InputMaybe<Scalars['String']['input']>;\n approvalStatus?: InputMaybe<Scalars['String']['input']>;\n approvalType?: InputMaybe<Scalars['String']['input']>;\n /** fill with start cursor id to get prev data/page, cannot use this if already use 'after' filter */\n before?: InputMaybe<Scalars['String']['input']>;\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n gameChildCode?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n gameParentCode?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n isEvent?: InputMaybe<Scalars['Boolean']['input']>;\n isNew?: InputMaybe<Scalars['Boolean']['input']>;\n isPromo?: InputMaybe<Scalars['Boolean']['input']>;\n isShowOnLandingPage?: InputMaybe<Scalars['Boolean']['input']>;\n isTesting?: InputMaybe<Scalars['Boolean']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n pageSize?: Scalars['Int']['input'];\n sortBy: ProductPageSortByEnum;\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\n/** Enum for differentiate between each reload uc, up and game webtopup */\nexport enum ProductPageReloadTypeEnum {\n Game = 'GAME',\n Na = 'NA',\n Uc = 'UC',\n Up = 'UP'\n}\n\nexport enum ProductPageSortByEnum {\n CreatedAt = 'createdAt',\n UpdatedAt = 'updatedAt'\n}\n\nexport type ProductPageVoucherGroup = {\n __typename?: 'ProductPageVoucherGroup';\n iconUrl?: Maybe<Scalars['String']['output']>;\n voucherCode?: Maybe<Scalars['String']['output']>;\n voucherName?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ProductPriceList = {\n __typename?: 'ProductPriceList';\n approvalData?: Maybe<Scalars['JSON']['output']>;\n approvalGuid?: Maybe<Scalars['String']['output']>;\n approvalRemark?: Maybe<Scalars['String']['output']>;\n approvalStatus?: Maybe<Scalars['String']['output']>;\n approvalType?: Maybe<Scalars['String']['output']>;\n ccyCode?: Maybe<Scalars['String']['output']>;\n contractTemplateGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n endDate?: Maybe<Scalars['DateTime']['output']>;\n eventCode?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n magnifyValue?: Maybe<Scalars['Int']['output']>;\n paymentProvider?: Maybe<PaymentProvider>;\n paymentProviderCode?: Maybe<Scalars['String']['output']>;\n price?: Maybe<Scalars['Int']['output']>;\n priority?: Maybe<Scalars['Int']['output']>;\n productDenom?: Maybe<ProductDenomination>;\n productDenomGuid?: Maybe<Scalars['String']['output']>;\n productPage?: Maybe<ProductPage>;\n productPageGuid?: Maybe<Scalars['String']['output']>;\n rateTemplate?: Maybe<RateCardTemplate>;\n revision?: Maybe<Scalars['String']['output']>;\n startDate?: Maybe<Scalars['DateTime']['output']>;\n status?: Maybe<Status>;\n type?: Maybe<PriceListType>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type ProductPriceListCriteria = {\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n contractTemplateGuid?: InputMaybe<Scalars['String']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n eventCode?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n paymentProviderCode?: InputMaybe<Scalars['String']['input']>;\n priority?: InputMaybe<Scalars['Int']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n rateTemplateGuid?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: Status;\n type?: InputMaybe<PriceListType>;\n};\n\nexport type ProductPriceListRs = PageableRs & {\n __typename?: 'ProductPriceListRs';\n data?: Maybe<Array<ProductPriceList>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum ProductSelectionEnum {\n All = 'ALL',\n Selective = 'SELECTIVE'\n}\n\nexport type ProductVoucherCriteria = {\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n parentCode?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type PromoChannel = {\n __typename?: 'PromoChannel';\n isEvent?: Maybe<Scalars['Boolean']['output']>;\n paymentProvider?: Maybe<Array<Maybe<PromoPaymentChannel>>>;\n};\n\nexport type PromoPaymentChannel = {\n __typename?: 'PromoPaymentChannel';\n guid?: Maybe<Scalars['String']['output']>;\n paymentChannelGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type PromoWebtopupQueryCriteria = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum ProviderPlatform {\n Facebook = 'FACEBOOK',\n Google = 'GOOGLE'\n}\n\nexport type Query = {\n __typename?: 'Query';\n approvalMsApprovals?: Maybe<PageableResponse>;\n approvalMsDocumentApprovalRequest?: Maybe<DocumentRequest>;\n approvalMsDocumentApprovalRequestBySigner?: Maybe<Array<Maybe<DocumentRequest>>>;\n approvalMsDocumentTemplate?: Maybe<DocumentTemplateResponse>;\n approvalMsUserSign?: Maybe<ApprovalUserSign>;\n /** get all audit trail with criteria */\n auditMsAuditTrail?: Maybe<Array<Maybe<AuditTrail>>>;\n /** get suspicious tags */\n auditMsSuspiciousTag?: Maybe<SuspiciousTagPageableRs>;\n /** acessToken query used by gateway to get user access permission */\n authMsAccessToken?: Maybe<Scalars['String']['output']>;\n /** Generate token from api credential */\n authMsApiCredentialToken?: Maybe<Scalars['String']['output']>;\n authMsApiCredentials?: Maybe<ApiCredentialFilterRs>;\n authMsApiCredentialsPrivate?: Maybe<Array<Maybe<ApiCredentialPrivate>>>;\n /** get all auth ms settings with filter */\n authMsAuthSettings?: Maybe<AuthSettingsWithFilterRs>;\n /** get all company with filter */\n authMsCompany?: Maybe<CompanyWithFilterRs>;\n authMsContactMerchant?: Maybe<MerchantContactFilterRs>;\n /** This query allow to get firebase id token from uid (testing) */\n authMsGetFirebaseIdToken?: Maybe<FirebaseIdTokenRes>;\n /** get all member with criteria for CP_COMMERCE sourcePlatform */\n authMsMember?: Maybe<AppLoginSubjectConnection>;\n /** get all merchant by guid */\n authMsMerchant?: Maybe<MerchantFilterRs>;\n /** get user profile by authorization header */\n authMsMyProfile?: Maybe<AppLoginSubject>;\n /** get list of permission available */\n authMsPermission?: Maybe<PaginationPermissionResponse>;\n /** get list of available role */\n authMsRole?: Maybe<PaginationRoleResponse>;\n authMsSignatureChecker?: Maybe<SignatureCheckerRs>;\n authMsSignatureCreate?: Maybe<SignatureCreateRs>;\n /** This query allow to validate token */\n authMsTokenValidaton?: Maybe<Scalars['String']['output']>;\n /** get all user with criteria for ADMIN sourcePlatform */\n authMsUser?: Maybe<Array<Maybe<AppLoginSubject>>>;\n /**\n * Get Author Historical Slug by criteria\n * For urlKey use slug with pageSize 1\n */\n cmsMsAuthorHistoricalSlug?: Maybe<AuthorHistoricalSlugResult>;\n cmsMsBookmarks?: Maybe<Array<Maybe<CmsBookmarks>>>;\n cmsMsCommentReactions?: Maybe<CmsReactionResult>;\n /** This query is used to get post, comment and its reaction status based on its historical slug */\n cmsMsFindPostCommentReactionByHistSlug?: Maybe<CmsPost>;\n /** This query is used to get locked post by guid or post guid */\n cmsMsLockedPost?: Maybe<Array<Maybe<CmsLockPost>>>;\n cmsMsPostComments?: Maybe<CmsPostCommentResult>;\n cmsMsPostExts?: Maybe<Array<Maybe<CmsPostExt>>>;\n /**\n * This query is used to get post historical slug by criteria\n * can use 'slug' for search urlKey\n */\n cmsMsPostHistoricalSlug?: Maybe<PostHistoricalSlugResult>;\n cmsMsPostTermRelationship?: Maybe<Array<Maybe<CmsPostTermRelationship>>>;\n cmsMsPostTerms?: Maybe<CmsPostTermResult>;\n cmsMsPostViews?: Maybe<CmsPostViewsResult>;\n cmsMsPosts?: Maybe<CmsPostConnection>;\n cmsMsPostsPublic?: Maybe<CmsPostConnection>;\n cmsMsUsers?: Maybe<Array<Maybe<CmsUser>>>;\n consentMsHistoryAgreement?: Maybe<Array<Maybe<HistoryAgreement>>>;\n consentMsTableAgreement?: Maybe<Array<Maybe<Agreement>>>;\n consentMsUserConsent?: Maybe<Array<Maybe<UserConsent>>>;\n /** remove this when there is field under query */\n emptyField?: Maybe<Scalars['String']['output']>;\n eventMsEventLogs?: Maybe<EventLogRs>;\n eventMsEventManagements?: Maybe<EventManagementsRs>;\n eventMsEventParticipations?: Maybe<EventParticipationRs>;\n eventMsGetPriceWebtopup?: Maybe<PriceWebtopup>;\n eventMsGetPromoWebtopup?: Maybe<PromoChannel>;\n eventMsPrizeEvent?: Maybe<PrizeEventRs>;\n eventMsRaffleManagements?: Maybe<RaffleManagementsRs>;\n fileMgmtSysMsFetchFile?: Maybe<Array<Maybe<FetchFileResponse>>>;\n fileMgmtSysMsFileMetadata?: Maybe<Scalars['String']['output']>;\n fileMgmtSysMsFileQuota?: Maybe<Scalars['String']['output']>;\n fileMgmtSysMsFileSearch?: Maybe<Scalars['String']['output']>;\n fileMgmtSysMsReusableFile?: Maybe<ReusableFileRs>;\n forexMsConversion?: Maybe<ConversionRs>;\n forexMsCurrencyBase?: Maybe<Array<Maybe<CurrencyBase>>>;\n forexMsRates?: Maybe<Array<Maybe<Rates>>>;\n ggwMsGameTransactions?: Maybe<Array<Maybe<GameTransactions>>>;\n ggwMsRequiredField?: Maybe<RequiredFieldResponse>;\n humanResourcesMsVacancy?: Maybe<PaginationVacancyResponse>;\n humanResourcesMsVacancyApplication?: Maybe<PaginationVacancyApplicationResponse>;\n humanResourcesMsVacancyPublic?: Maybe<PaginationVacancyResponse>;\n humanResourcesMsVacancySettings?: Maybe<Array<Maybe<VacancySettings>>>;\n membershipMsBirthdayTierBonusRules?: Maybe<BirthdayTierBonusRulesRs>;\n membershipMsCatalogCategories?: Maybe<CatalogCategoryRs>;\n membershipMsCatalogs?: Maybe<CatalogRs>;\n membershipMsMember?: Maybe<MemberPageableResponse>;\n membershipMsMemberPointMutations?: Maybe<MemberPointMutationsRs>;\n membershipMsMemberPointSummary?: Maybe<MemberPointSummaryRs>;\n membershipMsMemberPoints?: Maybe<MemberPointsRs>;\n membershipMsRedeemTransactions?: Maybe<RedeemTransactionRs>;\n membershipMsRewardPointPrediction?: Maybe<Scalars['Double']['output']>;\n membershipMsTierBonusRule?: Maybe<TierBonusRuleRs>;\n membershipMsTierUnlockBonusRule?: Maybe<TierUnlockBonusRuleRs>;\n membershipMsTiers?: Maybe<TierRs>;\n membershipMsTimeseriesTimeline?: Maybe<TimeSeriesRs>;\n /** get all message template with criteria */\n notificationMsEmailMessageTemplate?: Maybe<EmailMessageTemplatePageableResult>;\n notificationMsNotificationAlerts?: Maybe<NotificationAlertResponses>;\n paymentGatewayMsMerchantBalances?: Maybe<MerchantBalanceRs>;\n paymentGatewayMsTimeseriesTimeline?: Maybe<TimeSeriesRs>;\n /** This query is used to inquiry action[denom/channel/required-field/payment-execution selection] by its guid */\n pgwMsInquiryAction?: Maybe<PaymentActionResponse>;\n pgwMsInquiryLinkage?: Maybe<LinkageInquiryRs>;\n pgwMsLinkablePaymentProvider?: Maybe<LinkablePaymentProvider>;\n pgwMsMerchantSummary?: Maybe<MerchantSummaryRs>;\n pgwMsMerchantSummaryDetail?: Maybe<MerchantSummaryDetailRs>;\n /** This query is used to inquiry action[pci selection] by its guid */\n pgwMsPciProviderStatusInquiry?: Maybe<PaymentStatusInquiryResponse>;\n pgwMsTransaction?: Maybe<PaymentGatewayTransactions>;\n pgwMsTransactionByCriteria?: Maybe<PaymentGatewayTransactionResult>;\n pgwMsTransactionRefund?: Maybe<TransactionRefundConnection>;\n productMsContractTemplates?: Maybe<ContractTemplateRs>;\n productMsDenomGroup?: Maybe<DenomGroupRs>;\n productMsDenominationDetails?: Maybe<DenominationDetails>;\n productMsDenominationVoucherStock?: Maybe<Array<Maybe<VoucherStock>>>;\n productMsIp?: Maybe<IpRs>;\n productMsMerchantContracts?: Maybe<MerchantContractRs>;\n productMsPaymentChannel?: Maybe<PaymentChannelRs>;\n productMsPaymentChannelByProviderCodePriority?: Maybe<PaymentChannel>;\n productMsPaymentChannelDenomination?: Maybe<Array<Maybe<PaymentChannelDenomination>>>;\n productMsPaymentChannelDetail?: Maybe<PaymentChannelDetail>;\n productMsPaymentChannelGuideline?: Maybe<Array<Maybe<PaymentChannelGuideline>>>;\n productMsPaymentChannelPublic?: Maybe<PaymentChannelPublicRs>;\n productMsPaymentProvider?: Maybe<PaymentProviderRs>;\n productMsPaymentProviderPublic?: Maybe<PaymentProviderConnection>;\n productMsProductDenomination?: Maybe<Array<Maybe<ProductDenomination>>>;\n productMsProductPage?: Maybe<Array<Maybe<ProductPage>>>;\n productMsProductPagePublic?: Maybe<ProductPageConnection>;\n productMsProductPageVoucherGroups?: Maybe<Array<Maybe<ProductPageVoucherGroup>>>;\n productMsProductPriceList?: Maybe<ProductPriceListRs>;\n productMsRateCardTemplates?: Maybe<RateTemplateRs>;\n productMsVoucherDetails?: Maybe<VoucherDetailList>;\n projectMsActivityHistory?: Maybe<ActivityHistoryRs>;\n projectMsBoard?: Maybe<BoardRs>;\n projectMsBoardAccess?: Maybe<BoardAccessRs>;\n projectMsCard?: Maybe<CardRs>;\n projectMsCardLabel?: Maybe<CardLabelRs>;\n projectMsCardSprint?: Maybe<CardSprintRs>;\n projectMsChecklist?: Maybe<ChecklistRs>;\n projectMsChecklistItem?: Maybe<ChecklistItemRs>;\n projectMsComment?: Maybe<CommentRs>;\n projectMsGithubEventCardLinks?: Maybe<GithubEventCardLinkRs>;\n projectMsLabel?: Maybe<LabelRs>;\n projectMsRequest?: Maybe<RequestRs>;\n projectMsRequestNature?: Maybe<RequestNatureRs>;\n projectMsRequestNatureType?: Maybe<RequestNatureTypeRs>;\n projectMsRequestStatusCount?: Maybe<RequestCount>;\n projectMsRequestType?: Maybe<RequestTypeRs>;\n projectMsSection?: Maybe<SectionRs>;\n projectMsSprint?: Maybe<SprintRs>;\n secretMsCredentialTrails?: Maybe<CredentialTrailRs>;\n secretMsCredentials?: Maybe<CredentialRs>;\n voucherMsGatewayCreateOrder?: Maybe<VoucherGatewayResponse>;\n voucherMsVoucherGroup?: Maybe<VoucherGroupRs>;\n voucherMsVoucherGroupAutoGen?: Maybe<VoucherGroupAutoGenRs>;\n voucherMsVoucherGroupAutoGenLock?: Maybe<VoucherGroupAutoGenLock>;\n voucherMsVoucherTransaction?: Maybe<VoucherTransactionRs>;\n voucherMsVoucherTransactionTrail?: Maybe<VoucherTransactionTrailRs>;\n voucherMsVouchers?: Maybe<VouchersRs>;\n webConfigMsCountry?: Maybe<CountryResult>;\n webConfigMsCurrency?: Maybe<CurrencyResult>;\n webConfigMsWebConfig?: Maybe<WebConfigResult>;\n webtopupMsGetProductPage?: Maybe<ProductDetailsResponse>;\n webtopupMsTransactionHistory?: Maybe<Array<Maybe<WebtopupTransactionHistory>>>;\n webtopupMsTransactions?: Maybe<WebtopupTransactionResult>;\n};\n\n\nexport type QueryApprovalMsApprovalsArgs = {\n input?: InputMaybe<ApprovalCriteria>;\n};\n\n\nexport type QueryApprovalMsDocumentApprovalRequestArgs = {\n filter?: InputMaybe<DocumentRequestFilter>;\n};\n\n\nexport type QueryApprovalMsDocumentApprovalRequestBySignerArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type QueryApprovalMsDocumentTemplateArgs = {\n input?: InputMaybe<DocumentTemplateFilter>;\n};\n\n\nexport type QueryApprovalMsUserSignArgs = {\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type QueryAuditMsAuditTrailArgs = {\n input?: InputMaybe<AuditTrailCriteria>;\n};\n\n\nexport type QueryAuditMsSuspiciousTagArgs = {\n input?: InputMaybe<SuspiciousFilter>;\n};\n\n\nexport type QueryAuthMsAccessTokenArgs = {\n token: Scalars['String']['input'];\n};\n\n\nexport type QueryAuthMsApiCredentialTokenArgs = {\n accessKey: Scalars['String']['input'];\n secretKey: Scalars['String']['input'];\n};\n\n\nexport type QueryAuthMsApiCredentialsArgs = {\n filter: ApiCredentialFilterRq;\n};\n\n\nexport type QueryAuthMsApiCredentialsPrivateArgs = {\n input: ApiCredentialSpecialFilter;\n};\n\n\nexport type QueryAuthMsAuthSettingsArgs = {\n input?: InputMaybe<AuthSettingsFilter>;\n};\n\n\nexport type QueryAuthMsCompanyArgs = {\n input?: InputMaybe<CompanyFilter>;\n};\n\n\nexport type QueryAuthMsContactMerchantArgs = {\n input?: InputMaybe<MerchantContactFilterRq>;\n};\n\n\nexport type QueryAuthMsGetFirebaseIdTokenArgs = {\n uid: Scalars['String']['input'];\n};\n\n\nexport type QueryAuthMsMemberArgs = {\n input?: InputMaybe<UserMemberQueryCriteria>;\n};\n\n\nexport type QueryAuthMsMerchantArgs = {\n input?: InputMaybe<MerchantFilter>;\n};\n\n\nexport type QueryAuthMsPermissionArgs = {\n filter: PermissionFilter;\n};\n\n\nexport type QueryAuthMsRoleArgs = {\n filter: RoleFilter;\n};\n\n\nexport type QueryAuthMsSignatureCheckerArgs = {\n input?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type QueryAuthMsSignatureCreateArgs = {\n input?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type QueryAuthMsTokenValidatonArgs = {\n token?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type QueryAuthMsUserArgs = {\n input?: InputMaybe<UserAdminQueryCriteria>;\n};\n\n\nexport type QueryCmsMsAuthorHistoricalSlugArgs = {\n input?: InputMaybe<AuthorHistoricalSlugCriteria>;\n};\n\n\nexport type QueryCmsMsBookmarksArgs = {\n input?: InputMaybe<BookmarksQueryCriteria>;\n};\n\n\nexport type QueryCmsMsCommentReactionsArgs = {\n filter: CmsReactionCriteria;\n};\n\n\nexport type QueryCmsMsFindPostCommentReactionByHistSlugArgs = {\n urlKey: Scalars['String']['input'];\n};\n\n\nexport type QueryCmsMsLockedPostArgs = {\n input?: InputMaybe<CmsLockPostQueryCriteria>;\n};\n\n\nexport type QueryCmsMsPostCommentsArgs = {\n input?: InputMaybe<CmsPostCommentFilter>;\n};\n\n\nexport type QueryCmsMsPostExtsArgs = {\n input: CmsPostExtQueryCriteria;\n};\n\n\nexport type QueryCmsMsPostHistoricalSlugArgs = {\n input: PostHistoricalSlugCriteria;\n};\n\n\nexport type QueryCmsMsPostTermRelationshipArgs = {\n filter?: InputMaybe<CmsPostTermRelationshipQueryCriteria>;\n};\n\n\nexport type QueryCmsMsPostTermsArgs = {\n filter: CmsPostTermFilter;\n isHome: Scalars['Boolean']['input'];\n};\n\n\nexport type QueryCmsMsPostViewsArgs = {\n filter: CmsPostViewsCriteria;\n};\n\n\nexport type QueryCmsMsPostsArgs = {\n filter: CmsPostFilter;\n};\n\n\nexport type QueryCmsMsPostsPublicArgs = {\n filter: CmsPostFilterPublic;\n isHome?: Scalars['Boolean']['input'];\n isViewCount?: Scalars['Boolean']['input'];\n};\n\n\nexport type QueryCmsMsUsersArgs = {\n filter: CmsUserFilter;\n};\n\n\nexport type QueryConsentMsHistoryAgreementArgs = {\n input?: InputMaybe<HistoryAgreementQueryCriteria>;\n};\n\n\nexport type QueryConsentMsTableAgreementArgs = {\n input?: InputMaybe<AgreementQueryCriteria>;\n};\n\n\nexport type QueryConsentMsUserConsentArgs = {\n input?: InputMaybe<UserConsentCriteria>;\n};\n\n\nexport type QueryEventMsEventLogsArgs = {\n input?: InputMaybe<EventLogsCriteria>;\n};\n\n\nexport type QueryEventMsEventManagementsArgs = {\n input?: InputMaybe<EventManagementsQueryCriteria>;\n};\n\n\nexport type QueryEventMsEventParticipationsArgs = {\n input?: InputMaybe<EventParticipationCriteria>;\n};\n\n\nexport type QueryEventMsGetPriceWebtopupArgs = {\n input?: InputMaybe<PriceWebtopupQueryCriteria>;\n};\n\n\nexport type QueryEventMsGetPromoWebtopupArgs = {\n input?: InputMaybe<PromoWebtopupQueryCriteria>;\n};\n\n\nexport type QueryEventMsPrizeEventArgs = {\n input?: InputMaybe<PrizeEventQueryCriteria>;\n};\n\n\nexport type QueryEventMsRaffleManagementsArgs = {\n input?: InputMaybe<RaffleManagementsQueryCriteria>;\n};\n\n\nexport type QueryFileMgmtSysMsFetchFileArgs = {\n fileGuids: Array<InputMaybe<Scalars['String']['input']>>;\n};\n\n\nexport type QueryFileMgmtSysMsFileMetadataArgs = {\n input?: InputMaybe<TempFileRequest>;\n};\n\n\nexport type QueryFileMgmtSysMsFileQuotaArgs = {\n input?: InputMaybe<TempFileRequest>;\n};\n\n\nexport type QueryFileMgmtSysMsFileSearchArgs = {\n input?: InputMaybe<TempFileRequest>;\n};\n\n\nexport type QueryFileMgmtSysMsReusableFileArgs = {\n input?: InputMaybe<ReusableFileCriteria>;\n};\n\n\nexport type QueryForexMsConversionArgs = {\n input?: InputMaybe<ConversionRq>;\n};\n\n\nexport type QueryForexMsCurrencyBaseArgs = {\n input?: InputMaybe<CurrencyBaseFilter>;\n};\n\n\nexport type QueryForexMsRatesArgs = {\n input?: InputMaybe<RatesFilter>;\n};\n\n\nexport type QueryGgwMsGameTransactionsArgs = {\n input?: InputMaybe<GameTransactionQueryCriteria>;\n};\n\n\nexport type QueryGgwMsRequiredFieldArgs = {\n data?: InputMaybe<RequiredFieldRequest>;\n};\n\n\nexport type QueryHumanResourcesMsVacancyArgs = {\n input?: InputMaybe<VacancyQueryCriteria>;\n};\n\n\nexport type QueryHumanResourcesMsVacancyApplicationArgs = {\n input?: InputMaybe<VacancyApplicationQueryCriteria>;\n};\n\n\nexport type QueryHumanResourcesMsVacancyPublicArgs = {\n input?: InputMaybe<VacancyQueryCriteria>;\n};\n\n\nexport type QueryHumanResourcesMsVacancySettingsArgs = {\n input?: InputMaybe<VacancySettingsQueryCriteria>;\n};\n\n\nexport type QueryMembershipMsBirthdayTierBonusRulesArgs = {\n input?: InputMaybe<BirthdayTierBonusRuleCriteria>;\n};\n\n\nexport type QueryMembershipMsCatalogCategoriesArgs = {\n input?: InputMaybe<CatalogCategoryCriteria>;\n};\n\n\nexport type QueryMembershipMsCatalogsArgs = {\n input?: InputMaybe<CatalogCriteria>;\n};\n\n\nexport type QueryMembershipMsMemberArgs = {\n input?: InputMaybe<MemberCriteria>;\n};\n\n\nexport type QueryMembershipMsMemberPointMutationsArgs = {\n input?: InputMaybe<MemberPointMutationCriteria>;\n};\n\n\nexport type QueryMembershipMsMemberPointSummaryArgs = {\n input?: InputMaybe<MemberPointSummaryCriteria>;\n};\n\n\nexport type QueryMembershipMsMemberPointsArgs = {\n input?: InputMaybe<MemberPointCriteria>;\n};\n\n\nexport type QueryMembershipMsRedeemTransactionsArgs = {\n input?: InputMaybe<RedeemTransactionCriteria>;\n};\n\n\nexport type QueryMembershipMsRewardPointPredictionArgs = {\n input?: InputMaybe<NewMemberPoint>;\n};\n\n\nexport type QueryMembershipMsTierBonusRuleArgs = {\n input?: InputMaybe<TierBonusRuleCriteria>;\n};\n\n\nexport type QueryMembershipMsTierUnlockBonusRuleArgs = {\n input?: InputMaybe<TierUnlockBonusRuleCriteria>;\n};\n\n\nexport type QueryMembershipMsTiersArgs = {\n input?: InputMaybe<TiersCriteria>;\n};\n\n\nexport type QueryMembershipMsTimeseriesTimelineArgs = {\n filter?: InputMaybe<MembershipTimeseriesFilter>;\n};\n\n\nexport type QueryNotificationMsEmailMessageTemplateArgs = {\n input?: InputMaybe<EmailMsgTemplateCriteria>;\n};\n\n\nexport type QueryNotificationMsNotificationAlertsArgs = {\n input?: InputMaybe<NotificationAlertCriteria>;\n};\n\n\nexport type QueryPaymentGatewayMsMerchantBalancesArgs = {\n input?: InputMaybe<MerchantBalanceCriteria>;\n};\n\n\nexport type QueryPaymentGatewayMsTimeseriesTimelineArgs = {\n filter?: InputMaybe<PgwTimeseriesFilter>;\n};\n\n\nexport type QueryPgwMsInquiryActionArgs = {\n channelInput?: InputMaybe<ChannelSelectionInput>;\n denomInput?: InputMaybe<DenomSelectionInput>;\n requiredFieldInput?: InputMaybe<RequiredFieldInput>;\n txnGuid: Scalars['String']['input'];\n};\n\n\nexport type QueryPgwMsInquiryLinkageArgs = {\n providerCode?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\n\nexport type QueryPgwMsMerchantSummaryArgs = {\n input?: InputMaybe<MerchantSummaryFilter>;\n};\n\n\nexport type QueryPgwMsMerchantSummaryDetailArgs = {\n input?: InputMaybe<MerchantSummaryDetailFilter>;\n};\n\n\nexport type QueryPgwMsPciProviderStatusInquiryArgs = {\n txnGuid: Scalars['String']['input'];\n};\n\n\nexport type QueryPgwMsTransactionArgs = {\n pgwTxnGuid: Scalars['String']['input'];\n};\n\n\nexport type QueryPgwMsTransactionByCriteriaArgs = {\n input: PaymentGatewayTransactionQueryCriteria;\n};\n\n\nexport type QueryPgwMsTransactionRefundArgs = {\n filter: TransactionRefundFilter;\n};\n\n\nexport type QueryProductMsContractTemplatesArgs = {\n input?: InputMaybe<ContractTemplateCriteria>;\n};\n\n\nexport type QueryProductMsDenomGroupArgs = {\n input?: InputMaybe<DenomGroupCriteria>;\n};\n\n\nexport type QueryProductMsDenominationDetailsArgs = {\n input?: InputMaybe<DenominationDetailsQueryCriteria>;\n};\n\n\nexport type QueryProductMsDenominationVoucherStockArgs = {\n guid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type QueryProductMsIpArgs = {\n input?: InputMaybe<IpQueryCriteria>;\n};\n\n\nexport type QueryProductMsMerchantContractsArgs = {\n input?: InputMaybe<MerchantContractCriteria>;\n};\n\n\nexport type QueryProductMsPaymentChannelArgs = {\n input?: InputMaybe<PaymentChannelQueryCriteria>;\n};\n\n\nexport type QueryProductMsPaymentChannelByProviderCodePriorityArgs = {\n input?: InputMaybe<PaymentChannelByProviderCodeCriteria>;\n};\n\n\nexport type QueryProductMsPaymentChannelDenominationArgs = {\n input?: InputMaybe<PaymentChannelDenomQueryCriteria>;\n};\n\n\nexport type QueryProductMsPaymentChannelDetailArgs = {\n code?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type QueryProductMsPaymentChannelGuidelineArgs = {\n filter?: InputMaybe<PaymentChannelGuidelineQueryCriteria>;\n};\n\n\nexport type QueryProductMsPaymentChannelPublicArgs = {\n input?: InputMaybe<PaymentChannelQueryCriteria>;\n};\n\n\nexport type QueryProductMsPaymentProviderArgs = {\n input?: InputMaybe<PaymentProviderQueryCriteria>;\n};\n\n\nexport type QueryProductMsPaymentProviderPublicArgs = {\n input?: InputMaybe<PaymentProviderQueryCriteriaPublic>;\n};\n\n\nexport type QueryProductMsProductDenominationArgs = {\n input?: InputMaybe<ProductDenominationQueryCriteria>;\n};\n\n\nexport type QueryProductMsProductPageArgs = {\n input?: InputMaybe<ProductPageQueryCriteria>;\n};\n\n\nexport type QueryProductMsProductPagePublicArgs = {\n input?: InputMaybe<ProductPageQueryCriteriaPublic>;\n};\n\n\nexport type QueryProductMsProductPageVoucherGroupsArgs = {\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type QueryProductMsProductPriceListArgs = {\n input: ProductPriceListCriteria;\n};\n\n\nexport type QueryProductMsRateCardTemplatesArgs = {\n input?: InputMaybe<RateCardTemplateCriteria>;\n};\n\n\nexport type QueryProductMsVoucherDetailsArgs = {\n input?: InputMaybe<ProductVoucherCriteria>;\n};\n\n\nexport type QueryProjectMsActivityHistoryArgs = {\n input?: InputMaybe<ActivityHistoryCriteria>;\n};\n\n\nexport type QueryProjectMsBoardArgs = {\n input?: InputMaybe<BoardCriteria>;\n};\n\n\nexport type QueryProjectMsBoardAccessArgs = {\n input?: InputMaybe<BoardAccessCriteria>;\n};\n\n\nexport type QueryProjectMsCardArgs = {\n input?: InputMaybe<CardCriteria>;\n};\n\n\nexport type QueryProjectMsCardLabelArgs = {\n input?: InputMaybe<CardLabelCriteria>;\n};\n\n\nexport type QueryProjectMsCardSprintArgs = {\n input?: InputMaybe<CardSprintCriteria>;\n};\n\n\nexport type QueryProjectMsChecklistArgs = {\n input?: InputMaybe<ChecklistCriteria>;\n};\n\n\nexport type QueryProjectMsChecklistItemArgs = {\n input?: InputMaybe<ChecklistItemCriteria>;\n};\n\n\nexport type QueryProjectMsCommentArgs = {\n input?: InputMaybe<CommentCriteria>;\n};\n\n\nexport type QueryProjectMsGithubEventCardLinksArgs = {\n filter?: InputMaybe<GithubEventCardLinkFilter>;\n};\n\n\nexport type QueryProjectMsLabelArgs = {\n input?: InputMaybe<LabelCriteria>;\n};\n\n\nexport type QueryProjectMsRequestArgs = {\n input?: InputMaybe<RequestCriteria>;\n};\n\n\nexport type QueryProjectMsRequestNatureArgs = {\n input?: InputMaybe<RequestNatureCriteria>;\n};\n\n\nexport type QueryProjectMsRequestNatureTypeArgs = {\n input?: InputMaybe<RequestNatureTypeCriteria>;\n};\n\n\nexport type QueryProjectMsRequestTypeArgs = {\n input?: InputMaybe<RequestTypeCriteria>;\n};\n\n\nexport type QueryProjectMsSectionArgs = {\n input?: InputMaybe<SectionCriteria>;\n};\n\n\nexport type QueryProjectMsSprintArgs = {\n input?: InputMaybe<SprintCriteria>;\n};\n\n\nexport type QuerySecretMsCredentialTrailsArgs = {\n input?: InputMaybe<CredentialFilter>;\n};\n\n\nexport type QuerySecretMsCredentialsArgs = {\n input?: InputMaybe<CredentialFilter>;\n};\n\n\nexport type QueryVoucherMsGatewayCreateOrderArgs = {\n input?: InputMaybe<GatewayCreateOrderRq>;\n};\n\n\nexport type QueryVoucherMsVoucherGroupArgs = {\n input?: InputMaybe<VoucherGroupFilter>;\n};\n\n\nexport type QueryVoucherMsVoucherGroupAutoGenArgs = {\n input?: InputMaybe<VoucherGroupAutoGenFilter>;\n};\n\n\nexport type QueryVoucherMsVoucherGroupAutoGenLockArgs = {\n input?: InputMaybe<Scalars['String']['input']>;\n};\n\n\nexport type QueryVoucherMsVoucherTransactionArgs = {\n input?: InputMaybe<VoucherTransactionFilter>;\n};\n\n\nexport type QueryVoucherMsVoucherTransactionTrailArgs = {\n input?: InputMaybe<VoucherTransactionTrailFilter>;\n};\n\n\nexport type QueryVoucherMsVouchersArgs = {\n input?: InputMaybe<VoucherFilter>;\n};\n\n\nexport type QueryWebConfigMsCountryArgs = {\n input: CountryQueryCriteria;\n};\n\n\nexport type QueryWebConfigMsCurrencyArgs = {\n input: CurrencyQueryCriteria;\n};\n\n\nexport type QueryWebConfigMsWebConfigArgs = {\n input: WebConfigQueryCriteria;\n};\n\n\nexport type QueryWebtopupMsGetProductPageArgs = {\n productGuid: Scalars['String']['input'];\n};\n\n\nexport type QueryWebtopupMsTransactionHistoryArgs = {\n input?: InputMaybe<WebtopupTransactionHistoryQueryCriteria>;\n};\n\n\nexport type QueryWebtopupMsTransactionsArgs = {\n input: WebtopupTransactionQueryCriteria;\n};\n\nexport type RaffleManagements = {\n __typename?: 'RaffleManagements';\n amount?: Maybe<Scalars['Long']['output']>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n endDate?: Maybe<Scalars['DateTime']['output']>;\n eventQuota?: Maybe<Scalars['Int']['output']>;\n fields?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n imageGuid?: Maybe<Scalars['String']['output']>;\n isHide?: Maybe<Scalars['Boolean']['output']>;\n isLogin?: Maybe<Scalars['Boolean']['output']>;\n isReload?: Maybe<Scalars['Boolean']['output']>;\n isVoucher?: Maybe<Scalars['Boolean']['output']>;\n isWebtopup?: Maybe<Scalars['Boolean']['output']>;\n paymentChannelTargetType?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n startDate?: Maybe<Scalars['DateTime']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n title: Scalars['String']['output'];\n type: Scalars['String']['output'];\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n userDailyQuota?: Maybe<Scalars['Int']['output']>;\n userLimitQuota?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type RaffleManagementsQueryCriteria = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type RaffleManagementsRs = {\n __typename?: 'RaffleManagementsRs';\n data: Array<Maybe<RaffleManagements>>;\n totalRecord: Scalars['Int']['output'];\n};\n\nexport type RaffleParticipationRq = {\n /** Additional data depend on req, example: mlbbid */\n additionalData?: InputMaybe<Scalars['JSON']['input']>;\n /** Participant Address (OPTIONAL) */\n address?: InputMaybe<Scalars['String']['input']>;\n /** Participant Email */\n email: Scalars['String']['input'];\n /** Participant Name */\n name: Scalars['String']['input'];\n /** Participant Phone Number (OPTIONAL) */\n phone?: InputMaybe<Scalars['String']['input']>;\n raffleSlug: Scalars['String']['input'];\n txnRef: Scalars['String']['input'];\n};\n\nexport enum RangeIntervalEnum {\n OneDay = 'ONE_DAY',\n OneHour = 'ONE_HOUR',\n OneMonth = 'ONE_MONTH',\n OneWeek = 'ONE_WEEK',\n TwelveHour = 'TWELVE_HOUR'\n}\n\nexport type RateCardTemplate = {\n __typename?: 'RateCardTemplate';\n code?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n details?: Maybe<Array<Maybe<RateTemplateDetail>>>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Status>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n version?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type RateCardTemplateCriteria = {\n code?: InputMaybe<Scalars['String']['input']>;\n detailCriteria?: InputMaybe<RateTemplateDetailCriteria>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: Status;\n version?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport enum RateLogic {\n Fixed = 'FIXED',\n Percentage = 'PERCENTAGE'\n}\n\nexport type RateTemplateDetail = {\n __typename?: 'RateTemplateDetail';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n endAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n magnifyValue?: Maybe<Scalars['Int']['output']>;\n minimumRate?: Maybe<Scalars['Int']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n paymentProvider?: Maybe<PaymentProvider>;\n priority?: Maybe<Scalars['Int']['output']>;\n rate?: Maybe<Scalars['Float']['output']>;\n rateLogic?: Maybe<RateLogic>;\n revision?: Maybe<Scalars['String']['output']>;\n startAt?: Maybe<Scalars['DateTime']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type RateTemplateDetailCriteria = {\n endAt?: InputMaybe<Scalars['DateTime']['input']>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n name?: InputMaybe<Scalars['String']['input']>;\n paymentProviderCode?: InputMaybe<Scalars['String']['input']>;\n priority?: InputMaybe<Scalars['Int']['input']>;\n rateLogic?: InputMaybe<RateLogic>;\n startAt?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<Status>;\n};\n\nexport type RateTemplateRs = {\n __typename?: 'RateTemplateRs';\n data?: Maybe<Array<Maybe<RateCardTemplate>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type Rates = {\n __typename?: 'Rates';\n baseCurrencyByGuid?: Maybe<Currency>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n rateCurrencyByCode?: Maybe<Currency>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type RatesFilter = {\n baseGuid?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n rateCcy?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport enum ReactionType {\n Heart = 'HEART',\n Like = 'LIKE'\n}\n\nexport type RedeemTransaction = {\n __typename?: 'RedeemTransaction';\n amount?: Maybe<Scalars['Double']['output']>;\n catalog?: Maybe<Catalog>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n member?: Maybe<Member>;\n revision?: Maybe<Scalars['String']['output']>;\n trails?: Maybe<Array<Maybe<RedeemTransactionTrail>>>;\n transactionRef?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type RedeemTransactionCriteria = {\n amount?: InputMaybe<Scalars['Double']['input']>;\n catalogGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n catalogName?: InputMaybe<Scalars['String']['input']>;\n countryCodes?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n memberGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n transactionRefs?: InputMaybe<Array<Scalars['String']['input']>>;\n};\n\nexport type RedeemTransactionRs = {\n __typename?: 'RedeemTransactionRs';\n data?: Maybe<Array<Maybe<RedeemTransaction>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type RedeemTransactionTrail = {\n __typename?: 'RedeemTransactionTrail';\n createdAt?: Maybe<Scalars['String']['output']>;\n eventType?: Maybe<EventType>;\n guid?: Maybe<Scalars['String']['output']>;\n internalRemark?: Maybe<Scalars['String']['output']>;\n internalStatus?: Maybe<InternalStatus>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<TrailStatus>;\n transactionGuid?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum RefundStatusEnum {\n PendingRefund = 'PENDING_REFUND',\n RejectedRefund = 'REJECTED_REFUND',\n SuccessRefund = 'SUCCESS_REFUND'\n}\n\nexport type RegistrationRq = {\n /** ... user extension, ex: profile photo, bio, etc */\n appLoginSubjectExt?: InputMaybe<Array<InputMaybe<AppLoginSubjectExtRq>>>;\n /** ... date with format YYYY-MM-DD */\n birthday: Scalars['Date']['input'];\n /** ... email to register user [Optional] */\n email?: InputMaybe<Scalars['String']['input']>;\n /** ... user gender */\n gender: Gender;\n /** ... mobile nunber to register user [Optional] */\n mobileNumber?: InputMaybe<Scalars['String']['input']>;\n /** ... user full name */\n name: Scalars['String']['input'];\n /** ... password for new user */\n password: Scalars['String']['input'];\n /** ... user pin number */\n pinNumber?: InputMaybe<Scalars['String']['input']>;\n /** ... referal code */\n referralCode?: InputMaybe<Scalars['String']['input']>;\n /** ... source platform for bo or public user separation */\n sourcePlatform: SourcePlatform;\n};\n\nexport enum RegistrationStatus {\n ConfirmationSuccess = 'CONFIRMATION_SUCCESS',\n EmailVerificationSuccess = 'EMAIL_VERIFICATION_SUCCESS',\n MobileVerificationSuccess = 'MOBILE_VERIFICATION_SUCCESS'\n}\n\nexport type Request = {\n __typename?: 'Request';\n actualReleaseAt?: Maybe<Scalars['DateTime']['output']>;\n approvedStartDate?: Maybe<Scalars['DateTime']['output']>;\n approvedTargetDate?: Maybe<Scalars['DateTime']['output']>;\n assignedPicUserGuid?: Maybe<Scalars['String']['output']>;\n assignedTechLeadUserGuid?: Maybe<Scalars['String']['output']>;\n code?: Maybe<Scalars['String']['output']>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n deletedAt?: Maybe<Scalars['DateTime']['output']>;\n deletedBy?: Maybe<Scalars['String']['output']>;\n details?: Maybe<Scalars['String']['output']>;\n duplicateTo?: Maybe<Scalars['String']['output']>;\n exts?: Maybe<Array<Maybe<RequestExt>>>;\n guid?: Maybe<Scalars['String']['output']>;\n isRequirementComplete?: Maybe<Scalars['Boolean']['output']>;\n picStatus?: Maybe<Scalars['String']['output']>;\n releaseNote?: Maybe<Scalars['String']['output']>;\n releaseTargetDate?: Maybe<Scalars['DateTime']['output']>;\n requestNatureDetail?: Maybe<RequestNature>;\n requestNatureGuid?: Maybe<Scalars['String']['output']>;\n requestTypeDetail?: Maybe<RequestType>;\n requestTypeGuid?: Maybe<Scalars['String']['output']>;\n requestedTargetDate?: Maybe<Scalars['DateTime']['output']>;\n revisedTargetDate?: Maybe<Scalars['DateTime']['output']>;\n sla?: Maybe<Scalars['Int']['output']>;\n slaUnit?: Maybe<SlaUnit>;\n sourceTeam?: Maybe<Scalars['String']['output']>;\n sourceUser?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n supportingDetails?: Maybe<Scalars['String']['output']>;\n title?: Maybe<Scalars['String']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n urgency?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type RequestCount = {\n __typename?: 'RequestCount';\n requestBlocked?: Maybe<Scalars['Int']['output']>;\n requestCompleted?: Maybe<Scalars['Int']['output']>;\n requestKiv?: Maybe<Scalars['Int']['output']>;\n requestNew?: Maybe<Scalars['Int']['output']>;\n requestOnProgress?: Maybe<Scalars['Int']['output']>;\n requestRejected?: Maybe<Scalars['Int']['output']>;\n requestReleaseOnHold?: Maybe<Scalars['Int']['output']>;\n requestReleasedOrLiveTesting?: Maybe<Scalars['Int']['output']>;\n requestRequirementAnalysis?: Maybe<Scalars['Int']['output']>;\n requestUat?: Maybe<Scalars['Int']['output']>;\n requestWaitingForRelease?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type RequestCriteria = {\n assignedPicUserGuid?: InputMaybe<Scalars['String']['input']>;\n assignedTechLeadUserGuid?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n createdBy?: InputMaybe<Scalars['String']['input']>;\n createdDateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n createdDateTo?: InputMaybe<Scalars['DateTime']['input']>;\n details?: InputMaybe<Scalars['String']['input']>;\n duplicateTo?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n isRequirementComplete?: InputMaybe<Scalars['Boolean']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n picStatus?: InputMaybe<Scalars['String']['input']>;\n releaseNote?: InputMaybe<Scalars['String']['input']>;\n requestNatureGuid?: InputMaybe<Scalars['String']['input']>;\n requestTypeGuid?: InputMaybe<Scalars['String']['input']>;\n sla?: InputMaybe<Scalars['Int']['input']>;\n slaUnit?: InputMaybe<SlaUnit>;\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n sourceTeam?: InputMaybe<Scalars['String']['input']>;\n sourceUser?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n supportingDetails?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n urgency?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type RequestExt = {\n __typename?: 'RequestExt';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n extType?: Maybe<Scalars['String']['output']>;\n extValue?: Maybe<Scalars['String']['output']>;\n file?: Maybe<FetchFileResponse>;\n guid?: Maybe<Scalars['String']['output']>;\n requestGuid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type RequestNature = {\n __typename?: 'RequestNature';\n code?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type RequestNatureCriteria = {\n code?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type RequestNatureRs = {\n __typename?: 'RequestNatureRs';\n data?: Maybe<Array<Maybe<RequestNature>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type RequestNatureType = {\n __typename?: 'RequestNatureType';\n attachmentConfigJson?: Maybe<Scalars['JSON']['output']>;\n board?: Maybe<Board>;\n codePrefix?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n defaultBoardGuid?: Maybe<Scalars['String']['output']>;\n defaultPicUser?: Maybe<AppLoginSubject>;\n defaultSlaUnit?: Maybe<SlaUnit>;\n defaultSlaValue?: Maybe<Scalars['Int']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n natureGuid?: Maybe<Scalars['String']['output']>;\n notificationCc?: Maybe<Scalars['String']['output']>;\n notificationTo?: Maybe<Scalars['String']['output']>;\n requestNature?: Maybe<RequestNature>;\n requestType?: Maybe<RequestType>;\n status?: Maybe<Scalars['String']['output']>;\n typeGuid?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type RequestNatureTypeCriteria = {\n defaultBoardGuid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n defaultPicUserGuid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n natureGuid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n notificationCc?: InputMaybe<Scalars['String']['input']>;\n notificationTo?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n typeGuid?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\nexport type RequestNatureTypeRs = {\n __typename?: 'RequestNatureTypeRs';\n data?: Maybe<Array<Maybe<RequestNatureType>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type RequestRs = {\n __typename?: 'RequestRs';\n data?: Maybe<Array<Maybe<Request>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type RequestType = {\n __typename?: 'RequestType';\n code?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type RequestTypeCriteria = {\n code?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type RequestTypeRs = {\n __typename?: 'RequestTypeRs';\n data?: Maybe<Array<Maybe<RequestType>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type RequiredField = {\n content: RequiredFieldContentEnum;\n name?: InputMaybe<Scalars['String']['input']>;\n placeholder?: InputMaybe<Scalars['String']['input']>;\n type: RequiredFieldTypeEnum;\n url?: InputMaybe<Scalars['String']['input']>;\n values: Array<RequiredFieldDropdownPair>;\n};\n\nexport enum RequiredFieldContentEnum {\n Alphabet = 'ALPHABET',\n Alphanumeric = 'ALPHANUMERIC',\n Api = 'API',\n Numeric = 'NUMERIC',\n Static = 'STATIC'\n}\n\nexport type RequiredFieldDropdownPair = {\n display: Scalars['String']['input'];\n metaFieldJson?: InputMaybe<Array<InputMaybe<PaymentChannelMetaField>>>;\n value: Scalars['String']['input'];\n};\n\nexport type RequiredFieldInput = {\n /** Sample: {\"email\" : \"test@gmail.com\",\"name\": \"test\"} */\n paymentRequiredField?: InputMaybe<Scalars['JSON']['input']>;\n};\n\nexport type RequiredFieldRequest = {\n credentialGuid: Scalars['String']['input'];\n gameChildCode: Scalars['String']['input'];\n gameParentCode: Scalars['String']['input'];\n platform: PlatformEnum;\n};\n\nexport type RequiredFieldResponse = {\n __typename?: 'RequiredFieldResponse';\n data?: Maybe<Scalars['JSON']['output']>;\n error?: Maybe<Scalars['JSON']['output']>;\n status?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum RequiredFieldTypeEnum {\n Dropdown = 'DROPDOWN',\n Text = 'TEXT'\n}\n\nexport type ReusableFile = {\n __typename?: 'ReusableFile';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n file?: Maybe<FetchFileResponse>;\n fileGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type ReusableFileCriteria = {\n contextGuid?: InputMaybe<Scalars['String']['input']>;\n contextType?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type ReusableFileRs = {\n __typename?: 'ReusableFileRs';\n data?: Maybe<Array<Maybe<ReusableFile>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type ReusableFileUpdateRq = {\n guid: Scalars['String']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type RoleFilter = {\n /** ... to filter role by code equal */\n code?: InputMaybe<Scalars['String']['input']>;\n /** ...to get role with all guids */\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n isInternal?: InputMaybe<Scalars['Boolean']['input']>;\n /** ... to filter role by name ilike */\n name?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n /** ... to filter role by status equal */\n status?: Status;\n /** ... to get list of role attached to user */\n subjectGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type Section = {\n __typename?: 'Section';\n board?: Maybe<Board>;\n boardGuid?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n sectionOrder?: Maybe<Scalars['Int']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type SectionCriteria = {\n boardGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sectionOrder?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type SectionRs = {\n __typename?: 'SectionRs';\n data?: Maybe<Array<Maybe<Section>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type SignatureCheckerRs = {\n __typename?: 'SignatureCheckerRs';\n merchantContractGuid?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n value?: Maybe<Scalars['String']['output']>;\n};\n\nexport type SignatureCreateRs = {\n __typename?: 'SignatureCreateRs';\n status?: Maybe<Scalars['String']['output']>;\n value?: Maybe<Scalars['String']['output']>;\n};\n\nexport type SimpleDocumentRequest = {\n __typename?: 'SimpleDocumentRequest';\n authUserGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n requestStatus?: Maybe<DocumentRequestStatus>;\n subject?: Maybe<Scalars['String']['output']>;\n templateGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum SlaUnit {\n Day = 'DAY',\n Month = 'MONTH',\n Week = 'WEEK'\n}\n\nexport type SocialLoginRq = {\n idToken: Scalars['String']['input'];\n providerPlatform: ProviderPlatform;\n sourcePlatform: SourcePlatform;\n};\n\nexport enum SourcePlatform {\n /** ... for backoffice */\n Admin = 'ADMIN',\n /** ... for public */\n CpCommerce = 'CP_COMMERCE'\n}\n\nexport type Sprint = {\n __typename?: 'Sprint';\n cardSprint?: Maybe<Array<Maybe<CardSprint>>>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n deletedBy?: Maybe<Scalars['String']['output']>;\n finishAt?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n startAt?: Maybe<Scalars['DateTime']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n};\n\nexport type SprintCriteria = {\n createdBy?: InputMaybe<Scalars['String']['input']>;\n deletedBy?: InputMaybe<Scalars['String']['input']>;\n finishAt?: InputMaybe<Scalars['DateTime']['input']>;\n guids: Array<InputMaybe<Scalars['String']['input']>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n startAt?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n updatedBy?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type SprintRs = {\n __typename?: 'SprintRs';\n data?: Maybe<Array<Maybe<Sprint>>>;\n totalRecords?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum Status {\n Active = 'ACTIVE',\n Deleted = 'DELETED',\n Expired = 'EXPIRED',\n Inactive = 'INACTIVE',\n Pending = 'PENDING',\n VerseData = 'VERSE_DATA'\n}\n\nexport enum SuggestedAction {\n /** ... suggested action if user didn't change password for x month */\n ChangePassword = 'CHANGE_PASSWORD',\n /** ... default action */\n Default = 'DEFAULT'\n}\n\nexport type SuspiciousFilter = {\n actionCodes?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n description?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: Scalars['String']['input'];\n targetCodes?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n types?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\nexport type SuspiciousTag = {\n __typename?: 'SuspiciousTag';\n actionCode?: Maybe<Scalars['String']['output']>;\n actionJson?: Maybe<Scalars['JSON']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n intervalParam?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n targetCode?: Maybe<Scalars['String']['output']>;\n threshold?: Maybe<Scalars['Int']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type SuspiciousTagPageableRs = {\n __typename?: 'SuspiciousTagPageableRs';\n data?: Maybe<Array<Maybe<SuspiciousTag>>>;\n totalRecord: Scalars['Int']['output'];\n};\n\nexport enum TableNameIntervalEnum {\n Monthly = 'MONTHLY',\n Yearly = 'YEARLY'\n}\n\nexport type TempFileRequest = {\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type TemporaryUserDeactivationRq = {\n /** ... band type refer to UserBansType enum */\n banType: UserBanType;\n /** ... ban exipred at with format \"2023-09-01T12:00:00.000Z\" or \"2023-09-30T12:00:00.000+07:00\" */\n expiredAt?: InputMaybe<Scalars['String']['input']>;\n /** ... admin remark */\n remark?: InputMaybe<Scalars['String']['input']>;\n /** ... user guid to deactive */\n userGuid: Scalars['String']['input'];\n};\n\nexport enum TermType {\n Category = 'CATEGORY',\n PostTag = 'POST_TAG'\n}\n\nexport type TestResult = {\n __typename?: 'TestResult';\n result?: Maybe<Scalars['String']['output']>;\n};\n\nexport type Tier = {\n __typename?: 'Tier';\n benefitField?: Maybe<Scalars['JSON']['output']>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n currencyCode?: Maybe<Scalars['String']['output']>;\n exts?: Maybe<Array<Maybe<TierExt>>>;\n guid?: Maybe<Scalars['String']['output']>;\n levelValue?: Maybe<Scalars['Int']['output']>;\n minPointToKeep?: Maybe<Scalars['Int']['output']>;\n minPointToReach?: Maybe<Scalars['Int']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<TierStatus>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type TierBonusRule = {\n __typename?: 'TierBonusRule';\n baseValue?: Maybe<TierBonusRuleBaseValueEnum>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n isForBirthday?: Maybe<Scalars['Boolean']['output']>;\n isForReferral?: Maybe<Scalars['Boolean']['output']>;\n maximumAmount?: Maybe<Scalars['Long']['output']>;\n minimumAmount?: Maybe<Scalars['Int']['output']>;\n priority?: Maybe<Scalars['Int']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<TierBonusRuleStatusEnum>;\n stopNow?: Maybe<Scalars['Boolean']['output']>;\n tierGuid?: Maybe<Scalars['String']['output']>;\n type?: Maybe<TierBonusRuleTypeEnum>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n value?: Maybe<Scalars['Double']['output']>;\n};\n\nexport enum TierBonusRuleBaseValueEnum {\n BaseAmount = 'BASE_AMOUNT',\n PrevAmount = 'PREV_AMOUNT'\n}\n\nexport type TierBonusRuleCriteria = {\n baseValue?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n isForBirthday?: InputMaybe<Scalars['Boolean']['input']>;\n isForReferral?: InputMaybe<Scalars['Boolean']['input']>;\n maximumAmount?: InputMaybe<Scalars['Long']['input']>;\n minimumAmount?: InputMaybe<Scalars['Int']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n priority?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: TierBonusRuleStatusEnum;\n stopNow?: InputMaybe<Scalars['Boolean']['input']>;\n tierGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n types?: InputMaybe<Array<Scalars['String']['input']>>;\n value?: InputMaybe<Scalars['Double']['input']>;\n};\n\nexport type TierBonusRuleRs = {\n __typename?: 'TierBonusRuleRs';\n data?: Maybe<Array<Maybe<TierBonusRule>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum TierBonusRuleStatusEnum {\n Active = 'ACTIVE',\n Deleted = 'DELETED'\n}\n\nexport enum TierBonusRuleTypeEnum {\n Fixed = 'FIXED',\n Percentage = 'PERCENTAGE'\n}\n\nexport type TierExt = {\n __typename?: 'TierExt';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n extType?: Maybe<Scalars['String']['output']>;\n extValue?: Maybe<Scalars['String']['output']>;\n file?: Maybe<FetchFileResponse>;\n guid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type TierRs = {\n __typename?: 'TierRs';\n data?: Maybe<Array<Maybe<Tier>>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum TierStatus {\n Active = 'ACTIVE',\n Deleted = 'DELETED'\n}\n\nexport type TierUnlockBonusRule = {\n __typename?: 'TierUnlockBonusRule';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<TierBonusRuleStatusEnum>;\n tierGuid?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByUserGuid?: Maybe<Scalars['String']['output']>;\n value?: Maybe<Scalars['Long']['output']>;\n};\n\nexport type TierUnlockBonusRuleCriteria = {\n guids?: InputMaybe<Array<Scalars['String']['input']>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: TierBonusRuleStatusEnum;\n tierGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n value?: InputMaybe<Scalars['Long']['input']>;\n};\n\nexport type TierUnlockBonusRuleRs = {\n __typename?: 'TierUnlockBonusRuleRs';\n data?: Maybe<Array<TierUnlockBonusRule>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type TiersCriteria = {\n countryCodes?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n currencyCodes?: InputMaybe<Array<Scalars['String']['input']>>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n minPointToKeep?: InputMaybe<Scalars['Int']['input']>;\n minPointToReach?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: Scalars['String']['input'];\n status?: TierStatus;\n};\n\nexport type TimeSeriesRs = {\n __typename?: 'TimeSeriesRs';\n samples?: Maybe<Array<Maybe<Array<Maybe<Scalars['Long']['output']>>>>>;\n};\n\nexport enum TimeserieLabels {\n CountryId = 'countryId',\n CurrencyCode = 'currencyCode',\n Gender = 'gender',\n Type = 'type'\n}\n\nexport enum TimeseriesKeys {\n /** Total growth member per day */\n MemberGrowthTs = 'MEMBER_GROWTH_TS',\n /** Total point earned per day */\n MemberPointEarnedTs = 'MEMBER_POINT_EARNED_TS',\n /** Total point redeemed per day */\n RedeemPointTs = 'REDEEM_POINT_TS'\n}\n\nexport type Token = {\n __typename?: 'Token';\n accessToken?: Maybe<Scalars['String']['output']>;\n refreshToken?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum TrailStatus {\n Fail = 'FAIL',\n Pending = 'PENDING',\n Processing = 'PROCESSING',\n Success = 'SUCCESS'\n}\n\nexport type TransactionQueue = {\n __typename?: 'TransactionQueue';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n eventCode?: Maybe<Scalars['String']['output']>;\n eventProperties?: Maybe<Scalars['JSON']['output']>;\n executionAfter?: Maybe<Scalars['DateTime']['output']>;\n executionExpiry?: Maybe<Scalars['DateTime']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n maxRetry?: Maybe<Scalars['Int']['output']>;\n numberOfRetry?: Maybe<Scalars['Int']['output']>;\n transactionGuid?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type TransactionRefund = {\n __typename?: 'TransactionRefund';\n ccyCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<AppLoginSubject>;\n createdByGuid?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n internalStatus?: Maybe<InternalRefundStatusEnum>;\n makerProcessedAt?: Maybe<Scalars['DateTime']['output']>;\n makerProcessedBy?: Maybe<AppLoginSubject>;\n makerProcessedByGuid?: Maybe<Scalars['String']['output']>;\n merchantCode?: Maybe<Scalars['String']['output']>;\n merchantRefNo?: Maybe<Scalars['String']['output']>;\n processedAt?: Maybe<Scalars['DateTime']['output']>;\n processedBy?: Maybe<AppLoginSubject>;\n processedByGuid?: Maybe<Scalars['String']['output']>;\n refundAmount?: Maybe<Scalars['String']['output']>;\n refundId?: Maybe<Scalars['String']['output']>;\n refundNotificationUrl?: Maybe<Scalars['String']['output']>;\n requestRemark?: Maybe<Scalars['String']['output']>;\n responseRemark?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<RefundStatusEnum>;\n transaction?: Maybe<PaymentGatewayTransactions>;\n transactionRef?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<AppLoginSubject>;\n updatedByGuid?: Maybe<Scalars['String']['output']>;\n};\n\n/** TransactionRefund Connection */\nexport type TransactionRefundConnection = {\n __typename?: 'TransactionRefundConnection';\n /** Field edges */\n edges?: Maybe<Array<Maybe<TransactionRefundEdge>>>;\n /** Field pageInfo */\n pageInfo: PageInfo;\n};\n\n/** TransactionRefund Edge */\nexport type TransactionRefundEdge = {\n __typename?: 'TransactionRefundEdge';\n /** Field cursor */\n cursor?: Maybe<Scalars['String']['output']>;\n /** Field node */\n node?: Maybe<TransactionRefund>;\n};\n\nexport type TransactionRefundFilter = {\n /** fill with end cursor id to get next data/page, cannot use this if already use 'before' filter */\n after?: InputMaybe<Scalars['String']['input']>;\n /** fill with start cursor id to get prev data/page, cannot use this if already use 'after' filter */\n before?: InputMaybe<Scalars['String']['input']>;\n /** ISO 8601 format. Default to 2 hours if not sent. */\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n /** ISO 8601 format. */\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n internalStatus?: InputMaybe<InternalRefundStatusEnum>;\n merchantRefNo?: InputMaybe<Scalars['String']['input']>;\n pageSize?: Scalars['Int']['input'];\n refundId?: InputMaybe<Scalars['String']['input']>;\n sortBy: TransactionRefundSortByEnum;\n sortDirection?: Scalars['String']['input'];\n /** Default to PENDING_REFUND if not sent. */\n status?: InputMaybe<RefundStatusEnum>;\n transactionRef?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type TransactionRefundResult = {\n __typename?: 'TransactionRefundResult';\n data: Array<Maybe<TransactionRefund>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum TransactionRefundSortByEnum {\n CreatedAt = 'createdAt',\n UpdatedAt = 'updatedAt'\n}\n\nexport type TransactionTrail = {\n __typename?: 'TransactionTrail';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n ipCreated?: Maybe<Scalars['String']['output']>;\n request?: Maybe<Scalars['JSON']['output']>;\n response?: Maybe<Scalars['JSON']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n transactionGuid?: Maybe<Scalars['String']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum UniboxV2RequestType {\n MobileGame = 'MOBILE_GAME',\n Standard = 'STANDARD'\n}\n\nexport type UpdateActivityHistoryRq = {\n boardGuid?: InputMaybe<Scalars['String']['input']>;\n cardAttachmentGuid?: InputMaybe<Scalars['String']['input']>;\n cardGuid?: InputMaybe<Scalars['String']['input']>;\n changedValue?: InputMaybe<Scalars['JSON']['input']>;\n commentAttachmentGuid?: InputMaybe<Scalars['String']['input']>;\n commentGuid?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n requestAttachmentGuid?: InputMaybe<Scalars['String']['input']>;\n requestGuid?: InputMaybe<Scalars['String']['input']>;\n showOnRequest?: InputMaybe<Scalars['Boolean']['input']>;\n type?: InputMaybe<ActivityHistoryType>;\n};\n\nexport type UpdateApiCredentialRq = {\n activeAt?: InputMaybe<Scalars['DateTime']['input']>;\n expiredAt?: InputMaybe<Scalars['DateTime']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n transactionalUserGuid?: InputMaybe<Scalars['String']['input']>;\n version?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateAuthSettingRq = {\n /** ... Setting guid identifier */\n guid: Scalars['String']['input'];\n /** ... Setting name */\n name?: InputMaybe<Scalars['String']['input']>;\n /** ... Setting value */\n value?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateBirthdayTierBonusRule = {\n guid: Scalars['String']['input'];\n revision?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n tierGuid?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<BirthdayTierBonusRuleTypeEnum>;\n value?: InputMaybe<Scalars['Float']['input']>;\n};\n\nexport type UpdateBoardAccessRq = {\n boardGuid?: InputMaybe<Scalars['String']['input']>;\n expiredAt?: InputMaybe<Scalars['DateTime']['input']>;\n guid: Scalars['String']['input'];\n roleGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateBoardRq = {\n guid: Scalars['String']['input'];\n model?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateBookmarkRq = {\n /** Bookmark Guid. */\n guid?: InputMaybe<Scalars['String']['input']>;\n /** Post Guid that going to be saved. */\n postGuid?: InputMaybe<Scalars['String']['input']>;\n /** User Guid that saving the post. */\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateCardLabelRq = {\n cardGuid?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n labelGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateCardRq = {\n assignedLead?: InputMaybe<Scalars['String']['input']>;\n assignedMember?: InputMaybe<Scalars['String']['input']>;\n assignedMentor?: InputMaybe<Scalars['String']['input']>;\n assignedPmo?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n dueDateAt?: InputMaybe<Scalars['DateTime']['input']>;\n guid: Scalars['String']['input'];\n milliEffortPoint?: InputMaybe<Scalars['Int']['input']>;\n requestGuid?: InputMaybe<Scalars['String']['input']>;\n requestedAt?: InputMaybe<Scalars['DateTime']['input']>;\n sectionGuid?: InputMaybe<Scalars['String']['input']>;\n sectionOrder?: InputMaybe<Scalars['Int']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateCardSprintRq = {\n cardGuid?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n sprintGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateCatalog = {\n /** This will replace current categories */\n categoryGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n countryId?: InputMaybe<Scalars['String']['input']>;\n currencyCode?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n estDeliveryTimeUnit?: InputMaybe<EstDeliveryTimeUnit>;\n estDeliveryTimeValue?: InputMaybe<Scalars['Int']['input']>;\n guid: Scalars['String']['input'];\n isNeedApproval?: InputMaybe<Scalars['Boolean']['input']>;\n minLevelToReach?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n price?: InputMaybe<Scalars['Double']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n revision: Scalars['String']['input'];\n status?: InputMaybe<CatalogStatus>;\n};\n\nexport type UpdateCatalogCategory = {\n guid: Scalars['String']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n revision: Scalars['String']['input'];\n slug?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateChecklistItemRq = {\n assignedUser?: InputMaybe<Scalars['String']['input']>;\n checklistGuid?: InputMaybe<Scalars['String']['input']>;\n checklistOrder?: InputMaybe<Scalars['Int']['input']>;\n dueAt?: InputMaybe<Scalars['DateTime']['input']>;\n guid: Scalars['String']['input'];\n isChecked?: InputMaybe<Scalars['Boolean']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateChecklistRq = {\n cardGuid?: InputMaybe<Scalars['String']['input']>;\n cardOrder?: InputMaybe<Scalars['Int']['input']>;\n guid: Scalars['String']['input'];\n itemCount?: InputMaybe<Scalars['Int']['input']>;\n itemCountChecked?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateCmsPostExtRq = {\n /** Possible value: CONTENT_IMAGE_POST/SQUARE_THUMBNAIL */\n ext_type?: InputMaybe<Scalars['String']['input']>;\n /** Guid value referencing to Amazon S3 image file */\n ext_value?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n post_guid?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateCmsPostRq = {\n authorGuid?: InputMaybe<Scalars['String']['input']>;\n authorName?: InputMaybe<Scalars['String']['input']>;\n commentCount?: InputMaybe<Scalars['Int']['input']>;\n /** Open/Closed post comment status */\n commentStatus?: InputMaybe<Scalars['String']['input']>;\n /** Video thumbnail/Live thumbnail */\n contentOption?: InputMaybe<ContentOption>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n /** Country guid of the post */\n countryGuid?: InputMaybe<Scalars['String']['input']>;\n expiredAt?: InputMaybe<Scalars['DateTime']['input']>;\n guid: Scalars['String']['input'];\n /** Pin or un-pin a post */\n isPinned?: InputMaybe<Scalars['Boolean']['input']>;\n /** Content of the post */\n postBody?: InputMaybe<Scalars['String']['input']>;\n /** Terms-Category guid of the post */\n postCategoryGuid?: InputMaybe<Scalars['String']['input']>;\n /** For SEO purposes. Max length: 160 */\n postMetaDescription?: InputMaybe<Scalars['String']['input']>;\n /** DRAFT/ON_REVIEW/PUBLISHED post status */\n postStatus?: InputMaybe<Scalars['String']['input']>;\n /** Terms-PostTag names of the post */\n postTagNames: Array<InputMaybe<Scalars['String']['input']>>;\n postTitle?: InputMaybe<Scalars['String']['input']>;\n publishedAt?: InputMaybe<Scalars['DateTime']['input']>;\n /** The current revision value is mandatory to update CMS Post */\n revision: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n /** The part of a static URL that describes the post */\n urlKey?: InputMaybe<Scalars['String']['input']>;\n /** Video/Live content option source */\n videoSource?: InputMaybe<Scalars['String']['input']>;\n /** Settings for view count */\n viewCount?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type UpdateCmsPostTermRq = {\n guid: Scalars['String']['input'];\n isHidden?: InputMaybe<Scalars['Boolean']['input']>;\n revision: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n termDescription?: InputMaybe<Scalars['String']['input']>;\n /** Name of the Category/Tag. Ex: Anime & Manga, Profile */\n termName?: InputMaybe<Scalars['String']['input']>;\n termParentGuid?: InputMaybe<Scalars['String']['input']>;\n /** Possible value: CATEGORY/POST_TAG */\n termType: TermType;\n urlKey?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateCmsUserRq = {\n authUserGuid?: InputMaybe<Scalars['String']['input']>;\n bio?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n picture?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n updatedByGuid?: InputMaybe<Scalars['String']['input']>;\n url?: InputMaybe<Scalars['String']['input']>;\n userName?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateCommentRq = {\n cardGuid?: InputMaybe<Scalars['String']['input']>;\n content?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n requestGuid?: InputMaybe<Scalars['String']['input']>;\n showOnRequest?: InputMaybe<Scalars['Boolean']['input']>;\n};\n\nexport type UpdateCompanyRq = {\n /** ... new company code */\n code?: InputMaybe<Scalars['String']['input']>;\n /** ... new company country */\n countryCode?: InputMaybe<Scalars['String']['input']>;\n /** ... new company description */\n description?: InputMaybe<Scalars['String']['input']>;\n /** ... new company displayed name */\n displayName?: InputMaybe<Scalars['String']['input']>;\n /** ... guid for company want to update */\n guid?: InputMaybe<Scalars['String']['input']>;\n isInternal?: InputMaybe<Scalars['Boolean']['input']>;\n /** ... new company name */\n name?: InputMaybe<Scalars['String']['input']>;\n /** ... data version, must match data version in db */\n revision?: InputMaybe<Scalars['String']['input']>;\n /** ... new company status */\n status?: InputMaybe<Status>;\n};\n\nexport type UpdateContractTemplateRq = {\n contractDetailsGuidToLink?: InputMaybe<Array<Scalars['String']['input']>>;\n contractDetailsGuidToUnlink?: InputMaybe<Array<Scalars['String']['input']>>;\n guid: Scalars['String']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n productSelection?: InputMaybe<ProductSelectionEnum>;\n revision: Scalars['String']['input'];\n status?: InputMaybe<Status>;\n};\n\nexport type UpdateCredentialDetailRq = {\n guid: Scalars['String']['input'];\n value: Scalars['String']['input'];\n};\n\nexport type UpdateCredentialRq = {\n code?: InputMaybe<Scalars['String']['input']>;\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n revision: Scalars['String']['input'];\n};\n\nexport type UpdateDenomGroupRq = {\n guid?: InputMaybe<Scalars['String']['input']>;\n imageGuid?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateEmailMessageTemplateRq = {\n /** ... message template identifier */\n guid: Scalars['String']['input'];\n /** ... message id */\n messageId?: InputMaybe<Scalars['String']['input']>;\n /** ... data version, must match data version in db */\n revision: Scalars['String']['input'];\n /** ... message template status */\n status?: InputMaybe<Scalars['String']['input']>;\n /** ... base64 encoded html or message template */\n value?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateEventLogsRq = {\n currency?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n paymentProviderGuid?: InputMaybe<Scalars['String']['input']>;\n prizeGuid?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n reference?: InputMaybe<Scalars['String']['input']>;\n remark?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n userInfo?: InputMaybe<Scalars['String']['input']>;\n utmCampaign?: InputMaybe<Scalars['String']['input']>;\n utmMedium?: InputMaybe<Scalars['String']['input']>;\n utmSource?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateEventManagementsRq = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n /** Discount Code Management GUID */\n dcmGuid?: InputMaybe<Scalars['String']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n eventAmount?: InputMaybe<Scalars['Long']['input']>;\n eventBonusAmount?: InputMaybe<Scalars['Long']['input']>;\n eventBonusType?: InputMaybe<EventBonusType>;\n eventQuota?: InputMaybe<Scalars['Int']['input']>;\n eventQuotaType?: InputMaybe<EventQuotaType>;\n fields?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n imageGuid?: InputMaybe<Scalars['String']['input']>;\n isFirstTimePay?: InputMaybe<Scalars['Boolean']['input']>;\n isRedRibbonFlag?: InputMaybe<Scalars['Boolean']['input']>;\n isReload?: InputMaybe<Scalars['Boolean']['input']>;\n isUniquePaymentQuota?: InputMaybe<Scalars['Boolean']['input']>;\n isUniqueUserDaily?: InputMaybe<Scalars['Boolean']['input']>;\n isWebtopup?: InputMaybe<Scalars['Boolean']['input']>;\n isWeekendOnly?: InputMaybe<Scalars['Boolean']['input']>;\n maximumEventBonus?: InputMaybe<Scalars['Int']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n mobileImageGuid?: InputMaybe<Scalars['String']['input']>;\n paymentProvider?: InputMaybe<Array<PciEventMgmtRq>>;\n productPageGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n revision: Scalars['String']['input'];\n slug?: InputMaybe<Scalars['String']['input']>;\n specialPriceAmount?: InputMaybe<Scalars['JSON']['input']>;\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n startHour?: InputMaybe<Scalars['Int']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n title: Scalars['String']['input'];\n tncUrl?: InputMaybe<Scalars['String']['input']>;\n type: Scalars['String']['input'];\n};\n\nexport type UpdateEventParticipationRq = {\n additionalData?: InputMaybe<Scalars['String']['input']>;\n address?: InputMaybe<Scalars['String']['input']>;\n email?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n paymentProviderGuid?: InputMaybe<Scalars['String']['input']>;\n phone?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n reference?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateGithubEventCardLinkRq = {\n cardGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n createdByGithubUser?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n internalRef?: InputMaybe<Scalars['String']['input']>;\n needActionFromGithubUser?: InputMaybe<Scalars['String']['input']>;\n repositoryUrl?: InputMaybe<Scalars['String']['input']>;\n revision: Scalars['String']['input'];\n state?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<GithubEventTypeEnum>;\n typeNumber?: InputMaybe<Scalars['Int']['input']>;\n typeUrl?: InputMaybe<Scalars['String']['input']>;\n updatedByGithubUser?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateHistoryAgreementRq = {\n content?: InputMaybe<Scalars['String']['input']>;\n countryCode: Scalars['String']['input'];\n guid: Scalars['String']['input'];\n publishDate?: InputMaybe<Scalars['DateTime']['input']>;\n status: Status;\n};\n\nexport type UpdateInternalRefundStatusRs = {\n __typename?: 'UpdateInternalRefundStatusRs';\n code?: Maybe<Scalars['String']['output']>;\n data?: Maybe<TransactionRefund>;\n message?: Maybe<Scalars['String']['output']>;\n};\n\nexport type UpdateIpRq = {\n guid: Scalars['String']['input'];\n ipRange: Scalars['String']['input'];\n};\n\nexport type UpdateLabelRq = {\n boardGuid?: InputMaybe<Scalars['String']['input']>;\n color?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n order?: InputMaybe<Scalars['Int']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateMerchantContactRq = {\n address?: InputMaybe<Scalars['String']['input']>;\n email?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n merchantGuid: Scalars['String']['input'];\n name: Scalars['String']['input'];\n phone?: InputMaybe<Scalars['String']['input']>;\n position?: InputMaybe<Scalars['String']['input']>;\n revision: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateMerchantContractRq = {\n code?: InputMaybe<Scalars['String']['input']>;\n contractTemplateGuid?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n key?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n revision: Scalars['String']['input'];\n status?: InputMaybe<Status>;\n};\n\nexport type UpdateMerchantPaymentDenomRq = {\n amount?: InputMaybe<Scalars['Double']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n paymentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateMerchantPaymentProviderRq = {\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n providerGuid?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateMerchantRq = {\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n creditLimit?: InputMaybe<Scalars['Float']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n settlementCurrency?: InputMaybe<Scalars['String']['input']>;\n settlementType?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdatePaymentChannelDenomRq = {\n amount?: InputMaybe<Scalars['Double']['input']>;\n code?: InputMaybe<Scalars['String']['input']>;\n credit?: InputMaybe<Scalars['Long']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n payamentChannelGuid?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdatePaymentChannelRq = {\n category?: InputMaybe<Scalars['String']['input']>;\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n charge?: InputMaybe<Scalars['Float']['input']>;\n chargeType?: InputMaybe<Scalars['String']['input']>;\n code?: InputMaybe<Scalars['String']['input']>;\n contractorCompanyGuid?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n credentialGuid?: InputMaybe<Scalars['String']['input']>;\n field?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n isInquiryAvail?: InputMaybe<Scalars['Boolean']['input']>;\n isSupportLinkage?: InputMaybe<Scalars['Boolean']['input']>;\n isWhitelabel?: InputMaybe<Scalars['Boolean']['input']>;\n maxAmount?: InputMaybe<Scalars['Double']['input']>;\n metaFieldJson?: InputMaybe<Array<InputMaybe<PaymentChannelMetaField>>>;\n minAmount?: InputMaybe<Scalars['Double']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n parameter?: InputMaybe<Scalars['String']['input']>;\n providerCode: Scalars['String']['input'];\n providerCompanyGuid?: InputMaybe<Scalars['String']['input']>;\n providerPriority?: InputMaybe<Scalars['String']['input']>;\n rateTemplateGuid?: InputMaybe<Scalars['String']['input']>;\n remark?: InputMaybe<Scalars['String']['input']>;\n revision: Scalars['String']['input'];\n route?: InputMaybe<Scalars['String']['input']>;\n serviceCompanyGuid?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n vatPercentage?: InputMaybe<Scalars['Float']['input']>;\n};\n\nexport type UpdatePaymentProviderRq = {\n category?: InputMaybe<Scalars['String']['input']>;\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n code?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n isSupportLinkage?: InputMaybe<Scalars['Boolean']['input']>;\n maxAmount?: InputMaybe<Scalars['Long']['input']>;\n minAmount?: InputMaybe<Scalars['Long']['input']>;\n providerExternalName?: InputMaybe<Scalars['String']['input']>;\n providerInternalName?: InputMaybe<Scalars['String']['input']>;\n revision: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdatePermRq = {\n /** ... new parent identifier */\n parentId?: InputMaybe<Scalars['String']['input']>;\n /** ... new permmission code */\n permCode?: InputMaybe<Scalars['String']['input']>;\n /** ... new permission description */\n permDescription?: InputMaybe<Scalars['String']['input']>;\n /** ... new permission permission module */\n permModule?: InputMaybe<Scalars['String']['input']>;\n /** ... new permission name */\n permName?: InputMaybe<Scalars['String']['input']>;\n /** ... new permission permission scope */\n permScope?: InputMaybe<Scalars['String']['input']>;\n /** ... new permission type */\n permType?: InputMaybe<Scalars['String']['input']>;\n /** ... data version, must match data version in db */\n revision: Scalars['String']['input'];\n /** ... new permission status */\n status?: InputMaybe<Status>;\n};\n\nexport type UpdatePrincipalRq = {\n /** ...User principal guid */\n guid?: InputMaybe<Scalars['String']['input']>;\n /** ... User new Principal */\n newPrincipal: Scalars['String']['input'];\n /** ... User old principal id */\n oldPrincipal?: InputMaybe<Scalars['String']['input']>;\n /** ... user guid belong to user that we want change the principal, MANDATORY FOR UPDATE BY ADMIN if user don't have the principal type before */\n userGuid?: InputMaybe<Scalars['String']['input']>;\n /** ... verification code, ONLY FOR UPDATE BY USER if you send guid when update by ADMIN then the data will not used */\n verificationCode?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateProductDenominationRq = {\n denomGroupGuid?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n imageGuid?: InputMaybe<Scalars['String']['input']>;\n isAdjustableSellingPrice?: InputMaybe<Scalars['Boolean']['input']>;\n isDirectVoucher?: InputMaybe<Scalars['Boolean']['input']>;\n isVoucherApi?: InputMaybe<Scalars['Boolean']['input']>;\n itemCode?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n partnerProductId?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n remark?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n voucherGroupGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateProductPageRq = {\n category: ProductPageCategory;\n communityLink?: InputMaybe<Scalars['String']['input']>;\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n content?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n credentialGuid?: InputMaybe<Scalars['String']['input']>;\n downloadLink?: InputMaybe<Scalars['String']['input']>;\n gameCenterImage?: InputMaybe<Scalars['String']['input']>;\n gameChildCode?: InputMaybe<Scalars['String']['input']>;\n gameParentCode?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n huaweiDownloadLink?: InputMaybe<Scalars['String']['input']>;\n iconGuid?: InputMaybe<Scalars['String']['input']>;\n influencerLink?: InputMaybe<Scalars['String']['input']>;\n iosDownloadLink?: InputMaybe<Scalars['String']['input']>;\n isEvent?: InputMaybe<Scalars['Boolean']['input']>;\n isNew?: InputMaybe<Scalars['Boolean']['input']>;\n isPromo?: InputMaybe<Scalars['Boolean']['input']>;\n isShowOnLandingPage?: InputMaybe<Scalars['Boolean']['input']>;\n isTesting?: InputMaybe<Scalars['Boolean']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n metaDescription?: InputMaybe<Scalars['String']['input']>;\n metaFieldJson?: InputMaybe<Array<InputMaybe<ProductPageMetaField>>>;\n metaTitle?: InputMaybe<Scalars['String']['input']>;\n officialSiteLink?: InputMaybe<Scalars['String']['input']>;\n providerCompanyGuid?: InputMaybe<Scalars['String']['input']>;\n reloadType?: InputMaybe<ProductPageReloadTypeEnum>;\n revision: Scalars['String']['input'];\n route?: InputMaybe<Scalars['String']['input']>;\n schemaMarkup?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n tags?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n topUpGuidLink?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateProductPriceListRq = {\n ccyCode?: InputMaybe<Scalars['String']['input']>;\n contractTemplateGuid?: InputMaybe<Scalars['String']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n eventCode?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n magnifyValue?: InputMaybe<Scalars['Int']['input']>;\n paymentProviderCode?: InputMaybe<Scalars['String']['input']>;\n price?: InputMaybe<Scalars['Int']['input']>;\n priority?: InputMaybe<Scalars['Int']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n productPageGuid?: InputMaybe<Scalars['String']['input']>;\n rateTemplateGuid?: InputMaybe<Scalars['String']['input']>;\n revision: Scalars['String']['input'];\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<Status>;\n type?: InputMaybe<PriceListType>;\n};\n\nexport type UpdateProfileRq = {\n /** ... update user birthday */\n birthday?: InputMaybe<Scalars['Date']['input']>;\n /** ... update user gender */\n gender?: InputMaybe<Gender>;\n /** ... user guid we want to update, ONLY FOR UPDATE BY ADMIN if you send guid when update by user then the data will not used */\n guid?: InputMaybe<Scalars['String']['input']>;\n /** ... update user full name */\n name?: InputMaybe<Scalars['String']['input']>;\n /** ... user status ACTIVE/INACTIVE, ONLY FOR UPDATE BY ADMIN if you send data when update by user then the data will not used */\n status?: InputMaybe<Status>;\n};\n\nexport type UpdateRaffleManagementsRq = {\n amount?: InputMaybe<Scalars['Long']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n endDate?: InputMaybe<Scalars['DateTime']['input']>;\n eventQuota?: InputMaybe<Scalars['Int']['input']>;\n fields?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n imageGuid?: InputMaybe<Scalars['String']['input']>;\n isHide?: InputMaybe<Scalars['Boolean']['input']>;\n isLogin?: InputMaybe<Scalars['Boolean']['input']>;\n isReload?: InputMaybe<Scalars['Boolean']['input']>;\n isVoucher?: InputMaybe<Scalars['Boolean']['input']>;\n isWebtopup?: InputMaybe<Scalars['Boolean']['input']>;\n merchantGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n paymentChannelTargetType?: InputMaybe<PaymentChannelTargetType>;\n paymentProvider?: InputMaybe<Array<PciEventMgmtRq>>;\n revision: Scalars['String']['input'];\n startDate?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n title: Scalars['String']['input'];\n type: Scalars['String']['input'];\n userDailyQuota?: InputMaybe<Scalars['Int']['input']>;\n userLimitQuota?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type UpdateRateCardTemplateDetailRq = {\n endAt?: InputMaybe<Scalars['DateTime']['input']>;\n guid: Scalars['String']['input'];\n magnifyValue?: InputMaybe<Scalars['Int']['input']>;\n minimumRate?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n paymentProviderCode?: InputMaybe<Scalars['String']['input']>;\n priority?: InputMaybe<Scalars['Int']['input']>;\n rate?: InputMaybe<Scalars['Float']['input']>;\n rateLogic?: InputMaybe<RateLogic>;\n revision: Scalars['String']['input'];\n startAt?: InputMaybe<Scalars['DateTime']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateRateCardTemplateRq = {\n code?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n revision: Scalars['String']['input'];\n};\n\nexport type UpdateRatesRq = {\n /** new currency base guid */\n baseGuid?: InputMaybe<Scalars['String']['input']>;\n /** rate identifier */\n guid: Scalars['String']['input'];\n /** new currency code for rate */\n rateCcy?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateRedeem = {\n guid: Scalars['String']['input'];\n internalStatus: InternalStatus;\n remark?: InputMaybe<Scalars['String']['input']>;\n revision: Scalars['String']['input'];\n};\n\nexport type UpdateRequestNatureRq = {\n code?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateRequestNatureTypeRq = {\n attachmentConfigJson?: InputMaybe<Scalars['JSON']['input']>;\n codePrefix?: InputMaybe<Scalars['String']['input']>;\n defaultBoardGuid?: InputMaybe<Scalars['String']['input']>;\n defaultPicUserGuid?: InputMaybe<Scalars['String']['input']>;\n defaultSlaUnit?: InputMaybe<SlaUnit>;\n defaultSlaValue?: InputMaybe<Scalars['Int']['input']>;\n guid: Scalars['String']['input'];\n natureGuid?: InputMaybe<Scalars['String']['input']>;\n /** Notification email cc */\n notificationCc?: InputMaybe<Scalars['String']['input']>;\n /** Notification email to */\n notificationTo?: InputMaybe<Scalars['String']['input']>;\n typeGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateRequestRq = {\n actualReleaseAt?: InputMaybe<Scalars['DateTime']['input']>;\n approvedStartDate?: InputMaybe<Scalars['DateTime']['input']>;\n approvedTargetDate?: InputMaybe<Scalars['DateTime']['input']>;\n assignedPicUserGuid?: InputMaybe<Scalars['String']['input']>;\n assignedTechLeadUserGuid?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n details?: InputMaybe<Scalars['String']['input']>;\n duplicateTo?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n isRequirementComplete?: InputMaybe<Scalars['Boolean']['input']>;\n picStatus?: InputMaybe<Scalars['String']['input']>;\n releaseNote?: InputMaybe<Scalars['String']['input']>;\n releaseTargetDate?: InputMaybe<Scalars['DateTime']['input']>;\n requestNatureGuid?: InputMaybe<Scalars['String']['input']>;\n requestTypeGuid?: InputMaybe<Scalars['String']['input']>;\n requestedTargetDate?: InputMaybe<Scalars['DateTime']['input']>;\n revisedTargetDate?: InputMaybe<Scalars['DateTime']['input']>;\n sla?: InputMaybe<Scalars['Int']['input']>;\n slaUnit?: InputMaybe<SlaUnit>;\n sourceTeam?: InputMaybe<Scalars['String']['input']>;\n sourceUser?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n supportingDetails?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n urgency?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type UpdateRequestTypeRq = {\n code?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateRoleRq = {\n /** ... new role code */\n code?: InputMaybe<Scalars['String']['input']>;\n /** ... new role description */\n description?: InputMaybe<Scalars['String']['input']>;\n isInternal?: InputMaybe<Scalars['Boolean']['input']>;\n /** ... new role name */\n name?: InputMaybe<Scalars['String']['input']>;\n /** ... data version, must match with data version in db */\n revision: Scalars['String']['input'];\n /** ... new role status */\n status?: InputMaybe<Status>;\n};\n\nexport type UpdateSectionRq = {\n boardGuid?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n sectionOrder?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type UpdateSprintRq = {\n finishAt?: InputMaybe<Scalars['DateTime']['input']>;\n guid: Scalars['String']['input'];\n name?: InputMaybe<Scalars['String']['input']>;\n startAt?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type UpdateSuspiciousTagRq = {\n actionCode?: InputMaybe<Scalars['String']['input']>;\n actionJson?: InputMaybe<Scalars['JSON']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n intervalParam?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n targetCode?: InputMaybe<Scalars['String']['input']>;\n threshold?: InputMaybe<Scalars['Int']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateTemplateDetailRq = {\n amount?: InputMaybe<Scalars['Double']['input']>;\n guid: Scalars['String']['input'];\n paymentProviderGuid?: InputMaybe<Scalars['String']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n productGuid?: InputMaybe<Scalars['String']['input']>;\n productSelection?: ProductSelectionEnum;\n revision: Scalars['String']['input'];\n status?: InputMaybe<Status>;\n};\n\nexport type UpdateTier = {\n benefitField?: InputMaybe<Scalars['JSON']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n currencyCode?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n levelValue?: InputMaybe<Scalars['Int']['input']>;\n minPointToKeep?: InputMaybe<Scalars['Int']['input']>;\n minPointToReach?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<TierStatus>;\n};\n\nexport type UpdateTierBonusRule = {\n baseValue?: InputMaybe<TierBonusRuleBaseValueEnum>;\n guid: Scalars['String']['input'];\n isForBirthday?: InputMaybe<Scalars['Boolean']['input']>;\n isForReferral?: InputMaybe<Scalars['Boolean']['input']>;\n maximumAmount?: InputMaybe<Scalars['Long']['input']>;\n minimumAmount?: InputMaybe<Scalars['Int']['input']>;\n priority?: InputMaybe<Scalars['Int']['input']>;\n revision: Scalars['String']['input'];\n status?: InputMaybe<TierBonusRuleStatusEnum>;\n stopNow?: InputMaybe<Scalars['Boolean']['input']>;\n tierGuid?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<TierBonusRuleTypeEnum>;\n value?: InputMaybe<Scalars['Double']['input']>;\n};\n\nexport type UpdateTierUnlockBonusRule = {\n guid: Scalars['String']['input'];\n revision: Scalars['String']['input'];\n status?: InputMaybe<TierBonusRuleStatusEnum>;\n tierGuid?: InputMaybe<Scalars['String']['input']>;\n value?: InputMaybe<Scalars['Long']['input']>;\n};\n\nexport type UpdateTransactionRefundRq = {\n guid: Scalars['String']['input'];\n /** Update refund response remark. */\n responseRemark: Scalars['String']['input'];\n /** Update refund status to SUCCESS_REFUND / REJECTED_REFUND. */\n status: RefundStatusEnum;\n};\n\nexport type UpdateVacancyRq = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n requirement?: InputMaybe<Scalars['String']['input']>;\n responsibility?: InputMaybe<Scalars['String']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n slug?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateVacancySettingsRq = {\n guid?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n value?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\nexport type UpdateVoucherGroupAutoGenRq = {\n /** amount of voucher that will auto generate */\n amount?: InputMaybe<Scalars['Int']['input']>;\n /** Timeout generation Input number in second */\n generationTimeout?: InputMaybe<Scalars['Int']['input']>;\n /** GUID of voucher group auto gen */\n guid?: InputMaybe<Scalars['String']['input']>;\n /** Minimum stock that will auto generate after reach */\n minThreshold?: InputMaybe<Scalars['Int']['input']>;\n /** Status of Voucher Group Auto Gen */\n status?: InputMaybe<VoucherAutoGenStatus>;\n /** GUID of voucher group */\n voucherGroupGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateVoucherGroupRq = {\n /** Currency */\n currency?: InputMaybe<Scalars['String']['input']>;\n /** Voucher group identifier */\n guid?: InputMaybe<Scalars['String']['input']>;\n /** to magnify value above before display to user */\n magnifyValue?: InputMaybe<Scalars['Int']['input']>;\n /** Name of voucher group */\n name?: InputMaybe<Scalars['String']['input']>;\n /** Voucher that have pin, this one to set the pattern */\n pinPattern: Scalars['JSON']['input'];\n revision: Scalars['String']['input'];\n /** Voucher pattern for this voucher group, doesn't affect API type voucher */\n serialPattern: Scalars['JSON']['input'];\n /** Type of voucher group */\n type?: InputMaybe<VoucherGroupType>;\n /** Voucher price to check when redeem */\n value?: InputMaybe<Scalars['Int']['input']>;\n /** Code for API type voucher only */\n voucherApiCode?: InputMaybe<Scalars['String']['input']>;\n voucherPattern?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateVoucherTransactionTrailRq = {\n createdIp?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n request?: InputMaybe<Scalars['JSON']['input']>;\n response?: InputMaybe<Scalars['JSON']['input']>;\n revision?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n transactionGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UpdateWebConfigRq = {\n code?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n guid: Scalars['String']['input'];\n jsonValue?: InputMaybe<Scalars['String']['input']>;\n numberValue?: InputMaybe<Scalars['Int']['input']>;\n revision: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n stringValue?: InputMaybe<Scalars['String']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UserAdminQueryCriteria = {\n companyGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n email?: InputMaybe<Scalars['String']['input']>;\n gender?: InputMaybe<Gender>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n /** ... cannot use this filter if already use optionalRole filter */\n mandatoryRole?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n merchantGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n mobileNumber?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n /** ... cannot use this filter if already use mandatoryRole filter */\n optionalRole?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n sourcePlatform?: InputMaybe<SourcePlatform>;\n status?: InputMaybe<Array<InputMaybe<Status>>>;\n};\n\nexport enum UserBanType {\n Login = 'LOGIN'\n}\n\nexport type UserByAdmin = {\n __typename?: 'UserByAdmin';\n password?: Maybe<Scalars['String']['output']>;\n user?: Maybe<AppLoginSubject>;\n};\n\nexport type UserConfirmRq = {\n /** ... verification code from email or otp notification */\n code: Scalars['String']['input'];\n /** ... email registered to user */\n email?: InputMaybe<Scalars['String']['input']>;\n /** ... mobile number registered to user */\n mobileNumber?: InputMaybe<Scalars['String']['input']>;\n /** ... source platform where principal registered */\n sourcePlatform: SourcePlatform;\n};\n\nexport type UserConsent = {\n __typename?: 'UserConsent';\n guid?: Maybe<Scalars['String']['output']>;\n historyAgreement?: Maybe<HistoryAgreement>;\n};\n\nexport type UserConsentCriteria = {\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n historyAgreementGuid?: InputMaybe<Scalars['String']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type UserFcm = {\n __typename?: 'UserFcm';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n guid: Scalars['String']['output'];\n};\n\nexport type UserLogin = {\n __typename?: 'UserLogin';\n appLoginExt?: Maybe<Array<Maybe<AppLoginSubjectExt>>>;\n birthday?: Maybe<Scalars['Date']['output']>;\n category?: Maybe<Scalars['String']['output']>;\n createdDate?: Maybe<Scalars['String']['output']>;\n email?: Maybe<Scalars['String']['output']>;\n gender?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n mobileNumber?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n sourcePlatform?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Status>;\n updatedDate?: Maybe<Scalars['String']['output']>;\n};\n\nexport type UserMemberQueryCriteria = {\n /** ... fill with end cursor id to get next data/page, cannot use this if already use 'before' filter */\n after?: InputMaybe<Scalars['String']['input']>;\n /** ... fill with start cursor id to get prev data/page, cannot use this if already use 'after' filter */\n before?: InputMaybe<Scalars['String']['input']>;\n email?: InputMaybe<Scalars['String']['input']>;\n gender?: InputMaybe<Gender>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n /** ... cannot use this filter if already use optionalRole filter */\n mandatoryRole?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n mobileNumber?: InputMaybe<Scalars['String']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n /** ... cannot use this filter if already use mandatoryRole filter */\n optionalRole?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy: AppLoginSubjectSortByEnum;\n sortDirection?: Scalars['String']['input'];\n sourcePlatform?: InputMaybe<SourcePlatform>;\n status?: InputMaybe<Array<InputMaybe<Status>>>;\n};\n\nexport type Vacancy = {\n __typename?: 'Vacancy';\n countryCode?: Maybe<Scalars['String']['output']>;\n createdBy?: Maybe<AppLoginSubject>;\n createdDate?: Maybe<Scalars['DateTime']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n requirement?: Maybe<Scalars['String']['output']>;\n responsibility?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n slug?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n title?: Maybe<Scalars['String']['output']>;\n updatedBy?: Maybe<AppLoginSubject>;\n updatedDate?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type VacancyApplication = {\n __typename?: 'VacancyApplication';\n attachment?: Maybe<Scalars['String']['output']>;\n createdDate?: Maybe<Scalars['DateTime']['output']>;\n email?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n reason?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedDate?: Maybe<Scalars['DateTime']['output']>;\n vacancyGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type VacancyApplicationQueryCriteria = {\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n email?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n vacancyGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type VacancyQueryCriteria = {\n countryCode?: InputMaybe<Scalars['String']['input']>;\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n requirement?: InputMaybe<Scalars['String']['input']>;\n responsibility?: InputMaybe<Scalars['String']['input']>;\n slug?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n title?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type VacancySettings = {\n __typename?: 'VacancySettings';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBy?: Maybe<AppLoginSubject>;\n guid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBy?: Maybe<AppLoginSubject>;\n value?: Maybe<Scalars['String']['output']>;\n};\n\nexport type VacancySettingsQueryCriteria = {\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n value?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type Voucher = {\n __typename?: 'Voucher';\n activationPin?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdBySubjectGuid?: Maybe<Scalars['String']['output']>;\n generateId?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n redeemableFrom?: Maybe<Scalars['DateTime']['output']>;\n redeemableTo?: Maybe<Scalars['DateTime']['output']>;\n serialNumber?: Maybe<Scalars['String']['output']>;\n softpin?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n updatedBySubjectGuid?: Maybe<Scalars['String']['output']>;\n urlKey?: Maybe<Scalars['String']['output']>;\n voucherGroupGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum VoucherAction {\n /** Voucher redeemed */\n Redeem = 'REDEEM',\n /** Voucher voided */\n Void = 'VOID'\n}\n\nexport enum VoucherAutoGenStatus {\n Active = 'ACTIVE',\n Deleted = 'DELETED',\n Disable = 'DISABLE'\n}\n\nexport type VoucherDetailList = {\n __typename?: 'VoucherDetailList';\n denomination?: Maybe<Array<Maybe<ItemPriceList>>>;\n file?: Maybe<FetchFileResponse>;\n parentCode?: Maybe<Scalars['String']['output']>;\n parentName?: Maybe<Scalars['String']['output']>;\n};\n\nexport type VoucherFilter = {\n activationPin?: InputMaybe<Scalars['String']['input']>;\n generateId?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantGuids?: InputMaybe<Array<Scalars['String']['input']>>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n redeemableFrom?: InputMaybe<Scalars['DateTime']['input']>;\n redeemableTo?: InputMaybe<Scalars['DateTime']['input']>;\n serialNumber?: InputMaybe<Scalars['String']['input']>;\n softpin?: InputMaybe<Scalars['String']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n urlKey?: InputMaybe<Scalars['String']['input']>;\n voucherGroupGuid?: InputMaybe<Scalars['String']['input']>;\n voucherStatus?: InputMaybe<VoucherStatus>;\n};\n\nexport type VoucherGatewayResponse = {\n __typename?: 'VoucherGatewayResponse';\n data?: Maybe<Scalars['JSON']['output']>;\n error?: Maybe<Scalars['JSON']['output']>;\n status?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type VoucherGenerateRs = {\n __typename?: 'VoucherGenerateRs';\n generateId?: Maybe<Scalars['String']['output']>;\n message?: Maybe<Scalars['String']['output']>;\n};\n\nexport type VoucherGenerationLog = {\n __typename?: 'VoucherGenerationLog';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdByUserGuid?: Maybe<Scalars['String']['output']>;\n generateId?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n remark?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n voucherGroupGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type VoucherGroup = {\n __typename?: 'VoucherGroup';\n createdAt?: Maybe<Scalars['String']['output']>;\n createdBySubjectGuid?: Maybe<Scalars['String']['output']>;\n currency?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n magnifyValue?: Maybe<Scalars['Int']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n pinPattern?: Maybe<Scalars['JSON']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n serialPattern?: Maybe<Scalars['JSON']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['String']['output']>;\n updatedBySubjectGuid?: Maybe<Scalars['String']['output']>;\n value?: Maybe<Scalars['Int']['output']>;\n voucherApiCode?: Maybe<Scalars['String']['output']>;\n voucherBuyCount?: Maybe<Scalars['Int']['output']>;\n voucherBuyCountUpdatedAt?: Maybe<Scalars['DateTime']['output']>;\n voucherCount?: Maybe<Scalars['Int']['output']>;\n voucherRedeemCount?: Maybe<Scalars['Int']['output']>;\n voucherRedeemCountUpdatedAt?: Maybe<Scalars['DateTime']['output']>;\n voucherVoidCount?: Maybe<Scalars['Int']['output']>;\n voucherVoidCountUpdatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type VoucherGroupAutoGen = {\n __typename?: 'VoucherGroupAutoGen';\n amount?: Maybe<Scalars['Int']['output']>;\n createdAt?: Maybe<Scalars['String']['output']>;\n createdBy?: Maybe<Scalars['String']['output']>;\n generationTimeout?: Maybe<Scalars['Int']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n minThreshold?: Maybe<Scalars['Int']['output']>;\n status?: Maybe<VoucherAutoGenStatus>;\n updatedAt?: Maybe<Scalars['String']['output']>;\n updatedBy?: Maybe<Scalars['String']['output']>;\n voucherGroupGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type VoucherGroupAutoGenFilter = {\n createdAt?: InputMaybe<Scalars['String']['input']>;\n createdBy?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<VoucherAutoGenStatus>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n updatedAt?: InputMaybe<Scalars['String']['input']>;\n updatedBy?: InputMaybe<Scalars['String']['input']>;\n voucherGroupGuid?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type VoucherGroupAutoGenLock = {\n __typename?: 'VoucherGroupAutoGenLock';\n /** Same with Voucher Group Auto Gen Guid */\n guid?: Maybe<Scalars['String']['output']>;\n lockTime?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type VoucherGroupAutoGenLockRq = {\n /** Same with Voucher Group Auto Gen Guid */\n guid?: InputMaybe<Scalars['String']['input']>;\n lockTime?: InputMaybe<Scalars['DateTime']['input']>;\n};\n\nexport type VoucherGroupAutoGenRs = {\n __typename?: 'VoucherGroupAutoGenRs';\n data: Array<Maybe<VoucherGroupAutoGen>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type VoucherGroupFilter = {\n createdByGuid?: InputMaybe<Scalars['String']['input']>;\n currency?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n magnifyValue?: InputMaybe<Scalars['Int']['input']>;\n name?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n pinPattern?: InputMaybe<Scalars['JSON']['input']>;\n serialPattern?: InputMaybe<Scalars['JSON']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n type?: InputMaybe<VoucherGroupType>;\n updatedByGuid?: InputMaybe<Scalars['String']['input']>;\n value?: InputMaybe<Scalars['Int']['input']>;\n voucherApiCode?: InputMaybe<Scalars['String']['input']>;\n voucherCount?: InputMaybe<Scalars['Int']['input']>;\n};\n\nexport type VoucherGroupRs = {\n __typename?: 'VoucherGroupRs';\n data: Array<Maybe<VoucherGroup>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport enum VoucherGroupType {\n /** Call third party API Type */\n Api = 'API',\n /** Generated voucher type */\n Generated = 'GENERATED',\n /** Imported voucher type */\n Import = 'IMPORT'\n}\n\n/** Voucher Identifier for Redeem */\nexport type VoucherId = {\n guid?: InputMaybe<Scalars['String']['input']>;\n serialNumber?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type VoucherRequestRs = {\n __typename?: 'VoucherRequestRs';\n currency?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n merchantReference?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n totalAmount?: Maybe<Scalars['Int']['output']>;\n vouchers?: Maybe<Array<Maybe<VoucherSoftpin>>>;\n};\n\nexport type VoucherSoftpin = {\n __typename?: 'VoucherSoftpin';\n activationPin?: Maybe<Scalars['String']['output']>;\n name?: Maybe<Scalars['String']['output']>;\n redeemableFrom?: Maybe<Scalars['DateTime']['output']>;\n redeemableTo?: Maybe<Scalars['DateTime']['output']>;\n serialNumber?: Maybe<Scalars['String']['output']>;\n};\n\nexport enum VoucherStatus {\n Available = 'AVAILABLE',\n Bought = 'BOUGHT',\n Redeem = 'REDEEM',\n Used = 'USED',\n Void = 'VOID'\n}\n\nexport type VoucherStock = {\n __typename?: 'VoucherStock';\n api?: Maybe<Scalars['Boolean']['output']>;\n itemCode?: Maybe<Scalars['String']['output']>;\n stock?: Maybe<VoucherGroup>;\n};\n\nexport type VoucherTransaction = {\n __typename?: 'VoucherTransaction';\n amount?: Maybe<Scalars['Float']['output']>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdIp?: Maybe<Scalars['String']['output']>;\n currencyCode?: Maybe<Scalars['String']['output']>;\n emailTo?: Maybe<Scalars['String']['output']>;\n guid: Scalars['String']['output'];\n itemCode?: Maybe<Scalars['String']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n merchantReference?: Maybe<Scalars['String']['output']>;\n messageTo?: Maybe<Scalars['String']['output']>;\n msSource?: Maybe<Scalars['String']['output']>;\n parentItemCode?: Maybe<Scalars['String']['output']>;\n paymentGateway?: Maybe<PaymentGatewayTransactions>;\n quantity?: Maybe<Scalars['Int']['output']>;\n remark?: Maybe<Scalars['String']['output']>;\n remarkExt?: Maybe<Scalars['String']['output']>;\n transactionReference?: Maybe<Scalars['String']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n userGuid?: Maybe<Scalars['String']['output']>;\n};\n\nexport type VoucherTransactionFilter = {\n amount?: InputMaybe<Scalars['Float']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n createdIp?: InputMaybe<Scalars['String']['input']>;\n currencyCodes?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n emailTo?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n itemCodes?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n merchantGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n merchantReferences?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n messageTo?: InputMaybe<Scalars['String']['input']>;\n msSource?: InputMaybe<Scalars['String']['input']>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n parentItemCodes?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n paymentGatewayRef?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n quantity?: InputMaybe<Scalars['Int']['input']>;\n remark?: InputMaybe<Scalars['String']['input']>;\n remarkExt?: InputMaybe<Scalars['String']['input']>;\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n transactionReferences?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type VoucherTransactionRs = {\n __typename?: 'VoucherTransactionRs';\n data: Array<Maybe<VoucherTransaction>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type VoucherTransactionTrail = {\n __typename?: 'VoucherTransactionTrail';\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n createdIp?: Maybe<Scalars['String']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n guid: Scalars['String']['output'];\n request?: Maybe<Scalars['JSON']['output']>;\n response?: Maybe<Scalars['JSON']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n transactionGuid?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type VoucherTransactionTrailFilter = {\n createdIp?: InputMaybe<Scalars['String']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n guids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n page?: Scalars['Int']['input'];\n pageSize?: Scalars['Int']['input'];\n sortBy?: Scalars['String']['input'];\n sortDirection?: Scalars['String']['input'];\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecords?: InputMaybe<Scalars['Boolean']['input']>;\n transactionGuids?: InputMaybe<Array<InputMaybe<Scalars['String']['input']>>>;\n};\n\nexport type VoucherTransactionTrailRs = {\n __typename?: 'VoucherTransactionTrailRs';\n data: Array<Maybe<VoucherTransactionTrail>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type VouchersRs = {\n __typename?: 'VouchersRs';\n data: Array<Maybe<Voucher>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type WebConfig = {\n __typename?: 'WebConfig';\n code?: Maybe<Scalars['String']['output']>;\n createdBy?: Maybe<AppLoginSubject>;\n createdDate?: Maybe<Scalars['DateTime']['output']>;\n description?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n jsonValue?: Maybe<Scalars['String']['output']>;\n numberValue?: Maybe<Scalars['Int']['output']>;\n revision?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n stringValue?: Maybe<Scalars['String']['output']>;\n type?: Maybe<Scalars['String']['output']>;\n updatedBy?: Maybe<AppLoginSubject>;\n updatedDate?: Maybe<Scalars['DateTime']['output']>;\n};\n\nexport type WebConfigQueryCriteria = {\n code?: InputMaybe<Scalars['String']['input']>;\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n description?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n jsonValue?: InputMaybe<Scalars['String']['input']>;\n numberValue?: InputMaybe<Scalars['Int']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n stringValue?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n type?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type WebConfigResult = {\n __typename?: 'WebConfigResult';\n data: Array<Maybe<WebConfig>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\nexport type WebtopupRequest = {\n countryCode: Scalars['String']['input'];\n currencyCode: Scalars['String']['input'];\n gameFieldJson?: InputMaybe<GameRequiredFieldInput>;\n lang?: InputMaybe<Scalars['String']['input']>;\n magnifyValue: Scalars['Int']['input'];\n paymentProviderCode: Scalars['String']['input'];\n productDenomGuid: Scalars['String']['input'];\n productGuid: Scalars['String']['input'];\n providerAmount: Scalars['Int']['input'];\n reloadType?: WebtopupTxnReloadTypeEnum;\n type?: InputMaybe<UniboxV2RequestType>;\n userEmail?: InputMaybe<Scalars['String']['input']>;\n voucherRef?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type WebtopupResponse = {\n __typename?: 'WebtopupResponse';\n message?: Maybe<Scalars['String']['output']>;\n paymentGatewayRef?: Maybe<Scalars['String']['output']>;\n paymentUrl?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['Int']['output']>;\n webtopupRef?: Maybe<Scalars['String']['output']>;\n};\n\nexport type WebtopupTransaction = {\n __typename?: 'WebtopupTransaction';\n companyGuid?: Maybe<Scalars['String']['output']>;\n countryCode?: Maybe<Scalars['String']['output']>;\n createdAt?: Maybe<Scalars['DateTime']['output']>;\n currencyCode?: Maybe<Scalars['String']['output']>;\n gameFieldJson?: Maybe<Scalars['JSON']['output']>;\n gameGatewayRef?: Maybe<Scalars['String']['output']>;\n guid?: Maybe<Scalars['String']['output']>;\n isTesting?: Maybe<Scalars['Boolean']['output']>;\n magnifyValue?: Maybe<Scalars['Int']['output']>;\n merchantGuid?: Maybe<Scalars['String']['output']>;\n paymentFieldJson?: Maybe<Scalars['JSON']['output']>;\n /** ... return pgw txn detail with only the latest txn trail */\n paymentGatewayDetail?: Maybe<PaymentGatewayTransactions>;\n paymentGatewayRef?: Maybe<Scalars['String']['output']>;\n paymentProvider?: Maybe<PaymentProvider>;\n paymentProviderCode?: Maybe<Scalars['String']['output']>;\n productDenomGuid?: Maybe<Scalars['String']['output']>;\n productGuid?: Maybe<Scalars['String']['output']>;\n providerAmount?: Maybe<Scalars['Int']['output']>;\n reloadType?: Maybe<Scalars['String']['output']>;\n sourceIp?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n updatedAt?: Maybe<Scalars['DateTime']['output']>;\n usdMagnifyValue?: Maybe<Scalars['Int']['output']>;\n usdValue?: Maybe<Scalars['Int']['output']>;\n userEmail?: Maybe<Scalars['String']['output']>;\n userGuid?: Maybe<Scalars['String']['output']>;\n voucherRef?: Maybe<Scalars['String']['output']>;\n webtopupRef?: Maybe<Scalars['String']['output']>;\n};\n\nexport type WebtopupTransactionHistory = {\n __typename?: 'WebtopupTransactionHistory';\n countryCode?: Maybe<Scalars['String']['output']>;\n currencyCode?: Maybe<Scalars['String']['output']>;\n gameDetail?: Maybe<GameTransactions>;\n guid?: Maybe<Scalars['String']['output']>;\n paymentGatewayDetail?: Maybe<PaymentGatewayTransactionDetail>;\n paymentProviderCode?: Maybe<Scalars['String']['output']>;\n productPage?: Maybe<ProductPage>;\n reloadType?: Maybe<Scalars['String']['output']>;\n status?: Maybe<Scalars['String']['output']>;\n voucherTransaction?: Maybe<VoucherTransaction>;\n webtopupRef?: Maybe<Scalars['String']['output']>;\n};\n\nexport type WebtopupTransactionHistoryQueryCriteria = {\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n currencyCode?: InputMaybe<Scalars['String']['input']>;\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n gameGatewayRef?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n paymentGatewayRef?: InputMaybe<Scalars['String']['input']>;\n paymentProviderCode?: InputMaybe<Scalars['String']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n productGuid?: InputMaybe<Scalars['String']['input']>;\n reloadType?: InputMaybe<WebtopupTxnReloadTypeEnum>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n webtopupRef?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type WebtopupTransactionQueryCriteria = {\n companyGuid?: InputMaybe<Scalars['String']['input']>;\n countryCode?: InputMaybe<Scalars['String']['input']>;\n currencyCode?: InputMaybe<Scalars['String']['input']>;\n dateFrom?: InputMaybe<Scalars['DateTime']['input']>;\n dateTo?: InputMaybe<Scalars['DateTime']['input']>;\n gameGatewayRef?: InputMaybe<Scalars['String']['input']>;\n guid?: InputMaybe<Scalars['String']['input']>;\n merchantGuid?: InputMaybe<Scalars['String']['input']>;\n page?: InputMaybe<Scalars['Int']['input']>;\n pageSize?: InputMaybe<Scalars['Int']['input']>;\n paymentGatewayRef?: InputMaybe<Scalars['String']['input']>;\n paymentProviderCode?: InputMaybe<Scalars['String']['input']>;\n productDenomGuid?: InputMaybe<Scalars['String']['input']>;\n productGuid?: InputMaybe<Scalars['String']['input']>;\n reloadType?: InputMaybe<WebtopupTxnReloadTypeEnum>;\n sortBy?: InputMaybe<Scalars['String']['input']>;\n sortDirection?: InputMaybe<Scalars['String']['input']>;\n status?: InputMaybe<Scalars['String']['input']>;\n totalRecord?: InputMaybe<Scalars['Boolean']['input']>;\n userGuid?: InputMaybe<Scalars['String']['input']>;\n webtopupRef?: InputMaybe<Scalars['String']['input']>;\n};\n\nexport type WebtopupTransactionResult = {\n __typename?: 'WebtopupTransactionResult';\n data: Array<Maybe<WebtopupTransaction>>;\n totalRecord?: Maybe<Scalars['Int']['output']>;\n};\n\n/** Enum for differentiate between each reload uc, up and game webtopup */\nexport enum WebtopupTxnReloadTypeEnum {\n Game = 'GAME',\n Na = 'NA',\n Uc = 'UC',\n Up = 'UP',\n Voucher = 'VOUCHER'\n}\n\nexport type IsSuccess = {\n __typename?: 'isSuccess';\n isSuccess?: Maybe<Scalars['Boolean']['output']>;\n};\n","import { Injectable } from '@angular/core';\nimport { Observable, map } from 'rxjs';\nimport { FetchPolicy } from '@apollo/client/core';\nimport { Apollo, gql } from 'apollo-angular';\nimport { AppLoginSubject } from '../../../graphql/generated';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProfileService {\n\n constructor(\n protected readonly apollo: Apollo\n ) { }\n\n /**\n * A method to get the user profile information.\n * @param {FetchPolicy | undefined} fetchPolicy - Specifies how Apollo Client should handle data retrieval,\n * determining whether it should make a network request to fetch fresh data from the server or use data from the local cache.\n * @returns {Observable<AppLoginSubject | null>} Contain user profile information.\n */\n public getMyProfile(fetchPolicy?: FetchPolicy): Observable<AppLoginSubject | null>{\n return this.apollo.query<{ authMsMyProfile: AppLoginSubject }>({\n fetchPolicy,\n errorPolicy: 'all',\n query: gql`\n query getMyProfile {\n authMsMyProfile {\n appLoginPrincipal {\n principalId\n principalType\n }\n appLoginExt {\n paramCode\n paramType\n file {\n publicUrl\n }\n }\n birthday\n category\n company {\n code\n guid\n isInternal\n name\n status\n }\n gender\n guid\n merchants {\n guid\n name\n status\n }\n name\n status\n roles {\n guid\n code\n name\n isInternal\n status\n }\n }\n }\n `,\n }).pipe(\n map(({ data: { authMsMyProfile }}) => {\n if (!authMsMyProfile) return null;\n return authMsMyProfile;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, tap } from 'rxjs';\nimport { Apollo, MutationResult, gql } from 'apollo-angular';\nimport { FetchPolicy } from '@apollo/client/core';\nimport { AppLoginSubject, ChangePassRq, LoginResponse, MutationAuthMsRefreshAccessTokenArgs, SourcePlatform, SuggestedAction, Token } from '../../../graphql/generated';\nimport { User } from '../../interfaces';\nimport { ProfileService } from '../profile/profile.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthService {\n\n /**\n * Both `authToken` and `refreshToken` are public static variable to store the auth token and refresh token obtained form the login API.\n * They will be set as header param inside API calls.\n * @type {string}\n * @default ''\n */\n public static authToken: string = '';\n public static refreshToken: string = '';\n\n /**\n * A public variable to store the logined user information.\n * @type {User} An interface contain user information.\n * @default undefined\n */\n public user?: User;\n\n constructor(\n protected readonly apollo: Apollo,\n protected readonly profileService: ProfileService\n ) { }\n\n /**\n * A method to authenticate the user to get the session for applet or platform.\n * When successful it will set the user information to the `user` variable, `authToken` and `refreshToken`.\n * It will set the `authToken`, `refreshToken`, `userGuid` and `roles` to the localStorage also for API calls.\n * @param {{ email: string, password: string, sourcePlatform: string }} input - Contain `email` which is registered user email, `password` which is registered user password\n * and `sourcePlatform` it's value can be `ADMIN` to get the applet session or `CP_COMMERCE` to get the platform session.\n * @returns {Observable<MutationResult<{ authMsLogin: LoginResponse }>>} Contain logined user information.\n */\n public login(input: { email: string, password: string, sourcePlatform: string }): Observable<MutationResult<{ authMsLogin: LoginResponse }>>{\n return this.apollo.mutate<{ authMsLogin: LoginResponse }>({\n variables: { input },\n mutation: gql`\n mutation Login($input: LoginRq!) {\n authMsLogin(input: $input) {\n accessToken\n refreshToken\n suggestedAction\n user {\n birthday\n category\n email\n gender\n guid\n mobileNumber\n name\n status\n }\n roles {\n guid\n code\n name\n isInternal\n status\n }\n }\n }\n `\n }).pipe(\n tap(({ data }) => {\n if (data?.authMsLogin) {\n const { accessToken, user, refreshToken, suggestedAction, roles } = data.authMsLogin;\n\n this.user = user as User;\n this.user!.photo = '/assets/imgs/profile.svg';\n AuthService.authToken = accessToken ?? '';\n AuthService.refreshToken = refreshToken ?? '';\n\n if (suggestedAction !== SuggestedAction.ChangePassword ) { \n localStorage.setItem('authToken', AuthService.authToken); \n }\n\n localStorage.setItem('userGuid', this.user!.guid);\n localStorage.setItem('roles', JSON.stringify(roles));\n localStorage.setItem('refreshToken', AuthService.refreshToken);\n }\n })\n );\n }\n\n /**\n * This method is used by the `refreshTokenInterceptor`, to get the new token shortly before the auth token is expired.\n * @param {MutationAuthMsRefreshAccessTokenArgs} variables - Contain `refreshToken` attribute which is the current refresh token.\n * @returns {Observable<MutationResult<{ authMsRefreshAccessToken: Token }>>} Contain new `authToken` and `refreshToken`.\n */\n public refreshToken(variables: MutationAuthMsRefreshAccessTokenArgs): Observable<MutationResult<{ authMsRefreshAccessToken: Token }>>{\n return this.apollo.mutate({\n context: {\n headers: {\n 'operation-type': 'Mutation',\n 'operation-name': 'RefreshToken'\n }\n },\n variables,\n mutation: gql`\n mutation RefreshToken($refreshToken: String!) {\n authMsRefreshAccessToken(refreshToken: $refreshToken) {\n accessToken\n refreshToken\n }\n }\n `\n });\n }\n\n /**\n * A method to set the user information to the `user` variable when the user refresh the page.\n * Because of the user information only stored in the variable so it will gone while the page refreshed and need to reset again.\n * @param {FetchPolicy | undefined} fetchPolicy - Specifies how Apollo Client should handle data retrieval,\n * determining whether it should make a network request to fetch fresh data from the server or use data from the local cache.\n * @returns {Observable<AppLoginSubject | null>}\n */\n public getProfile(fetchPolicy?: FetchPolicy): Observable<AppLoginSubject | null>{\n return this.profileService.getMyProfile(fetchPolicy).pipe(\n tap((user: AppLoginSubject | null) => {\n if (!user) return;\n this.user = { ...user, photo: '/assets/imgs/profile.svg' } as User;\n\n user.appLoginExt?.forEach(({ paramCode, file: { publicUrl }}: any) => {\n if (paramCode === 'USER_PROFILE_PHOTO') this.user!.photo = publicUrl;\n });\n\n user.appLoginPrincipal?.forEach(({ principalId, principalType }: any) => {\n if (principalType === 'EMAIL_USERNAME') this.user!.email = principalId;\n });\n })\n );\n }\n\n /**\n * A method to get the otp / verification code for reset password purpose.\n * No need authorization header to call this API.\n * @param {string} email - Contain registered user email.\n * @returns {Observable<MutationResult<any>>} Contain message stating that verification code has been sent to the email.\n */\n public initForgotPassword(email: string): Observable<MutationResult<any>>{\n return this.apollo.mutate({\n variables: {\n input: {\n email,\n sourcePlatform: SourcePlatform.Admin\n }\n },\n mutation: gql`\n mutation InitForgotPassword($input: ForgotPassOtpRq!) {\n authMsForgotPasswordOtp(input: $input)\n }\n `\n });\n }\n\n /**\n * A method to generate new password when the user forgets the password.\n * No need authorization header for this API.\n * @param {{ confirm: string, newPassword: string, principalId: string, verifCode: string, sourcePlatform: string }} - Contain :\n * newPassword - the new password.\n * confirm - the exactly same with the new password.\n * principalId - registered email or phone number attached to user.\n * verifCode - otp / verification code that has been sent to email.\n * sourcePlatform - `ADMIN` for applet or `CP_COMMERCE` for platform.\n * @returns {Observable<MutationResult<any>>} Contain message stating that user successfully / failed to reset the password.\n */\n public createNewPassword({ newPassword, principalId, sourcePlatform, verifCode }: { confirm: string, newPassword: string, principalId: string, verifCode: string, sourcePlatform: string }): Observable<MutationResult<any>>{\n return this.apollo.mutate({\n mutation : gql`\n mutation SubmitForgotPassword($input: ForgotPassRq!) {\n authMsForgotPassword(input: $input)\n }\n `,\n variables: {\n input: {\n newPassword,\n principalId,\n sourcePlatform,\n verifCode\n }\n }\n });\n }\n\n /**\n * A method to update user's password.\n * Need authorization header for this API.\n * @param {{ oldPassword: string, newPassword: string }} input - Contain oldPassword which is old / current password and newPassword which is the new password.\n * @returns {Observable<MutationResult<{ authMsChangePassword: ChangePassRq }>>} Contain message stating the password updated successfully.\n */\n public updatePassword(input: { oldPassword: string, newPassword: string }): Observable<MutationResult<{ authMsChangePassword: ChangePassRq }>>{\n return this.apollo.mutate({\n mutation: gql`\n mutation ChangePassword($input: ChangePassRq!) {\n authMsChangePassword(input: $input)\n }\n `,\n variables: { input }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApolloQueryResult } from '@apollo/client/core';\nimport { Apollo, gql } from 'apollo-angular';\nimport { Currency, CurrencyQueryCriteria } from '../../../graphql/generated';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CurrencyService {\n\n constructor(\n protected readonly apollo: Apollo\n ) { }\n\n /**\n * A method to get the list of currency and it's information.\n * The information such as currency code, magnify value, name and status.\n * @param {string} keyword - Contain some letters of currency name, it's optional.\n * @returns {Observable<ApolloQueryResult<{ webConfigMsCurrency: { data: Currency[] }}>>} Contain list of currency and it's information.\n */\n public query(keyword: string = ''): Observable<ApolloQueryResult<{ webConfigMsCurrency: { data: Currency[] }}>>{\n const input: CurrencyQueryCriteria = { page: 0, pageSize: 300, sortBy: 'name', sortDirection: 'asc' };\n if (keyword !== '') input.name = keyword;\n\n return this.apollo.query({\n errorPolicy: 'all',\n variables: { input },\n query: gql`\n query QueryCurrency($input: CurrencyQueryCriteria!) {\n webConfigMsCurrency(input: $input) {\n data {\n code\n guid\n magnifyValue\n name\n status\n }\n }\n }\n `,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApolloQueryResult } from '@apollo/client/core';\nimport { Apollo, gql } from 'apollo-angular';\nimport { Country, CountryQueryCriteria } from '../../../graphql/generated';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CountryService {\n\n constructor(\n protected readonly apollo: Apollo\n ) { }\n\n /**\n * A method to get list of country and it's information.\n * The information such as name, phone code, language code, country code and default language code.\n * @param {CountryQueryCriteria} input - Contain country data pagination criteria, it's optional.\n * @returns {Observable<ApolloQueryResult<{ webConfigMsCountry: { data: Country[] }}>>} Contain list of country and it's information.\n */\n public query(input: CountryQueryCriteria = { page: 0, pageSize: 300, sortBy: 'name', sortDirection: 'asc' }): Observable<ApolloQueryResult<{ webConfigMsCountry: { data: Country[] }}>>{\n return this.apollo.query({\n errorPolicy: 'all',\n variables: { input },\n query: gql`\n query QueryCountry($input: CountryQueryCriteria!) {\n webConfigMsCountry(input: $input) {\n data {\n code\n defaultLangCode\n guid\n langCodes {\n code\n guid\n }\n name\n phoneCodes {\n code\n }\n }\n }\n }\n `,\n });\n }\n}\n","import { Attribute, ChangeDetectorRef, ChangeDetectionStrategy, Component, Input, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { AbstractControl, ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { Currency } from '../../../../graphql/generated';\nimport { getFormErrorMessage } from '../../../utils';\nimport { CurrencyService } from '../../../services';\n\n@Component({\n standalone: true,\n selector: 'up-currency-input',\n styleUrl: './form-currency-input.component.scss',\n templateUrl: './form-currency-input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n class: 'd-block' \n },\n imports: [\n FormsModule,\n NgSelectModule,\n NgTemplateOutlet,\n ],\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: FormCurrencyInputComponent\n },\n {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: FormCurrencyInputComponent\n }\n ]\n})\nexport class FormCurrencyInputComponent implements ControlValueAccessor, Validator, OnInit, OnDestroy {\n \n /**\n * Input variable for the label associated with the input.\n * @type {string}\n * @default ''\n */\n @Input() public label: string = 'Currency';\n\n /**\n * Input variable to determine whether the select input is clearable.\n * @type {boolean}\n * @default {true}\n */\n @Input() public clearable: boolean = true;\n\n /**\n * Input variable to determine whether the number input form is hide or show.\n * @type {boolean}\n * @default {false}\n */\n @Input() public isInputNumber: boolean = false;\n\n /**\n * Input variable to set the value of input number field.\n * @type {number | null}\n * @default {null}\n */\n @Input() public numberValue: number | null = null;\n\n /**\n * Input variable to determine whether the number input is disabled.\n * @type {boolean}\n * @default {false}\n */\n @Input() public isNumberDisabled: boolean = false;\n\n /**\n * Input variable to determine whether the select input is required.\n * @type {boolean}\n * @default {false}\n */\n @Input() public required: boolean = false;\n\n /**\n * Input variable to determine whether the select input is disabled.\n * @type {boolean}\n * @default {false}\n */\n @Input() public disabled: boolean = false;\n\n /**\n * Output variable to emit changes when the select input value changes.\n * @type {EventEmitter<any>}\n */\n @Output() public onChange: EventEmitter<{ selectedItem?: Currency, number: number | null }> = new EventEmitter();\n\n /**\n * Observable for displaying items in the select input.\n * @type {Observable<any[]>}\n */\n public items: { label: string, value: string, data: Currency }[] = [];\n\n /**\n * Boolean flag indicating whether the select input is loading.\n * @type {boolean}\n * @default {false}\n */\n public isLoading: boolean = true;\n\n /**\n * Boolean flag indicating whether the select input has been touched.\n * @type {boolean}\n * @default {false}\n */\n public isTouched: boolean = false;\n\n /**\n * The value of the select input.\n * @type {any | null}\n * @default {null}\n */\n public value: any | null = null;\n\n /**\n * Error message associated with the select input.\n * @type {string}\n * @default {undefined}\n */\n public errorMsg!: string;\n\n /**\n * The form control associated with the select input.\n * @type {AbstractControl}\n */\n protected formControl!: AbstractControl;\n\n /**\n * The number of maximum digits allowed behind the comma.\n * @type {number}\n * @default {0}\n */\n protected decimalLimiter: number = 0;\n\n /**\n * Callback function to handle value changes in the select input.\n * @type {(_val: any) => void}\n */\n protected changed: (_val: any) => void = (_val: any) => {};\n\n /**\n * Callback function to handle touch events in the select input.\n * @type {() => void}\n */\n protected onTouched: () => void = () => {};\n\n protected sub?: Subscription;\n protected selectedItem?: Currency;\n\n constructor(\n @Attribute('placeholder') public placeholder: string,\n @Attribute('numberPlaceholder') public numberPlaceholder: string,\n protected readonly ch: ChangeDetectorRef,\n protected readonly currencyService: CurrencyService,\n ) {}\n\n public ngOnInit(): void{\n this.sub = this.currencyService.query().subscribe({\n error: () => {\n this.items = [];\n this.setIsLoading(false);\n },\n next: ({ data: { webConfigMsCurrency: { data }}}) => {\n this.items = data.map((d) => ({ label: `[${ d.code }] ${ d.name }`, value: d.code!, data: d }));\n this.setIsLoading(false);\n }\n });\n }\n\n public ngOnDestroy(): void{\n this.sub?.unsubscribe();\n }\n \n /**\n * Registers a callback function to be called when the select input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{ this.changed = fn; }\n \n /**\n * Registers a callback function to be called when the select input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{ this.onTouched = fn; } \n \n /**\n * Writes a new value to the select input.\n * @param {*} val - The new value to be set.\n */\n public writeValue(val: any): void{\n this.value = val;\n\n if (!val) this.change(null);\n else {\n const d = this.items.find(({ value }) => value === val);\n \n if (d) {\n this.change({ value: val, data: d.data });\n }\n }\n this.ch.markForCheck();\n }\n \n /**\n * Sets the disabled state of the select input.\n * @param {boolean} d - The new disabled state.\n */\n public setDisabledState?(d: boolean): void{ \n this.disabled = d; \n this.ch.markForCheck();\n }\n\n /**\n * Validates the select input.\n * @param {AbstractControl} control - The abstract control representing the select input.\n * @returns {(ValidationErrors | null)} - Validation errors if any, otherwise null.\n */\n public validate(control: AbstractControl): ValidationErrors | null{ \n this.formControl = control;\n return null;\n }\n \n /**\n * Event handler for changes in the select input.\n * Set the number as null if currency changed to prevent mismatch between selected currency and the number comma allowed limit.\n * Emits the onChange event, updates the initialItems, and handles validation based on form control errors and label.\n * Set the decimalLimiter based on selected magnifyValue\n * @param {any} e - The event containing the new select input value.\n */\n public change(e?: any): void{\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n }\n \n if (!this.disabled) {\n this.value = e?.value;\n this.selectedItem = e?.data;\n\n this.changed(this.value);\n this.onChange.emit({ selectedItem: e, number: this.numberValue });\n this.errorMsg = getFormErrorMessage(this.formControl?.errors, this.label);\n }\n \n if (e?.magnifyValue === 1) this.decimalLimiter = 0;\n else {\n this.decimalLimiter = Math.floor(Math.log10(e?.data.magnifyValue));\n }\n }\n\n /**\n * Triggered on form number input.\n * Set the numberValue with current value.\n * Emit the selected currency and the number value to the parent component.\n * @param {any} - Contain `value` the value of inputed number.\n */\n public numberInput({ value }: any): void{\n this.numberValue = value;\n this.onChange.emit({ selectedItem: this.selectedItem, number: value });\n }\n\n /**\n * Triggered on form number keypress.\n * Controlling input in a number field, restricting the number of decimal places allowed.\n * @param {any} - Contain\n * charCode - the character code of the key pressed.\n * preventDefault - the function to prevent the default behaviour of the event.\n * target.value - the current value of the input field.\n */\n public limitDecimal({ charCode, preventDefault, target: { value }}: any): void{\n const reg = this.decimalLimiter > 0? new RegExp(`^\\\\d*(\\\\.\\\\d{0,${ this.decimalLimiter }})?$`) : /^\\d+$/;\n if (!reg.test(value + String.fromCharCode(charCode))) preventDefault();\n }\n\n protected setIsLoading(b: boolean): void{\n this.isLoading = b;\n this.ch.markForCheck();\n }\n}\n","<label class=\"form-label\" [class.required]=\"required\">{{ label }}</label>\n\n<ng-template #selectForm>\n <ng-select \n class=\"flex-shrink-0\"\n [class.number]=\"isInputNumber\"\n appendTo=\"body\"\n bindValue=\"value\"\n placeholder=\"{{ placeholder }}\"\n [virtualScroll]=\"true\"\n [items]=\"items\"\n [ngModel]=\"value\"\n [readonly]=\"disabled\" \n [loading]=\"isLoading\"\n [clearable]=\"clearable\"\n (change)=\"change($event);\"\n >\n <ng-template ng-option-tmp let-i=\"item\">\n <span>{{ isInputNumber? i.value : i.label }}</span>\n </ng-template>\n\n <ng-template ng-label-tmp let-i=\"item\">\n <span>{{ isInputNumber? i.value : i.label }}</span>\n </ng-template>\n </ng-select>\n</ng-template>\n\n@if (!isInputNumber) {\n <ng-container *ngTemplateOutlet=\"selectForm\" />\n} \n@else {\n <div class=\"d-flex justify-content-between gap-1 align-items-center\">\n <ng-container *ngTemplateOutlet=\"selectForm\" />\n\n <input type=\"number\" [placeholder]=\"numberPlaceholder\" class=\"form-control flex-grow-1\" [disabled]=\"isNumberDisabled\" [value]=\"numberValue\" (keypress)=\"limitDecimal($event)\" (input)=\"numberInput($event.target)\">\n </div>\n}\n\n@if (errorMsg) {\n <label class=\"is-invalid\">{{ errorMsg }}</label>\n}\n\n","import { Attribute, ChangeDetectorRef, ChangeDetectionStrategy, Component, Input, Output, EventEmitter, OnInit, OnDestroy } from '@angular/core';\nimport { AbstractControl, ControlValueAccessor, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { Country } from '../../../../graphql/generated';\nimport { CountryService } from '../../../services';\nimport { getFormErrorMessage } from '../../../utils';\n\n@Component({\n standalone: true,\n selector: 'up-country-input',\n styleUrl: './form-country-input.component.scss',\n templateUrl: './form-country-input.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n class: 'd-block' \n },\n imports: [\n FormsModule,\n NgSelectModule\n ],\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: FormCountryInputComponent\n },\n {\n multi: true,\n provide: NG_VALIDATORS,\n useExisting: FormCountryInputComponent\n }\n ]\n})\nexport class FormCountryInputComponent implements ControlValueAccessor, Validator, OnInit, OnDestroy {\n \n /**\n * Input variable to determine whether the country input is clearable.\n * @type {boolean}\n * @default {true}\n */\n @Input() public clearable: boolean = true;\n\n /**\n * Input variable to determine whether the country input is required.\n * @type {boolean}\n * @default {false}\n */\n @Input() public required: boolean = false;\n\n /**\n * Input variable to determine whether the select input allows multiple selections.\n * @type {boolean}\n * @default false\n */\n @Input() public multiple: boolean = false;\n\n /**\n * Input variable to determine whether the country input is disabled.\n * @type {boolean}\n * @default {false}\n */\n @Input() public disabled: boolean = false;\n\n /**\n * Output variable to emit changes when the country input value changes.\n * @type {EventEmitter<any>}\n */\n @Output() public onChange: EventEmitter<Country | undefined | null> = new EventEmitter();\n\n /**\n * Observable for displaying items in the country input.\n * @type {Observable<any[]>}\n */\n public items: { label: string, value: string, data: Country }[] = [];\n\n /**\n * Boolean flag indicating whether the country input is loading.\n * @type {boolean}\n * @default {false}\n */\n public isLoading: boolean = true;\n\n /**\n * Boolean flag indicating whether the country input has been touched.\n * @type {boolean}\n * @default {false}\n */\n public isTouched: boolean = false;\n\n /**\n * The value of the country input.\n * @type {any | null}\n * @default {null}\n */\n public value: any | null = null;\n\n /**\n * Error message associated with the country input.\n * @type {string}\n * @default {undefined}\n */\n public errorMsg!: string;\n\n /**\n * The form control associated with the country input.\n * @type {AbstractControl}\n */\n protected formControl!: AbstractControl;\n\n /**\n * Callback function to handle value changes in the country input.\n * @type {(_val: any) => void}\n */\n protected changed: (_val: any) => void = (_val: any) => {};\n\n /**\n * Callback function to handle touch events in the country input.\n * @type {() => void}\n */\n protected onTouched: () => void = () => {};\n\n protected sub?: Subscription;\n\n constructor(\n @Attribute('placeholder') public placeholder: string,\n protected readonly ch: ChangeDetectorRef,\n protected readonly countryService: CountryService,\n ) {}\n\n public ngOnInit(): void{\n this.sub = this.countryService.query().subscribe({\n error: () => {\n this.items = [];\n this.setIsLoading(false);\n },\n next: ({ data: { webConfigMsCountry: { data }}}) => {\n this.items = data.map((d) => ({ label: d.name!, value: d.code!, data: d }));\n this.setIsLoading(false);\n }\n });\n }\n\n public ngOnDestroy(): void{\n this.sub?.unsubscribe();\n }\n \n /**\n * Registers a callback function to be called when the select input value changes.\n * @param {(_val: any) => void} fn - Callback function for value changes.\n */\n public registerOnChange(fn: any): void{ this.changed = fn; }\n \n /**\n * Registers a callback function to be called when the select input is touched.\n * @param {() => void} fn - Callback function for touch events.\n */\n public registerOnTouched(fn: any): void{ this.onTouched = fn; } \n \n /**\n * Writes a new value to the select input.\n * @param {*} val - The new value to be set.\n */\n public writeValue(val: any): void{\n this.value = val;\n this.ch.markForCheck();\n }\n \n /**\n * Sets the disabled state of the select input.\n * @param {boolean} d - The new disabled state.\n */\n public setDisabledState?(d: boolean): void{ \n this.disabled = d; \n this.ch.markForCheck();\n }\n\n /**\n * Validates the select input.\n * @param {AbstractControl} control - The abstract control representing the select input.\n * @returns {(ValidationErrors | null)} - Validation errors if any, otherwise null.\n */\n public validate(control: AbstractControl): ValidationErrors | null{ \n this.formControl = control;\n return null;\n }\n\n public change(e?: any): void{\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n }\n \n if (!this.disabled) {\n if (!e) this.value = null;\n else {\n this.value = !this.multiple? e.value : e.map((o: any) => o.value);\n }\n\n this.changed(this.value);\n this.onChange.emit(e.data);\n this.errorMsg = getFormErrorMessage(this.formControl.errors, 'Country');\n }\n }\n\n protected setIsLoading(b: boolean): void{\n this.isLoading = b;\n this.ch.markForCheck();\n }\n}\n","<label class=\"form-label\" [class.required]=\"required\">Country</label>\n<ng-select \n class=\"flex-shrink-0\"\n appendTo=\"body\"\n bindValue=\"value\"\n placeholder=\"{{ placeholder }}\"\n [virtualScroll]=\"true\"\n [items]=\"items\"\n [ngModel]=\"value\"\n [multiple]=\"multiple\"\n [readonly]=\"disabled\" \n [loading]=\"isLoading\"\n [clearable]=\"clearable\"\n (change)=\"change($event);\"\n/>\n@if (errorMsg) {\n <label class=\"is-invalid\">{{ errorMsg }}</label>\n}\n\n","import { Attribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { formatDate } from '@angular/common';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { IonicModule, PopoverController } from '@ionic/angular';\nimport { FilterConfig } from './interfaces/filter-config.interface';\nimport { FilterField } from './interfaces/filter-field.interface';\nimport { FilterSearchEvent } from './interfaces/filter-search-event.interface';\nimport { FormInputComponent, FormSelectComponent, FormDateComponent, FormSearchableSelectComponent } from '../forms';\n\n@Component({\n standalone: true,\n selector: 'up-filter',\n styleUrl: './filter.component.scss',\n templateUrl: './filter.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { \n class: 'd-block position-relative' \n },\n imports: [ \n IonicModule,\n FormDateComponent,\n FormInputComponent,\n ReactiveFormsModule,\n FormSelectComponent,\n FormSearchableSelectComponent\n ]\n})\nexport class FilterComponent implements OnInit {\n\n /**\n * Input variable for the unique identifier of the filter.\n * @type {string}\n * @required\n */\n @Input({ required: true }) public id!: string;\n\n /**\n * Input variable for the configuration object specifying filter fields and mode.\n * @type {FilterConfig}\n * @required\n */\n @Input({ required: true }) public config!: FilterConfig;\n\n /**\n * Output event emitter triggered when the user performs a search.\n * Emits a `FilterSearchEvent` object with search mode and criteria data.\n * @type {EventEmitter<FilterSearchEvent>}\n */\n @Output() public readonly onSearch: EventEmitter<FilterSearchEvent> = new EventEmitter();\n\n /**\n * ViewChild decorator to reference the searchBox element in the template.\n * @type {ElementRef}\n */\n @ViewChild('searchBox') protected readonly searchBox!: ElementRef;\n\n /**\n * Form group for managing form controls.\n * @type {FormGroup<any>}\n */\n public readonly form: FormGroup<any> = new FormGroup({});\n\n /**\n * Array to store active filter criteria.\n * @type {{ label: string, key: string, value: string }[]}\n */\n public activeFilter: { label: string, key: string, value: string }[] = [];\n\n /**\n * Map to store initial items for each filter key.\n * @type {Map<string, { label: string, value: string }[]>}\n */\n public initialItems: Map<string, { label: string, value: string }[]> = new Map();\n\n constructor(\n @Attribute('placeholder') public placeholder: string,\n protected readonly ch: ChangeDetectorRef,\n protected readonly popoverCtrl: PopoverController\n ) { } \n\n /**\n * Lifecycle hook to initialize the component.\n * Creates form controls based on the provided configuration and restores saved filter state.\n */\n public ngOnInit(): void{\n this.config.fields.forEach(({ key, initialValue }: FilterField) => {\n if (typeof key === 'string') this.createFormControl(key, initialValue);\n else {\n key.forEach((k: string, i: number) => this.createFormControl(k, initialValue?.at(i)));\n }\n });\n\n const savedState = localStorage.getItem(`${ this.id }`);\n if (savedState) {\n const state = JSON.parse(savedState);\n\n this.activeFilter = state.activeFilter;\n if (state.initialItems) {\n this.initialItems = new Map(Object.entries(state.initialItems));\n }\n this.form.patchValue(state.formValues);\n this.emitValue();\n }\n }\n\n /**\n * Closes the filter popover.\n */\n public close(): void{ \n this.popoverCtrl.dismiss(); \n }\n\n /**\n * Clears all filter criteria, localStorage, and triggers a search event with null data.\n */\n public clear(): void{\n this.resetValue();\n this.form.reset();\n\n localStorage.removeItem(`${ this.id }`);\n this.initialItems.clear();\n this.onSearch.emit({ mode: this.config.mode, data: null });\n }\n\n /**\n * Removes a specific filter criteria based on its index.\n * @param {number} i - Index of the filter criteria to be removed.\n */\n public removeFilter(i: number): void{\n this.form.controls[this.activeFilter[i].key].setValue('');\n this.activeFilter.splice(i, 1);\n this.emitValue();\n }\n\n /**\n * Initiates a search based on the active filter criteria and clears the saved filter state if there are no active filters.\n */\n public search(): void{\n this.resetValue();\n this.emitValue((k: string, v: any) => {\n if (Array.isArray(v)) {\n v.forEach((value: any) => this.processFilter(k, value));\n } else {\n this.processFilter(k, v);\n }\n });\n \n if (this.activeFilter.length === 0) {\n this.initialItems.clear();\n localStorage.removeItem(`${this.id}`);\n }\n this.close();\n }\n \n protected processFilter(key: string, value: any): void{\n const initialItem = this.initialItems.get(key)?.find(item => item.value === value);\n const label = initialItem\n ? `${ key }: ${ initialItem.label }`\n : `${ key }: ${ key.includes('date')? formatDate(value, 'dd MMM yyyy', 'en-US') : value }`;\n \n this.activeFilter.push({ key, value, label });\n }\n\n /**\n * Adds a new filter criteria based on the user input.\n */\n public add(): void{\n const { key, value } = this.getValue(this.searchBox.nativeElement.value);\n if (this.config.fields.findIndex(({ key: k }) => k === key) === -1) {\n this.searchBox.nativeElement.value = '';\n return;\n }\n\n const i = this.activeFilter.findIndex(({ key: k }) => k === key);\n if (i === -1) this.activeFilter.push({ label: `${ key }:${ value }`, key, value });\n else {\n this.activeFilter[i].key = key;\n this.activeFilter[i].value = value;\n this.activeFilter[i].label = `${ key }:${ value }`;\n }\n\n this.form.patchValue({ [key]: value });\n this.searchBox.nativeElement.value = '';\n this.emitValue();\n }\n\n /**\n * Receive the initialItems form searchable or select component and apply them to the initialItems map to be used again by searchable or select component\n * when it initialized again.\n * @param {any} item - The initial items received from the searcable or select component.\n * @param {string} key - The key associated with the initial items.\n */\n public applyInitialItems(item: any, key: string): void{ \n if (!Array.isArray(item)) {\n this.initialItems = this.initialItems.set(key, [ item ]);\n return;\n }\n\n this.initialItems = this.initialItems.set(key, item);\n }\n\n\n /**\n * Resets the active filter and clears the search box.\n */\n protected resetValue(): void{\n this.activeFilter.length = 0;\n this.searchBox.nativeElement.value = '';\n }\n\n /**\n * Parses the input value and returns a key-value pair.\n * @param {string} value - Input value to be parsed.\n * @returns {{ key: string, value: string }} - Key-value pair extracted from the input value.\n */\n protected getValue(value: string): { key: string, value: string }{\n const values: string[] = value.split(':');\n\n if (values.length === 1) return { key: <string> this.config.fields[0].key, value: values[0] };\n return { key: values[0], value: values[1] };\n }\n\n /**\n * Emits the search event based on the form values.\n * Invokes an extra action if provided and saves the state to localStorage.\n * @param {(key: string, value: string) => void} [extraAction] - Optional extra action to be invoked.\n */\n protected emitValue(extraAction?: (key: string, value: string) => void): void{\n let flag: boolean = false;\n const f = this.form.getRawValue();\n const data: { [k: string]: any } = {};\n \n Object.keys(f).forEach((k: string) => {\n if (!f[k]) return;\n \n flag = true;\n data[k] = f[k];\n extraAction?.(k, f[k]);\n });\n this.onSearch.emit({ mode: this.config.mode, data: flag? data : null });\n \n localStorage.setItem(\n `${ this.id }`, \n JSON.stringify({\n activeFilter: this.activeFilter,\n initialItems: Object.fromEntries(this.initialItems),\n formValues: this.form.getRawValue()\n })\n );\n }\n\n /**\n * Creates a form control for a given key and sets its initial value.\n * @param {string} key - Key for the form control.\n * @param {*} [val] - Initial value for the form control.\n */\n protected createFormControl(key: string, val?: any): void{\n this.form.addControl(key, new FormControl(''));\n\n if (val) {\n this.form.controls[key].setValue(val);\n this.activeFilter.push({ label: `${ key }:${ val }`, key, value: val });\n }\n }\n}\n","<ion-icon name=\"search\" class=\"fs-4 position-absolute\" />\n\n<div class=\"d-flex align-items-center form-control ps-5 py-0 pe-0 gap-3\">\n @if (activeFilter.length > 0) {\n <div class=\"d-flex flex-grow-1 flex-shrink-0 tag-container gap-2 text-nowrap overflow-auto\">\n @for (item of activeFilter; track item.key; let i = $index) {\n <div class=\"tag-item p-1 rounded d-flex align-items-center user-select-none\">\n <ion-icon name=\"close\" class=\"pe-1 me-1 cursor-pointer text-primary\" (click)=\"removeFilter(i);\" />\n {{ item.label }}\n </div>\n }\n </div>\n }\n\n <input #searchBox type=\"search\" placeholder=\"{{ placeholder }}\" class=\"flex-shrink-1 border-0 form-control ps-0 py-2\" [class.adv]=\"config.mode === 'advanced'\" (keyup.enter)=\"add();\" />\n</div>\n\n@if (config.mode === 'advanced') {\n <ion-icon name=\"filter\" class=\"position-absolute fs-4 cursor-pointer\" id=\"filter-{{ id }}\" />\n <ion-icon name=\"close\" class=\"position-absolute fs-4 cursor-pointer\" (click)=\"clear();\" />\n \n <ion-popover trigger=\"filter-{{ id }}\" triggerAction=\"click\">\n <ng-template>\n <div class=\"d-flex flex-column filter overflow-auto\">\n <div class=\"flex-shrink-0 border-bottom p-1 pe-4 d-flex align-items-center\">\n <ion-buttons>\n <ion-button size=\"small\" (click)=\"close()\">\n <ion-icon slot=\"icon-only\" name=\"close\" />\n </ion-button>\n </ion-buttons>\n \n <div class=\"fs-5 fw-medium\">Advanced Filter</div>\n </div>\n \n <form class=\"flex-grow-1 overflow-auto px-4\" [formGroup]=\"form\">\n @for (c of config.fields; track c.key) {\n @switch (c.type) {\n @case ('number') {\n <up-input type=\"number\" autocomplete=\"off\" class=\"my-4\" label=\"{{ c.label }}\" formControlName=\"{{ c.key }}\" /> \n }\n\n @case ('checkbox') {\n <div class=\"my-4\">\n <ion-checkbox labelPlacement=\"end\" formControlName=\"{{ c.key }}\">{{ c.label }}</ion-checkbox>\n </div>\n }\n\n @case ('date-range') {\n <div class=\"d-flex gap-3 my-4\">\n <up-date class=\"flex-grow-1\" name=\"filter-from\" label=\"{{ c.label[0] }}\" formControlName=\"{{ c.key[0] }}\" />\n <up-date class=\"flex-grow-1\" name=\"filter-to\" label=\"{{ c.label[1] }}\" formControlName=\"{{ c.key[1] }}\" />\n </div>\n }\n\n @case ('select') { \n <up-select \n class=\"my-4\"\n appendTo=\"body\" \n label=\"{{ c.label }}\" \n formControlName=\"{{ c.key }}\" \n [items]=\"c.options!\"\n [multiple]=\"c.multiple || false\"\n /> \n }\n\n @case ('searchable-select') { \n <up-searchable-select \n class=\"my-4\" \n appendTo=\"body\" \n label=\"{{ c.label }}\" \n formControlName=\"{{ c.key }}\" \n [queryFunc]=\"c.getOptions!\" \n [initialItems]=\"c.options! || initialItems.get(c.key.toString())!\"\n [multiple]=\"c.multiple || false\"\n (onChange)=\"applyInitialItems($event, c.key.toString())\"\n /> \n }\n \n @default { \n <up-input type=\"text\" autocomplete=\"off\" class=\"my-4\" label=\"{{ c.label }}\" formControlName=\"{{ c.key }}\" /> \n }\n }\n }\n </form>\n \n <div class=\"flex-shrink-0 py-3 px-4 border-top d-flex gap-3\">\n <ion-button class=\"flex-grow-1\" color=\"secondary\" (click)=\"form.reset();\">Reset</ion-button>\n <ion-button class=\"flex-grow-1\" color=\"primary\" (click)=\"search();\">Search</ion-button>\n </div>\n </div>\n </ng-template>\n </ion-popover> \n}\n","import { Injectable } from '@angular/core';\nimport { GridApi } from '@ag-grid-community/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GridService {\n\n protected readonly apis: { [id: string]: GridApi } = {};\n\n public getApi(id: string): GridApi{ return this.apis[id]; }\n\n public setApi(id: string, api: GridApi): void{ this.apis[id] = api; }\n\n public refreshGridCache(id: string, forceRefresh: boolean = false): void{\n this.apis[id]?.refreshInfiniteCache();\n\n if (forceRefresh) {\n this.apis[id]?.paginationGoToFirstPage();\n this.apis[id]?.purgeInfiniteCache();\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ColDef, IDatasource, IGetRowsParams, ModuleRegistry, GridReadyEvent, DragStoppedEvent, SelectionChangedEvent, GridApi, PaginationChangedEvent, RowClassParams, RowNode } from '@ag-grid-community/core';\nimport { AgGridModule } from '@ag-grid-community/angular';\nimport { InfiniteRowModelModule } from '@ag-grid-community/infinite-row-model';\nimport { GridConfig } from '../interfaces/grid-config.interface';\nimport { GridService } from '../services/grid.service';\n\n@Component({\n standalone: true,\n selector: 'up-snapshot-grid',\n styleUrl: './grid-snapshot.component.scss',\n templateUrl: './grid-snapshot.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n AgGridModule\n ]\n})\nexport class GridSnapshotComponent implements OnInit, OnDestroy {\n\n /**\n * Input variable for specifying the unique identifier of the ag-Grid component.\n * @type {`grid-${ string }`}\n */\n @Input() public id: `grid-${ string }` = 'grid-s';\n\n /**\n * Input variable for the configuration object defining the ag-Grid properties.\n * @type {GridConfig}\n * @required\n */\n @Input({ required: true }) public config!: GridConfig;\n\n /**\n * Input variable for specifying the row selection mode. It can be 'single' or 'multiple'.\n * @type {('single' | 'multiple')}\n */\n @Input() public rowSelection: 'single' | 'multiple' = 'single';\n\n /**\n * Callback version of property `rowClass` to set class(es) for each row individually. \n * Function should return either a string (class name), array of strings (array of class names) or undefined for no class.\n * @type { RowClassParams<TData = any, TContext = any> }\n * @returns { string }\n */ \n @Input() public getRowClass: ((params: RowClassParams<RowNode, any>) => string) | undefined;\n\n /**\n * Output event emitter triggered when a row in the ag-Grid is clicked.\n * Emits the data associated with the clicked row.\n * @type {EventEmitter<any>}\n */\n @Output() public readonly onRowClick: EventEmitter<any> = new EventEmitter();\n\n /**\n * Output event emitter triggered when the ag-Grid is ready.\n * Emits a `GridReadyEvent` object.\n * @type {EventEmitter<GridReadyEvent>}\n */\n @Output() public readonly onGridReady: EventEmitter<GridReadyEvent> = new EventEmitter();\n\n /**\n * Output event emitter triggered when the selection in the ag-Grid changes.\n * Emits a `SelectionChangedEvent<any>` object.\n * @type {EventEmitter<SelectionChangedEvent<any>>}\n */\n @Output() public readonly onSelectionChanged: EventEmitter<SelectionChangedEvent<any>> = new EventEmitter();\n\n /**\n * Default column definition for the ag-Grid.\n * @type {ColDef}\n */\n public readonly defaultColDef: ColDef = { minWidth: 200, flex: 1, sortable: true, resizable: true, sortingOrder: [ 'asc', 'desc' ], cellStyle: { textAlign: 'left' }};\n\n /**\n * Protected variable to store sorting information.\n * @type {{ orderBy: string, order: string }}\n */\n protected readonly sort: { orderBy: string, order: string } = { order: '', orderBy: '' };\n \n /**\n * Protected variable to store the total count of records.\n * @type {number | undefined}\n */\n protected count?: number;\n\n /**\n * Protected variable to store the ag-Grid API.\n * @type {GridApi}\n */\n protected gridApi!: GridApi;\n\n /**\n * Protected variable to store the subscription to data retrieval.\n * @type {Subscription | undefined}\n */\n protected subs?: Subscription;\n\n /**\n * Protected variable to store the cursor for paginating snapshot data.\n * @type {string | null}\n */\n protected after?: string | null;\n\n constructor(\n protected readonly service: GridService\n ) {\n ModuleRegistry.register(InfiniteRowModelModule);\n }\n\n /**\n * Lifecycle hook to initialize the component.\n * Sets default values for rowPerPage and noRowText properties in the configuration.\n */\n public ngOnInit(): void{\n if (!this.config.rowPerPage) this.config.rowPerPage = 50;\n\n this.config.noRowText = `<span class=\"f20\">${ this.config.noRowText?? 'Data not found' }</span>`;\n }\n\n /**\n * Lifecycle hook to handle component destruction.\n * Unsubscribes from data retrieval subscriptions.\n */\n public ngOnDestroy(): void{ this.subs?.unsubscribe(); }\n\n /**\n * Event handler for clicking a row in the ag-Grid.\n * Emits the data associated with the clicked row.\n * @param {any} data - Data associated with the clicked row.\n */\n public clickRow(data: any): void{ this.onRowClick.emit(data.node); }\n\n /**\n * Event handler for when column drag stops in the ag-Grid.\n * Saves the column state to local storage.\n * @param {DragStoppedEvent} param0 - DragStoppedEvent object containing API information.\n */\n public dragColumn({ api }: DragStoppedEvent): void{ localStorage.setItem(this.id, JSON.stringify(api.getColumnState())); }\n\n /**\n * Event handler for selection change in the ag-Grid.\n * Emits a `SelectionChangedEvent<any>` object.\n * @param {SelectionChangedEvent<any>} data - SelectionChangedEvent object.\n */\n public changeSelected(data: SelectionChangedEvent<any>): void{ this.onSelectionChanged.emit(data); }\n\n /**\n * Event handler for pagination change in the ag-Grid.\n * Updates the rowPerPage property in the configuration based on the new page size.\n * @param {PaginationChangedEvent} ev - PaginationChangedEvent object.\n */\n public changePagination(ev: PaginationChangedEvent): void{\n if (ev.newPageSize) this.config.rowPerPage = this.gridApi.paginationGetPageSize();\n }\n\n /**\n * Event handler for setting the datasource when the ag-Grid is ready.\n * Emits the onGridReady event and sets the API in the GridService.\n * Applies column state from local storage and resets the grid.\n * @param {GridReadyEvent} ev - GridReadyEvent object.\n */\n public setDatasource(ev: GridReadyEvent): void{\n this.gridApi = ev.api;\n this.onGridReady.emit(ev);\n this.service.setApi(this.id, this.gridApi);\n\n const state = JSON.parse(localStorage.getItem(this.id) as any);\n if (state) {\n this.gridApi.applyColumnState({ state, applyOrder: true });\n this.gridApi.setColumnsVisible(this.gridApi.getAllGridColumns(), true);\n }\n\n this.reset();\n }\n\n /**\n * Resets the datasource for snapshot data.\n * Retrieves rows asynchronously based on pagination and sorting.\n * Updates the count of records and calls success or fail callbacks accordingly.\n */\n public reset(): void{\n const datasource: IDatasource = {\n getRows: ({ sortModel: [{ colId, sort }], successCallback, failCallback }: IGetRowsParams) => {\n this.gridApi.showLoadingOverlay();\n\n if (colId !== this.sort.orderBy || sort !== this.sort.order) {\n this.sort.order = sort;\n this.sort.orderBy = colId;\n\n this.gridApi.paginationGoToFirstPage();\n }\n\n const page = this.gridApi.paginationGetCurrentPage();\n if (page === 0) this.after = null;\n\n this.subs = this.config.getDataSnapshot!(this.config.rowPerPage!, colId, sort, this.after).subscribe({\n next: ({ data, totalRecord }) => {\n this.gridApi.hideOverlay();\n\n const { edges, pageInfo } = data;\n if (edges.length > 0) this.after = pageInfo.endCursor;\n\n if (page === 0) {\n if (edges.length === 0){\n this.gridApi.setGridOption('overlayNoRowsTemplate', this.config.noRowText);\n this.gridApi.showNoRowsOverlay();\n }\n this.count = totalRecord;\n }\n\n if (!this.config.useTotalRecord && !pageInfo.hasNextPage) {\n this.count = (page * this.config.rowPerPage!) + edges.length;\n }\n successCallback(edges, this.count);\n },\n error: ({ message }) => {\n this.gridApi.setGridOption('overlayNoRowsTemplate', `<span class=\"f20\">${ message }</span>`);\n\n this.gridApi.hideOverlay();\n this.gridApi.showNoRowsOverlay();\n failCallback();\n }\n });\n }\n };\n this.gridApi.setGridOption('datasource', datasource);\n }\n}\n","<ag-grid-angular class=\"ag-theme-balham\"\n rowModelType=\"infinite\"\n [pagination]=\"true\"\n [animateRows]=\"true\"\n [getRowClass]=\"getRowClass\"\n [rowSelection]=\"rowSelection\"\n [columnDefs]=\"config.colDefs\"\n [defaultColDef]=\"defaultColDef\"\n [cacheBlockSize]=\"config.rowPerPage\"\n [paginationPageSize]=\"config.rowPerPage\"\n [overlayNoRowsTemplate]=\"config.noRowText\"\n (dragStopped)=\"dragColumn($event)\"\n (gridReady)=\"setDatasource($event)\"\n (rowClicked)=\"clickRow($event.data)\"\n (selectionChanged)=\"changeSelected($event)\"\n (paginationChanged)=\"changePagination($event)\"\n/>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ColDef, IDatasource, IGetRowsParams, ModuleRegistry, RowModelType, GridReadyEvent, DragStoppedEvent, SelectionChangedEvent, GridApi, PaginationChangedEvent, RowClassParams, RowNode } from '@ag-grid-community/core';\nimport { InfiniteRowModelModule } from '@ag-grid-community/infinite-row-model';\nimport { ClientSideRowModelModule } from '@ag-grid-community/client-side-row-model';\nimport { AgGridModule } from '@ag-grid-community/angular';\nimport { GridConfig } from '../interfaces/grid-config.interface';\nimport { GridService } from '../services/grid.service';\n\n@Component({\n standalone: true,\n selector: 'up-pagination-grid',\n styleUrl: './grid-pagination.component.scss',\n templateUrl: './grid-pagination.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ \n AgGridModule \n ]\n})\nexport class GridPaginationComponent implements OnInit, OnDestroy {\n\n /**\n * Input variable for the configuration object defining the ag-Grid properties.\n * @type {GridConfig}\n * @required\n */\n @Input({ required: true }) public config!: GridConfig;\n\n /**\n * Input variable for providing the row data to be displayed in the ag-Grid.\n * @type {any[]}\n */\n @Input() public rowData: any[] = [];\n\n /**\n * Input variable for specifying the unique identifier of the ag-Grid component.\n * @type {`grid-${ string }`}\n */\n @Input() public id: `grid-${ string }` = 'grid-p';\n\n /**\n * Input variable for specifying the row model type for the ag-Grid.\n * It can be 'infinite' or 'clientSide'.\n * @type {RowModelType}\n */\n @Input() public rowModelType: RowModelType = 'infinite';\n\n /**\n * Input variable for specifying the row selection mode. It can be 'single' or 'multiple'.\n * @type {('single' | 'multiple')}\n */\n @Input() public rowSelection: 'single' | 'multiple' = 'single';\n\n /**\n * Callback version of property `rowClass` to set class(es) for each row individually. \n * Function should return either a string (class name), array of strings (array of class names) or undefined for no class.\n * @type { RowClassParams<TData = any, TContext = any> }\n * @returns { string }\n */ \n @Input() public getRowClass: ((params: RowClassParams<RowNode, any>) => string) | undefined;\n\n /**\n * Output event emitter triggered when a row in the ag-Grid is clicked.\n * Emits the data associated with the clicked row.\n * @type {EventEmitter<any>}\n */\n @Output() public readonly onRowClick: EventEmitter<any> = new EventEmitter();\n\n /**\n * Output event emitter triggered when the ag-Grid is ready.\n * Emits a `GridReadyEvent` object.\n * @type {EventEmitter<GridReadyEvent>}\n */\n @Output() public readonly onGridReady: EventEmitter<GridReadyEvent> = new EventEmitter();\n\n /**\n * Output event emitter triggered when the selection in the ag-Grid changes.\n * Emits a `SelectionChangedEvent<any>` object.\n * @type {EventEmitter<SelectionChangedEvent<any>>}\n */\n @Output() public readonly onSelectionChanged: EventEmitter<SelectionChangedEvent<any>> = new EventEmitter();\n\n /**\n * Default column definition for the ag-Grid.\n * @type {ColDef}\n */\n public readonly defaultColDef: ColDef = { minWidth: 200, flex: 1, sortable: true, resizable: true, sortingOrder: [ 'asc', 'desc' ], cellStyle: { textAlign: 'left' }};\n\n /**\n * Protected variable to store the total count of records.\n * @type {number | undefined}\n */\n protected count?: number;\n\n /**\n * Protected variable to store the ag-Grid API.\n * @type {GridApi}\n */\n protected gridApi!: GridApi;\n\n /**\n * Protected variable to store the subscription to data retrieval.\n * @type {Subscription | undefined}\n */\n protected subs?: Subscription;\n\n constructor(\n protected readonly service: GridService\n ) {}\n\n /**\n * Lifecycle hook to initialize the component.\n * Registers the row model type module based on the specified type.\n * Sets default values for rowPerPage and noRowText properties in the configuration.\n */\n public ngOnInit(): void{\n ModuleRegistry.register(this.rowModelType === 'infinite'? InfiniteRowModelModule : ClientSideRowModelModule);\n\n if (!this.config.rowPerPage) this.config.rowPerPage = 50;\n this.config.noRowText = `<span class=\"f20\">${ this.config.noRowText?? 'Data not found' }</span>`;\n }\n\n /**\n * Lifecycle hook to handle component destruction.\n * Unsubscribes from data retrieval subscriptions.\n */\n public ngOnDestroy(): void{ this.subs?.unsubscribe(); }\n\n /**\n * Event handler for clicking a row in the ag-Grid.\n * Emits the data associated with the clicked row.\n * @param {any} data - Data associated with the clicked row.\n */\n public clickRow(data: any): void{ this.onRowClick.emit(data); }\n\n /**\n * Event handler for when column drag stops in the ag-Grid.\n * Saves the column state to local storage.\n * @param {DragStoppedEvent} param0 - DragStoppedEvent object containing API information.\n */\n public dragColumn({ api }: DragStoppedEvent): void{ localStorage.setItem(this.id, JSON.stringify(api.getColumnState())); }\n\n /**\n * Event handler for selection change in the ag-Grid.\n * Emits a `SelectionChangedEvent<any>` object.\n * @param {SelectionChangedEvent<any>} data - SelectionChangedEvent object.\n */\n public changeSelected(data: SelectionChangedEvent<any>): void{ this.onSelectionChanged.emit(data); }\n\n /**\n * Event handler for pagination change in the ag-Grid.\n * Updates the rowPerPage property in the configuration based on the new page size.\n * @param {PaginationChangedEvent} ev - PaginationChangedEvent object.\n */\n public changePagination(ev: PaginationChangedEvent): void{\n if (ev.newPageSize) this.config.rowPerPage = this.gridApi.paginationGetPageSize();\n }\n\n /**\n * Event handler for setting the datasource when the ag-Grid is ready.\n * Emits the onGridReady event and sets the API in the GridService.\n * Applies column state from local storage and resets the grid for infinite row model type.\n * @param {GridReadyEvent} ev - GridReadyEvent object.\n */\n public setDatasource(ev: GridReadyEvent): void{\n this.gridApi = ev.api;\n this.onGridReady.emit(ev);\n this.service.setApi(this.id, this.gridApi);\n\n const state = JSON.parse(localStorage.getItem(this.id) as any);\n if (state) {\n this.gridApi.applyColumnState({ state, applyOrder: true });\n this.gridApi.setColumnsVisible(this.gridApi.getAllGridColumns(), true);\n }\n\n if (this.rowModelType === 'clientSide') this.gridApi.setGridOption('rowData', this.rowData);\n if (this.rowModelType !== 'infinite') return;\n this.reset();\n }\n\n /**\n * Resets the datasource for infinite row model type.\n * Retrieves rows asynchronously based on pagination and sorting.\n * Updates the count of records and calls success or fail callbacks accordingly.\n */\n public reset(): void{\n if (!this.gridApi) return;\n\n const datasource: IDatasource = {\n getRows: ({ sortModel: [{ colId, sort }], successCallback, failCallback }: IGetRowsParams) => {\n this.gridApi.showLoadingOverlay();\n const offset = this.gridApi.paginationGetCurrentPage();\n\n this.subs = this.config.getData!(offset, this.config.rowPerPage!, colId, sort).subscribe({\n next: ({ data, totalRecord }) => {\n this.gridApi.hideOverlay();\n \n if (offset === 0) {\n if (data.length === 0) {\n this.gridApi.setGridOption('overlayNoRowsTemplate', this.config.noRowText);\n this.gridApi.showNoRowsOverlay();\n } \n this.count = totalRecord;\n }\n\n if (!this.config.useTotalRecord && data.length < this.config.rowPerPage!) {\n this.count = (offset * this.config.rowPerPage!) + data.length;\n }\n successCallback(data, this.count);\n },\n error: ({ message }) => {\n this.gridApi.setGridOption('overlayNoRowsTemplate', `<span class=\"f20\">${ message }</span>`);\n\n this.gridApi.hideOverlay();\n this.gridApi.showNoRowsOverlay();\n failCallback();\n }\n });\n }\n };\n \n this.gridApi?.setGridOption('datasource', datasource);\n }\n}\n","<ag-grid-angular class=\"ag-theme-balham\"\n [pagination]=\"true\"\n [animateRows]=\"true\"\n [getRowClass]=\"getRowClass\"\n [rowModelType]=\"rowModelType\"\n [rowSelection]=\"rowSelection\"\n [columnDefs]=\"config.colDefs\"\n [defaultColDef]=\"defaultColDef\"\n [cacheBlockSize]=\"config.rowPerPage\"\n [paginationPageSize]=\"config.rowPerPage\"\n [overlayNoRowsTemplate]=\"config.noRowText\"\n (dragStopped)=\"dragColumn($event)\"\n (gridReady)=\"setDatasource($event)\"\n (rowClicked)=\"clickRow($event.data)\"\n (selectionChanged)=\"changeSelected($event)\"\n (paginationChanged)=\"changePagination($event)\"\n/>\n","import { Component, Attribute, Output, EventEmitter, Input } from '@angular/core';\nimport { Router } from '@angular/router';;\nimport { GridApi, GridReadyEvent } from '@ag-grid-community/core';\nimport { ListContainerConfig } from '../interfaces/list-container-config.interface';\nimport { FilterSearchEvent } from '../../../filter/interfaces/filter-search-event.interface';\nimport { FilterComponent } from '../../../filter';\nimport { ButtonGroupComponent } from '../../../buttons';\nimport { GridPaginationComponent } from '../../../grids';\n\n@Component({\n standalone: true,\n selector: 'up-list-pagination-container',\n styleUrl: './list-pagination-container.component.scss',\n templateUrl: './list-pagination-container.component.html',\n host: {\n class: 'd-flex flex-column h-100 w-100'\n },\n imports: [\n FilterComponent,\n ButtonGroupComponent,\n GridPaginationComponent\n ]\n})\nexport class ListPaginationContainerComponent {\n\n /**\n * An Input variable that used to string for customizing header text.\n * @type {string}\n */ \n @Input({ required: true }) public header!: string;\n /**\n * An input variable that used to configuration object for customizing list container config properties. This\n * object defined by ListContainerConfig interface allows specifying baseUrl, gridConfig, filterConfig and permission.\n * @type {ListContainerConfig}\n */\n @Input({ required: true }) public config!: ListContainerConfig;\n /**\n * The `onRowClick` EventEmitter is used to notify parent components or listeners\n * when a row is clicked within the current component. It emits an event containing\n * information related to the clicked row.\n * @type {EventEmitter<any>}\n */\n @Output() public readonly onRowClick: EventEmitter<any> = new EventEmitter();\n /**\n * The `onGridReady` EventEmitter is used to inform parent components or listeners\n * when the grid within the current component is ready for interaction. It emits an\n * event of type `GridReadyEvent`, which may contain information about the grid's\n * readiness and capabilities. \n * @type {EventEmitter<GridReadyEvent>} \n */\n @Output() public readonly onGridReady: EventEmitter<GridReadyEvent> = new EventEmitter();\n /**\n * The `onSearch` EventEmitter is used to inform parent components or listeners\n * when a search event is triggered within the current component. It emits an\n * event of type `FilterSearchEvent`, which may contain information about the\n * search query and additional details related to the search operation.\n * @type {EventEmitter<FilterSearchEvent>}\n */\n @Output() public readonly onSearch: EventEmitter<FilterSearchEvent> = new EventEmitter();\n /**\n * The `gridId` property is a unique identifier for a grid element. It is\n * automatically generated based on the component's `id` property. If the `id`\n * property is not set, a default value of 'p' is used.\n * @type {string}\n */\n public gridId: `grid-${ string }` = `grid-${ this.id?? 'p' }`;\n protected gridApi!: GridApi;\n\n constructor(\n @Attribute('id') public id: string,\n protected readonly router: Router\n ) { }\n \n /**\n * The `openDetail` method is used to trigger actions when a user requests to open\n * the detail view for a specific data item. It emits a `data` event using the\n * `onRowClick` EventEmitter, providing external components or listeners with\n * information about the clicked data. Additionally, it navigates to the detail\n * route associated with the data item using the Angular Router.\n * \n * @param data - The data item for which the detail view is to be opened.\n */\n public openDetail(data: any): void{ \n this.onRowClick.emit(data);\n this.router.navigate([ `${ this.config.baseUrl }${ data.guid }` ], { preserveFragment: true });\n }\n\n /**\n * The `setGridApi` method is used to set the grid API when the grid is ready, typically\n * after the `gridReady` event is fired. It assigns the grid API to the component's\n * `gridApi` property and emits the `onGridReady` event, providing external components\n * or listeners with information about the grid's readiness.\n * \n * @param {GridReadyEvent} ev - The `GridReadyEvent` containing information about the grid's readiness.\n */\n public setGridApi(ev: GridReadyEvent): void{ \n this.gridApi = ev.api; \n this.onGridReady.emit(ev);\n }\n /**\n * The `search` method is used to trigger a search operation based on the provided\n * `FilterSearchEvent`. It emits the `onSearch` event, providing external components\n * or listeners with information about the search query. Additionally, it purges\n * the grid cache using the `purgeInfiniteCache` method of the grid API.\n * @param {FilterSearchEvent} k - The `FilterSearchEvent` containing information about the search operation.\n */\n public search(k: FilterSearchEvent): void{\n this.onSearch.emit(k);\n \n this.gridApi?.paginationGoToFirstPage();\n this.gridApi?.purgeInfiniteCache();\n }\n}\n","<div class=\"d-flex align-items-center justify-content-between gap-4 p-4 flex-shrink-0 flex-wrap flex-md-nowrap\">\n <div class=\"flex-grow-1 d-flex align-items-center gap-2\">\n <h3 class=\"m-0 text-truncate\">{{ header }}</h3>\n\n @if (config.buttons && config.buttons.length > 0) {\n <up-btn-group class=\"flex-shrink-0\" id=\"btn-list-snapshot-container\" [config]=\"config.buttons\" />\n }\n </div>\n\n @if (config.filterConfig) {\n <div class=\"flex-shrink-0 flex-grow-1 flex-lg-grow-0\">\n <up-filter placeholder=\"Type to search\" id=\"filter-{{ id }}\" [config]=\"config.filterConfig\" (onSearch)=\"search($event)\" />\n </div>\n }\n</div>\n\n<div class=\"flex-grow-1 px-1 pb-1\">\n <up-pagination-grid [config]=\"config.gridConfig\" [id]=\"gridId\" (onGridReady)=\"setGridApi($event)\" (onRowClick)=\"openDetail($event)\" />\n</div>\n","import { Component, Attribute, Output, EventEmitter, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { GridApi, GridReadyEvent } from '@ag-grid-community/core';\nimport { ListContainerConfig } from '../interfaces/list-container-config.interface';\nimport { FilterSearchEvent } from '../../../filter/interfaces/filter-search-event.interface';\nimport { FilterComponent } from '../../../filter';\nimport { GridSnapshotComponent } from '../../../grids';\nimport { ButtonGroupComponent } from '../../../buttons';\n\n@Component({\n standalone: true,\n selector: 'up-list-snapshot-container',\n styleUrl: './list-snapshot-container.component.scss',\n templateUrl: './list-snapshot-container.component.html',\n host: {\n class: 'd-flex flex-column h-100 w-100'\n },\n imports: [\n FilterComponent,\n ButtonGroupComponent,\n GridSnapshotComponent\n ]\n})\nexport class ListSnapshotContainerComponent {\n\n /**\n * An Input variable that used to string for customizing header.\n * @type {string}\n */ \n @Input({ required: true }) public header!: string;\n /**\n * An input variable that used to configuration object for customizing list container config properties. This\n * object defined by ListContainerConfig interface allows specifying baseUrl, gridConfig, filterConfig and permission.\n * @type {ListContainerConfig}\n */\n @Input({ required: true }) public config!: ListContainerConfig;\n /**\n * The `onRowClick` EventEmitter is used to notify parent components or listeners\n * when a row is clicked within the current component. It emits an event containing\n * information related to the clicked row.\n * @type {EventEmitter<any>}\n */\n @Output() public readonly onRowClick: EventEmitter<any> = new EventEmitter();\n /**\n * The `onGridReady` EventEmitter is used to inform parent components or listeners\n * when the grid within the current component is ready for interaction. It emits an\n * event of type `GridReadyEvent`, which may contain information about the grid's\n * readiness and capabilities. \n * @type {EventEmitter<GridReadyEvent>} \n */\n @Output() public readonly onGridReady: EventEmitter<GridReadyEvent> = new EventEmitter();\n /**\n * The `onSearch` EventEmitter is used to inform parent components or listeners\n * when a search event is triggered within the current component. It emits an\n * event of type `FilterSearchEvent`, which may contain information about the\n * search query and additional details related to the search operation.\n * @type {EventEmitter<FilterSearchEvent>}\n */\n @Output() public readonly onSearch: EventEmitter<FilterSearchEvent> = new EventEmitter();\n /**\n * The `gridId` property is a unique identifier for a grid element. It is\n * automatically generated based on the component's `id` property. If the `id`\n * property is not set, a default value of 'p' is used.\n * @type {string}\n */\n public gridId: `grid-${ string }` = `grid-${ this.id?? 'p' }`;\n protected gridApi!: GridApi;\n\n constructor(\n @Attribute('id') public id: string,\n protected readonly router: Router\n ) { }\n \n /**\n * The `openDetail` method is used to trigger actions when a user requests to open\n * the detail view for a specific data item. It emits a `data` event using the\n * `onRowClick` EventEmitter, providing external components or listeners with\n * information about the clicked data. Additionally, it navigates to the detail\n * route associated with the data item using the Angular Router.\n * \n * @param data - The data item for which the detail view is to be opened.\n */\n public openDetail(data: any): void{ \n this.onRowClick.emit(data);\n this.router.navigate([ `${ this.config.baseUrl }${ data.guid }` ], { preserveFragment: true });\n }\n\n /**\n * The `setGridApi` method is used to set the grid API when the grid is ready, typically\n * after the `gridReady` event is fired. It assigns the grid API to the component's\n * `gridApi` property and emits the `onGridReady` event, providing external components\n * or listeners with information about the grid's readiness.\n * \n * @param {GridReadyEvent} ev - The `GridReadyEvent` containing information about the grid's readiness.\n */\n public setGridApi(ev: GridReadyEvent): void{ \n this.gridApi = ev.api; \n this.onGridReady.emit(ev);\n }\n\n /**\n * The `search` method is used to trigger a search operation based on the provided\n * `FilterSearchEvent`. It emits the `onSearch` event, providing external components\n * or listeners with information about the search query. Additionally, it purges\n * the grid cache using the `purgeInfiniteCache` method of the grid API.\n * @param {FilterSearchEvent} k - The `FilterSearchEvent` containing information about the search operation.\n */\n public search(k: FilterSearchEvent): void{\n this.onSearch.emit(k);\n \n this.gridApi.paginationGoToFirstPage();\n this.gridApi.purgeInfiniteCache();\n }\n}\n","<div class=\"d-flex align-items-center justify-content-between gap-4 p-4 flex-shrink-0 flex-wrap flex-md-nowrap\">\n <div class=\"flex-grow-1 d-flex align-items-center gap-2\">\n <h3 class=\"m-0 text-truncate\">{{ header }}</h3>\n\n @if (config.buttons && config.buttons.length > 0) {\n <up-btn-group class=\"flex-shrink-0\" id=\"btn-list-snapshot-container\" [config]=\"config.buttons\" />\n }\n </div>\n\n @if (config.filterConfig) {\n <div class=\"flex-shrink-0 flex-grow-1 flex-lg-grow-0\">\n <up-filter placeholder=\"Type to search\" id=\"filter-{{ id }}\" [config]=\"config.filterConfig\" (onSearch)=\"search($event)\" />\n </div>\n }\n</div>\n\n<div class=\"flex-grow-1 px-1 pb-1\">\n <up-snapshot-grid [config]=\"config.gridConfig\" [id]=\"gridId\" (onGridReady)=\"setGridApi($event)\" (onRowClick)=\"openDetail($event)\" />\n</div>\n","import { AfterContentInit, Attribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, HostBinding, Input } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'up-tab-content',\n styleUrl: './tab-content.component.scss',\n templateUrl: './tab-content.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TabContentComponent implements AfterContentInit {\n\n /**\n * A flag variable that used to hide or show the content of the tab. Default value is false.\n * @type {boolean}\n */\n @HostBinding('class.flex-grow-1') public isActive: boolean = false;\n\n /**\n * An input variable that used to give label for tabs.\n * @type {string}\n */\n @Input({ required: false }) public header!: string;\n\n /**\n * A content child variable to receive HTML element from parent component that will be displayed \n * as tab header / label on ion-segment-button.\n * @type {ElementRef<HTMLDivElement>}\n */\n @ContentChild('header') public customHeader?: ElementRef<HTMLDivElement>;\n\n constructor(\n @Attribute('fragment') public fragment: string,\n protected readonly ch: ChangeDetectorRef\n ) {}\n\n /**\n * Angular lifecycle hook that executed after the content projected to this component is initialized.\n * It checks if customHeader is not undefined will hide the element to prevent it appear to the content section,\n * and make sure the customHeader only displayed on the ion-segment-button as tab header / label.\n */\n public ngAfterContentInit(): void{\n if (this.customHeader) {\n this.customHeader.nativeElement.style.cssText = 'display: none !important';\n }\n }\n \n /**\n * A method that control show or hide the content of the tab. If the param value is true, the\n * content will shown. If the param value is false, the content will be hidden.\n * @param {boolean} s - Contain boolean value for show or hide the content. Default value is true.\n */\n public toggleVisibility(s: boolean = true): void{\n this.isActive = s;\n this.ch.markForCheck();\n }\n}\n","<div class=\"tab-content\" [hidden]=\"!isActive\">\n <ng-content />\n</div>\n","import { AfterContentInit, ChangeDetectionStrategy, Component, contentChildren, output, OutputEmitterRef, Signal } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { IonicModule } from '@ionic/angular';\nimport { TabContentComponent } from '../tab-content/tab-content.component';\nimport { TabsChangedEvent } from '..';\n\n@Component({\n standalone: true,\n selector: 'up-tab-group',\n styleUrl: './tab-group.component.scss',\n templateUrl: './tab-group.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n IonicModule\n ],\n})\nexport class TabGroupComponent implements AfterContentInit {\n\n /**\n * @deprecated - Use `changed` instead. Will be removed in next major release.\n * \n * An output variable that used to emits event of type string or null when value changed. This\n * output variable, when subscribed to, emits events containing instances of string or null\n * or its subclass.\n * @type {OutputEmitterRef<TabsChangedEvent>}\n */\n public readonly onChange: OutputEmitterRef<TabsChangedEvent> = output();\n\n /**\n * An output variable that used to emits event of type string or null when value changed. This\n * output variable, when subscribed to, emits events containing instances of string or null\n * or its subclass.\n * @type {OutputEmitterRef<TabsChangedEvent>}\n */\n public readonly changed: OutputEmitterRef<TabsChangedEvent> = output();\n\n /**\n * A list of tab content components\n * @type {Signal<readonly TabContentComponent[]>}\n */\n public readonly content: Signal<readonly TabContentComponent[]> = contentChildren(TabContentComponent);\n\n /**\n * A flag variable that used to set value of ion-segment for represents the current selected tab.\n * @type {string | null | undefined}\n */\n public activeFragment: string | null | undefined;\n\n constructor(\n protected readonly router: Router,\n protected readonly activeRoute: ActivatedRoute\n ) { }\n\n public ngAfterContentInit(): void{\n const f = this.activeRoute.snapshot.fragment;\n \n this.changeTab(\n f,\n this.content().findIndex(({ fragment }) => fragment === f)\n );\n }\n\n /**\n * A method when the tab is changed, it will emit onChange variable, change route\n * based on fragment value in param, and search if tabs have the fragment value.\n * If it's found, it'll show the tab's content. If it's not, it'll show empty content.\n * \n * @param {string | null} f - Contain value of the fragment that currently selected.\n * @param {string | null} i - Fragment index.\n */\n public changeTab(f: string | null, i: number): void{\n this.changed.emit({ fragment: f, index: i });\n this.onChange.emit({ fragment: f, index: i });\n \n this.router.navigate([], { relativeTo: this.activeRoute, fragment: f || undefined, replaceUrl: true });\n\n let found: boolean = false;\n this.content().forEach((tab) => {\n if (tab.fragment !== f) tab.toggleVisibility(false);\n else {\n found = true;\n this.activeFragment = f;\n tab.toggleVisibility(true);\n } \n });\n\n if (!found) {\n this.content()[0].toggleVisibility(true);\n this.activeFragment = this.content()[0].fragment;\n }\n }\n}\n","<ion-segment \n [scrollable]=\"true\" \n [value]=\"activeFragment\"\n>\n @for (c of content(); track c.fragment) {\n <ion-segment-button\n [value]=\"c.fragment\" \n (click)=\"changeTab(c.fragment, $index)\"\n >\n @if (!c.customHeader) {\n {{ c.header }}\n }\n @else {\n <div \n class=\"{{ c.customHeader.nativeElement.className }}\"\n [innerHTML]=\"c.customHeader.nativeElement.innerHTML\"\n >\n </div>\n }\n </ion-segment-button>\n }\n</ion-segment>\n\n<ng-content />\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApolloQueryResult } from '@apollo/client/core';\nimport { Apollo, gql } from 'apollo-angular';\nimport { AuditTrail, AuditTrailCriteria } from './../../../../graphql/generated';\n\n@Injectable({ \n providedIn: 'root' \n})\nexport class AuditService {\n\n protected readonly baseAttr: string = `\n action\n createdAt\n description\n function\n guid\n msSource\n sourceIp\n user {\n name\n sourcePlatform\n status\n appLoginPrincipal {\n principalType\n principalId\n }\n }\n `;\n\n constructor(\n protected readonly apollo: Apollo\n ) { }\n\n public query(input: AuditTrailCriteria, extraAttr: string = ''): Observable<ApolloQueryResult<{ auditMsAuditTrail: AuditTrail[] }>> {\n return this.apollo.query({\n variables: { input },\n query: gql`\n query QueryAudit($input: AuditTrailCriteria!) {\n auditMsAuditTrail(input: $input) {\n ${ this.baseAttr }\n ${ extraAttr }\n }\n }\n `\n });\n }\n}\n","import { Attribute, Component, Input, OnChanges, SimpleChanges, ViewChild } from '@angular/core';\nimport { formatDate } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { map, of } from 'rxjs';\nimport { GridApi, GridReadyEvent } from '@ag-grid-community/core';\nimport { AuditTagEnum, AuditTrail, AuditTrailCriteria } from './../../../../graphql/generated';\nimport { GridConfig } from '../../grids/interfaces/grid-config.interface';\nimport { FilterConfig } from '../../filter/interfaces/filter-config.interface';\nimport { FilterSearchEvent } from '../../filter/interfaces/filter-search-event.interface';\nimport { AuditService } from '../service/audit.service';\nimport { FilterComponent } from '../../filter';\nimport { GridPaginationComponent } from '../../grids/grid-pagination/grid-pagination.component';\n\n@Component({\n standalone: true,\n selector: 'up-audit-list',\n templateUrl: './audit-list.component.html',\n styleUrls: ['./audit-list.component.scss'],\n host: {\n class: 'd-flex flex-column h-100'\n },\n imports: [\n FilterComponent,\n GridPaginationComponent\n ]\n})\nexport class AuditListComponent implements OnChanges {\n\n @Input({ required: true }) public relatedEntities!: string[];\n @Input() public tagKeys!: AuditTagEnum[];\n @ViewChild(GridPaginationComponent) protected gridComponent!: GridPaginationComponent;\n public readonly filterConfig: FilterConfig = { mode: 'simple', fields: [{ key: 'description', label: '', type: 'text' }] };\n public readonly gridConfig: GridConfig = {\n useTotalRecord: false,\n noRowText: 'Audit not found',\n colDefs: [\n { headerName: 'User', field: 'user.name', sortable: false },\n { headerName: 'Description', field: 'description', minWidth: 350, sortable: false },\n { headerName: 'Created Date', field: 'createdAt', sort: 'desc', valueFormatter: ({ value }) => value? formatDate(value, 'dd MMM yyyy HH:mm', 'en-US') : '' }\n ],\n getData: (page: number, pageSize: number, sortBy: string, dir: 'asc' | 'desc') => {\n if (!this.criteria.tagValues) return of({ data: [] });\n\n this.criteria.page = page;\n this.criteria.sortBy = sortBy;\n this.criteria.pageSize = pageSize;\n this.criteria.sortDirection = dir;\n \n return this.service.query(this.criteria).pipe(\n map(({ data: { auditMsAuditTrail: data }}) => ({ data }))\n );\n },\n };\n protected readonly criteria: AuditTrailCriteria = { sortBy: 'createdAt', sortDirection: 'desc', page: 0, pageSize: 50 };\n protected gridApi?: GridApi;\n\n constructor(\n @Attribute('id') public id: string,\n @Attribute('mainUrl') protected url: string,\n protected readonly router: Router,\n protected readonly service: AuditService\n ) { }\n\n public ngOnChanges(e: SimpleChanges): void{\n if (e['tagKeys']) this.criteria.tagKeys = this.tagKeys;\n if (e['relatedEntities']) this.criteria.relatedEntities = this.relatedEntities;\n }\n\n public setGridApi({ api }: GridReadyEvent): void{ this.gridApi = api; }\n\n public rowClicked({ guid }: AuditTrail): void{\n this.router.navigate([ `${ this.url }/${ this.criteria.tagValues![0] }/audit/${ guid }` ], { preserveFragment: true });\n }\n\n public search({ data }: FilterSearchEvent): void{\n this.criteria.description = data?.description;\n this.gridComponent.reset();\n }\n\n public setGuid(guid: string): void{\n this.criteria.description = null;\n this.criteria.tagValues = [ guid ];\n this.gridComponent.reset(); \n }\n}\n","<div class=\"d-flex justify-content-end px-4 pb-4 flex-shrink-0\">\n <up-filter class=\"w-100\" id=\"audit-filter\" placeholder=\"Type to search\" [config]=\"filterConfig\" (onSearch)=\"search($event);\" />\n</div>\n \n<up-pagination-grid id=\"grid-audit\" class=\"flex-grow-1\" [config]=\"gridConfig\" (onGridReady)=\"setGridApi($event)\" (onRowClick)=\"rowClicked($event)\" />\n","import { Component, OnDestroy } from '@angular/core';\nimport { formatDate } from '@angular/common';\nimport { ActivatedRoute } from '@angular/router';\nimport { FormBuilder, FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { IonicModule, NavController } from '@ionic/angular';\nimport { GridApi, GridReadyEvent } from '@ag-grid-community/core';\nimport { AuditTrail } from './../../../../graphql/generated';\nimport { AuditDetailForm } from '../types/audit-detail-form.type';\nimport { GridConfig } from '../../grids/interfaces/grid-config.interface';\nimport { AuditService } from '../service/audit.service';\nimport { FormInputComponent } from '../../forms/input/form-input.component';\nimport { FormTextareaComponent } from '../../forms/textarea/form-textarea.component';\nimport { GridPaginationComponent } from '../../grids/grid-pagination/grid-pagination.component';\nimport { TabContentComponent, TabGroupComponent } from '../../tabs';\n\n@Component({\n standalone: true,\n selector: 'up-audit-detail',\n styleUrl: './audit-detail.component.scss',\n templateUrl: './audit-detail.component.html',\n imports: [\n IonicModule,\n TabGroupComponent,\n TabContentComponent,\n GridPaginationComponent,\n FormInputComponent,\n FormTextareaComponent,\n ReactiveFormsModule\n ]\n})\nexport class AuditDetailComponent implements OnDestroy {\n\n public readonly gridConfig: GridConfig = {\n useTotalRecord: false,\n colDefs: [\n { headerName: 'Attribute Name', field: 'attribute', sort: 'asc' },\n { headerName: 'Old Value', field: 'oldData' },\n { headerName: 'New Value', field: 'newData' }\n ]\n };\n public readonly form: FormGroup<AuditDetailForm> = this.fb.group<AuditDetailForm>({\n guid: new FormControl({ value: null, disabled: true}),\n action: new FormControl({ value: null, disabled: true}),\n description: new FormControl({ value: null, disabled: true}),\n userName: new FormControl({ value: null, disabled: true}),\n sourceIp: new FormControl({ value: null, disabled: true}),\n createdAt: new FormControl({ value: null, disabled: true}),\n msSource: new FormControl({ value: null, disabled: true}),\n sourcePlatform: new FormControl({ value: null, disabled: true}),\n function: new FormControl({ value: null, disabled: true}),\n });\n public data!: AuditTrail;\n public isLoading: boolean = true;\n protected guid: string = '';\n protected gridApi!: GridApi;\n protected sub?: Subscription;\n\n constructor(\n protected readonly fb: FormBuilder,\n protected readonly service: AuditService,\n protected readonly route: ActivatedRoute,\n protected readonly navCtrl: NavController\n ) { }\n\n public ngOnDestroy(): void{\n this.sub?.unsubscribe();\n }\n\n public setGridApi({ api }: GridReadyEvent): void{\n this.gridApi = api;\n this.getData();\n }\n\n public isIsoDateString(str: string): boolean{\n const regex = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,9})?Z$/;\n return regex.test(str);\n }\n\n public formatData(value: any): any{\n if (value === null) return value;\n if (typeof value === 'object') return JSON.stringify(value);\n if (this.isIsoDateString(value)) return formatDate(value, 'dd MMM yyyy HH:mm', 'en-US');\n return value;\n }\n\n public getData(): void{\n const newGuid = this.route.children[0].snapshot.params['audit'];\n if (!newGuid || this.guid === newGuid) return;\n\n this.sub?.unsubscribe();\n this.gridApi?.showLoadingOverlay();\n\n this.guid = newGuid;\n this.isLoading = true;\n this.sub = this.service.query({ guid: this.guid }, 'data tags { tagKey tagValue }').subscribe({\n next: ({ data: { auditMsAuditTrail: data }}) => {\n this.gridApi?.hideOverlay();\n\n if (data.length !== 1) {\n this.navCtrl.back();\n return;\n }\n\n const { guid, action, description, function: func, msSource, sourceIp, createdAt } = data[0];\n this.form.patchValue({\n guid,\n function: func, \n msSource, sourceIp,\n action, description,\n userName: data[0].user?.name,\n sourcePlatform: data[0].user?.sourcePlatform,\n createdAt: formatDate(createdAt, 'dd MMM yyyy HH:mm', 'en-US'),\n });\n\n this.isLoading = false;\n this.getChangedData(data[0].data);\n },\n error: () => this.navCtrl.back()\n });\n }\n\n protected getChangedData({ oldData, newData }: any): void{\n if (!newData || Array.isArray(JSON.parse(newData))) {\n this.gridApi.setGridOption('rowData', []);\n return;\n }\n\n const objNewData = JSON.parse(newData);\n const changedData = Object.entries(oldData? JSON.parse(oldData) : JSON.parse(newData))\n .filter(([key, oldVal]) => JSON.stringify(oldData? oldVal : null) !== JSON.stringify(objNewData[key]) && !key.match(/update|created/))\n .map(([key, oldVal]) => ({\n attribute: key,\n oldData: oldData? this.formatData(oldVal) : null,\n newData: this.formatData(objNewData[key])\n })\n );\n\n this.gridApi.setGridOption('rowData', changedData);\n }\n}\n","<up-tab-group class=\"h-100\">\n <up-tab-content header=\"Detail\" fragment=\"detail\">\n @if (isLoading) {\n @for(i of [0,1,2,3,4,5,6]; track $index) {\n <ion-skeleton-text class=\"sk-input mx-4 mb-4\" />\n }\n } @else {\n <form [formGroup]=\"form\" class=\"px-4 pb-4\">\n <div class=\"d-flex align-items-center gap-2 pb-3\">\n <ion-icon name=\"information-circle\" />\n <h5 class=\"m-0\">Information</h5>\n </div>\n \n <div class=\"d-flex flex-column flex-lg-row gap-4\">\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-lg-4\" label=\"Action\" formControlName=\"action\" />\n </div>\n \n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"Source IP\" formControlName=\"sourceIp\" />\n </div>\n </div>\n \n <up-input class=\"mb-4\" label=\"User Name\" formControlName=\"userName\" />\n <up-textarea class=\"mb-4\" label=\"Description\" formControlName=\"description\" />\n \n <div class=\"d-flex align-items-center gap-2 pb-3 pt-2\">\n <ion-icon name=\"laptop\" />\n <h5 class=\"m-0\">System Information</h5>\n </div>\n \n <div class=\"d-flex flex-column flex-lg-row gap-4\">\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"Action Date\" formControlName=\"createdAt\" />\n <up-input class=\"mb-lg-4\" label=\"Source Platform\" formControlName=\"sourcePlatform\" />\n </div>\n \n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"MS Source\" formControlName=\"msSource\" />\n <up-input class=\"mb-4\" label=\"Function\" formControlName=\"function\" />\n </div>\n </div>\n </form>\n } \n </up-tab-content>\n\n <up-tab-content header=\"Attributes\" fragment=\"attributes\">\n <up-pagination-grid id=\"grid-audit-detail\" rowModelType=\"clientSide\" [config]=\"gridConfig\" (onGridReady)=\"setGridApi($event)\" />\n </up-tab-content>\n</up-tab-group>\n","import { InjectionToken, Provider } from '@angular/core';\n\nexport const APPROVAL_ENTITIES = new InjectionToken<string[]>('APPROVAL_ENTITIES');\n\nexport function provideApprovalEntities(entities: string[]): Provider{\n return { \n provide: APPROVAL_ENTITIES, \n useValue: entities \n };\n}\n","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { ApolloQueryResult, FetchPolicy } from '@apollo/client/core';\nimport { Apollo, gql, MutationResult } from 'apollo-angular';\nimport { ApprovalCriteria, PageableResponse, MutationApprovalMsApproveOrDeclineRequestArgs } from './../../../../graphql/generated';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApprovalService {\n\n protected readonly baseAttr: string = `guid createdAt entity remark sourcePlatform status type approvalGroup { guid }`;\n\n constructor(\n protected readonly apollo: Apollo\n ) { }\n\n public query(input: ApprovalCriteria, extraAttr: string = '', fetchPolicy?: FetchPolicy): Observable<ApolloQueryResult<{ approvalMsApprovals: PageableResponse }>>{\n return this.apollo.query({\n fetchPolicy,\n variables: { input },\n query: gql`\n query QueryApproval($input: ApprovalCriteria) {\n approvalMsApprovals(input: $input) {\n data {\n ${ this.baseAttr }\n ${ extraAttr }\n }\n ${ input.page === 0? 'totalRecord' : '' }\n }\n }\n `\n });\n }\n\n public request(variables: MutationApprovalMsApproveOrDeclineRequestArgs): Observable<MutationResult<{ approvalMsApproveOrDeclineRequest: string }>>{\n return this.apollo.mutate({\n variables,\n mutation: gql`\n mutation ${ variables.isApprove? 'ApproveApproval' : 'DeclineApproval' }($approvalGroupGuid: String, $guids: [String], $isApprove: Boolean, $reason: String) {\n approvalMsApproveOrDeclineRequest(approvalGroupGuid: $approvalGroupGuid, guids: $guids, isApprove: $isApprove, reason: $reason)\n }\n `\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\nimport { formatDate } from '@angular/common';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { map, Observable } from 'rxjs';\nimport { AlertController } from '@ionic/angular';\nimport { FetchPolicy } from '@apollo/client/core';\nimport { GridApi, GridReadyEvent } from '@ag-grid-community/core';\nimport { ApprovalCriteria, ApprovalGroup, ApprovalStatusEnum } from '../../../../graphql/generated';\nimport { GridConfig } from '../../grids/interfaces/grid-config.interface';\nimport { FilterConfig } from '../../filter/interfaces/filter-config.interface';\nimport { FilterSearchEvent } from '../../filter/interfaces/filter-search-event.interface';\nimport { ButtonGroupConfig } from '../../buttons/group/interfaces/btn-group-config.interface';\nimport { APPROVAL_ENTITIES } from './provide-approval-entities.util';\nimport { ApprovalService } from '../services/approval.service';\nimport { FilterComponent } from '../../filter/filter.component';\nimport { ButtonGroupComponent } from '../../buttons/group/btn-group.component';\nimport { ButtonLoadingComponent } from '../../buttons/loading/btn-loading.component';\nimport { GridPaginationComponent } from '../../grids/grid-pagination/grid-pagination.component';\n\n@Component({\n standalone: true,\n selector: 'up-approval-list',\n styleUrl: './approval-list.component.scss',\n templateUrl: './approval-list.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-flex flex-column h-100 w-100'\n },\n imports: [\n FilterComponent,\n ButtonGroupComponent,\n GridPaginationComponent\n ]\n})\nexport class ApprovalListComponent {\n\n public readonly gridConfig: GridConfig = {\n noRowText: 'Approval not found',\n colDefs: [\n { headerName: 'Entity', field: 'entity', checkboxSelection: ({ data: d }) => this.isCheckboxSelectable(d?.approvalGroup) },\n { headerName: 'Remark', field: 'remark' },\n { headerName: 'Source Platform', field: 'sourcePlatform' },\n { headerName: 'Status', field: 'status', maxWidth: 100, cellRenderer: ({ value }: any) => value? `<div class=\"badge m-auto bg-${ value === ApprovalStatusEnum.Pending? 'warning' : value === ApprovalStatusEnum.Approved? 'success' : 'danger'}\">${ value }</div>` : '' },\n { headerName: 'Type', field: 'type', maxWidth: 100 },\n { headerName: 'Created Date', field: 'createdAt', sort: 'desc', valueFormatter: ({ value }) => value? formatDate(value, 'dd MMM yyyy HH:mm', 'en-US') : '' }\n ],\n getData: (page: number, pageSize: number, sortBy: string, dir: 'asc' | 'desc'): Observable<{ data: any, totalRecord: number }> => {\n const policy: FetchPolicy | undefined = this.input.page === page? 'no-cache' : undefined;\n\n this.input.page = page;\n this.input.sortBy = sortBy;\n this.input.pageSize = pageSize;\n this.input.sortDirection = dir;\n\n return this.service.query(this.input, '', policy).pipe(\n map(({ data: { approvalMsApprovals: { data, totalRecord: t } }}) => ({ data, totalRecord: t! }))\n );\n }\n };\n public readonly filterConfig: FilterConfig = {\n mode: 'advanced',\n fields: [\n { key: 'status', label: 'Status', type: 'select', initialValue: [ 'PENDING' ], options: [\n { label: 'Approved', value: [ 'APPROVED' ] as any },\n { label: 'Declined', value: [ 'DECLINED' ] as any },\n { label: 'Pending', value: [ 'PENDING' ] as any }\n ]},\n { key: 'type', label: 'Type', type: 'select', options: [\n { label: 'Creation', value: [ 'CREATION' ] as any },\n { label: 'Deletion', value: [ 'DELETION' ] as any },\n { label: 'Linkage', value: [ 'LINKAGE' ] as any },\n { label: 'Unlink', value: [ 'UNLINK' ] as any },\n { label: 'Update', value: [ 'UPDATE' ] as any }\n ]}\n ]\n };\n public btnConfig: ButtonGroupConfig[] = [\n { label: 'Approve', icon: 'checkmark', description: 'Approve the approvals' , disabled: true, onClick: this.multipleApproval.bind(this) },\n { label: 'Decline', icon: 'close', description: 'Decline the approvals', color: 'danger', disabled: true, onClick: this.multipleApproval.bind(this) }\n ];\n protected gridApi!: GridApi;\n protected selectedApprovalGroupGuid?: string;\n protected input: ApprovalCriteria = { page: 0, pageSize: 50, entity: this.entities };\n\n constructor(\n @Inject(APPROVAL_ENTITIES) public readonly entities: string[],\n protected readonly router: Router,\n protected readonly route: ActivatedRoute,\n protected readonly service: ApprovalService,\n protected readonly alertCtrl: AlertController\n ) { }\n\n public setGridApi({ api }: GridReadyEvent): void{ \n this.gridApi = api; \n }\n\n public openDetail({ guid }: any): void{ \n this.router.navigate([ `/approval/${ guid }` ], { preserveFragment: true }); \n }\n\n public selectApprovals(): void{\n const dataGrid: any[] = this.gridApi.getSelectedRows();\n\n this.btnConfig[0].disabled = this.btnConfig[1].disabled = dataGrid.length < 1;\n\n this.selectedApprovalGroupGuid = dataGrid.length === 0? undefined : dataGrid[0].approvalGroup.guid;\n this.gridApi.refreshCells({ force: true });\n }\n\n public search({ data }: FilterSearchEvent): void{\n this.input.type = data?.type;\n this.input.status = data?.status;\n\n this.gridApi.getSelectedNodes().forEach((e) => e.setSelected(false));\n this.gridApi.refreshInfiniteCache();\n }\n\n protected isCheckboxSelectable(approvalGroup?: ApprovalGroup): boolean{\n if (!approvalGroup) return false;\n if (approvalGroup.guid === this.selectedApprovalGroupGuid) return true;\n return true;\n }\n\n protected multipleApproval(btn: ButtonLoadingComponent): void{\n btn.toggleLoading();\n\n this.router.navigate([ `/approval/approval-group` ], {\n preserveFragment: true,\n queryParams: {\n isApprove: btn.color !== 'danger',\n approvalGroupGuid: this.selectedApprovalGroupGuid,\n guids: this.gridApi.getSelectedRows().map(({ guid }) => guid)\n }\n });\n }\n}\n","<div class=\"d-flex align-items-center justify-content-between gap-4 p-4 flex-shrink-0 flex-wrap\">\n <div class=\"flex-grow-1 d-flex align-items-center gap-3\">\n <h3 class=\"m-0\">Approval</h3>\n\n <up-btn-group id=\"approval-list\" [config]=\"btnConfig\" />\n </div>\n\n <div class=\"flex-shrink-0 flex-grow-1\">\n <up-filter placeholder=\"Type to search\" id=\"filter-approval-list\" [config]=\"filterConfig\" (onSearch)=\"search($event)\" />\n </div>\n</div>\n\n<div class=\"flex-grow-1 px-1 pb-1\">\n <up-pagination-grid [config]=\"gridConfig\" id=\"grid-approval-list\" rowSelection=\"multiple\" (onGridReady)=\"setGridApi($event)\" (onRowClick)=\"openDetail($event)\" (onSelectionChanged)=\"selectApprovals()\" />\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy } from '@angular/core';\nimport { DatePipe, JsonPipe } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { AlertButton, AlertController, IonicModule } from '@ionic/angular';\nimport { Approval, ApprovalStatusEnum } from '../../../../graphql/generated';\nimport { ButtonGroupConfig } from '../../buttons/group/interfaces/btn-group-config.interface';\nimport { ApprovalService } from '../services/approval.service';\nimport { GridService } from '../../grids/services/grid.service';\nimport { PermissionService } from '../../../modules/permission/services/permission.service';\nimport { FormInputComponent } from '../../forms/input/form-input.component';\nimport { ButtonLoadingComponent } from '../../buttons/loading/btn-loading.component';\nimport { FormTextareaComponent } from '../../forms/textarea/form-textarea.component';\n\n@Component({\n standalone: true,\n selector: 'up-approval-form',\n styleUrl: './approval-form.component.scss',\n templateUrl: './approval-form.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'px-4 pb-4 d-block'\n },\n imports: [\n DatePipe,\n JsonPipe,\n IonicModule,\n FormInputComponent,\n FormTextareaComponent\n ]\n})\nexport class ApprovalFormComponent implements OnDestroy {\n\n @Input() public isLoading: boolean = true;\n public readonly btnConfig: ButtonGroupConfig[] = [];\n public data: Approval[] = [];\n protected guids!: string[];\n protected sub?: Subscription;\n protected approvalGroupGuid?: string;\n\n constructor(\n protected readonly router: Router,\n protected readonly ch: ChangeDetectorRef,\n protected readonly service: ApprovalService,\n protected readonly gridService: GridService,\n protected readonly alertCtrl: AlertController,\n protected readonly permService: PermissionService\n ) { }\n\n public ngOnDestroy(): void{\n this.sub?.unsubscribe();\n }\n\n public setGuid(guids: string[], approvalGroupGuid?: string, isApprove?: boolean): void{\n this.guids = guids;\n if (approvalGroupGuid) {\n this.approvalGroupGuid = approvalGroupGuid;\n }\n\n this.btnConfig.length = 0;\n this.setLoading(true);\n\n this.sub = this.service.query({ guids, status: [ ApprovalStatusEnum.Approved, ApprovalStatusEnum.Declined, ApprovalStatusEnum.Pending ] }, 'data permission reason').subscribe({\n next: ({ data: { approvalMsApprovals: { data }}}) => {\n if (!data || data.length === 0) {\n this.router.navigateByUrl('approval');\n return;\n }\n\n this.data = data as any;\n if (data.length === 1) {\n const { status, permission } = data[0] as any;\n\n if (status === ApprovalStatusEnum.Pending) {\n const perm: string[] = permission!.split('.');\n\n if (this.permService.checkPermission(perm[0], perm[1], perm[2])) {\n this.btnConfig.push(\n { label: 'Approve', icon: 'checkmark', description: 'Approve the approval' , disabled: false, onClick: this.request.bind(this) },\n { label: 'Decline', icon: 'close', description: 'Decline the approval', color: 'danger', disabled: false, onClick: this.request.bind(this) }\n );\n }\n }\n } else {\n let dataCount: number = 0;\n\n data.map(({ permission, status }: any) => {\n if (status === ApprovalStatusEnum.Pending) {\n const perm: string[] = permission.split('.');\n\n if (this.permService.checkPermission(perm[0], perm[1], perm[2])) {\n dataCount++;\n }\n\n if (dataCount === data.length) {\n if (isApprove) {\n this.btnConfig.push({ label: 'Approve', icon: 'checkmark', description: 'Approve the approval(s)' , disabled: false, onClick: this.request.bind(this) });\n } else {\n this.btnConfig.push({ label: 'Decline', icon: 'close', description: 'Decline the approval', color: 'danger', disabled: false, onClick: this.request.bind(this) })\n } \n }\n }\n });\n }\n this.setLoading(false);\n },\n error: ({ message }) => {\n this.showAlert('Error', message);\n this.router.navigateByUrl('approval');\n }\n });\n }\n\n protected request(btn: ButtonLoadingComponent): void{\n const isApprove: boolean = btn.color !== 'danger';\n\n this.showAlert('Confirm', `Are you sure want to ${ isApprove? 'approve the approval?' : 'decline the approval? Please input the reason if you want to decline.' }`, [\n { text: 'Cancel', handler: () => btn.toggleLoading() },\n {\n text: `${ isApprove? 'Approve' : 'Decline' }`,\n handler: ({ reason }) => {\n this.sub?.unsubscribe();\n\n this.sub = this.service.request({\n reason,\n isApprove,\n guids: this.guids,\n approvalGroupGuid: this.approvalGroupGuid\n }).subscribe({\n next: () => {\n this.showAlert('Success', `Approval ${ isApprove? 'approved' : 'declined' }`);\n this.router.navigateByUrl('approval');\n\n this.gridService.refreshGridCache('grid-approval-list');\n },\n error: ({ message }: any) => {\n btn.toggleLoading();\n this.showAlert('Error', message);\n }\n });\n }\n }\n ], [{ name: 'reason', type: 'textarea', placeholder: 'Reason' }]);\n }\n\n protected setLoading(b: boolean): void{\n this.isLoading = b;\n this.ch.markForCheck();\n }\n\n protected async showAlert(header: string, message: string, buttons: (AlertButton | string)[] = ['OK'], inputs: any[] = []): Promise<void>{ (await this.alertCtrl.create({ header, message, buttons, inputs })).present(); }\n}\n","@if (isLoading) {\n <div class=\"d-flex flex-column flex-lg-row gap-4\">\n <div class=\"flex-grow-1\">\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n </div>\n\n <div class=\"flex-grow-1\">\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n </div>\n </div>\n \n <ion-skeleton-text class=\"m-0 mb-4 sk-input\" />\n <ion-skeleton-text class=\"m-0 sk-input\" />\n}\n@else {\n @for (d of data; track $index) {\n @if (data.length > 1) {\n <div class=\"d-flex align-items-center gap-2 pb-3 pt-2\">\n <ion-icon name=\"document\" />\n <h5 class=\"m-0\">Approval {{ $index + 1 }}</h5>\n </div>\n }\n \n <div class=\"d-flex flex-column flex-lg-row gap-4\">\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"Entity\" [disabled]=\"true\" [value]=\"d.entity\" />\n <up-input class=\"mb-4\" label=\"Remark\" [disabled]=\"true\" [value]=\"d.remark\" />\n </div>\n\n <div class=\"flex-grow-1\">\n <up-input class=\"mb-4\" label=\"Created At\" [disabled]=\"true\" [value]=\"d.createdAt | date:'dd MMM yyyy HH:mm'\" />\n <up-input class=\"mb-4\" label=\"Status\" [disabled]=\"true\" [value]=\"d.status\" />\n </div>\n </div>\n\n <up-textarea label=\"JSON\" [disabled]=\"true\" [value]=\"d.data | json\" />\n <up-textarea class=\"mt-4\" label=\"Reason\" [disabled]=\"true\" [value]=\"d.reason\" *ngIf=\"d.status !== 'PENDING'\" />\n }\n}\n","import { AfterViewInit, ChangeDetectionStrategy, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute, NavigationEnd, Router } from '@angular/router';\nimport { filter, Subscription } from 'rxjs';\nimport { IonicModule } from '@ionic/angular';\nimport { TabContentComponent, TabGroupComponent, TabsChangedEvent } from '../../tabs';\nimport { ButtonGroupConfig } from '../../buttons/group/interfaces/btn-group-config.interface';\nimport { ApprovalFormComponent } from '../form/approval-form.component';\nimport { ButtonGroupComponent } from '../../buttons/group/btn-group.component';\nimport { ColumnHeaderContainerComponent } from '../../containers/colum-header-container/column-header-container.component';\n\n@Component({\n standalone: true,\n selector: 'up-approval-detail',\n styleUrl: './approval-detail.component.scss',\n templateUrl: './approval-detail.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-block h-100'\n },\n imports: [\n IonicModule,\n TabGroupComponent,\n TabContentComponent,\n ButtonGroupComponent,\n ColumnHeaderContainerComponent,\n ApprovalFormComponent\n ]\n})\nexport class ApprovalDetailComponent implements OnInit, AfterViewInit, OnDestroy {\n\n @ViewChild(ApprovalFormComponent) public formComponent?: ApprovalFormComponent;\n public btnConfig: ButtonGroupConfig[] = [];\n protected guids?: string[];\n protected guid: string = '';\n protected sub!: Subscription; \n protected isApprove?: boolean;\n protected approvalGroupGuid?: string;\n\n constructor(\n protected readonly router: Router,\n protected readonly activatedRoute: ActivatedRoute\n ) { }\n\n public ngOnInit(): void {\n this.sub = this.activatedRoute.queryParams.subscribe((params) => {\n if (params) {\n this.guids = params['guids'];\n this.isApprove = params['isApprove'] === 'true';\n\n this.approvalGroupGuid = params['approvalGroupGuid'];\n }\n });\n }\n\n public ngAfterViewInit(): void{\n if (this.guids) {\n this.setChildGuid(this.guids);\n this.changeTab({ fragment: this.activatedRoute.snapshot.fragment, index: 0 });\n } else {\n this.setChildGuid([this.activatedRoute.children[0].snapshot.params['guid']]);\n this.changeTab({ fragment: this.activatedRoute.snapshot.fragment, index: 0 });\n\n this.sub = this.router.events.pipe(filter((e) => e instanceof NavigationEnd)).subscribe({\n next: () => {\n const newGuid: string = this.activatedRoute.children[0].snapshot.params['guid'];\n\n if (this.guid !== newGuid) {\n this.guid = newGuid;\n this.setChildGuid([ this.guid ]);\n }\n }\n });\n }\n }\n\n public ngOnDestroy(): void{ \n this.sub.unsubscribe(); \n }\n\n public changeTab({ fragment }: TabsChangedEvent): void{\n switch (fragment) {\n default:\n this.btnConfig = this.formComponent?.btnConfig?? [];\n }\n }\n\n protected setChildGuid(guids: string[]): void{\n this.formComponent?.setGuid(guids, this.approvalGroupGuid, this.isApprove);\n }\n}\n","<up-column-header-container header=\"Approval Detail\" prevUrl=\"/approval\" class=\"bg-white\">\n @if (!formComponent?.isLoading) {\n <up-btn-group id=\"approval-detail-button\" [config]=\"btnConfig\" button />\n }\n @else {\n <ion-skeleton-text class=\"m-0 sk-btn\" button />\n }\n\n <up-tab-group class=\"h-100\" (onChange)=\"changeTab($event)\">\n <up-tab-content header=\"Detail\" fragment=\"detail\">\n <up-approval-form />\n </up-tab-content>\n </up-tab-group>\n</up-column-header-container>\n","import { AfterViewInit, Directive, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\n\n@Directive({\n standalone: true,\n selector: '[upInfiniteScroll]',\n})\nexport class InfiniteScrollDirective implements OnInit, AfterViewInit, OnDestroy {\n\n /**\n * Threshold at which to trigger the callback. A value of 0.0 means that the callback\n * will be triggered as soon as a single pixel is visible. 1.0 means that the callback will only be triggered when the entire element is visible.\n * @type {number}\n */\n @Input() public threshold: number = 0.5;\n\n /**\n * Margin around the root. This can be used to grow or shrink the area used to\n * determine intersections. It follows the same syntax as the CSS margin property.\n * Example values: '10px', '10px 20px', '10%', '10% 20% 30% 40%'.\n * @type {string}\n */\n @Input() public rootMargin: string = '0px';\n\n /**\n * Event emitted when the observed element scrolls into view.\n * This triggers the component to load more data.\n * @type {EventEmitter<boolean>}\n */\n @Output() public readonly onScrollThreshold: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /**\n * IntersectionObserver instance used to observe the element.\n * @type {IntersectionObserver}\n */\n protected observer!: IntersectionObserver;\n\n constructor(\n protected readonly element: ElementRef\n ) {}\n\n /**\n * Lifecycle hook that is called after Angular has initialized all data-bound properties.\n * Initializes the IntersectionObserver with specific options.\n */\n public ngOnInit(): void{\n const options = { \n root: null, \n rootMargin: this.rootMargin, \n threshold: Math.max(0, Math.min(1, this.threshold))\n };\n \n this.observer = new IntersectionObserver((entries: IntersectionObserverEntry[]) => {\n if (entries[0].isIntersecting) this.onScrollThreshold.emit(true);\n }, options);\n }\n\n /**\n * Lifecycle hook that is called after Angular has fully initialized the component's view.\n * Starts observing the element.\n */\n public ngAfterViewInit(): void{\n this.observer.observe(this.element.nativeElement);\n }\n\n /**\n * Lifecycle hook that is called when the directive is being destroyed.\n * Disconnects the IntersectionObserver to stop observing the element to prevent memory leaks.\n */\n public ngOnDestroy(): void{\n this.observer.disconnect();\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IonicModule } from '@ionic/angular';\nimport { InfiniteScrollDirective } from './directive/infinite-scroll.directive';\n\n@Component({\n standalone: true,\n selector: 'up-infinite-scroll',\n styleUrl: './infinite-scroll.component.scss',\n templateUrl: './infinite-scroll.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n IonicModule,\n InfiniteScrollDirective\n ]\n})\nexport class InfiniteScrollComponent {\n \n /**\n * Text to display when loading more items.\n * @type {string}\n */\n @Input() public loadingText?: string;\n\n /**\n * Threshold at which to trigger the callback. A value of 0.0 means that the callback\n * will be triggered as soon as a single pixel is visible. 1.0 means that the callback will only be triggered when the entire element is visible.\n * @type {number}\n */\n @Input() public threshold: number = 0.5;\n\n /**\n * Margin around the root. This can be used to grow or shrink the area used to\n * determine intersections. It follows the same syntax as the CSS margin property.\n * Example values: '10px', '10px 20px', '10%', '10% 20% 30% 40%'.\n * @type {string}\n */\n @Input() public rootMargin: string = '0px';\n\n /**\n * Icon to display while loading more items. \n * Can be one of 'bubbles', 'circles', 'circular', 'crescent', 'dots', 'lines', 'lines-sharp', 'lines-sharp-small', or 'lines-small'.\n * @type {'bubbles' | 'circles' | 'circular' | 'crescent' | 'dots' | 'lines' | 'lines-sharp' | 'lines-sharp-small' | 'lines-small'}\n * @default 'dots'\n */\n @Input() public loadingIcon: 'bubbles' | 'circles' | 'circular' | 'crescent' | 'dots' | 'lines' | 'lines-sharp' | 'lines-sharp-small' | 'lines-small' = 'dots';\n\n /**\n * Event emitted when the user has scrolled to the bottom of the list.\n * Used for triggering the component to load more data.\n * @type {EventEmitter<void>}\n */\n @Output() public onScrollThreshold: EventEmitter<void> = new EventEmitter<void>();\n\n /**\n * Method to emit the scrolled event, indicating that the user has reached the bottom of the list.\n * This triggers the component to load more data.\n */\n public scroll(): void{\n this.onScrollThreshold.emit();\n }\n}\n","<div \n class=\"scroll-container\" \n [threshold]=\"threshold\" \n [rootMargin]=\"rootMargin\" \n (onScrollThreshold)=\"scroll()\"\n upInfiniteScroll \n>\n <ion-spinner [name]=\"loadingIcon\" />\n\n @if (loadingText) {\n <div class=\"loading-text\">{{ loadingText }}</div>\n }\n</div>\n","import { Injectable } from '@angular/core';\nimport { AuthService } from '../../services';\n\n/**\n * The `AuthResolver` service provides methods for handling authentication-related tasks,\n * such as checking user login status, retrieving authentication tokens, and managing token expiration.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthResolver {\n\n /**\n * Checks if the user is logged in by verifying the presence of an authentication token.\n * @returns {boolean} - True if the user is logged in; otherwise, false.\n */\n public isUserLoggedIn(): boolean{ \n return AuthService.authToken !== ''; \n }\n\n /**\n * Retrieves the authentication token, resolving it if needed.\n * @returns {string | null} - The authentication token if the user is logged in; otherwise, null.\n */\n public getAuthToken(): string | null{\n this.resolveUserAuthToken();\n \n if (this.isUserLoggedIn()) return AuthService.authToken;\n \treturn null;\n }\n\n /**\n * Resolves the user's authentication token by checking expiration and whether the user still logged in or not.\n */\n protected resolveUserAuthToken(): void{\n if (!this.isUserLoggedIn() || !this.isTokenExpired(AuthService.authToken)) return;\n \n AuthService.authToken = '';\n AuthService.refreshToken = '';\n localStorage.removeItem('authToken');\n localStorage.removeItem('refreshToken');\n }\n\n /**\n * Checks if a given token is expired or not yet.\n * @param {string | null} token - The token to be checked for expiration.\n * @returns {boolean} - True if the token is expired; otherwise, false.\n */\n protected isTokenExpired(token: string | null): boolean{\n if (!token || token === '') return true;\n const date = this.getTokenExpirationDate(token);\n\n if (date === null) return false;\n return !(<number>date.valueOf() > new Date().valueOf() + 0 * 1000);\n }\n\n /**\n * Retrieves the expiration date of a token.\n * @param {string | null} token - The token for which to retrieve the expiration date.\n * @returns {Date | null} - The expiration date of the token if available; otherwise, null.\n */\n protected getTokenExpirationDate(token: string | null): Date | null{\n const decoded: any = this.decodeToken(token); \n if (!decoded || !decoded.hasOwnProperty('exp')) return null;\n \n const date = new Date(0);\n date.setUTCSeconds(decoded.exp);\n\n return date;\n }\n\n /**\n * Decodes a JWT token to extract payload information.\n * @param {string | null} token - The JWT token to be decoded.\n * @returns {string | null} - The decoded payload as a string if successful; otherwise, null.\n */\n protected decodeToken(token: string | null): string | null{\n if (!token || token === '') return null;\n\n const parts = token.split('.');\n if (parts.length !== 3) throw new Error(`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 const decoded = this.urlBase64Decode(parts[1]);\n if (!decoded) throw new Error('Cannot decode the token.');\n\n return JSON.parse(decoded);\n }\n\n /**\n * Decodes a base64url-encoded string.\n * @param {string} str - The base64url-encoded string to be decoded.\n * @returns {string} - The decoded string.\n */\n protected 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 return this.b64DecodeUnicode(output);\n }\n\n /**\n * Decodes a Unicode string from a base64-encoded string.\n * @param {string} str - The base64-encoded string to be decoded.\n * @returns {string} - The decoded Unicode string.\n */\n protected b64DecodeUnicode(str: string): string{\n return decodeURIComponent(Array.prototype.map.call(this.b64decode(str), (c: any) => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join(''));\n }\n\n /**\n * Decodes a base64-encoded string.\n * @param {string} str - The base64-encoded string to be decoded.\n * @returns {string} - The decoded string.\n */\n protected b64decode(str: string): string{\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n let output = '';\n\n str = String(str).replace(/=+$/, '');\n if (str.length % 4 === 1) throw new Error(`'atob' failed: The string to be decoded is not correctly encoded.`);\n\n for (\n let bc = 0, bs: any, buffer: any, idx = 0;\n (buffer = str.charAt(idx++));\n \n ~buffer && ((bs = bc % 4? bs * 64 + buffer : buffer), bc++ % 4)? (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6)))) : 0\n ) buffer = chars.indexOf(buffer);\n\n return output;\n }\n}\n","import { inject } from '@angular/core';\nimport { AuthResolver } from '../../resolvers';\n\nexport const AuthGuard: () => boolean = (): boolean => {\n const resolver = inject(AuthResolver);\n \n if (!resolver.isUserLoggedIn()) {\n location.href = '/auth/login';\n }\n return true;\n};\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpHandlerFn, HttpInterceptor, HttpInterceptorFn, HttpRequest } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { AuthService } from '../../services';\n\nexport const headerInterceptor: HttpInterceptorFn = (\n request: HttpRequest<any>,\n next: HttpHandlerFn\n): Observable<HttpEvent<any>> => {\n return next(\n request.clone({\n headers: request.headers,\n setHeaders: {\n project: 'unipin',\n authorization: AuthService.authToken,\n },\n })\n );\n};\n\n/**\n * @deprecated - DI based interceptor will be removed at v19.0.0, use function based interceptor instead\n */\n@Injectable()\nexport class HeaderInterceptor implements HttpInterceptor {\n\n public intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>{\n return next.handle(request.clone({\n headers: request.headers,\n setHeaders: {\n authorization: AuthService.authToken,\n project: 'unipin'\n }\n }));\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { HttpEvent, HttpHandler, HttpHandlerFn, HttpInterceptor, HttpInterceptorFn, HttpRequest } from '@angular/common/http';\nimport { catchError, Observable, switchMap, throwError } from 'rxjs';\nimport { AuthService } from '../../services';\n\nexport const refreshTokenInterceptor: HttpInterceptorFn = (\n request: HttpRequest<any>, \n next: HttpHandlerFn\n): Observable<HttpEvent<any>> => {\n const authService = inject(AuthService);\n\n return next(request).pipe(\n catchError(({ error: { errors } }) => {\n if (errors[0].extensions.code !== 'USER_INVALID_TOKEN') {\n return throwError(() => errors[0]);\n }\n\n return authService.refreshToken({ refreshToken: AuthService.refreshToken }).pipe(\n switchMap(({ data }) => {\n const { accessToken, refreshToken } = data!.authMsRefreshAccessToken;\n\n AuthService.authToken = accessToken!;\n AuthService.refreshToken = refreshToken!;\n\n localStorage.setItem('authToken', accessToken!);\n localStorage.setItem('refreshToken', refreshToken!);\n\n return next(request.clone({\n setHeaders: {\n authorization: accessToken!,\n },\n }));\n }),\n catchError(() => {\n localStorage.removeItem('roles');\n localStorage.removeItem('userGuid');\n localStorage.removeItem('authToken');\n localStorage.removeItem('refreshToken');\n\n AuthService.authToken = '';\n AuthService.refreshToken = '';\n authService.user = undefined;\n\n location.href = '/auth/login';\n return throwError(() => errors[0]);\n })\n );\n })\n );\n};\n\n/**\n * @deprecated - DI based interceptor will be removed at v19.0.0, use function based interceptor instead\n */\n@Injectable()\nexport class RefreshTokenInterceptor implements HttpInterceptor {\n\n constructor(\n protected readonly authService: AuthService\n ) { }\n\n public intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>>{\n return next.handle(request).pipe(\n catchError(({ error: { errors } }) => {\n if (errors[0].extensions.code === 'USER_INVALID_TOKEN') {\n return this.authService.refreshToken({ refreshToken: AuthService.refreshToken }).pipe(\n switchMap(({ data }) => {\n const { accessToken, refreshToken } = data!.authMsRefreshAccessToken;\n\n AuthService.authToken = accessToken!;\n AuthService.refreshToken = refreshToken!;\n\n localStorage.setItem('authToken', accessToken!);\n localStorage.setItem('refreshToken', refreshToken!);\n\n return next.handle(request.clone({\n setHeaders: {\n authorization: accessToken!\n }\n }));\n }),\n catchError(() => {\n localStorage.removeItem('roles');\n localStorage.removeItem('userGuid');\n localStorage.removeItem('authToken');\n localStorage.removeItem('refreshToken');\n \n AuthService.authToken = '';\n AuthService.refreshToken = '';\n this.authService.user = undefined;\n\n location.href = '/auth/login';\n return throwError(() => errors[0]);\n })\n );\n }\n\n return throwError(() => errors[0]);\n })\n );\n }\n}\n"],"names":["i1","i2.PermissionService","i3","i1.PermissionService","i2","i2.ProfileService","i1.CurrencyService","i1.CountryService","i1.GridService","i2.AuditService","i4","i2.ApprovalService","i3.GridService","i5.PermissionService","i1.AuthService"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;MAaa,sBAAsB,CAAA;AAmDjC,IAAA,WAAA,CACqB,EAAqB,EAAA;QAArB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QA5C1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAY1B,IAAI,CAAA,IAAA,GAAmC,QAAQ,CAAC;QAMhD,IAAI,CAAA,IAAA,GAA8C,OAAO,CAAC;QAM1D,IAAK,CAAA,KAAA,GAAoH,SAAS,CAAC;AAQlI,QAAA,IAAA,CAAA,OAAO,GAAyC,IAAI,YAAY,EAAE,CAAC;QAS7E,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;KAI7B;IAKE,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAMM,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;AAEvC,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;+GAxEU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAyCtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,KAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,SAAS,ECtDtB,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,qUASA,qIDCI,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAGF,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAVlC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,gBAAgB,EAAA,eAAA,EAGT,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA;wBACP,WAAW;AACZ,qBAAA,EAAA,QAAA,EAAA,qUAAA,EAAA,MAAA,EAAA,CAAA,8EAAA,CAAA,EAAA,CAAA;sFAUe,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAMU,IAAI,EAAA,CAAA;sBAAnB,KAAK;gBAMU,IAAI,EAAA,CAAA;sBAAnB,KAAK;gBAMU,IAAI,EAAA,CAAA;sBAAnB,KAAK;gBAMU,KAAK,EAAA,CAAA;sBAApB,KAAK;gBAQW,OAAO,EAAA,CAAA;sBAAvB,MAAM;gBACyB,GAAG,EAAA,CAAA;sBAAlC,SAAS;uBAAC,SAAS,CAAA;;;MEtCT,oBAAoB,CAAA;IAkB/B,WAM0B,CAAA,EAAU,EACf,WAA8B,EAAA;QADzB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAQ;QACf,IAAW,CAAA,WAAA,GAAX,WAAW,CAAmB;AAjBnC,QAAA,IAAA,CAAA,MAAM,GAAqC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAO1D,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;KAU1B;AAEE,IAAA,WAAW,CAAC,OAAsB,EAAA;AACvC,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;YACrB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;SACtB;KACF;AAQM,IAAA,QAAQ,CAAC,CAAyB,EAAA;AACvC,QAAA,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KAC5C;AAQM,IAAA,MAAM,CAAC,CAAS,EAAA;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;AACrB,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;KAC5B;AAtDU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,kBAwBlB,IAAI,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAxBN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EChBjC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,01DA0CA,ED9BI,MAAA,EAAA,CAAA,qUAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,oMACX,sBAAsB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,sBAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,SAAA,EAAA,EAAA,CAAA,OAAA,EAAA,EAAA,CAAA,UAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGb,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAXhC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,cAAc,EAAA,eAAA,EAGP,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA;wBACP,WAAW;wBACX,sBAAsB;AACvB,qBAAA,EAAA,QAAA,EAAA,01DAAA,EAAA,MAAA,EAAA,CAAA,qUAAA,CAAA,EAAA,CAAA;;0BA0BE,SAAS;2BAAC,IAAI,CAAA;yEAfsB,QAAQ,EAAA,CAAA;sBAA9C,WAAW;uBAAC,cAAc,CAAA;;;AEvBtB,MAAM,aAAa,GAAG,IAAI,cAAc,CAAe,eAAe,CAAC,CAAC;AAezE,SAAU,mBAAmB,CAAC,MAAoB,EAAA;IACtD,OAAO;AACL,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,QAAQ,EAAE,MAAM;KACjB,CAAC;AACJ;;ACtBO,MAAM,gBAAgB,GAAG,6CAA6C,CAAC;AAE9E,SAAS,cAAc,GAAA;IACrB,MAAM,WAAW,GAAG,MAA8C,CAAC;IACnE,WAAW,CAAC,gBAAgB,CAAC,GAAG,WAAW,CAAC,gBAAgB,CAAC,IAAK,EAAmB,CAAC;AAEtF,IAAA,OAAO,WAAW,CAAC,gBAAgB,CAAC,CAAC;AACvC,CAAC;AAKK,SAAU,mBAAmB,CAAO,QAAgC,EAAA;AACxE,IAAA,MAAM,WAAW,GAAG,cAAc,EAAK,CAAC;AACxC,IAAA,OAAO,QAAQ,GAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;AACvD,CAAC;AAEK,SAAU,mBAAmB,CAAmB,KAAQ,EAAA;IAC5D,OAAO,MAAM,CAAC,MAAM,CAAC,cAAc,EAAK,EAAE,KAAK,CAAC,CAAC;AACnD;;ACJA,SAAS,SAAS,GAAA;AAChB,IAAA,QAAQ,mBAAmB,CAAC,CAAC,KAAyB,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE;AAC5E,CAAC;AAEK,SAAU,WAAW,CAAC,IAAY,EAAA;AACtC,IAAA,mBAAmB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AACxC,CAAC;SAEe,SAAS,CAAI,SAAkB,EAAE,OAAgB,EAAE,MAAyB,EAAA;AAC1F,IAAA,OAAO,CAAC,UAAU,IAAI,cAAc,EAAE,CAAC;AAEvC,IAAA,IAAI,OAAO,CAAC,OAAO,KAAK,OAAO,EAAE;QAC/B,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAI;AACnD,YAAA,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC/B,SAAC,CAAC,CAAC;QACH,OAAO;KACR;AAED,IAAA,IAAI,CAAC,SAAS,EAAE,IAAI,WAAW,EAAE,EAAE;QACjC,oBAAoB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAI;AACnD,YAAA,0BAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC3C,SAAC,CAAC,CAAC;QACH,OAAO;KACR;IAED,CAAC,YAAW;AACV,QAAA,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;AAElE,QAAA,MAAM,GAAG,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5C,cAAc,CAAC,MAAM,CAAU,OAAO,CAAC,WAAW,EAAE,mBAAmB,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAEhH,QAAA,0BAA0B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KAC1C,GAAG,CAAC;AACP,CAAC;AAED,SAAS,cAAc,CAAC,QAAkB,EAAA;IACxC,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACzC,OAAO;KACR;IACD,WAAW,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED,SAAS,0BAA0B,CAAC,QAAkB,EAAA;IACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAExC,IAAI,CAAC,MAAM,EAAE;AACX,QAAA,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC3C,OAAO;KACR;AACD,IAAA,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,SAAS,WAAW,GAAA;AAClB,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;AAC1C,IAAA,OAAO,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,WAAW,CAAC;AAC9D;;ACtEO,MAAM,cAAc,GAAG,IAAI,cAAc,CAAgB,gBAAgB,CAAC,CAAC;AAS5E,SAAU,oBAAoB,CAAC,MAAqB,EAAA;IACxD,OAAO;AACL,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,QAAQ,EAAE,MAAM;KACjB,CAAC;AACJ;;MCRa,iBAAiB,CAAA;AAmB5B,IAAA,WAAA,CACqB,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AAXnB,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,OAAO,EAAY,CAAC;QAOlE,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;AAC1B,QAAA,IAAA,CAAA,WAAW,GAAyB,IAAI,GAAG,EAAE,CAAC;KAInD;AAOE,IAAA,aAAa,CAAC,SAAmB,EAAE,WAAA,GAAwB,EAAE,EAAA;AAClE,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;AAAE,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACpF,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACpC;AASM,IAAA,eAAe,CAAC,KAAa,EAAE,MAAc,EAAE,IAAY,EAAA;QAChE,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA,EAAI,KAAM,CAAA,CAAA,EAAK,MAAO,CAAA,MAAA,CAAQ,CAAC;AAAE,YAAA,OAAO,IAAI,CAAC;AACtE,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAI,EAAA,KAAM,CAAK,CAAA,EAAA,MAAO,CAAK,CAAA,EAAA,IAAK,EAAE,CAAC;AAAE,YAAA,OAAO,IAAI,CAAC;AAE1E,QAAA,OAAO,KAAK,CAAC;KACd;IAOM,cAAc,CAAC,MAAwB,EAAE,WAAyB,EAAA;AACvE,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACvB,WAAW;YACX,SAAS,EAAE,EAAE,MAAM,EAAE;YACrB,KAAK,EAAE,GAAG,CAAA,CAAA;;;;;;AAMT,MAAA,CAAA;AACF,SAAA,CAAC,CAAC;KACJ;+GAhEU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCYY,WAAW,CAAA;AAItB,IAAA,WAAA,CAC0C,MAAqB,EAC1C,MAAc,EACd,KAAqB,EACrB,iBAAoC,EAAA;QAHf,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QAC1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;KACpD;IAEE,QAAQ,GAAA;AACb,QAAA,MAAM,WAAW,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,IAAI,UAAU,CAAC,CAAC;QAC1F,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAE,KAAK,CAAE,CAAC,CAAC;YAChC,OAAO;SACR;QAED,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC;YAC/C,WAAW;AACX,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW;AACnC,YAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;SAChC,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC;YACpC,KAAK,EAAE,MAAK;gBACV,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAE,KAAK,CAAE,CAAC,CAAC;aACjC;AACD,YAAA,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,EAAC,EAAC,KAAI;gBAC/C,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAI;AAC5B,oBAAA,IAAI,CAAC,QAAQ;wBAAE,OAAO;AAEtB,oBAAA,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,iBAAC,CAAC,CAAC;AAEH,gBAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,GAAG,IAAI,CAAC;AAC1C,gBAAA,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBAE5E,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAG,EAAE,CAAC,CAAC;aAC9E;AACF,SAAA,CAAC,CAAC;KACJ;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC;KACzB;AA7CU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,kBAKZ,cAAc,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGALb,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,iFAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpBxB,gJAEA,EAAA,MAAA,EAAA,CAAA,uCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDeI,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAGF,WAAW,EAAA,UAAA,EAAA,CAAA;kBAbvB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,YAAY,EAAA,eAAA,EAGL,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,iFAAiF;qBACzF,EACQ,OAAA,EAAA;wBACP,WAAW;AACZ,qBAAA,EAAA,QAAA,EAAA,gJAAA,EAAA,MAAA,EAAA,CAAA,uCAAA,CAAA,EAAA,CAAA;;0BAOE,MAAM;2BAAC,cAAc,CAAA;;;METb,mBAAmB,CAAA;IAqB9B,IAAa,aAAa,CAAC,CAAS,EAAA;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;KACjB;IAMD,IAAa,kBAAkB,CAAC,CAAS,EAAA;AACvC,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;KAChB;IAMD,IAAa,iBAAiB,CAAC,CAAS,EAAA;QAAG,CAAC;AAC1C,QAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE;YACtE,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxD,OAAO;SACR;AAED,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KAC5B;AAED,IAAA,WAAA,CACqB,WAA6B,EAC7B,aAA+B,EAC/B,iBAAoC,EAAA;QAFpC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;QAC7B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;QAC/B,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QAnC/C,IAAK,CAAA,KAAA,GAAW,QAAQ,CAAC;KAoC9B;+GAlDM,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,iBAAiB;AAC5B,iBAAA,CAAA;4IAsBc,aAAa,EAAA,CAAA;sBAAzB,KAAK;gBAQO,kBAAkB,EAAA,CAAA;sBAA9B,KAAK;gBAQO,iBAAiB,EAAA,CAAA;sBAA7B,KAAK;;;AChDK,MAAA,eAAe,GAAkB,CAAC,KAA6B,KAAa;AAEvF,IAAA,MAAM,MAAM,GAAW,MAAM,CAAC,MAAM,CAAC,CAAC;AACtC,IAAA,MAAM,QAAQ,GAAa,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC5C,IAAA,MAAM,iBAAiB,GAAsB,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAEvE,MAAM,WAAW,GAAsD,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAEzG,IAAA,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;AAAE,QAAA,MAAM,IAAI,KAAK,CAAC,+FAA+F,CAAC,CAAC;AAE/J,IAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;AAClC,QAAA,MAAM,CAAC,QAAQ,CAAC,CAAE,SAAS,CAAE,EAAE,EAAE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAA,EAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAK,CAAE,CAAA,EAAE,EAAE,CAAC,CAAC;AACxG,QAAA,OAAO,KAAK,CAAC;KACd;IAED,IAAI,WAAW,EAAE;AACf,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC3C,YAAA,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,iBAAiB,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC;AAAE,gBAAA,OAAO,IAAI,CAAC;SACzE;KACF;AAED,IAAA,MAAM,CAAC,QAAQ,CAAC,CAAE,KAAK,CAAE,CAAC,CAAC;AAC3B,IAAA,OAAO,KAAK,CAAC;AACf;;MChBa,gBAAgB,CAAA;+GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,iFAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb7B,+MAGA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDQa,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEX,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAV5B,SAAS;iCACI,IAAI,EAAA,QAAA,EACN,iBAAiB,EAGrB,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,iFAAiF;qBACzF,EACQ,OAAA,EAAA,CAAE,WAAW,CAAE,EAAA,QAAA,EAAA,+MAAA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,CAAA;;;MEWb,wBAAwB,CAAA;AAyBnC,IAAA,WAAA,CACyC,MAAoB,EACxC,EAAqB,EACrB,iBAAoC,EAAA;QAFhB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAc;QACxC,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QACrB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QArBlD,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;AAO7B,QAAA,IAAA,CAAA,QAAQ,GAAc,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAOtE,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;KAQhC;IAME,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,cAAwB,KAAI;AACnF,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,KAAI;AAC5D,gBAAA,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC9C,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,KAAU,KAAI;YACtE,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC1C,YAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;AACzB,SAAC,CAAC,CAAC;KACJ;IAMM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;KAC7B;IAOM,aAAa,GAAA;AAClB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;KACtC;IAQM,UAAU,GAAA;AACf,QAAA,aAAa,CAAC,IAAI,WAAW,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;KAC9E;AA1EU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,kBA0BzB,aAAa,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA1BZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,+HCtBrC,w6DAuCA,EAAA,MAAA,EAAA,CAAA,2mCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDtBI,WAAW,EACX,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAU,oOACV,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAGP,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAfpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,qBAAqB,EAAA,eAAA,EAGd,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,oBAAoB;qBAC5B,EACQ,OAAA,EAAA;wBACP,WAAW;wBACX,UAAU;wBACV,gBAAgB;AACjB,qBAAA,EAAA,QAAA,EAAA,w6DAAA,EAAA,MAAA,EAAA,CAAA,2mCAAA,CAAA,EAAA,CAAA;;0BA4BE,MAAM;2BAAC,aAAa,CAAA;;;MElCZ,kBAAkB,CAAA;AAQ7B,IAAA,WAAA,CACqB,GAAqB,EAAA;QAArB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAkB;KACvC;IAMI,QAAQ,GAAA;QACb,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAM,KAAK,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9E;+GAlBU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,aAAa;AACxB,iBAAA,CAAA;qFAOmC,SAAS,EAAA,CAAA;sBAA1C,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;;;MCQd,wBAAwB,CAAA;IA0BnC,WACqB,CAAA,MAAc,EACd,WAA2B,EAAA;QAD3B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgB;QArBhC,IAAK,CAAA,KAAA,GAAyC,EAAE,CAAC;QAK1D,IAAO,CAAA,OAAA,GAAW,EAAE,CAAC;QAOT,IAAU,CAAA,UAAA,GAA8B,EAAE,CAAC;KAUzD;IAME,QAAQ,GAAA;QACb,IAAI,CAAC,WAAW,EAAE,CAAC;AAEnB,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;YAC5C,IAAI,CAAC,YAAY,aAAa;gBAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;AAClD,SAAC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAuB,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,EAAE,IAAI,CAAC;AAC/E,QAAA,MAAM,SAAS,GAAa,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAU,aAAa,CAAC;QAE1F,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAExB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACzC,IAAI,GAAG,EAAE,UAAU,CAAU,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1E;KACF;IAMM,WAAW,GAAA,EAAU,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE;IAK3C,QAAQ,GAAA;QAChB,MAAM,KAAK,GAAU,IAAI,CAAC,WAAW,CAAC,UAAW,CAAC,WAAY,CAAC;AAE/D,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,KAAM,KAAK,CAAC,IAAK,CAAA,CAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM;AAAE,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAM,EAAA,EAAA,KAAK,CAAC,IAAK,CAAE,CAAA,CAAC,CAAC,CAAC;;AAC9G,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACvB;AAMS,IAAA,IAAI,CAAC,KAAY,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AAClD,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;SACnD;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AACjC,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;SACnD;AAED,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC1C,QAAA,IAAI,CAAC,UAAU,CAAC,CAAA,EAAA,EAAM,KAAK,CAAC,IAAK,CAAE,CAAA,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;KAC1D;AAMS,IAAA,QAAQ,CAAC,GAAW,EAAA;AAC5B,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAEvB,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,GAAG,EAAE;AACxB,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;YACjD,OAAO;SACR;AAED,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;aACrD;YACH,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;SACpC;KACF;IAOS,WAAW,GAAA;AACnB,QAAA,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,IAAI,GAAG,GAAE,GAAG,GAAG,EAAE,CAAC;KACnD;+GA7GU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EC5BrC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,2aAgBA,EDQI,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,kBAAkB,4iBAClB,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGT,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAbpC,SAAS;iCACI,IAAI,EAAA,QAAA,EACN,qBAAqB,EAGzB,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,qBAAqB;qBAC7B,EACQ,OAAA,EAAA;wBACP,kBAAkB;wBAClB,kBAAkB;AACnB,qBAAA,EAAA,QAAA,EAAA,2aAAA,EAAA,CAAA;4GA6GS,WAAW,EAAA,CAAA;sBADpB,YAAY;uBAAC,eAAe,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MEpH9B,8BAA8B,CAAA;+GAA9B,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA9B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,EClB3C,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,0BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,gkBAiBA,EDHI,MAAA,EAAA,CAAA,mDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,8nBACX,UAAU,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAGD,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAd1C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,4BAA4B,EAAA,eAAA,EAGrB,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,0BAA0B;qBAClC,EACQ,OAAA,EAAA;wBACP,WAAW;wBACX,UAAU;AACX,qBAAA,EAAA,QAAA,EAAA,gkBAAA,EAAA,MAAA,EAAA,CAAA,mDAAA,CAAA,EAAA,CAAA;8BAQe,MAAM,EAAA,CAAA;sBAArB,KAAK;gBAMU,OAAO,EAAA,CAAA;sBAAtB,KAAK;;;MEPK,uBAAuB,CAAA;AA4BlC,IAAA,WAAA,CACqB,SAA0B,EAAA;QAA1B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAiB;QAV/B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;KAWrC;IAOE,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC1C,QAAA,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,GAAG,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;KAC7C;IAMM,WAAW,GAAA;AAChB,QAAA,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,OAAO,CAAC,IAAI,EAAE,CAAC;KAC7C;AAQM,IAAA,QAAQ,CAAC,EAAiB,EAAA;QAC/B,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;AAAE,YAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;KACnD;IAKM,KAAK,GAAA,EAAU,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,EAAE;+GA/DtC,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECvBpC,kbAeA,EAAA,MAAA,EAAA,CAAA,yEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDKI,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAGF,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAVnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,oBAAoB,EAAA,eAAA,EAGb,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA;wBACP,WAAW;AACZ,qBAAA,EAAA,QAAA,EAAA,kbAAA,EAAA,MAAA,EAAA,CAAA,yEAAA,CAAA,EAAA,CAAA;oFAWiC,MAAM,EAAA,CAAA;sBAAvC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAUT,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAqCC,QAAQ,EAAA,CAAA;sBADd,YAAY;uBAAC,iBAAiB,EAAE,CAAE,QAAQ,CAAE,CAAA;;;AEvEzC,SAAU,gBAAgB,CAAC,GAAsB,EAAE,QAAoB,GAAA,KAAK,EAAE,SAAA,GAAoB,GAAG,EAAA;AACzG,IAAA,IAAI,CAAC,GAAG;AAAE,QAAA,OAAO,GAAG,CAAC;IACrB,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,CAAA,EAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,WAAW,EAAG,GAAI,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAG,CAAA,CAAE,CAAC;AAEvG,IAAA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAI,EAAA,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,WAAW,EAAG,CAAI,EAAA,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAG,EAAE,CAAC;AAClF,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnC,QAAA,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,SAAS;AAEtB,QAAA,IAAI,CAAC,QAAQ;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;aACxC;AACH,YAAA,GAAG,CAAC,CAAC,CAAC,GAAG,CAAI,EAAA,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,WAAW,EAAG,CAAI,EAAA,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAG,EAAE,CAAC;SACnF;KACF;AACD,IAAA,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC7B;;ACnBA,MAAM,UAAU,GAAyD;IACvE,KAAK,EAAE,CAAC,KAAa,KAAK,CAAA,EAAI,KAAM,CAAuB,qBAAA,CAAA;IAC3D,QAAQ,EAAE,CAAC,KAAa,KAAK,CAAA,EAAI,KAAM,CAAc,YAAA,CAAA;AACrD,IAAA,SAAS,EAAE,CAAC,KAAa,EAAE,MAAe,KAAK,CAAI,EAAA,KAAM,CAAsB,kBAAA,EAAA,MAAO,CAAa,WAAA,CAAA;AACnG,IAAA,SAAS,EAAE,CAAC,KAAa,EAAE,MAAe,KAAK,CAAI,EAAA,KAAM,CAAqB,iBAAA,EAAA,MAAO,CAAa,WAAA,CAAA;AAClG,IAAA,GAAG,EAAE,CAAC,KAAa,EAAE,GAAY,KAAK,CAAI,EAAA,KAAM,CAA8B,0BAAA,EAAA,GAAI,CAAE,CAAA;AACpF,IAAA,GAAG,EAAE,CAAC,KAAa,EAAE,GAAY,KAAK,CAAI,EAAA,KAAM,CAA+B,2BAAA,EAAA,GAAI,CAAE,CAAA;CACtF,CAAC;AAEF,MAAM,aAAa,GAA4B;AAC7C,IAAA,SAAS,EAAE,gBAAgB;AAC3B,IAAA,SAAS,EAAE,gBAAgB;AAC3B,IAAA,GAAG,EAAE,KAAK;AACV,IAAA,GAAG,EAAE,KAAK;CACX,CAAC;AAQc,SAAA,mBAAmB,CAAC,GAA4B,EAAE,KAAc,EAAA;AAC9E,IAAA,IAAI,CAAC,GAAG;AAAE,QAAA,OAAO,EAAE,CAAC;IAEpB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,IAAG,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACzE;;AClBM,SAAU,qBAAqB,CAAC,GAAW,EAAA;AAC/C,IAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE9C,IAAI,GAAG,GAAG,EAAE,CAAC;IACb,IAAI,KAAK,GAAG,CAAC,CAAC;AAEd,IAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnC,QAAA,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEzC,GAAG,IAAI,CAAC,CAAC;QACT,KAAK,IAAI,CAAC,CAAC,CAAC;KACb;IACD,OAAO;QACL,UAAU,EAAE,CAAK,CAAA,EAAA,GAAI,CAAE,CAAA;QACvB,KAAK,EAAE,KAAK,GAAG,GAAG,GAAE,MAAM,GAAG,MAAM;KACpC,CAAA;AACH;;MCKa,iBAAiB,CAAA;AA8F5B,IAAA,WAAA,CAC4B,IAAY,EACL,WAAmB,EACjC,EAAqB,EAAA;QAFd,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAQ;QACL,IAAW,CAAA,WAAA,GAAX,WAAW,CAAQ;QACjC,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QApF1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAO1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAO1B,IAAY,CAAA,YAAA,GAAyB,MAAM,CAAC;QAmBrD,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAO3B,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QAOnB,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;QAOvB,IAAU,CAAA,UAAA,GAAW,aAAa,CAAC;AAmBhC,QAAA,IAAA,CAAA,QAAQ,GAAwB,CAAC,IAAS,KAAI,GAAG,CAAC;AAMlD,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAG,CAAC;KAMvC;IAMG,QAAQ,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,WAAW;YAAE,IAAI,CAAC,UAAU,GAAG,CAAA,EAAI,IAAI,CAAC,UAAW,QAAQ,CAAC;KACvF;IAMM,gBAAgB,CAAC,EAAO,EAAA,EAAS,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,EAAE;IAMtD,iBAAiB,CAAC,EAAO,EAAA,EAAS,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE;AAOxD,IAAA,UAAU,CAAC,GAAQ,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;QACjB,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO;SACR;QAAA,CAAC;AAEF,QAAA,IAAI,SAAS,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;AAE9B,QAAA,SAAS,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,SAAS,CAAC,iBAAiB,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC;AACpF,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;AAE1C,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;AAMM,IAAA,gBAAgB,CAAE,CAAU,EAAA;AACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;AAOM,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;AAC3B,QAAA,OAAO,IAAI,CAAC;KACb;AASM,IAAA,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAM,EAAA;AACzC,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;AACrC,YAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;AAEvB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1E;KACF;+GAnLU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EA+Ff,MAAM,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EACN,aAAa,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAhGf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAbjB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,2BAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,iBAAiB;AAC/B,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,iBAAiB;AAC/B,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9BH,26BA0BA,EAAA,MAAA,EAAA,CAAA,wHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EDVI,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACR,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,KAAA,EAAA,cAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,6BAAA,EAAA,OAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAeF,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBA1B7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,SAAS,EAAA,eAAA,EAGF,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,2BAA2B;qBACnC,EACQ,OAAA,EAAA;wBACP,QAAQ;wBACR,WAAW;qBACZ,EACU,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAmB,iBAAA;AAC/B,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAmB,iBAAA;AAC/B,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,26BAAA,EAAA,MAAA,EAAA,CAAA,wHAAA,CAAA,EAAA,CAAA;;0BAiGE,SAAS;2BAAC,MAAM,CAAA;;0BAChB,SAAS;2BAAC,aAAa,CAAA;yEA1FV,KAAK,EAAA,CAAA;sBAApB,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAOU,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBAMU,OAAO,EAAA,CAAA;sBAAtB,KAAK;gBAMU,OAAO,EAAA,CAAA;sBAAtB,KAAK;;;ME7CK,kBAAkB,CAAA;AAkE7B,IAAA,WAAA,CACmC,WAAmB,EAC1B,IAAuE,EAC/D,YAAyxB,EACxyB,EAAqB,EAAA;QAHP,IAAW,CAAA,WAAA,GAAX,WAAW,CAAQ;QAC1B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAmE;QAC/D,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA6wB;QACxyB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QAnD1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAO1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAMzB,QAAA,IAAA,CAAA,OAAO,GAAsB,IAAI,YAAY,EAAO,CAAC;QAO/D,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;AAmBxB,QAAA,IAAA,CAAA,QAAQ,GAAwB,CAAC,IAAS,KAAI,GAAG,CAAC;AAMlD,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAG,CAAC;KAOtC;IAME,gBAAgB,CAAC,EAAO,EAAA,EAAS,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,EAAE;IAMtD,iBAAiB,CAAC,EAAO,EAAA,EAAS,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE;AAMxD,IAAA,KAAK,CAAC,GAAQ,EAAS,EAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;AAMhD,IAAA,UAAU,CAAC,GAAQ,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AACjB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;AAMM,IAAA,gBAAgB,CAAE,CAAU,EAAA;AACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;AAOM,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;AAC3B,QAAA,OAAO,IAAI,CAAC;KACb;IASM,MAAM,CAAC,EAAE,KAAK,EAAO,EAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1E;KACF;AAzIU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAmEhB,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,aAAa,EACb,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,MAAM,8BACN,cAAc,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AArEhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EAblB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,kBAAkB;AAChC,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,kBAAkB;AAChC,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxBH,odAUA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDgBa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAtB9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,UAAU,EAAA,eAAA,EAGH,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,SAAS;qBACjB,EACU,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAoB,kBAAA;AAChC,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAoB,kBAAA;AAChC,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,odAAA,EAAA,CAAA;;0BAqEE,SAAS;2BAAC,aAAa,CAAA;;0BACvB,SAAS;2BAAC,MAAM,CAAA;;0BAChB,SAAS;2BAAC,cAAc,CAAA;yEA/DX,KAAK,EAAA,CAAA;sBAApB,KAAK;gBAMU,KAAK,EAAA,CAAA;sBAApB,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAMW,OAAO,EAAA,CAAA;sBAAvB,MAAM;;;MEnDI,gBAAgB,CAAA;IAEpB,SAAS,CAAC,KAAgC,EAAE,MAAc,EAAA;AAC/D,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,EAAE,CAAC;AAEtB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;aAChE;AACH,YAAA,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACvC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAC/C,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAE,CAAC,CAAC,KAAK,GAAG,GAAE,GAAG,GAAG,IAAI,CAAC,CAAC;AAEnF,gBAAA,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAE,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;aAC9H;AACD,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;SACrE;KACF;AAES,IAAA,gBAAgB,CAAC,KAAa,EAAA;QACtC,MAAM,UAAU,GAAa,EAAE,CAAC;AAEhC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,YAAA,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACtB,YAAA,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG;AAAE,gBAAA,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzD;AACD,QAAA,OAAO,UAAU,CAAC;KACnB;+GAzBU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA,EAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,cAAc;AACpB,oBAAA,IAAI,EAAE,IAAI;AACX,iBAAA,CAAA;;;MCyBY,mBAAmB,CAAA;IAmE9B,WACmC,CAAA,WAAmB,EACjC,EAAqB,EAAA;QADP,IAAW,CAAA,WAAA,GAAX,WAAW,CAAQ;QACjC,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QAlD1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAO1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAO1B,QAAA,IAAA,CAAA,MAAM,GAAW,SAAS,CAAC,QAAQ,CAAC;QAO7C,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;AAmBxB,QAAA,IAAA,CAAA,QAAQ,GAAwB,CAAC,IAAS,KAAI,GAAG,CAAC;AAMlD,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAG,CAAC;KAKtC;IAME,gBAAgB,CAAC,EAAO,EAAA,EAAS,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,EAAE;IAMtD,iBAAiB,CAAC,EAAO,EAAA,EAAS,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE;AAMxD,IAAA,UAAU,CAAC,GAAQ,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AACjB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;AAMM,IAAA,gBAAgB,CAAE,CAAU,EAAA;AACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;AAOM,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;AAC3B,QAAA,OAAO,IAAI,CAAC;KACb;IASK,MAAM,CAAC,EAAE,KAAK,EAAO,EAAA;AACzB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3E;KACF;AAOM,IAAA,SAAS,CAAC,EAAiB,EAAA;QAChC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAChH,QAAA,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;AAEnB,QAAA,IAAI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO;AACjC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,EAAE,CAAC,cAAc,EAAE,CAAC;KAC5C;AA/IU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBAoEjB,aAAa,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AApEf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EAbnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,mBAAmB;AACjC,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,mBAAmB;AACjC,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7BH,+WAMA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDSI,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EACX,gBAAgB,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAeP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBA1B/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,WAAW,EAAA,eAAA,EAGJ,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,SAAS;qBACjB,EACQ,OAAA,EAAA;wBACP,WAAW;wBACX,gBAAgB;qBACjB,EACU,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAqB,mBAAA;AACjC,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAqB,mBAAA;AACjC,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,+WAAA,EAAA,CAAA;;0BAsEE,SAAS;2BAAC,aAAa,CAAA;yEA9DV,KAAK,EAAA,CAAA;sBAApB,KAAK;gBAMU,KAAK,EAAA,CAAA;sBAApB,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAOU,MAAM,EAAA,CAAA;sBAArB,KAAK;;;MElCK,qBAAqB,CAAA;AA8DhC,IAAA,WAAA,CAC6B,KAAa,EACN,YAAiD,EAChE,EAAqB,EAAA;QAFb,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;QACN,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqC;QAChE,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QA1D1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAO1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAOnC,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAO3B,IAAI,CAAA,IAAA,GAAwB,UAAU,CAAC;QAOvC,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;AAmBhB,QAAA,IAAA,CAAA,QAAQ,GAAwB,CAAC,IAAS,KAAI,GAAG,CAAC;AAMlD,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAG,CAAC;KAMtC;IAME,gBAAgB,CAAC,EAAO,EAAA,EAAS,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,EAAE;IAMtD,iBAAiB,CAAC,EAAO,EAAA,EAAS,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE;IAKxD,UAAU,GAAA;AACf,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,MAAM,GAAE,UAAU,GAAG,MAAM,CAAC;KACvD;AAMM,IAAA,UAAU,CAAC,GAAQ,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AACjB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;AAOM,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;AAC3B,QAAA,OAAO,IAAI,CAAC;KACb;IAQM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;AACD,QAAA,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1E;IAQM,MAAM,CAAC,EAAE,KAAK,EAAO,EAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;AAED,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1B,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE;AACnC,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;gBACnE,IAAI,CAAC,QAAQ,GAAG,CAAA,EAAI,IAAI,CAAC,KAAM,kBAAkB,CAAC;gBAClD,OAAO;aACR;AAED,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAO,CAAC,SAAS,CAAC,IAAI,CAAA,EAAI,IAAI,CAAC,KAAM,uBAAuB,CAAC;YACtG,OAAO;SACR;AACD,QAAA,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1E;+GAjJU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EA+DnB,OAAO,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EACP,cAAc,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAhEhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAbrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,2BAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,qBAAqB;AACnC,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,qBAAqB;AACnC,aAAA;SACF,EC5BH,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,0iBAWA,sGDII,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAeF,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAzBjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,aAAa,EAAA,eAAA,EAGN,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,2BAA2B;qBACnC,EACQ,OAAA,EAAA;wBACP,WAAW;qBACZ,EACU,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAuB,qBAAA;AACnC,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAuB,qBAAA;AACnC,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,0iBAAA,EAAA,MAAA,EAAA,CAAA,+CAAA,CAAA,EAAA,CAAA;;0BAiEE,SAAS;2BAAC,OAAO,CAAA;;0BACjB,SAAS;2BAAC,cAAc,CAAA;yEAzDX,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;;;MEVK,6BAA6B,CAAA;IA8JxC,WACmC,CAAA,WAAmB,EACjC,EAAqB,EAAA;QADP,IAAW,CAAA,WAAA,GAAX,WAAW,CAAQ;QACjC,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QAlJ1B,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAO1B,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QAOnB,IAAY,CAAA,YAAA,GAAU,EAAE,CAAC;QAOzB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAO1B,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QAOxB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAO1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAO1B,IAAS,CAAA,SAAA,GAAW,OAAO,CAAC;QAO5B,IAAS,CAAA,SAAA,GAAW,OAAO,CAAC;QAO5B,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;AAMrB,QAAA,IAAA,CAAA,QAAQ,GAAsB,IAAI,YAAY,EAAO,CAAC;AAMvD,QAAA,IAAA,CAAA,SAAS,GAAoB,IAAI,OAAO,EAAU,CAAC;QAMhD,IAAM,CAAA,MAAA,GAAsB,IAAI,CAAC,SAAS,CAAC,IAAI,CAChE,oBAAoB,EAAE,EACtB,YAAY,CAAC,GAAG,CAAC,EACjB,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAChC,SAAS,CAAC,CAAC,CAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAC7C,GAAG,CAAC,CAAC,MAAa,KAAK,MAAM,CAAC,MAAM,KAAK,CAAC,GAAE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,EACvE,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CACxC,CAAC,EACF,GAAG,CAAC,MAAM,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,CAClC,CAAC;AAMK,QAAA,IAAA,CAAA,MAAM,GAAsB,IAAI,CAAC,MAAM,CAAC;QAOxC,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAO3B,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAO3B,IAAK,CAAA,KAAA,GAAe,IAAI,CAAC;AAmBtB,QAAA,IAAA,CAAA,OAAO,GAAwB,CAAC,IAAS,KAAI,GAAG,CAAC;AAMjD,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAG,CAAC;KAKtC;AAOE,IAAA,WAAW,CAAC,OAAsB,EAAA;QACvC,IAAI,OAAO,CAAC,cAAc,CAAC;AAAE,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;KACvF;IAMM,gBAAgB,CAAC,EAAO,EAAA,EAAS,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE;IAMrD,iBAAiB,CAAC,EAAO,EAAA,EAAS,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE;AAMxD,IAAA,UAAU,CAAC,GAAQ,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AACjB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;AAMM,IAAA,gBAAgB,CAAE,CAAU,EAAA;AACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;AAOM,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;AAC3B,QAAA,OAAO,IAAI,CAAC;KACb;AAOM,IAAA,MAAM,CAAC,CAAO,EAAA;AACnB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AAEtB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,CAAC;AAAE,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;iBACrB;AACH,gBAAA,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;aACvF;AAED,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1E;KACF;AA3OU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,kBA+J3B,aAAa,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA/Jf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,EAb7B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,6BAA6B;AAC3C,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,6BAA6B;AAC3C,aAAA;AACF,SAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChCH,szBA4BA,EDXI,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,SAAS,EACT,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,kWACX,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,2BAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAeL,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBA3BzC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,sBAAsB,EAAA,eAAA,EAGf,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,SAAS;qBACjB,EACQ,OAAA,EAAA;wBACP,SAAS;wBACT,WAAW;wBACX,cAAc;qBACf,EACU,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAA+B,6BAAA;AAC3C,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAA+B,6BAAA;AAC3C,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,szBAAA,EAAA,CAAA;;0BAiKE,SAAS;2BAAC,aAAa,CAAA;yEAxJQ,SAAS,EAAA,CAAA;sBAA1C,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAOT,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBAOU,KAAK,EAAA,CAAA;sBAApB,KAAK;gBAOU,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAOU,MAAM,EAAA,CAAA;sBAArB,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAOU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBAOU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAMW,QAAQ,EAAA,CAAA;sBAAxB,MAAM;;;MEtFI,mBAAmB,CAAA;IAsH9B,WACmC,CAAA,WAAmB,EACjC,EAAqB,EAAA;QADP,IAAW,CAAA,WAAA,GAAX,WAAW,CAAQ;QACjC,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QA1G1B,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAO1B,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QAOnB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAO1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAO1B,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QAOxB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAO1B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAO5B,IAAS,CAAA,SAAA,GAAW,OAAO,CAAC;QAO5B,IAAS,CAAA,SAAA,GAAW,OAAO,CAAC;QAO5B,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;QAO/B,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAO3B,IAAK,CAAA,KAAA,GAAe,IAAI,CAAC;AAmBtB,QAAA,IAAA,CAAA,QAAQ,GAAwB,CAAC,IAAS,KAAI,GAAG,CAAC;AAMlD,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAG,CAAC;KAKtC;IAME,gBAAgB,CAAC,EAAO,EAAA,EAAS,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,EAAE;IAMtD,iBAAiB,CAAC,EAAO,EAAA,EAAS,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE;AAMxD,IAAA,UAAU,CAAC,GAAQ,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AACjB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;AAMM,IAAA,gBAAgB,CAAE,CAAU,EAAA;AACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;AAOM,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;AAC3B,QAAA,OAAO,IAAI,CAAC;KACb;AAOM,IAAA,MAAM,CAAC,CAAO,EAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,CAAC;AAAE,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;iBACrB;AACH,gBAAA,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;aACvF;AAED,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1E;KACF;AAvLU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBAuHjB,aAAa,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAvHf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EAbnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,mBAAmB;AACjC,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,mBAAmB;AACjC,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7BH,mpBAwBA,EAAA,MAAA,EAAA,CAAA,ygKAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDTI,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,2BAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAeL,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBA1B/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,WAAW,EAAA,eAAA,EAGJ,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,SAAS;qBACjB,EACQ,OAAA,EAAA;wBACP,WAAW;wBACX,cAAc;qBACf,EACU,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAqB,mBAAA;AACjC,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAqB,mBAAA;AACjC,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,mpBAAA,EAAA,MAAA,EAAA,CAAA,ygKAAA,CAAA,EAAA,CAAA;;0BAyHE,SAAS;2BAAC,aAAa,CAAA;yEAhHQ,KAAK,EAAA,CAAA;sBAAtC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAOT,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBAOU,KAAK,EAAA,CAAA;sBAApB,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAOU,MAAM,EAAA,CAAA;sBAArB,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAOU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBAOU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBAOU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;;;MElFK,qBAAqB,CAAA;AAuDhC,IAAA,WAAA,CAC6B,KAAa,EACP,WAAmB,EAClB,YAAuL,EACtM,EAAqB,EAAA;QAHb,IAAK,CAAA,KAAA,GAAL,KAAK,CAAQ;QACP,IAAW,CAAA,WAAA,GAAX,WAAW,CAAQ;QAClB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAA2K;QACtM,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QA7C1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAO1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAOnC,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;AAmBxB,QAAA,IAAA,CAAA,QAAQ,GAAwB,CAAC,IAAS,KAAI,GAAG,CAAC;AAMlD,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAG,CAAC;KAOtC;IAME,gBAAgB,CAAC,EAAO,EAAA,EAAS,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,EAAE;IAMtD,iBAAiB,CAAC,EAAO,EAAA,EAAS,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE;AAMxD,IAAA,UAAU,CAAC,GAAQ,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AACjB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;AAMM,IAAA,gBAAgB,CAAE,CAAU,EAAA;AACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;AAOM,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;AAC3B,QAAA,OAAO,IAAI,CAAC;KACb;IAOM,MAAM,CAAC,EAAE,KAAK,EAAO,EAAA;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1E;KACF;AAtHU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EAwDnB,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,OAAO,EACP,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,aAAa,8BACb,cAAc,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA1DhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,EAbrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,qBAAqB;AACnC,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,qBAAqB;AACnC,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECxBH,0bASA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDiBa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAtBjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,aAAa,EAAA,eAAA,EAGN,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,SAAS;qBACjB,EACU,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAuB,qBAAA;AACnC,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAAuB,qBAAA;AACnC,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,0bAAA,EAAA,CAAA;;0BA0DE,SAAS;2BAAC,OAAO,CAAA;;0BACjB,SAAS;2BAAC,aAAa,CAAA;;0BACvB,SAAS;2BAAC,cAAc,CAAA;yEAnDX,KAAK,EAAA,CAAA;sBAApB,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;;;MEzCK,kBAAkB,CAAA;AAJ/B,IAAA,WAAA,GAAA;AAMmB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO,CAAC;AA+BxD,KAAA;AA5BQ,IAAA,UAAU,CAAC,GAAQ,EAAA;QACxB,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;AAEtB,QAAA,MAAM,MAAM,GAAG,GAAG,CAAC,MAA0B,CAAC;AAC9C,QAAA,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;KAClC;AAGM,IAAA,WAAW,CAAC,GAAQ,EAAA;QACzB,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;AAEtB,QAAA,MAAM,MAAM,GAAG,GAAG,CAAC,MAA0B,CAAC;AAC9C,QAAA,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;KACrC;AAGM,IAAA,MAAM,CAAC,GAAQ,EAAA;QACpB,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;AAEtB,QAAA,MAAM,MAAM,GAAG,GAAG,CAAC,MAA0B,CAAC;AAC9C,QAAA,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAEpC,QAAA,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;AACrC,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;AAAE,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpD;+GAhCU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,eAAe;AAC1B,iBAAA,CAAA;8BAGkB,WAAW,EAAA,CAAA;sBAA3B,MAAM;gBAGA,UAAU,EAAA,CAAA;sBADhB,YAAY;uBAAC,UAAU,EAAE,CAAE,QAAQ,CAAE,CAAA;gBAU/B,WAAW,EAAA,CAAA;sBADjB,YAAY;uBAAC,WAAW,EAAE,CAAE,QAAQ,CAAE,CAAA;gBAUhC,MAAM,EAAA,CAAA;sBADZ,YAAY;uBAAC,MAAM,EAAE,CAAE,QAAQ,CAAE,CAAA;;;MCAvB,wBAAwB,CAAA;AAuCnC,IAAA,WAAA,CACqB,EAAqB,EAAA;QAArB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QAhC1B,IAAK,CAAA,KAAA,GAAW,MAAM,CAAC;QAavB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAKzB,QAAA,IAAA,CAAA,QAAQ,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAU/D,QAAA,IAAA,CAAA,SAAS,GAAwB,CAAC,IAAS,KAAI,GAAG,CAAC;AACnD,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAG,CAAC;KAItC;IAKE,gBAAgB,CAAC,EAAO,EAAA,EAAS,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE;IAEvD,iBAAiB,CAAC,EAAO,EAAA,EAAS,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE;AAKxD,IAAA,KAAK,CAAC,EAAU,EAAA;AACrB,QAAA,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACpB,EAAE,EAAE,eAAe,EAAE,CAAC;KACvB;AAOM,IAAA,UAAU,CAAC,GAAQ,EAAA;AACxB,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;AAClB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;AAMM,IAAA,WAAW,CAAC,KAAU,EAAA;AAC3B,QAAA,IAAI,KAAK,EAAE,MAAM,EAAE,KAAK;AAAE,YAAA,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAErD,QAAA,IAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;SAC9B;KACF;+GA/EU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EARxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,wBAAwB;AACtC,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1BH,g6CA6BA,EDbI,MAAA,EAAA,CAAA,6nBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,EACX,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,2EACP,kBAAkB,EAAA,QAAA,EAAA,eAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAUT,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAtBpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,SAAS;qBACjB,EACQ,OAAA,EAAA;wBACP,WAAW;wBACX,OAAO;wBACP,kBAAkB;qBACnB,EACU,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAA0B,wBAAA;AACtC,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,g6CAAA,EAAA,MAAA,EAAA,CAAA,6nBAAA,CAAA,EAAA,CAAA;sFAUe,KAAK,EAAA,CAAA;sBAApB,KAAK;gBAMU,KAAK,EAAA,CAAA;sBAApB,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAKW,QAAQ,EAAA,CAAA;sBAAxB,MAAM;;;AE2BT,IAAY,mBASX,CAAA;AATD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,eAAA,CAAA,GAAA,gBAAgC,CAAA;AAChC,IAAA,mBAAA,CAAA,kBAAA,CAAA,GAAA,mBAAsC,CAAA;AACtC,IAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,UAAoB,CAAA;AACpB,IAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,WAAsB,CAAA;AACtB,IAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,WAAsB,CAAA;AACtB,IAAA,mBAAA,CAAA,YAAA,CAAA,GAAA,aAA0B,CAAA;AAC1B,IAAA,mBAAA,CAAA,aAAA,CAAA,GAAA,cAA4B,CAAA;AAC5B,IAAA,mBAAA,CAAA,eAAA,CAAA,GAAA,gBAAgC,CAAA;AAClC,CAAC,EATW,mBAAmB,KAAnB,mBAAmB,GAS9B,EAAA,CAAA,CAAA,CAAA;AAOD,IAAY,mBAGX,CAAA;AAHD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,YAAA,CAAA,GAAA,aAA0B,CAAA;AAC1B,IAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,WAAsB,CAAA;AACxB,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,GAG9B,EAAA,CAAA,CAAA,CAAA;AAmBD,IAAY,aAIX,CAAA;AAJD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,aAAA,CAAA,eAAA,CAAA,GAAA,gBAAgC,CAAA;AAChC,IAAA,aAAA,CAAA,eAAA,CAAA,GAAA,gBAAgC,CAAA;AAClC,CAAC,EAJW,aAAa,KAAb,aAAa,GAIxB,EAAA,CAAA,CAAA,CAAA;AAsOD,IAAY,yBAGX,CAAA;AAHD,CAAA,UAAY,yBAAyB,EAAA;AACnC,IAAA,yBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,yBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC7B,CAAC,EAHW,yBAAyB,KAAzB,yBAAyB,GAGpC,EAAA,CAAA,CAAA,CAAA;AAuED,IAAY,kBAIX,CAAA;AAJD,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,GAI7B,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,gBAMX,CAAA;AAND,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EANW,gBAAgB,KAAhB,gBAAgB,GAM3B,EAAA,CAAA,CAAA,CAAA;AAgCD,IAAY,YAkDX,CAAA;AAlDD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,wBAAA,CAAA,GAAA,2BAAoD,CAAA;AACpD,IAAA,YAAA,CAAA,wBAAA,CAAA,GAAA,2BAAoD,CAAA;AACpD,IAAA,YAAA,CAAA,4BAAA,CAAA,GAAA,iCAA8D,CAAA;AAC9D,IAAA,YAAA,CAAA,8CAAA,CAAA,GAAA,sDAAqG,CAAA;AACrG,IAAA,YAAA,CAAA,wCAAA,CAAA,GAAA,gDAAyF,CAAA;AACzF,IAAA,YAAA,CAAA,8BAAA,CAAA,GAAA,mCAAkE,CAAA;AAClE,IAAA,YAAA,CAAA,gDAAA,CAAA,GAAA,wDAAyG,CAAA;AACzG,IAAA,YAAA,CAAA,wDAAA,CAAA,GAAA,kEAA2H,CAAA;AAC3H,IAAA,YAAA,CAAA,0CAAA,CAAA,GAAA,kDAA6F,CAAA;AAC7F,IAAA,YAAA,CAAA,wBAAA,CAAA,GAAA,2BAAoD,CAAA;AACpD,IAAA,YAAA,CAAA,wBAAA,CAAA,GAAA,2BAAoD,CAAA;AACpD,IAAA,YAAA,CAAA,+CAAA,CAAA,GAAA,qDAAqG,CAAA;AACrG,IAAA,YAAA,CAAA,wBAAA,CAAA,GAAA,2BAAoD,CAAA;AACpD,IAAA,YAAA,CAAA,0CAAA,CAAA,GAAA,gDAA2F,CAAA;AAC3F,IAAA,YAAA,CAAA,oCAAA,CAAA,GAAA,yCAA8E,CAAA;AAC9E,IAAA,YAAA,CAAA,wBAAA,CAAA,GAAA,2BAAoD,CAAA;AACpD,IAAA,YAAA,CAAA,4BAAA,CAAA,GAAA,iCAA8D,CAAA;AAC9D,IAAA,YAAA,CAAA,mDAAA,CAAA,GAAA,2DAA+G,CAAA;AAC/G,IAAA,YAAA,CAAA,2CAAA,CAAA,GAAA,kDAA8F,CAAA;AAC9F,IAAA,YAAA,CAAA,wCAAA,CAAA,GAAA,gDAAyF,CAAA;AACzF,IAAA,YAAA,CAAA,8BAAA,CAAA,GAAA,mCAAkE,CAAA;AAClE,IAAA,YAAA,CAAA,6CAAA,CAAA,GAAA,oDAAkG,CAAA;AAClG,IAAA,YAAA,CAAA,gDAAA,CAAA,GAAA,wDAAyG,CAAA;AACzG,IAAA,YAAA,CAAA,0CAAA,CAAA,GAAA,kDAA6F,CAAA;AAC7F,IAAA,YAAA,CAAA,wBAAA,CAAA,GAAA,2BAAoD,CAAA;AACpD,IAAA,YAAA,CAAA,0CAAA,CAAA,GAAA,gDAA2F,CAAA;AAC3F,IAAA,YAAA,CAAA,kBAAA,CAAA,GAAA,qBAAwC,CAAA;AACxC,IAAA,YAAA,CAAA,mCAAA,CAAA,GAAA,yCAA6E,CAAA;AAC7E,IAAA,YAAA,CAAA,kBAAA,CAAA,GAAA,qBAAwC,CAAA;AACxC,IAAA,YAAA,CAAA,8BAAA,CAAA,GAAA,mCAAkE,CAAA;AAClE,IAAA,YAAA,CAAA,8BAAA,CAAA,GAAA,oCAAmE,CAAA;AACnE,IAAA,YAAA,CAAA,kBAAA,CAAA,GAAA,qBAAwC,CAAA;AACxC,IAAA,YAAA,CAAA,8BAAA,CAAA,GAAA,oCAAmE,CAAA;AACnE,IAAA,YAAA,CAAA,iBAAA,CAAA,GAAA,oBAAsC,CAAA;AACtC,IAAA,YAAA,CAAA,iCAAA,CAAA,GAAA,uCAAyE,CAAA;AACzE,IAAA,YAAA,CAAA,iCAAA,CAAA,GAAA,uCAAyE,CAAA;AACzE,IAAA,YAAA,CAAA,6BAAA,CAAA,GAAA,mCAAiE,CAAA;AACjE,IAAA,YAAA,CAAA,kCAAA,CAAA,GAAA,wCAA2E,CAAA;AAC3E,IAAA,YAAA,CAAA,kBAAA,CAAA,GAAA,qBAAwC,CAAA;AACxC,IAAA,YAAA,CAAA,sBAAA,CAAA,GAAA,2BAAkD,CAAA;AAClD,IAAA,YAAA,CAAA,kCAAA,CAAA,GAAA,0CAA6E,CAAA;AAC7E,IAAA,YAAA,CAAA,kCAAA,CAAA,GAAA,0CAA6E,CAAA;AAC7E,IAAA,YAAA,CAAA,wBAAA,CAAA,GAAA,6BAAsD,CAAA;AACtD,IAAA,YAAA,CAAA,4CAAA,CAAA,GAAA,sDAAmG,CAAA;AACnG,IAAA,YAAA,CAAA,oCAAA,CAAA,GAAA,4CAAiF,CAAA;AACjF,IAAA,YAAA,CAAA,oCAAA,CAAA,GAAA,4CAAiF,CAAA;AACjF,IAAA,YAAA,CAAA,wBAAA,CAAA,GAAA,2BAAoD,CAAA;AACpD,IAAA,YAAA,CAAA,wBAAA,CAAA,GAAA,2BAAoD,CAAA;AACpD,IAAA,YAAA,CAAA,uCAAA,CAAA,GAAA,6CAAqF,CAAA;AACvF,CAAC,EAlDW,YAAY,KAAZ,YAAY,GAkDvB,EAAA,CAAA,CAAA,CAAA;AAuJD,IAAY,6BAEX,CAAA;AAFD,CAAA,UAAY,6BAA6B,EAAA;AACvC,IAAA,6BAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAFW,6BAA6B,KAA7B,6BAA6B,GAExC,EAAA,CAAA,CAAA,CAAA;AAmFD,IAAY,iBAGX,CAAA;AAHD,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,GAG5B,EAAA,CAAA,CAAA,CAAA;AAyOD,IAAY,aAGX,CAAA;AAHD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAHW,aAAa,KAAb,aAAa,GAGxB,EAAA,CAAA,CAAA,CAAA;AAuYD,IAAY,uBAEX,CAAA;AAFD,CAAA,UAAY,uBAAuB,EAAA;AACjC,IAAA,uBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC7B,CAAC,EAFW,uBAAuB,KAAvB,uBAAuB,GAElC,EAAA,CAAA,CAAA,CAAA;AAQD,IAAY,iBAIX,CAAA;AAJD,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACzB,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,GAI5B,EAAA,CAAA,CAAA,CAAA;AA4ND,IAAY,aAGX,CAAA;AAHD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AAC3B,CAAC,EAHW,aAAa,KAAb,aAAa,GAGxB,EAAA,CAAA,CAAA,CAAA;AA2ED,IAAY,aAGX,CAAA;AAHD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,eAAA,CAAA,GAAA,gBAAgC,CAAA;AAChC,IAAA,aAAA,CAAA,gBAAA,CAAA,GAAA,iBAAkC,CAAA;AACpC,CAAC,EAHW,aAAa,KAAb,aAAa,GAGxB,EAAA,CAAA,CAAA,CAAA;AAmhCD,IAAY,gBAGX,CAAA;AAHD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,GAG3B,EAAA,CAAA,CAAA,CAAA;AAuBD,IAAY,cAGX,CAAA;AAHD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,cAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EAHW,cAAc,KAAd,cAAc,GAGzB,EAAA,CAAA,CAAA,CAAA;AAgLD,IAAY,yBAIX,CAAA;AAJD,CAAA,UAAY,yBAAyB,EAAA;AACnC,IAAA,yBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,yBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,yBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EAJW,yBAAyB,KAAzB,yBAAyB,GAIpC,EAAA,CAAA,CAAA,CAAA;AAkBD,IAAY,qBAIX,CAAA;AAJD,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EAJW,qBAAqB,KAArB,qBAAqB,GAIhC,EAAA,CAAA,CAAA,CAAA;AA0CD,IAAY,sBAGX,CAAA;AAHD,CAAA,UAAY,sBAAsB,EAAA;AAChC,IAAA,sBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,sBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,GAGjC,EAAA,CAAA,CAAA,CAAA;AA+BD,IAAY,WA8HX,CAAA;AA9HD,CAAA,UAAY,WAAW,EAAA;AAYrB,IAAA,WAAA,CAAA,kBAAA,CAAA,GAAA,mBAAsC,CAAA;AAQtC,IAAA,WAAA,CAAA,iBAAA,CAAA,GAAA,mBAAqC,CAAA;AAerC,IAAA,WAAA,CAAA,eAAA,CAAA,GAAA,iBAAiC,CAAA;AAWjC,IAAA,WAAA,CAAA,iBAAA,CAAA,GAAA,kBAAoC,CAAA;AAWpC,IAAA,WAAA,CAAA,eAAA,CAAA,GAAA,gBAAgC,CAAA;AAehC,IAAA,WAAA,CAAA,iBAAA,CAAA,GAAA,kBAAoC,CAAA;AAgBpC,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,eAA8B,CAAA;AAO9B,IAAA,WAAA,CAAA,YAAA,CAAA,GAAA,aAA0B,CAAA;AAO1B,IAAA,WAAA,CAAA,sBAAA,CAAA,GAAA,uBAA8C,CAAA;AAO9C,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,eAA8B,CAAA;AAO9B,IAAA,WAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAS/B,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EA9HW,WAAW,KAAX,WAAW,GA8HtB,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,SA6GX,CAAA;AA7GD,CAAA,UAAY,SAAS,EAAA;AAUnB,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,aAA0B,CAAA;AAmB1B,IAAA,SAAA,CAAA,oBAAA,CAAA,GAAA,qBAA0C,CAAA;AAU1C,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AAerB,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,WAAsB,CAAA;AAiBtB,IAAA,SAAA,CAAA,kBAAA,CAAA,GAAA,mBAAsC,CAAA;AAStC,IAAA,SAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC,CAAA;AAUnC,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAkB3B,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EA7GW,SAAS,KAAT,SAAS,GA6GpB,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,mBAKX,CAAA;AALD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EALW,mBAAmB,KAAnB,mBAAmB,GAK9B,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,kBAIX,CAAA;AAJD,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,GAI7B,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,cAIX,CAAA;AAJD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,WAAA,CAAA,GAAA,YAAwB,CAAA;AACxB,IAAA,cAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,cAAA,CAAA,cAAA,CAAA,GAAA,eAA8B,CAAA;AAChC,CAAC,EAJW,cAAc,KAAd,cAAc,GAIzB,EAAA,CAAA,CAAA,CAAA;AA8JD,IAAY,cAIX,CAAA;AAJD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,UAAA,CAAA,GAAA,WAAsB,CAAA;AACtB,IAAA,cAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,cAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAJW,cAAc,KAAd,cAAc,GAIzB,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,SAGX,CAAA;AAHD,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,SAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EAHW,SAAS,KAAT,SAAS,GAGpB,EAAA,CAAA,CAAA,CAAA;AAkLD,IAAY,MAGX,CAAA;AAHD,CAAA,UAAY,MAAM,EAAA;AAChB,IAAA,MAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,MAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAHW,MAAM,KAAN,MAAM,GAGjB,EAAA,CAAA,CAAA,CAAA;AAiED,IAAY,mBAkCX,CAAA;AAlCD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,eAAA,CAAA,GAAA,gBAAgC,CAAA;AAChC,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,mBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,mBAAA,CAAA,kBAAA,CAAA,GAAA,mBAAsC,CAAA;AACtC,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,mBAAA,CAAA,cAAA,CAAA,GAAA,eAA8B,CAAA;AAC9B,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,mBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,mBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,WAAsB,CAAA;AACtB,IAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,YAAwB,CAAA;AACxB,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,mBAAA,CAAA,aAAA,CAAA,GAAA,cAA4B,CAAA;AAC5B,IAAA,mBAAA,CAAA,eAAA,CAAA,GAAA,gBAAgC,CAAA;AAChC,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,mBAAA,CAAA,aAAA,CAAA,GAAA,cAA4B,CAAA;AAC5B,IAAA,mBAAA,CAAA,mBAAA,CAAA,GAAA,qBAAyC,CAAA;AACzC,IAAA,mBAAA,CAAA,0BAAA,CAAA,GAAA,6BAAwD,CAAA;AACxD,IAAA,mBAAA,CAAA,yBAAA,CAAA,GAAA,4BAAsD,CAAA;AACtD,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,mBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,mBAAA,CAAA,oBAAA,CAAA,GAAA,qBAA0C,CAAA;AAC1C,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,UAAoB,CAAA;AACpB,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAlCW,mBAAmB,KAAnB,mBAAmB,GAkC9B,EAAA,CAAA,CAAA,CAAA;AA2DD,IAAY,wBAKX,CAAA;AALD,CAAA,UAAY,wBAAwB,EAAA;AAClC,IAAA,wBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,wBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,wBAAA,CAAA,kBAAA,CAAA,GAAA,oBAAuC,CAAA;AACvC,IAAA,wBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AAC3B,CAAC,EALW,wBAAwB,KAAxB,wBAAwB,GAKnC,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,cAOX,CAAA;AAPD,CAAA,UAAY,cAAc,EAAA;AACxB,IAAA,cAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,cAAA,CAAA,iBAAA,CAAA,GAAA,kBAAoC,CAAA;AACpC,IAAA,cAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,cAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,cAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAPW,cAAc,KAAd,cAAc,GAOzB,EAAA,CAAA,CAAA,CAAA;AAiKD,IAAY,UAKX,CAAA;AALD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,0BAAA,CAAA,GAAA,8BAAyD,CAAA;AACzD,IAAA,UAAA,CAAA,wBAAA,CAAA,GAAA,4BAAqD,CAAA;AACrD,IAAA,UAAA,CAAA,kCAAA,CAAA,GAAA,wCAA2E,CAAA;AAC3E,IAAA,UAAA,CAAA,uBAAA,CAAA,GAAA,2BAAmD,CAAA;AACrD,CAAC,EALW,UAAU,KAAV,UAAU,GAKrB,EAAA,CAAA,CAAA,CAAA;AAqCD,IAAY,aAGX,CAAA;AAHD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAHW,aAAa,KAAb,aAAa,GAGxB,EAAA,CAAA,CAAA,CAAA;AAuFD,IAAY,2BAKX,CAAA;AALD,CAAA,UAAY,2BAA2B,EAAA;AACrC,IAAA,2BAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,2BAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,2BAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,2BAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EALW,2BAA2B,KAA3B,2BAA2B,GAKtC,EAAA,CAAA,CAAA,CAAA;AAwCD,IAAY,mBAGX,CAAA;AAHD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,GAG9B,EAAA,CAAA,CAAA,CAAA;AAutED,IAAY,oBAEX,CAAA;AAFD,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACzB,CAAC,EAFW,oBAAoB,KAApB,oBAAoB,GAE/B,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,oBAKX,CAAA;AALD,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,oBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EALW,oBAAoB,KAApB,oBAAoB,GAK/B,EAAA,CAAA,CAAA,CAAA;AAgFD,IAAY,iBAEX,CAAA;AAFD,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,eAAA,CAAA,GAAA,gBAAgC,CAAA;AAClC,CAAC,EAFW,iBAAiB,KAAjB,iBAAiB,GAE5B,EAAA,CAAA,CAAA,CAAA;AA0LD,IAAY,8BAKX,CAAA;AALD,CAAA,UAAY,8BAA8B,EAAA;AACxC,IAAA,8BAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,8BAAA,CAAA,aAAA,CAAA,GAAA,cAA4B,CAAA;AAC5B,IAAA,8BAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,8BAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACb,CAAC,EALW,8BAA8B,KAA9B,8BAA8B,GAKzC,EAAA,CAAA,CAAA,CAAA;AAmDD,IAAY,wBAKX,CAAA;AALD,CAAA,UAAY,wBAAwB,EAAA;AAElC,IAAA,wBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AAEnB,IAAA,wBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EALW,wBAAwB,KAAxB,wBAAwB,GAKnC,EAAA,CAAA,CAAA,CAAA;AAmLD,IAAY,yBAGX,CAAA;AAHD,CAAA,UAAY,yBAAyB,EAAA;AACnC,IAAA,yBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,yBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACzB,CAAC,EAHW,yBAAyB,KAAzB,yBAAyB,GAGpC,EAAA,CAAA,CAAA,CAAA;AAaD,IAAY,4BAgBX,CAAA;AAhBD,CAAA,UAAY,4BAA4B,EAAA;AACtC,IAAA,4BAAA,CAAA,oBAAA,CAAA,GAAA,sBAA2C,CAAA;AAC3C,IAAA,4BAAA,CAAA,oBAAA,CAAA,GAAA,sBAA2C,CAAA;AAC3C,IAAA,4BAAA,CAAA,cAAA,CAAA,GAAA,gBAA+B,CAAA;AAC/B,IAAA,4BAAA,CAAA,kBAAA,CAAA,GAAA,oBAAuC,CAAA;AACvC,IAAA,4BAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,4BAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,4BAAA,CAAA,qBAAA,CAAA,GAAA,uBAA6C,CAAA;AAC7C,IAAA,4BAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,4BAAA,CAAA,eAAA,CAAA,GAAA,gBAAgC,CAAA;AAChC,IAAA,4BAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,4BAAA,CAAA,kBAAA,CAAA,GAAA,mBAAsC,CAAA;AACtC,IAAA,4BAAA,CAAA,oBAAA,CAAA,GAAA,sBAA2C,CAAA;AAC3C,IAAA,4BAAA,CAAA,gBAAA,CAAA,GAAA,iBAAkC,CAAA;AAClC,IAAA,4BAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,4BAAA,CAAA,eAAA,CAAA,GAAA,gBAAgC,CAAA;AAClC,CAAC,EAhBW,4BAA4B,KAA5B,4BAA4B,GAgBvC,EAAA,CAAA,CAAA,CAAA;AAoDD,IAAY,YAGX,CAAA;AAHD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,aAAA,CAAA,GAAA,eAA6B,CAAA;AAC7B,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EAHW,YAAY,KAAZ,YAAY,GAGvB,EAAA,CAAA,CAAA,CAAA;AAiCD,IAAY,UAIX,CAAA;AAJD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,UAAA,CAAA,UAAA,CAAA,GAAA,WAAsB,CAAA;AACtB,IAAA,UAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACzB,CAAC,EAJW,UAAU,KAAV,UAAU,GAIrB,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,aAIX,CAAA;AAJD,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EAJW,aAAa,KAAb,aAAa,GAIxB,EAAA,CAAA,CAAA,CAAA;AAqBD,IAAY,eAKX,CAAA;AALD,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,eAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,eAAA,CAAA,eAAA,CAAA,GAAA,gBAAgC,CAAA;AAChC,IAAA,eAAA,CAAA,iBAAA,CAAA,GAAA,kBAAoC,CAAA;AACtC,CAAC,EALW,eAAe,KAAf,eAAe,GAK1B,EAAA,CAAA,CAAA,CAAA;AAmCD,IAAY,sBAGX,CAAA;AAHD,CAAA,UAAY,sBAAsB,EAAA;AAChC,IAAA,sBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,sBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,GAGjC,EAAA,CAAA,CAAA,CAAA;AA6FD,IAAY,mBAGX,CAAA;AAHD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,GAG9B,EAAA,CAAA,CAAA,CAAA;AA0BD,IAAY,2BAKX,CAAA;AALD,CAAA,UAAY,2BAA2B,EAAA;AACrC,IAAA,2BAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,2BAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,2BAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,2BAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EALW,2BAA2B,KAA3B,2BAA2B,GAKtC,EAAA,CAAA,CAAA,CAAA;AA4DD,IAAY,yBAKX,CAAA;AALD,CAAA,UAAY,yBAAyB,EAAA;AACnC,IAAA,yBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,yBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,yBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,yBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACX,CAAC,EALW,yBAAyB,KAAzB,yBAAyB,GAKpC,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,qBAGX,CAAA;AAHD,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACzB,CAAC,EAHW,qBAAqB,KAArB,qBAAqB,GAGhC,EAAA,CAAA,CAAA,CAAA;AAoED,IAAY,oBAGX,CAAA;AAHD,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,oBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACzB,CAAC,EAHW,oBAAoB,KAApB,oBAAoB,GAG/B,EAAA,CAAA,CAAA,CAAA;AAwBD,IAAY,gBAGX,CAAA;AAHD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,GAG3B,EAAA,CAAA,CAAA,CAAA;AA86BD,IAAY,iBAMX,CAAA;AAND,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,SAAkB,CAAA;AAClB,IAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,UAAoB,CAAA;AACpB,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,WAAsB,CAAA;AACtB,IAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,UAAoB,CAAA;AACpB,IAAA,iBAAA,CAAA,YAAA,CAAA,GAAA,aAA0B,CAAA;AAC5B,CAAC,EANW,iBAAiB,KAAjB,iBAAiB,GAM5B,EAAA,CAAA,CAAA,CAAA;AA4BD,IAAY,SAGX,CAAA;AAHD,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AAC3B,CAAC,EAHW,SAAS,KAAT,SAAS,GAGpB,EAAA,CAAA,CAAA,CAAA;AAyDD,IAAY,YAGX,CAAA;AAHD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAHW,YAAY,KAAZ,YAAY,GAGvB,EAAA,CAAA,CAAA,CAAA;AAiDD,IAAY,gBAIX,CAAA;AAJD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,eAAA,CAAA,GAAA,gBAAgC,CAAA;AAChC,IAAA,gBAAA,CAAA,gBAAA,CAAA,GAAA,iBAAkC,CAAA;AAClC,IAAA,gBAAA,CAAA,eAAA,CAAA,GAAA,gBAAgC,CAAA;AAClC,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAI3B,EAAA,CAAA,CAAA,CAAA;AAyBD,IAAY,kBAIX,CAAA;AAJD,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,qBAAA,CAAA,GAAA,sBAA4C,CAAA;AAC5C,IAAA,kBAAA,CAAA,0BAAA,CAAA,GAAA,4BAAuD,CAAA;AACvD,IAAA,kBAAA,CAAA,2BAAA,CAAA,GAAA,6BAAyD,CAAA;AAC3D,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,GAI7B,EAAA,CAAA,CAAA,CAAA;AA+ND,IAAY,wBAMX,CAAA;AAND,CAAA,UAAY,wBAAwB,EAAA;AAClC,IAAA,wBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,wBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,wBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,wBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,wBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EANW,wBAAwB,KAAxB,wBAAwB,GAMnC,EAAA,CAAA,CAAA,CAAA;AA2BD,IAAY,qBAGX,CAAA;AAHD,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,qBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAHW,qBAAqB,KAArB,qBAAqB,GAGhC,EAAA,CAAA,CAAA,CAAA;AA4GD,IAAY,OAIX,CAAA;AAJD,CAAA,UAAY,OAAO,EAAA;AACjB,IAAA,OAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,OAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,OAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EAJW,OAAO,KAAP,OAAO,GAIlB,EAAA,CAAA,CAAA,CAAA;AAQD,IAAY,cAKX,CAAA;AALD,CAAA,UAAY,cAAc,EAAA;AAExB,IAAA,cAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AAEf,IAAA,cAAA,CAAA,YAAA,CAAA,GAAA,aAA0B,CAAA;AAC5B,CAAC,EALW,cAAc,KAAd,cAAc,GAKzB,EAAA,CAAA,CAAA,CAAA;AAuCD,IAAY,MAOX,CAAA;AAPD,CAAA,UAAY,MAAM,EAAA;AAChB,IAAA,MAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,MAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,MAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,MAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,MAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,MAAA,CAAA,WAAA,CAAA,GAAA,YAAwB,CAAA;AAC1B,CAAC,EAPW,MAAM,KAAN,MAAM,GAOjB,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,eAKX,CAAA;AALD,CAAA,UAAY,eAAe,EAAA;AAEzB,IAAA,eAAA,CAAA,gBAAA,CAAA,GAAA,iBAAkC,CAAA;AAElC,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EALW,eAAe,KAAf,eAAe,GAK1B,EAAA,CAAA,CAAA,CAAA;AAqCD,IAAY,qBAGX,CAAA;AAHD,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,qBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EAHW,qBAAqB,KAArB,qBAAqB,GAGhC,EAAA,CAAA,CAAA,CAAA;AAiBD,IAAY,QAGX,CAAA;AAHD,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,QAAA,CAAA,SAAA,CAAA,GAAA,UAAoB,CAAA;AACtB,CAAC,EAHW,QAAQ,KAAR,QAAQ,GAGnB,EAAA,CAAA,CAAA,CAAA;AA+CD,IAAY,0BAGX,CAAA;AAHD,CAAA,UAAY,0BAA0B,EAAA;AACpC,IAAA,0BAAA,CAAA,YAAA,CAAA,GAAA,aAA0B,CAAA;AAC1B,IAAA,0BAAA,CAAA,YAAA,CAAA,GAAA,aAA0B,CAAA;AAC5B,CAAC,EAHW,0BAA0B,KAA1B,0BAA0B,GAGrC,EAAA,CAAA,CAAA,CAAA;AA2BD,IAAY,uBAGX,CAAA;AAHD,CAAA,UAAY,uBAAuB,EAAA;AACjC,IAAA,uBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,uBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAHW,uBAAuB,KAAvB,uBAAuB,GAGlC,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,qBAGX,CAAA;AAHD,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,qBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AAC3B,CAAC,EAHW,qBAAqB,KAArB,qBAAqB,GAGhC,EAAA,CAAA,CAAA,CAAA;AAsBD,IAAY,UAGX,CAAA;AAHD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAHW,UAAU,KAAV,UAAU,GAGrB,EAAA,CAAA,CAAA,CAAA;AAmDD,IAAY,eAKX,CAAA;AALD,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,eAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EALW,eAAe,KAAf,eAAe,GAK1B,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,cAOX,CAAA;AAPD,CAAA,UAAY,cAAc,EAAA;AAExB,IAAA,cAAA,CAAA,gBAAA,CAAA,GAAA,kBAAmC,CAAA;AAEnC,IAAA,cAAA,CAAA,qBAAA,CAAA,GAAA,wBAA8C,CAAA;AAE9C,IAAA,cAAA,CAAA,eAAA,CAAA,GAAA,iBAAiC,CAAA;AACnC,CAAC,EAPW,cAAc,KAAd,cAAc,GAOzB,EAAA,CAAA,CAAA,CAAA;AAQD,IAAY,WAKX,CAAA;AALD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,WAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EALW,WAAW,KAAX,WAAW,GAKtB,EAAA,CAAA,CAAA,CAAA;AA6FD,IAAY,2BAGX,CAAA;AAHD,CAAA,UAAY,2BAA2B,EAAA;AACrC,IAAA,2BAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,2BAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACzB,CAAC,EAHW,2BAA2B,KAA3B,2BAA2B,GAGtC,EAAA,CAAA,CAAA,CAAA;AAgBD,IAAY,mBAGX,CAAA;AAHD,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,YAAA,CAAA,GAAA,aAA0B,CAAA;AAC1B,IAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACvB,CAAC,EAHW,mBAAmB,KAAnB,mBAAmB,GAG9B,EAAA,CAAA,CAAA,CAAA;AAm7BD,IAAY,WAEX,CAAA;AAFD,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EAFW,WAAW,KAAX,WAAW,GAEtB,EAAA,CAAA,CAAA,CAAA;AAoLD,IAAY,aAKX,CAAA;AALD,CAAA,UAAY,aAAa,EAAA;AAEvB,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AAEjB,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EALW,aAAa,KAAb,aAAa,GAKxB,EAAA,CAAA,CAAA,CAAA;AAED,IAAY,oBAIX,CAAA;AAJD,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,oBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAJW,oBAAoB,KAApB,oBAAoB,GAI/B,EAAA,CAAA,CAAA,CAAA;AA4JD,IAAY,gBAOX,CAAA;AAPD,CAAA,UAAY,gBAAgB,EAAA;AAE1B,IAAA,gBAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AAEX,IAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AAEvB,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EAPW,gBAAgB,KAAhB,gBAAgB,GAO3B,EAAA,CAAA,CAAA,CAAA;AA2BD,IAAY,aAMX,CAAA;AAND,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EANW,aAAa,KAAb,aAAa,GAMxB,EAAA,CAAA,CAAA,CAAA;AAmRD,IAAY,yBAMX,CAAA;AAND,CAAA,UAAY,yBAAyB,EAAA;AACnC,IAAA,yBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,yBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,yBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,yBAAA,CAAA,IAAA,CAAA,GAAA,IAAS,CAAA;AACT,IAAA,yBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EANW,yBAAyB,KAAzB,yBAAyB,GAMpC,EAAA,CAAA,CAAA;;MCvtVY,cAAc,CAAA;AAEzB,IAAA,WAAA,CACqB,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KAC9B;AAQE,IAAA,YAAY,CAAC,WAAyB,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAuC;YAC7D,WAAW;AACX,YAAA,WAAW,EAAE,KAAK;YAClB,KAAK,EAAE,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyCT,MAAA,CAAA;AACF,SAAA,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,EAAC,KAAI;AACnC,YAAA,IAAI,CAAC,eAAe;AAAE,gBAAA,OAAO,IAAI,CAAC;AAClC,YAAA,OAAO,eAAe,CAAC;SACxB,CAAC,CACH,CAAC;KACH;+GAhEU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCGY,WAAW,CAAA;aAQR,IAAS,CAAA,SAAA,GAAW,EAAX,CAAc,EAAA;aACvB,IAAY,CAAA,YAAA,GAAW,EAAX,CAAc,EAAA;IASxC,WACqB,CAAA,MAAc,EACd,cAA8B,EAAA;QAD9B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;KAC9C;AAUE,IAAA,KAAK,CAAC,KAAkE,EAAA;AAC7E,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAiC;YACxD,SAAS,EAAE,EAAE,KAAK,EAAE;YACpB,QAAQ,EAAE,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;AAyBZ,MAAA,CAAA;SACF,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI;AACf,YAAA,IAAI,IAAI,EAAE,WAAW,EAAE;AACrB,gBAAA,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;AAErF,gBAAA,IAAI,CAAC,IAAI,GAAG,IAAY,CAAC;AACzB,gBAAA,IAAI,CAAC,IAAK,CAAC,KAAK,GAAG,0BAA0B,CAAC;AAC9C,gBAAA,WAAW,CAAC,SAAS,GAAG,WAAW,IAAI,EAAE,CAAC;AAC1C,gBAAA,WAAW,CAAC,YAAY,GAAG,YAAY,IAAI,EAAE,CAAC;AAE9C,gBAAA,IAAI,eAAe,KAAK,eAAe,CAAC,cAAc,EAAG;oBACvD,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;iBAC1D;gBAED,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,IAAK,CAAC,IAAI,CAAC,CAAC;AAClD,gBAAA,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;gBACrD,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;aAChE;SACF,CAAC,CACH,CAAC;KACH;AAOM,IAAA,YAAY,CAAC,SAA+C,EAAA;AACjE,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AACxB,YAAA,OAAO,EAAE;AACP,gBAAA,OAAO,EAAE;AACP,oBAAA,gBAAgB,EAAE,UAAU;AAC5B,oBAAA,gBAAgB,EAAE,cAAc;AACjC,iBAAA;AACF,aAAA;YACD,SAAS;YACT,QAAQ,EAAE,GAAG,CAAA,CAAA;;;;;;;AAOZ,MAAA,CAAA;AACF,SAAA,CAAC,CAAC;KACJ;AASM,IAAA,UAAU,CAAC,WAAyB,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CACvD,GAAG,CAAC,CAAC,IAA4B,KAAI;AACnC,YAAA,IAAI,CAAC,IAAI;gBAAE,OAAO;YAClB,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,0BAA0B,EAAU,CAAC;AAEnE,YAAA,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,EAAM,KAAI;gBACnE,IAAI,SAAS,KAAK,oBAAoB;AAAE,oBAAA,IAAI,CAAC,IAAK,CAAC,KAAK,GAAG,SAAS,CAAC;AACvE,aAAC,CAAC,CAAC;AAEH,YAAA,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,EAAE,WAAW,EAAE,aAAa,EAAO,KAAI;gBACtE,IAAI,aAAa,KAAK,gBAAgB;AAAE,oBAAA,IAAI,CAAC,IAAK,CAAC,KAAK,GAAG,WAAW,CAAC;AACzE,aAAC,CAAC,CAAC;SACJ,CAAC,CACH,CAAC;KACH;AAQM,IAAA,kBAAkB,CAAC,KAAa,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AACxB,YAAA,SAAS,EAAE;AACT,gBAAA,KAAK,EAAE;oBACL,KAAK;oBACL,cAAc,EAAE,cAAc,CAAC,KAAK;AACrC,iBAAA;AACF,aAAA;YACD,QAAQ,EAAG,GAAG,CAAA,CAAA;;;;AAIb,MAAA,CAAA;AACF,SAAA,CAAC,CAAC;KACJ;IAaM,iBAAiB,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAA4G,EAAA;AACxL,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACxB,QAAQ,EAAG,GAAG,CAAA,CAAA;;;;AAIb,MAAA,CAAA;AACD,YAAA,SAAS,EAAE;AACT,gBAAA,KAAK,EAAE;oBACL,WAAW;oBACX,WAAW;oBACX,cAAc;oBACd,SAAS;AACV,iBAAA;AACF,aAAA;AACF,SAAA,CAAC,CAAC;KACJ;AAQM,IAAA,cAAc,CAAC,KAAmD,EAAA;AACvE,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACxB,QAAQ,EAAE,GAAG,CAAA,CAAA;;;;AAIZ,MAAA,CAAA;YACD,SAAS,EAAE,EAAE,KAAK,EAAE;AACrB,SAAA,CAAC,CAAC;KACJ;+GArMU,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAK,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAX,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCDY,eAAe,CAAA;AAE1B,IAAA,WAAA,CACqB,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KAC9B;IAQE,KAAK,CAAC,UAAkB,EAAE,EAAA;AAC/B,QAAA,MAAM,KAAK,GAA0B,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC;QACtG,IAAI,OAAO,KAAK,EAAE;AAAE,YAAA,KAAK,CAAC,IAAI,GAAG,OAAO,CAAC;AAEzC,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACvB,YAAA,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,EAAE,KAAK,EAAE;YACpB,KAAK,EAAG,GAAG,CAAA,CAAA;;;;;;;;;;;;AAYV,MAAA,CAAA;AACF,SAAA,CAAC,CAAC;KACJ;+GAjCU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAL,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCCY,cAAc,CAAA;AAEzB,IAAA,WAAA,CACqB,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KAC9B;AAQE,IAAA,KAAK,CAAC,KAA8B,GAAA,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,EAAA;AACzG,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AACvB,YAAA,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,EAAE,KAAK,EAAE;YACpB,KAAK,EAAE,GAAG,CAAA,CAAA;;;;;;;;;;;;;;;;;;AAkBT,MAAA,CAAA;AACF,SAAA,CAAC,CAAC;KACJ;+GApCU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MC4BY,0BAA0B,CAAA;AAuHrC,IAAA,WAAA,CACmC,WAAmB,EACb,iBAAyB,EAC7C,EAAqB,EACrB,eAAgC,EAAA;QAHlB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAQ;QACb,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAQ;QAC7C,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QACrB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QApHrC,IAAK,CAAA,KAAA,GAAW,UAAU,CAAC;QAO3B,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAO1B,IAAa,CAAA,aAAA,GAAY,KAAK,CAAC;QAO/B,IAAW,CAAA,WAAA,GAAkB,IAAI,CAAC;QAOlC,IAAgB,CAAA,gBAAA,GAAY,KAAK,CAAC;QAOlC,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAO1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAMzB,QAAA,IAAA,CAAA,QAAQ,GAAqE,IAAI,YAAY,EAAE,CAAC;QAM1G,IAAK,CAAA,KAAA,GAAuD,EAAE,CAAC;QAO/D,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAO1B,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAO3B,IAAK,CAAA,KAAA,GAAe,IAAI,CAAC;QAoBtB,IAAc,CAAA,cAAA,GAAW,CAAC,CAAC;AAM3B,QAAA,IAAA,CAAA,OAAO,GAAwB,CAAC,IAAS,KAAI,GAAG,CAAC;AAMjD,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAG,CAAC;KAUvC;IAEG,QAAQ,GAAA;QACb,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC;YAChD,KAAK,EAAE,MAAK;AACV,gBAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAChB,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aAC1B;AACD,YAAA,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,EAAC,EAAC,KAAI;AAClD,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,IAAK,CAAC,CAAC,IAAK,CAAA,EAAA,EAAM,CAAC,CAAC,IAAK,CAAE,CAAA,EAAE,KAAK,EAAE,CAAC,CAAC,IAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAChG,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aAC1B;AACF,SAAA,CAAC,CAAC;KACJ;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC;KACzB;IAMM,gBAAgB,CAAC,EAAO,EAAA,EAAS,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE;IAMrD,iBAAiB,CAAC,EAAO,EAAA,EAAS,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE;AAMxD,IAAA,UAAU,CAAC,GAAQ,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AAEjB,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aACvB;AACH,YAAA,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC;YAExD,IAAI,CAAC,EAAE;AACL,gBAAA,IAAI,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;aAC3C;SACF;AACD,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;AAMM,IAAA,gBAAgB,CAAE,CAAU,EAAA;AACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;AAOM,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;AAC3B,QAAA,OAAO,IAAI,CAAC;KACb;AASM,IAAA,MAAM,CAAC,CAAO,EAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC;AACtB,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,IAAI,CAAC;AAE5B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AAClE,YAAA,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SAC3E;AAED,QAAA,IAAI,CAAC,EAAE,YAAY,KAAK,CAAC;AAAE,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;aAC9C;AACH,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;SACpE;KACF;IAQM,WAAW,CAAC,EAAE,KAAK,EAAO,EAAA;AAC/B,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;KACxE;IAUM,YAAY,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAM,EAAA;QACrE,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,GAAG,CAAC,GAAE,IAAI,MAAM,CAAC,CAAA,eAAA,EAAmB,IAAI,CAAC,cAAe,CAAA,IAAA,CAAM,CAAC,GAAG,OAAO,CAAC;AACzG,QAAA,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAAE,YAAA,cAAc,EAAE,CAAC;KACxE;AAES,IAAA,YAAY,CAAC,CAAU,EAAA;AAC/B,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACnB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;+GAvPU,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAwHxB,aAAa,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EACb,mBAAmB,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAM,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAzHrB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,0BAA0B,EAb1B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,0BAA0B;AACxC,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,0BAA0B;AACxC,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClCH,04CA0CA,EDvBI,MAAA,EAAA,CAAA,qDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,EACX,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,cAAc,4oCACd,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAeP,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBA3BtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,mBAAmB,EAAA,eAAA,EAGZ,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,SAAS;qBACjB,EACQ,OAAA,EAAA;wBACP,WAAW;wBACX,cAAc;wBACd,gBAAgB;qBACjB,EACU,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAA4B,0BAAA;AACxC,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAA4B,0BAAA;AACxC,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,04CAAA,EAAA,MAAA,EAAA,CAAA,qDAAA,CAAA,EAAA,CAAA;;0BA0HE,SAAS;2BAAC,aAAa,CAAA;;0BACvB,SAAS;2BAAC,mBAAmB,CAAA;oGAlHhB,KAAK,EAAA,CAAA;sBAApB,KAAK;gBAOU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBAOU,aAAa,EAAA,CAAA;sBAA5B,KAAK;gBAOU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBAOU,gBAAgB,EAAA,CAAA;sBAA/B,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAMW,QAAQ,EAAA,CAAA;sBAAxB,MAAM;;;MEzDI,yBAAyB,CAAA;AA0FpC,IAAA,WAAA,CACmC,WAAmB,EACjC,EAAqB,EACrB,cAA8B,EAAA;QAFhB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAQ;QACjC,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QACrB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAtFnC,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAO1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAO1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAO1B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAMzB,QAAA,IAAA,CAAA,QAAQ,GAA6C,IAAI,YAAY,EAAE,CAAC;QAMlF,IAAK,CAAA,KAAA,GAAsD,EAAE,CAAC;QAO9D,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAO1B,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAO3B,IAAK,CAAA,KAAA,GAAe,IAAI,CAAC;AAmBtB,QAAA,IAAA,CAAA,OAAO,GAAwB,CAAC,IAAS,KAAI,GAAG,CAAC;AAMjD,QAAA,IAAA,CAAA,SAAS,GAAe,MAAK,GAAG,CAAC;KAQvC;IAEG,QAAQ,GAAA;QACb,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC;YAC/C,KAAK,EAAE,MAAK;AACV,gBAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAChB,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aAC1B;AACD,YAAA,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,EAAC,EAAC,KAAI;AACjD,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,IAAK,EAAE,KAAK,EAAE,CAAC,CAAC,IAAK,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5E,gBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;aAC1B;AACF,SAAA,CAAC,CAAC;KACJ;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC;KACzB;IAMM,gBAAgB,CAAC,EAAO,EAAA,EAAS,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,EAAE;IAMrD,iBAAiB,CAAC,EAAO,EAAA,EAAS,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC,EAAE;AAMxD,IAAA,UAAU,CAAC,GAAQ,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AACjB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;AAMM,IAAA,gBAAgB,CAAE,CAAU,EAAA;AACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;AAOM,IAAA,QAAQ,CAAC,OAAwB,EAAA;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC;AAC3B,QAAA,OAAO,IAAI,CAAC;KACb;AAEM,IAAA,MAAM,CAAC,CAAO,EAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACnB,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACvB;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,CAAC;AAAE,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;iBACrB;AACH,gBAAA,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,GAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;aACnE;AAED,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAC3B,YAAA,IAAI,CAAC,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;SACzE;KACF;AAES,IAAA,YAAY,CAAC,CAAU,EAAA;AAC/B,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACnB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;AA9KU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,kBA2FvB,aAAa,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA3Ff,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,EAbzB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,yBAAyB;AACvC,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,WAAW,EAAE,yBAAyB;AACvC,aAAA;AACF,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChCH,wgBAmBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDDI,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,2BAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAeL,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBA1BrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,SAAS;qBACjB,EACQ,OAAA,EAAA;wBACP,WAAW;wBACX,cAAc;qBACf,EACU,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAA2B,yBAAA;AACvC,yBAAA;AACD,wBAAA;AACE,4BAAA,KAAK,EAAE,IAAI;AACX,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,WAAW,EAA2B,yBAAA;AACvC,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,wgBAAA,EAAA,CAAA;;0BA6FE,SAAS;2BAAC,aAAa,CAAA;mGApFV,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAOU,QAAQ,EAAA,CAAA;sBAAvB,KAAK;gBAMW,QAAQ,EAAA,CAAA;sBAAxB,MAAM;;;MEzCI,eAAe,CAAA;AA+C1B,IAAA,WAAA,CACmC,WAAmB,EACjC,EAAqB,EACrB,WAA8B,EAAA;QAFhB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAQ;QACjC,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QACrB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAmB;AA7BzB,QAAA,IAAA,CAAA,QAAQ,GAAoC,IAAI,YAAY,EAAE,CAAC;AAYzE,QAAA,IAAA,CAAA,IAAI,GAAmB,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC;QAMlD,IAAY,CAAA,YAAA,GAAoD,EAAE,CAAC;AAMnE,QAAA,IAAA,CAAA,YAAY,GAAoD,IAAI,GAAG,EAAE,CAAC;KAM5E;IAME,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,EAAe,KAAI;YAChE,IAAI,OAAO,GAAG,KAAK,QAAQ;AAAE,gBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;iBAClE;gBACH,GAAG,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,CAAS,KAAK,IAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACvF;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,CAAI,EAAA,IAAI,CAAC,EAAG,CAAE,CAAA,CAAC,CAAC;QACxD,IAAI,UAAU,EAAE;YACd,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAErC,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,YAAY,CAAC;AACvC,YAAA,IAAI,KAAK,CAAC,YAAY,EAAE;AACtB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;aACjE;YACD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACvC,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;KACF;IAKM,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;KAC5B;IAKM,KAAK,GAAA;QACV,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAElB,YAAY,CAAC,UAAU,CAAC,CAAA,EAAI,IAAI,CAAC,EAAG,CAAE,CAAA,CAAC,CAAC;AACxC,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;KAC5D;AAMM,IAAA,YAAY,CAAC,CAAS,EAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAKM,MAAM,GAAA;QACX,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAS,EAAE,CAAM,KAAI;AACnC,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AACpB,gBAAA,CAAC,CAAC,OAAO,CAAC,CAAC,KAAU,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;aACzD;iBAAM;AACL,gBAAA,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;aAC1B;AACH,SAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE;AAClC,YAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;YAC1B,YAAY,CAAC,UAAU,CAAC,CAAA,EAAG,IAAI,CAAC,EAAE,CAAE,CAAA,CAAC,CAAC;SACvC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;IAES,aAAa,CAAC,GAAW,EAAE,KAAU,EAAA;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QACnF,MAAM,KAAK,GAAG,WAAW;AACvB,cAAE,CAAI,EAAA,GAAI,KAAM,WAAW,CAAC,KAAM,CAAE,CAAA;cAClC,CAAI,EAAA,GAAI,CAAM,EAAA,EAAA,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAE,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,GAAG,KAAM,CAAA,CAAE,CAAC;AAE7F,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;KAC/C;IAKM,GAAG,GAAA;AACR,QAAA,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACzE,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;YAClE,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;YACxC,OAAO;SACR;QAED,MAAM,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK,CAAC,CAAC;AAAE,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAA,EAAI,GAAI,CAAK,CAAA,EAAA,KAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;aAC9E;YACH,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;YAC/B,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;AACnC,YAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAI,EAAA,GAAI,CAAK,CAAA,EAAA,KAAM,EAAE,CAAC;SACpD;AAED,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;QACxC,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAQM,iBAAiB,CAAC,IAAS,EAAE,GAAW,EAAA;QAC7C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACxB,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,CAAE,IAAI,CAAE,CAAC,CAAC;YACzD,OAAO;SACR;AAED,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KACtD;IAMS,UAAU,GAAA;AAClB,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC;KACzC;AAOS,IAAA,QAAQ,CAAC,KAAa,EAAA;QAC9B,MAAM,MAAM,GAAa,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE1C,QAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,GAAG,EAAW,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;AAC9F,QAAA,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;KAC7C;AAOS,IAAA,SAAS,CAAC,WAAkD,EAAA;QACpE,IAAI,IAAI,GAAY,KAAK,CAAC;QAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAClC,MAAM,IAAI,GAAyB,EAAE,CAAC;QAEtC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAS,KAAI;AACnC,YAAA,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO;YAElB,IAAI,GAAG,IAAI,CAAC;YACZ,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACf,WAAW,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACzB,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,GAAE,IAAI,GAAG,IAAI,EAAE,CAAC,CAAC;AAExE,QAAA,YAAY,CAAC,OAAO,CAClB,CAAA,EAAI,IAAI,CAAC,EAAG,CAAA,CAAE,EACd,IAAI,CAAC,SAAS,CAAC;YACb,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC;AACnD,YAAA,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACpC,SAAA,CAAC,CACH,CAAC;KACH;IAOS,iBAAiB,CAAC,GAAW,EAAE,GAAS,EAAA;AAChD,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QAE/C,IAAI,GAAG,EAAE;AACP,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACtC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAI,EAAA,GAAI,IAAK,GAAI,CAAA,CAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;SACzE;KACF;AA5OU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,kBAgDb,aAAa,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAhDf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,EC3B5B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,2BAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,g9JA6FA,ED1EI,MAAA,EAAA,CAAA,umBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,EACX,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,iBAAiB,EACjB,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,EAClB,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,EACnB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,iMACnB,6BAA6B,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,OAAA,EAAA,cAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAGpB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAlB3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,WAAW,EAAA,eAAA,EAGJ,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,2BAA2B;qBACnC,EACQ,OAAA,EAAA;wBACP,WAAW;wBACX,iBAAiB;wBACjB,kBAAkB;wBAClB,mBAAmB;wBACnB,mBAAmB;wBACnB,6BAA6B;AAC9B,qBAAA,EAAA,QAAA,EAAA,g9JAAA,EAAA,MAAA,EAAA,CAAA,umBAAA,CAAA,EAAA,CAAA;;0BAkDE,SAAS;2BAAC,aAAa,CAAA;yGAzCQ,EAAE,EAAA,CAAA;sBAAnC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAOS,MAAM,EAAA,CAAA;sBAAvC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAOC,QAAQ,EAAA,CAAA;sBAAjC,MAAM;gBAMoC,SAAS,EAAA,CAAA;sBAAnD,SAAS;uBAAC,WAAW,CAAA;;;MEhDX,WAAW,CAAA;AAHxB,IAAA,WAAA,GAAA;QAKqB,IAAI,CAAA,IAAA,GAA8B,EAAE,CAAC;AAczD,KAAA;AAZQ,IAAA,MAAM,CAAC,EAAU,EAAY,EAAA,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE;AAEpD,IAAA,MAAM,CAAC,EAAU,EAAE,GAAY,IAAS,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE;AAE9D,IAAA,gBAAgB,CAAC,EAAU,EAAE,YAAA,GAAwB,KAAK,EAAA;QAC/D,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,oBAAoB,EAAE,CAAC;QAEtC,IAAI,YAAY,EAAE;YAChB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,uBAAuB,EAAE,CAAC;YACzC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,kBAAkB,EAAE,CAAC;SACrC;KACF;+GAfU,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAX,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCaY,qBAAqB,CAAA;AAsFhC,IAAA,WAAA,CACqB,OAAoB,EAAA;QAApB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAa;QAjFzB,IAAE,CAAA,EAAA,GAAuB,QAAQ,CAAC;QAalC,IAAY,CAAA,YAAA,GAA0B,QAAQ,CAAC;AAerC,QAAA,IAAA,CAAA,UAAU,GAAsB,IAAI,YAAY,EAAE,CAAC;AAOnD,QAAA,IAAA,CAAA,WAAW,GAAiC,IAAI,YAAY,EAAE,CAAC;AAO/D,QAAA,IAAA,CAAA,kBAAkB,GAA6C,IAAI,YAAY,EAAE,CAAC;AAM5F,QAAA,IAAA,CAAA,aAAa,GAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,CAAE,KAAK,EAAE,MAAM,CAAE,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAC,CAAC;QAMnJ,IAAI,CAAA,IAAA,GAAuC,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AA6BvF,QAAA,cAAc,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;KACjD;IAMM,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;AAAE,YAAA,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;AAEzD,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAsB,kBAAA,EAAA,IAAI,CAAC,MAAM,CAAC,SAAS,IAAG,gBAAiB,SAAS,CAAC;KAClG;IAMM,WAAW,GAAA,EAAU,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE;AAOhD,IAAA,QAAQ,CAAC,IAAS,EAAS,EAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;IAO7D,UAAU,CAAC,EAAE,GAAG,EAAoB,EAAA,EAAS,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE;AAOnH,IAAA,cAAc,CAAC,IAAgC,EAAS,EAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;AAO7F,IAAA,gBAAgB,CAAC,EAA0B,EAAA;QAChD,IAAI,EAAE,CAAC,WAAW;YAAE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;KACnF;AAQM,IAAA,aAAa,CAAC,EAAkB,EAAA;AACrC,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC;AACtB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAE3C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAQ,CAAC,CAAC;QAC/D,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3D,YAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,CAAC;SACxE;QAED,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;IAOM,KAAK,GAAA;AACV,QAAA,MAAM,UAAU,GAAgB;AAC9B,YAAA,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,YAAY,EAAkB,KAAI;AAC3F,gBAAA,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;AAElC,gBAAA,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AAC3D,oBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACvB,oBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AAE1B,oBAAA,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC;iBACxC;gBAED,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC;gBACrD,IAAI,IAAI,KAAK,CAAC;AAAE,oBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAElC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,eAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAW,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;oBACnG,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAI;AAC9B,wBAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AAE3B,wBAAA,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;AACjC,wBAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;AAAE,4BAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC;AAEtD,wBAAA,IAAI,IAAI,KAAK,CAAC,EAAE;AACd,4BAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAC;AACrB,gCAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC3E,gCAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;6BAClC;AACD,4BAAA,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;yBAC1B;AAED,wBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AACxD,4BAAA,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAW,IAAI,KAAK,CAAC,MAAM,CAAC;yBAC9D;AACD,wBAAA,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;qBACpC;AACD,oBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAI;wBACrB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,uBAAuB,EAAE,CAAsB,kBAAA,EAAA,OAAQ,CAAS,OAAA,CAAA,CAAC,CAAC;AAE7F,wBAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AAC3B,wBAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;AACjC,wBAAA,YAAY,EAAE,CAAC;qBAChB;AACF,iBAAA,CAAC,CAAC;aACJ;SACF,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;KACtD;+GAjNU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAI,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClBlC,opBAiBA,EAAA,MAAA,EAAA,CAAA,2EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDFI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,6BAAA,EAAA,gCAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,oBAAA,EAAA,6BAAA,EAAA,8BAAA,EAAA,8BAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,0BAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,wBAAA,EAAA,+BAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,+BAAA,EAAA,8BAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,+BAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,0BAAA,EAAA,mCAAA,EAAA,8BAAA,EAAA,qBAAA,EAAA,0BAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,qCAAA,EAAA,mCAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,sCAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,sCAAA,EAAA,sBAAA,EAAA,6BAAA,EAAA,cAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,6BAAA,EAAA,+BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,EAAA,WAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,uBAAA,EAAA,2BAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,qBAAA,EAAA,+BAAA,EAAA,4BAAA,EAAA,yBAAA,EAAA,OAAA,EAAA,wBAAA,EAAA,yBAAA,EAAA,+BAAA,EAAA,wBAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,8BAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,4BAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,+BAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,4BAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,yBAAA,EAAA,2CAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,4BAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,mCAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,6BAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,6BAAA,EAAA,oBAAA,EAAA,gCAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,0BAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,2BAAA,EAAA,iCAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,uCAAA,EAAA,UAAA,EAAA,2BAAA,EAAA,yBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,4BAAA,EAAA,2CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,kCAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,iCAAA,EAAA,yBAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,yBAAA,EAAA,gCAAA,EAAA,qCAAA,EAAA,2BAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,qCAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,yBAAA,EAAA,iCAAA,EAAA,wBAAA,EAAA,4BAAA,EAAA,oCAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,wBAAA,EAAA,2BAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,6BAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,8BAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,+BAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,gCAAA,EAAA,0BAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,yBAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,aAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,6BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,aAAA,EAAA,eAAA,EAAA,+BAAA,EAAA,gCAAA,EAAA,8BAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,yBAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,qCAAA,EAAA,cAAA,EAAA,4BAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,6BAAA,EAAA,0BAAA,EAAA,0BAAA,EAAA,4BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAGH,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAVjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA;wBACP,YAAY;AACb,qBAAA,EAAA,QAAA,EAAA,opBAAA,EAAA,MAAA,EAAA,CAAA,2EAAA,CAAA,EAAA,CAAA;6EAQe,EAAE,EAAA,CAAA;sBAAjB,KAAK;gBAO4B,MAAM,EAAA,CAAA;sBAAvC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAMT,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBAQU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBAOoB,UAAU,EAAA,CAAA;sBAAnC,MAAM;gBAOmB,WAAW,EAAA,CAAA;sBAApC,MAAM;gBAOmB,kBAAkB,EAAA,CAAA;sBAA3C,MAAM;;;ME/CI,uBAAuB,CAAA;AAuFlC,IAAA,WAAA,CACqB,OAAoB,EAAA;QAApB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAa;QA3EzB,IAAO,CAAA,OAAA,GAAU,EAAE,CAAC;QAMpB,IAAE,CAAA,EAAA,GAAuB,QAAQ,CAAC;QAOlC,IAAY,CAAA,YAAA,GAAiB,UAAU,CAAC;QAMxC,IAAY,CAAA,YAAA,GAA0B,QAAQ,CAAC;AAerC,QAAA,IAAA,CAAA,UAAU,GAAsB,IAAI,YAAY,EAAE,CAAC;AAOnD,QAAA,IAAA,CAAA,WAAW,GAAiC,IAAI,YAAY,EAAE,CAAC;AAO/D,QAAA,IAAA,CAAA,kBAAkB,GAA6C,IAAI,YAAY,EAAE,CAAC;AAM5F,QAAA,IAAA,CAAA,aAAa,GAAW,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,CAAE,KAAK,EAAE,MAAM,CAAE,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAC,CAAC;KAsBlK;IAOG,QAAQ,GAAA;AACb,QAAA,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,KAAK,UAAU,GAAE,sBAAsB,GAAG,wBAAwB,CAAC,CAAC;AAE7G,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;AAAE,YAAA,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,EAAE,CAAC;AACzD,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAsB,kBAAA,EAAA,IAAI,CAAC,MAAM,CAAC,SAAS,IAAG,gBAAiB,SAAS,CAAC;KAClG;IAMM,WAAW,GAAA,EAAU,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE;AAOhD,IAAA,QAAQ,CAAC,IAAS,EAAS,EAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;IAOxD,UAAU,CAAC,EAAE,GAAG,EAAoB,EAAA,EAAS,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE;AAOnH,IAAA,cAAc,CAAC,IAAgC,EAAS,EAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;AAO7F,IAAA,gBAAgB,CAAC,EAA0B,EAAA;QAChD,IAAI,EAAE,CAAC,WAAW;YAAE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;KACnF;AAQM,IAAA,aAAa,CAAC,EAAkB,EAAA;AACrC,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC;AACtB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAE3C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAQ,CAAC,CAAC;QAC/D,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3D,YAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,IAAI,CAAC,CAAC;SACxE;AAED,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,YAAY;YAAE,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5F,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,UAAU;YAAE,OAAO;QAC7C,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;IAOM,KAAK,GAAA;QACV,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;AAE1B,QAAA,MAAM,UAAU,GAAgB;AAC9B,YAAA,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,YAAY,EAAkB,KAAI;AAC3F,gBAAA,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;gBAClC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,CAAC;gBAEvD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,SAAS,CAAC;oBACvF,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAI;AAC9B,wBAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AAE3B,wBAAA,IAAI,MAAM,KAAK,CAAC,EAAE;AAChB,4BAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,gCAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,uBAAuB,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC3E,gCAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;6BAClC;AACD,4BAAA,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC;yBAC1B;AAED,wBAAA,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAW,EAAE;AACxE,4BAAA,IAAI,CAAC,KAAK,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAW,IAAI,IAAI,CAAC,MAAM,CAAC;yBAC/D;AACD,wBAAA,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;qBACnC;AACD,oBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAI;wBACrB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,uBAAuB,EAAE,CAAsB,kBAAA,EAAA,OAAQ,CAAS,OAAA,CAAA,CAAC,CAAC;AAE7F,wBAAA,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AAC3B,wBAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;AACjC,wBAAA,YAAY,EAAE,CAAC;qBAChB;AACF,iBAAA,CAAC,CAAC;aACJ;SACF,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;KACvD;+GA3MU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAI,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnBpC,0pBAiBA,EAAA,MAAA,EAAA,CAAA,2EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDDI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,qBAAA,EAAA,6BAAA,EAAA,gCAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,oBAAA,EAAA,6BAAA,EAAA,8BAAA,EAAA,8BAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,0BAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,wBAAA,EAAA,+BAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,+BAAA,EAAA,8BAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,+BAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,0BAAA,EAAA,mCAAA,EAAA,8BAAA,EAAA,qBAAA,EAAA,0BAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,qCAAA,EAAA,mCAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,sCAAA,EAAA,sBAAA,EAAA,qBAAA,EAAA,sCAAA,EAAA,sBAAA,EAAA,6BAAA,EAAA,cAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,6BAAA,EAAA,+BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,cAAA,EAAA,UAAA,EAAA,WAAA,EAAA,YAAA,EAAA,wBAAA,EAAA,uBAAA,EAAA,2BAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,qBAAA,EAAA,+BAAA,EAAA,4BAAA,EAAA,yBAAA,EAAA,OAAA,EAAA,wBAAA,EAAA,yBAAA,EAAA,+BAAA,EAAA,wBAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,8BAAA,EAAA,uBAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,4BAAA,EAAA,wBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,+BAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,yBAAA,EAAA,4BAAA,EAAA,wBAAA,EAAA,6BAAA,EAAA,yBAAA,EAAA,2CAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,4BAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,mCAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,6BAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,6BAAA,EAAA,oBAAA,EAAA,gCAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,0BAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,2BAAA,EAAA,iCAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,uCAAA,EAAA,UAAA,EAAA,2BAAA,EAAA,yBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,4BAAA,EAAA,2CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,kCAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,iCAAA,EAAA,yBAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,yBAAA,EAAA,gCAAA,EAAA,qCAAA,EAAA,2BAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,qCAAA,EAAA,oBAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,yBAAA,EAAA,iCAAA,EAAA,wBAAA,EAAA,4BAAA,EAAA,oCAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,yBAAA,EAAA,wBAAA,EAAA,2BAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,6BAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,8BAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,+BAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,gCAAA,EAAA,0BAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,yBAAA,EAAA,wBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,aAAA,EAAA,2BAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,6BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,aAAA,EAAA,eAAA,EAAA,+BAAA,EAAA,gCAAA,EAAA,8BAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,yBAAA,EAAA,sBAAA,EAAA,0BAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,wBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,wBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,uBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,qCAAA,EAAA,cAAA,EAAA,4BAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,eAAA,EAAA,aAAA,EAAA,aAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,eAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,6BAAA,EAAA,0BAAA,EAAA,0BAAA,EAAA,4BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAGH,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAVnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,oBAAoB,EAAA,eAAA,EAGb,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA;wBACP,YAAY;AACb,qBAAA,EAAA,QAAA,EAAA,0pBAAA,EAAA,MAAA,EAAA,CAAA,2EAAA,CAAA,EAAA,CAAA;6EASiC,MAAM,EAAA,CAAA;sBAAvC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAMT,OAAO,EAAA,CAAA;sBAAtB,KAAK;gBAMU,EAAE,EAAA,CAAA;sBAAjB,KAAK;gBAOU,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBAMU,YAAY,EAAA,CAAA;sBAA3B,KAAK;gBAQU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBAOoB,UAAU,EAAA,CAAA;sBAAnC,MAAM;gBAOmB,WAAW,EAAA,CAAA;sBAApC,MAAM;gBAOmB,kBAAkB,EAAA,CAAA;sBAA3C,MAAM;;;AE/EgC,CAAC;MAsB7B,gCAAgC,CAAA;IA6C3C,WAC0B,CAAA,EAAU,EACf,MAAc,EAAA;QADT,IAAE,CAAA,EAAA,GAAF,EAAE,CAAQ;QACf,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AA5BT,QAAA,IAAA,CAAA,UAAU,GAAsB,IAAI,YAAY,EAAE,CAAC;AAQnD,QAAA,IAAA,CAAA,WAAW,GAAiC,IAAI,YAAY,EAAE,CAAC;AAQ/D,QAAA,IAAA,CAAA,QAAQ,GAAoC,IAAI,YAAY,EAAE,CAAC;QAOlF,IAAM,CAAA,MAAA,GAAuB,QAAS,IAAI,CAAC,EAAE,IAAG,GAAI,EAAE,CAAC;KAMzD;AAWE,IAAA,UAAU,CAAC,IAAS,EAAA;AACzB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAE,CAAI,EAAA,IAAI,CAAC,MAAM,CAAC,OAAQ,GAAI,IAAI,CAAC,IAAK,CAAA,CAAE,CAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;KAChG;AAUM,IAAA,UAAU,CAAC,EAAkB,EAAA;AAClC,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC;AACtB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC3B;AAQM,IAAA,MAAM,CAAC,CAAoB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEtB,QAAA,IAAI,CAAC,OAAO,EAAE,uBAAuB,EAAE,CAAC;AACxC,QAAA,IAAI,CAAC,OAAO,EAAE,kBAAkB,EAAE,CAAC;KACpC;AAxFU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gCAAgC,kBA8C9B,IAAI,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAJ,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA9CN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,gCAAgC,6RCvB7C,s5BAmBA,EAAA,MAAA,EAAA,CAAA,+HAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDDI,eAAe,EACf,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,oBAAoB,6EACpB,uBAAuB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGd,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAd5C,SAAS;iCACI,IAAI,EAAA,QAAA,EACN,8BAA8B,EAGlC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,gCAAgC;qBACxC,EACQ,OAAA,EAAA;wBACP,eAAe;wBACf,oBAAoB;wBACpB,uBAAuB;AACxB,qBAAA,EAAA,QAAA,EAAA,s5BAAA,EAAA,MAAA,EAAA,CAAA,+HAAA,CAAA,EAAA,CAAA;;0BAgDE,SAAS;2BAAC,IAAI,CAAA;gEAxCiB,MAAM,EAAA,CAAA;sBAAvC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAMS,MAAM,EAAA,CAAA;sBAAvC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAOC,UAAU,EAAA,CAAA;sBAAnC,MAAM;gBAQmB,WAAW,EAAA,CAAA;sBAApC,MAAM;gBAQmB,QAAQ,EAAA,CAAA;sBAAjC,MAAM;;;MEnCI,8BAA8B,CAAA;IA6CzC,WAC0B,CAAA,EAAU,EACf,MAAc,EAAA;QADT,IAAE,CAAA,EAAA,GAAF,EAAE,CAAQ;QACf,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AA5BT,QAAA,IAAA,CAAA,UAAU,GAAsB,IAAI,YAAY,EAAE,CAAC;AAQnD,QAAA,IAAA,CAAA,WAAW,GAAiC,IAAI,YAAY,EAAE,CAAC;AAQ/D,QAAA,IAAA,CAAA,QAAQ,GAAoC,IAAI,YAAY,EAAE,CAAC;QAOlF,IAAM,CAAA,MAAA,GAAuB,QAAS,IAAI,CAAC,EAAE,IAAG,GAAI,EAAE,CAAC;KAMzD;AAWE,IAAA,UAAU,CAAC,IAAS,EAAA;AACzB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAE,CAAI,EAAA,IAAI,CAAC,MAAM,CAAC,OAAQ,GAAI,IAAI,CAAC,IAAK,CAAA,CAAE,CAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;KAChG;AAUM,IAAA,UAAU,CAAC,EAAkB,EAAA;AAClC,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,GAAG,CAAC;AACtB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC3B;AASM,IAAA,MAAM,CAAC,CAAoB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAEtB,QAAA,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE,CAAC;AACvC,QAAA,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;KACnC;AAzFU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,kBA8C5B,IAAI,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AA9CN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,2RCvB3C,o5BAmBA,EAAA,MAAA,EAAA,CAAA,+HAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDDI,eAAe,EACf,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,oBAAoB,6EACpB,qBAAqB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGZ,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAd1C,SAAS;iCACI,IAAI,EAAA,QAAA,EACN,4BAA4B,EAGhC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,gCAAgC;qBACxC,EACQ,OAAA,EAAA;wBACP,eAAe;wBACf,oBAAoB;wBACpB,qBAAqB;AACtB,qBAAA,EAAA,QAAA,EAAA,o5BAAA,EAAA,MAAA,EAAA,CAAA,+HAAA,CAAA,EAAA,CAAA;;0BAgDE,SAAS;2BAAC,IAAI,CAAA;gEAxCiB,MAAM,EAAA,CAAA;sBAAvC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAMS,MAAM,EAAA,CAAA;sBAAvC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAOC,UAAU,EAAA,CAAA;sBAAnC,MAAM;gBAQmB,WAAW,EAAA,CAAA;sBAApC,MAAM;gBAQmB,QAAQ,EAAA,CAAA;sBAAjC,MAAM;;;MEjDI,mBAAmB,CAAA;IAqB9B,WACgC,CAAA,QAAgB,EAC3B,EAAqB,EAAA;QADV,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAQ;QAC3B,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QAjBD,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;KAkB/D;IAOG,kBAAkB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,GAAG,0BAA0B,CAAC;SAC5E;KACF;IAOM,gBAAgB,CAAC,IAAa,IAAI,EAAA;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;AA7CU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBAsBjB,UAAU,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAtBZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,4QCThC,kFAGA,EAAA,MAAA,EAAA,CAAA,iDAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FDMa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,gBAAgB,EAGT,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,kFAAA,EAAA,MAAA,EAAA,CAAA,iDAAA,CAAA,EAAA,CAAA;;0BAwB5C,SAAS;2BAAC,UAAU,CAAA;yEAhBkB,QAAQ,EAAA,CAAA;sBAAhD,WAAW;uBAAC,mBAAmB,CAAA;gBAMG,MAAM,EAAA,CAAA;sBAAxC,KAAK;uBAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAA;gBAOK,YAAY,EAAA,CAAA;sBAA1C,YAAY;uBAAC,QAAQ,CAAA;;;MEZX,iBAAiB,CAAA;IAgC5B,WACqB,CAAA,MAAc,EACd,WAA2B,EAAA;QAD3B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgB;QAxBhC,IAAQ,CAAA,QAAA,GAAuC,MAAM,EAAE,CAAC;QAQxD,IAAO,CAAA,OAAA,GAAuC,MAAM,EAAE,CAAC;AAMvD,QAAA,IAAA,CAAA,OAAO,GAA2C,eAAe,CAAC,mBAAmB,CAAC,CAAC;KAWlG;IAEE,kBAAkB,GAAA;QACvB,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAE7C,IAAI,CAAC,SAAS,CACZ,CAAC,EACD,IAAI,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,QAAQ,KAAK,CAAC,CAAC,CAC3D,CAAC;KACH;IAUM,SAAS,CAAC,CAAgB,EAAE,CAAS,EAAA;AAC1C,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAE9C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,CAAC,IAAI,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvG,IAAI,KAAK,GAAY,KAAK,CAAC;QAC3B,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AAC7B,YAAA,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC;AAAE,gBAAA,GAAG,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;iBAC/C;gBACH,KAAK,GAAG,IAAI,CAAC;AACb,gBAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;AACxB,gBAAA,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;aAC5B;AACH,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,EAAE;YACV,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;SAClD;KACF;+GA1EU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAwBsD,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAAA,mBAAmB,ECxCvG,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,6pBAwBA,goBDXI,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,eAAA,EAAA,cAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAGF,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAV7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,cAAc,EAAA,eAAA,EAGP,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA;wBACP,WAAW;AACZ,qBAAA,EAAA,QAAA,EAAA,6pBAAA,EAAA,MAAA,EAAA,CAAA,ykBAAA,CAAA,EAAA,CAAA;;;MELU,YAAY,CAAA;AAqBvB,IAAA,WAAA,CACqB,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;AApBhB,QAAA,IAAA,CAAA,QAAQ,GAAW,CAAA;;;;;;;;;;;;;;;;;GAiBrC,CAAC;KAIG;AAEE,IAAA,KAAK,CAAC,KAAyB,EAAE,SAAA,GAAoB,EAAE,EAAA;AAC5D,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACvB,SAAS,EAAE,EAAE,KAAK,EAAE;YACpB,KAAK,EAAE,GAAG,CAAA,CAAA;;;AAGD,YAAA,EAAA,IAAI,CAAC,QAAS,CAAA;cACd,SAAU,CAAA;;;AAGlB,MAAA,CAAA;AACF,SAAA,CAAC,CAAC;KACJ;+GArCU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCkBY,kBAAkB,CAAA;AA8B7B,IAAA,WAAA,CAC0B,EAAU,EACF,GAAW,EACxB,MAAc,EACd,OAAqB,EAAA;QAHhB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAQ;QACF,IAAG,CAAA,GAAA,GAAH,GAAG,CAAQ;QACxB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAO,CAAA,OAAA,GAAP,OAAO,CAAc;QA7B1B,IAAY,CAAA,YAAA,GAAiB,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAC3G,QAAA,IAAA,CAAA,UAAU,GAAe;AACvC,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,SAAS,EAAE,iBAAiB;AAC5B,YAAA,OAAO,EAAE;gBACP,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE;AAC3D,gBAAA,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE;AACnF,gBAAA,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,GAAE,UAAU,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE;AAC7J,aAAA;YACD,OAAO,EAAE,CAAC,IAAY,EAAE,QAAgB,EAAE,MAAc,EAAE,GAAmB,KAAI;AAC/E,gBAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS;oBAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;AAEtD,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;AAC1B,gBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC;AAC9B,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAClC,gBAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,GAAG,CAAC;AAElC,gBAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAC3C,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAC1D,CAAC;aACH;SACF,CAAC;AACiB,QAAA,IAAA,CAAA,QAAQ,GAAuB,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;KAQnH;AAEE,IAAA,WAAW,CAAC,CAAgB,EAAA;QACjC,IAAI,CAAC,CAAC,SAAS,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QACvD,IAAI,CAAC,CAAC,iBAAiB,CAAC;YAAE,IAAI,CAAC,QAAQ,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;KAChF;AAEM,IAAA,UAAU,CAAC,EAAE,GAAG,EAAkB,EAAS,EAAA,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,EAAE;IAEhE,UAAU,CAAC,EAAE,IAAI,EAAc,EAAA;AACpC,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAE,CAAI,EAAA,IAAI,CAAC,GAAI,CAAK,CAAA,EAAA,IAAI,CAAC,QAAQ,CAAC,SAAU,CAAC,CAAC,CAAE,CAAW,OAAA,EAAA,IAAK,CAAE,CAAA,CAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;KACxH;IAEM,MAAM,CAAC,EAAE,IAAI,EAAqB,EAAA;QACvC,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,EAAE,WAAW,CAAC;AAC9C,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KAC5B;AAEM,IAAA,OAAO,CAAC,IAAY,EAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,CAAE,IAAI,CAAE,CAAC;AACnC,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;KAC5B;+GAzDU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EA+BhB,IAAI,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EACJ,SAAS,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAS,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAhCX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,kPAIlB,uBAAuB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9BpC,0YAKA,EDiBI,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,uGACf,uBAAuB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGd,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAb9B,SAAS;iCACI,IAAI,EAAA,QAAA,EACN,eAAe,EAGnB,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,0BAA0B;qBAClC,EACQ,OAAA,EAAA;wBACP,eAAe;wBACf,uBAAuB;AACxB,qBAAA,EAAA,QAAA,EAAA,0YAAA,EAAA,CAAA;;0BAiCE,SAAS;2BAAC,IAAI,CAAA;;0BACd,SAAS;2BAAC,SAAS,CAAA;wFA9BY,eAAe,EAAA,CAAA;sBAAhD,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBACT,OAAO,EAAA,CAAA;sBAAtB,KAAK;gBACwC,aAAa,EAAA,CAAA;sBAA1D,SAAS;uBAAC,uBAAuB,CAAA;;;MECvB,oBAAoB,CAAA;AA2B/B,IAAA,WAAA,CACqB,EAAe,EACf,OAAqB,EACrB,KAAqB,EACrB,OAAsB,EAAA;QAHtB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAa;QACf,IAAO,CAAA,OAAA,GAAP,OAAO,CAAc;QACrB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAe;AA7B3B,QAAA,IAAA,CAAA,UAAU,GAAe;AACvC,YAAA,cAAc,EAAE,KAAK;AACrB,YAAA,OAAO,EAAE;gBACP,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE;AACjE,gBAAA,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE;AAC7C,gBAAA,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE;AAC9C,aAAA;SACF,CAAC;AACc,QAAA,IAAA,CAAA,IAAI,GAA+B,IAAI,CAAC,EAAE,CAAC,KAAK,CAAkB;AAChF,YAAA,IAAI,EAAE,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;AACrD,YAAA,MAAM,EAAE,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;AACvD,YAAA,WAAW,EAAE,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;AAC5D,YAAA,QAAQ,EAAE,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;AACzD,YAAA,QAAQ,EAAE,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;AACzD,YAAA,SAAS,EAAE,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;AAC1D,YAAA,QAAQ,EAAE,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;AACzD,YAAA,cAAc,EAAE,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;AAC/D,YAAA,QAAQ,EAAE,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC;AAC1D,SAAA,CAAC,CAAC;QAEI,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QACvB,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;KASvB;IAEE,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC;KACzB;IAEM,UAAU,CAAC,EAAE,GAAG,EAAkB,EAAA;AACvC,QAAA,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,IAAI,CAAC,OAAO,EAAE,CAAC;KAChB;AAEM,IAAA,eAAe,CAAC,GAAW,EAAA;QAChC,MAAM,KAAK,GAAG,oDAAoD,CAAC;AACnE,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACxB;AAEM,IAAA,UAAU,CAAC,KAAU,EAAA;QAC1B,IAAI,KAAK,KAAK,IAAI;AAAE,YAAA,OAAO,KAAK,CAAC;QACjC,IAAI,OAAO,KAAK,KAAK,QAAQ;AAAE,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC5D,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;YAAE,OAAO,UAAU,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,CAAC,CAAC;AACxF,QAAA,OAAO,KAAK,CAAC;KACd;IAEM,OAAO,GAAA;AACZ,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAChE,QAAA,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO;AAE9C,QAAA,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAEnC,QAAA,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;AACpB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,+BAA+B,CAAC,CAAC,SAAS,CAAC;AAC5F,YAAA,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAC,KAAI;AAC7C,gBAAA,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC;AAE5B,gBAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,oBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;oBACpB,OAAO;iBACR;gBAED,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAC7F,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;oBACnB,IAAI;AACJ,oBAAA,QAAQ,EAAE,IAAI;AACd,oBAAA,QAAQ,EAAE,QAAQ;AAClB,oBAAA,MAAM,EAAE,WAAW;oBACnB,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI;oBAC5B,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,cAAc;oBAC5C,SAAS,EAAE,UAAU,CAAC,SAAS,EAAE,mBAAmB,EAAE,OAAO,CAAC;AAC/D,iBAAA,CAAC,CAAC;AAEH,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACnC;YACD,KAAK,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AACjC,SAAA,CAAC,CAAC;KACJ;AAES,IAAA,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,EAAO,EAAA;AAChD,QAAA,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE;YAClD,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC1C,OAAO;SACR;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,GAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AACnF,aAAA,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,GAAE,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;aACrI,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM;AACvB,YAAA,SAAS,EAAE,GAAG;AACd,YAAA,OAAO,EAAE,OAAO,GAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI;YAChD,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAC1C,SAAA,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;KACpD;+GA5GU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAT,IAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAS,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAP,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAQ,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,EC/BjC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,m4EAkDA,ED5BI,MAAA,EAAA,CAAA,6CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,0SACX,iBAAiB,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,mBAAmB,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,uBAAuB,EACvB,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,EAClB,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,qBAAqB,kGACrB,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAV,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGV,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAfhC,SAAS;iCACI,IAAI,EAAA,QAAA,EACN,iBAAiB,EAGlB,OAAA,EAAA;wBACP,WAAW;wBACX,iBAAiB;wBACjB,mBAAmB;wBACnB,uBAAuB;wBACvB,kBAAkB;wBAClB,qBAAqB;wBACrB,mBAAmB;AACpB,qBAAA,EAAA,QAAA,EAAA,m4EAAA,EAAA,MAAA,EAAA,CAAA,6CAAA,CAAA,EAAA,CAAA;;;ME3BU,iBAAiB,GAAG,IAAI,cAAc,CAAW,mBAAmB,EAAE;AAE7E,SAAU,uBAAuB,CAAC,QAAkB,EAAA;IACxD,OAAO;AACL,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,QAAQ,EAAE,QAAQ;KACnB,CAAC;AACJ;;MCAa,eAAe,CAAA;AAI1B,IAAA,WAAA,CACqB,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAHhB,IAAQ,CAAA,QAAA,GAAW,gFAAgF,CAAC;KAIlH;AAEE,IAAA,KAAK,CAAC,KAAuB,EAAE,SAAoB,GAAA,EAAE,EAAE,WAAyB,EAAA;AACrF,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;YACvB,WAAW;YACX,SAAS,EAAE,EAAE,KAAK,EAAE;YACpB,KAAK,EAAE,GAAG,CAAA,CAAA;;;;AAIC,cAAA,EAAA,IAAI,CAAC,QAAS,CAAA;gBACd,SAAU,CAAA;;cAEZ,KAAK,CAAC,IAAI,KAAK,CAAC,GAAE,aAAa,GAAG,EAAG,CAAA;;;AAG7C,MAAA,CAAA;AACF,SAAA,CAAC,CAAC;KACJ;AAEM,IAAA,OAAO,CAAC,SAAwD,EAAA;AACrE,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACxB,SAAS;YACT,QAAQ,EAAE,GAAG,CAAA,CAAA;mBACC,SAAS,CAAC,SAAS,GAAE,iBAAiB,GAAG,iBAAkB,CAAA;;;AAGxE,MAAA,CAAA;AACF,SAAA,CAAC,CAAC;KACJ;+GAnCU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MC0BY,qBAAqB,CAAA;IAkDhC,WAC6C,CAAA,QAAkB,EAC1C,MAAc,EACd,KAAqB,EACrB,OAAwB,EACxB,SAA0B,EAAA;QAJF,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAC1C,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAiB;QACxB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAiB;AArD/B,QAAA,IAAA,CAAA,UAAU,GAAe;AACvC,YAAA,SAAS,EAAE,oBAAoB;AAC/B,YAAA,OAAO,EAAE;gBACP,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE;AAC1H,gBAAA,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;AACzC,gBAAA,EAAE,UAAU,EAAE,iBAAiB,EAAE,KAAK,EAAE,gBAAgB,EAAE;gBAC1D,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,EAAO,KAAK,KAAK,GAAE,CAAgC,4BAAA,EAAA,KAAK,KAAK,kBAAkB,CAAC,OAAO,GAAE,SAAS,GAAG,KAAK,KAAK,kBAAkB,CAAC,QAAQ,GAAE,SAAS,GAAG,QAAQ,CAAA,EAAA,EAAM,KAAM,CAAA,MAAA,CAAQ,GAAG,EAAE,EAAE;gBACzQ,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE;AACpD,gBAAA,EAAE,UAAU,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,KAAK,GAAE,UAAU,CAAC,KAAK,EAAE,mBAAmB,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE;AAC7J,aAAA;YACD,OAAO,EAAE,CAAC,IAAY,EAAE,QAAgB,EAAE,MAAc,EAAE,GAAmB,KAAoD;AAC/H,gBAAA,MAAM,MAAM,GAA4B,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,GAAE,UAAU,GAAG,SAAS,CAAC;AAEzF,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC;AACvB,gBAAA,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AAC3B,gBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAC/B,gBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,GAAG,GAAG,CAAC;gBAE/B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,IAAI,CACpD,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE,EAAC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAE,EAAE,CAAC,CAAC,CACjG,CAAC;aACH;SACF,CAAC;AACc,QAAA,IAAA,CAAA,YAAY,GAAiB;AAC3C,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,MAAM,EAAE;AACN,gBAAA,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAE,SAAS,CAAE,EAAE,OAAO,EAAE;wBACtF,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAE,UAAU,CAAS,EAAE;wBACnD,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAE,UAAU,CAAS,EAAE;wBACnD,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAE,SAAS,CAAS,EAAE;qBAClD,EAAC;AACF,gBAAA,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE;wBACrD,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAE,UAAU,CAAS,EAAE;wBACnD,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,CAAE,UAAU,CAAS,EAAE;wBACnD,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAE,SAAS,CAAS,EAAE;wBACjD,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAE,QAAQ,CAAS,EAAE;wBAC/C,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAE,QAAQ,CAAS,EAAE;qBAChD,EAAC;AACH,aAAA;SACF,CAAC;AACK,QAAA,IAAA,CAAA,SAAS,GAAwB;YACtC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,uBAAuB,EAAG,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACzI,YAAA,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SACtJ,CAAC;AAGQ,QAAA,IAAA,CAAA,KAAK,GAAqB,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;KAQhF;IAEE,UAAU,CAAC,EAAE,GAAG,EAAkB,EAAA;AACvC,QAAA,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;KACpB;IAEM,UAAU,CAAC,EAAE,IAAI,EAAO,EAAA;AAC7B,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAE,CAAc,UAAA,EAAA,IAAK,CAAE,CAAA,CAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;KAC7E;IAEM,eAAe,GAAA;QACpB,MAAM,QAAQ,GAAU,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;QAEvD,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAE9E,IAAI,CAAC,yBAAyB,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,GAAE,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC;QACnG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;KAC5C;IAEM,MAAM,CAAC,EAAE,IAAI,EAAqB,EAAA;QACvC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;QAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC;QAEjC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;AACrE,QAAA,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;KACrC;AAES,IAAA,oBAAoB,CAAC,aAA6B,EAAA;AAC1D,QAAA,IAAI,CAAC,aAAa;AAAE,YAAA,OAAO,KAAK,CAAC;AACjC,QAAA,IAAI,aAAa,CAAC,IAAI,KAAK,IAAI,CAAC,yBAAyB;AAAE,YAAA,OAAO,IAAI,CAAC;AACvE,QAAA,OAAO,IAAI,CAAC;KACb;AAES,IAAA,gBAAgB,CAAC,GAA2B,EAAA;QACpD,GAAG,CAAC,aAAa,EAAE,CAAC;QAEpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAE,CAAA,wBAAA,CAA0B,CAAE,EAAE;AACnD,YAAA,gBAAgB,EAAE,IAAI;AACtB,YAAA,WAAW,EAAE;AACX,gBAAA,SAAS,EAAE,GAAG,CAAC,KAAK,KAAK,QAAQ;gBACjC,iBAAiB,EAAE,IAAI,CAAC,yBAAyB;AACjD,gBAAA,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;AAC9D,aAAA;AACF,SAAA,CAAC,CAAC;KACJ;AApGU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBAmDtB,iBAAiB,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAW,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAT,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAnDhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,wIClClC,iwBAeA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDcI,eAAe,EACf,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,oBAAoB,6EACpB,uBAAuB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAGd,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAfjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,gCAAgC;qBACxC,EACQ,OAAA,EAAA;wBACP,eAAe;wBACf,oBAAoB;wBACpB,uBAAuB;AACxB,qBAAA,EAAA,QAAA,EAAA,iwBAAA,EAAA,CAAA;;0BAqDE,MAAM;2BAAC,iBAAiB,CAAA;;;MEtDhB,qBAAqB,CAAA;IAShC,WACqB,CAAA,MAAc,EACd,EAAqB,EACrB,OAAwB,EACxB,WAAwB,EACxB,SAA0B,EAC1B,WAA8B,EAAA;QAL9B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QACrB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAiB;QACxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAiB;QAC1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAmB;QAbnC,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAC1B,IAAS,CAAA,SAAA,GAAwB,EAAE,CAAC;QAC7C,IAAI,CAAA,IAAA,GAAe,EAAE,CAAC;KAYxB;IAEE,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC;KACzB;AAEM,IAAA,OAAO,CAAC,KAAe,EAAE,iBAA0B,EAAE,SAAmB,EAAA;AAC7E,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,iBAAiB,EAAE;AACrB,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;SAC5C;AAED,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AAEtB,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAE,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,OAAO,CAAE,EAAE,EAAE,wBAAwB,CAAC,CAAC,SAAS,CAAC;AAC7K,YAAA,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,mBAAmB,EAAE,EAAE,IAAI,EAAE,EAAC,EAAC,KAAI;gBAClD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AAC9B,oBAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;oBACtC,OAAO;iBACR;AAED,gBAAA,IAAI,CAAC,IAAI,GAAG,IAAW,CAAC;AACxB,gBAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;oBACrB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,CAAC,CAAQ,CAAC;AAE9C,oBAAA,IAAI,MAAM,KAAK,kBAAkB,CAAC,OAAO,EAAE;wBACzC,MAAM,IAAI,GAAa,UAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;wBAE9C,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,4BAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CACjB,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,sBAAsB,EAAG,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAChI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7I,CAAC;yBACH;qBACF;iBACF;qBAAM;oBACL,IAAI,SAAS,GAAW,CAAC,CAAC;oBAE1B,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,EAAO,KAAI;AACvC,wBAAA,IAAI,MAAM,KAAK,kBAAkB,CAAC,OAAO,EAAE;4BACzC,MAAM,IAAI,GAAa,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;4BAE7C,IAAI,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AAC/D,gCAAA,SAAS,EAAE,CAAC;6BACb;AAED,4BAAA,IAAI,SAAS,KAAK,IAAI,CAAC,MAAM,EAAE;gCAC7B,IAAI,SAAS,EAAE;AACb,oCAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,yBAAyB,EAAG,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;iCAC1J;qCAAM;AACL,oCAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;iCAClK;6BACF;yBACF;AACH,qBAAC,CAAC,CAAC;iBACJ;AACD,gBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aACxB;AACD,YAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,KAAI;AACrB,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;AACjC,gBAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;aACvC;AACF,SAAA,CAAC,CAAC;KACJ;AAES,IAAA,OAAO,CAAC,GAA2B,EAAA;AAC3C,QAAA,MAAM,SAAS,GAAY,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC;AAElD,QAAA,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,wBAAyB,SAAS,GAAE,uBAAuB,GAAG,uEAAwE,EAAE,EAAE;AAClK,YAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,aAAa,EAAE,EAAE;AACtD,YAAA;gBACE,IAAI,EAAE,CAAI,EAAA,SAAS,GAAE,SAAS,GAAG,SAAU,CAAE,CAAA;AAC7C,gBAAA,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,KAAI;AACtB,oBAAA,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC;oBAExB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC;wBAC9B,MAAM;wBACN,SAAS;wBACT,KAAK,EAAE,IAAI,CAAC,KAAK;wBACjB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;qBAC1C,CAAC,CAAC,SAAS,CAAC;wBACX,IAAI,EAAE,MAAK;AACT,4BAAA,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,YAAa,SAAS,GAAE,UAAU,GAAG,UAAW,CAAA,CAAE,CAAC,CAAC;AAC9E,4BAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAEtC,4BAAA,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;yBACzD;AACD,wBAAA,KAAK,EAAE,CAAC,EAAE,OAAO,EAAO,KAAI;4BAC1B,GAAG,CAAC,aAAa,EAAE,CAAC;AACpB,4BAAA,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;yBAClC;AACF,qBAAA,CAAC,CAAC;iBACJ;AACF,aAAA;AACF,SAAA,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;KACnE;AAES,IAAA,UAAU,CAAC,CAAU,EAAA;AAC7B,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACnB,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;KACxB;AAES,IAAA,MAAM,SAAS,CAAC,MAAc,EAAE,OAAe,EAAE,OAAA,GAAoC,CAAC,IAAI,CAAC,EAAE,MAAA,GAAgB,EAAE,EAAkB,EAAA,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE;+GAvHhN,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAW,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAF,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/BlC,gtDAyCA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EDjBI,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EACR,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACR,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,kBAAkB,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,qBAAqB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAGZ,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAjBjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,mBAAmB;qBAC3B,EACQ,OAAA,EAAA;wBACP,QAAQ;wBACR,QAAQ;wBACR,WAAW;wBACX,kBAAkB;wBAClB,qBAAqB;AACtB,qBAAA,EAAA,QAAA,EAAA,gtDAAA,EAAA,CAAA;0NAIe,SAAS,EAAA,CAAA;sBAAxB,KAAK;;;MELK,uBAAuB,CAAA;IAUlC,WACqB,CAAA,MAAc,EACd,cAA8B,EAAA;QAD9B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAT5C,IAAS,CAAA,SAAA,GAAwB,EAAE,CAAC;QAEjC,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;KAQvB;IAEE,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;YAC9D,IAAI,MAAM,EAAE;AACV,gBAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC7B,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC;AAEhD,gBAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;aACtD;AACH,SAAC,CAAC,CAAC;KACJ;IAEM,eAAe,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,YAAA,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;SAC/E;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC7E,YAAA,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YAE9E,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;gBACtF,IAAI,EAAE,MAAK;AACT,oBAAA,MAAM,OAAO,GAAW,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAEhF,oBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE;AACzB,wBAAA,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;wBACpB,IAAI,CAAC,YAAY,CAAC,CAAE,IAAI,CAAC,IAAI,CAAE,CAAC,CAAC;qBAClC;iBACF;AACF,aAAA,CAAC,CAAC;SACJ;KACF;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;KACxB;IAEM,SAAS,CAAC,EAAE,QAAQ,EAAoB,EAAA;QAC7C,QAAQ,QAAQ;AACd,YAAA;gBACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,IAAG,EAAE,CAAC;SACvD;KACF;AAES,IAAA,YAAY,CAAC,KAAe,EAAA;AACpC,QAAA,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;KAC5E;+GA5DU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAV,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,EAEvB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,qBAAqB,EC9BlC,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,+iBAcA,yDDMI,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,iBAAiB,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,mBAAmB,EACnB,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,oBAAoB,EACpB,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,8BAA8B,sGAC9B,qBAAqB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAGZ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAlBnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,oBAAoB,EAAA,eAAA,EAGb,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,KAAK,EAAE,eAAe;qBACvB,EACQ,OAAA,EAAA;wBACP,WAAW;wBACX,iBAAiB;wBACjB,mBAAmB;wBACnB,oBAAoB;wBACpB,8BAA8B;wBAC9B,qBAAqB;AACtB,qBAAA,EAAA,QAAA,EAAA,+iBAAA,EAAA,CAAA;4GAIwC,aAAa,EAAA,CAAA;sBAArD,SAAS;uBAAC,qBAAqB,CAAA;;;MExBrB,uBAAuB,CAAA;AA8BlC,IAAA,WAAA,CACqB,OAAmB,EAAA;QAAnB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAY;QAxBxB,IAAS,CAAA,SAAA,GAAW,GAAG,CAAC;QAQxB,IAAU,CAAA,UAAA,GAAW,KAAK,CAAC;AAOjB,QAAA,IAAA,CAAA,iBAAiB,GAA0B,IAAI,YAAY,EAAW,CAAC;KAU7F;IAMG,QAAQ,GAAA;AACb,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,IAAI,CAAC,UAAU;AAC3B,YAAA,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;SACpD,CAAC;QAEF,IAAI,CAAC,QAAQ,GAAG,IAAI,oBAAoB,CAAC,CAAC,OAAoC,KAAI;AAChF,YAAA,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc;AAAE,gBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClE,EAAE,OAAO,CAAC,CAAC;KACb;IAMM,eAAe,GAAA;QACpB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;KACnD;IAMM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;KAC5B;+GAhEU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,oBAAoB;AAC/B,iBAAA,CAAA;+EAQiB,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBAQU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBAOoB,iBAAiB,EAAA,CAAA;sBAA1C,MAAM;;;MCbI,uBAAuB,CAAA;AAXpC,IAAA,WAAA,GAAA;QAwBkB,IAAS,CAAA,SAAA,GAAW,GAAG,CAAC;QAQxB,IAAU,CAAA,UAAA,GAAW,KAAK,CAAC;QAQ3B,IAAW,CAAA,WAAA,GAA6H,MAAM,CAAC;AAO9I,QAAA,IAAA,CAAA,iBAAiB,GAAuB,IAAI,YAAY,EAAQ,CAAC;AASnF,KAAA;IAHQ,MAAM,GAAA;AACX,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;KAC/B;+GA5CU,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,ECfpC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,kUAaA,EDFI,MAAA,EAAA,CAAA,8IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,qJACX,uBAAuB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;4FAGd,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAXnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,oBAAoB,EAAA,eAAA,EAGb,uBAAuB,CAAC,MAAM,EACtC,OAAA,EAAA;wBACP,WAAW;wBACX,uBAAuB;AACxB,qBAAA,EAAA,QAAA,EAAA,kUAAA,EAAA,MAAA,EAAA,CAAA,8IAAA,CAAA,EAAA,CAAA;8BAQe,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBAOU,SAAS,EAAA,CAAA;sBAAxB,KAAK;gBAQU,UAAU,EAAA,CAAA;sBAAzB,KAAK;gBAQU,WAAW,EAAA,CAAA;sBAA1B,KAAK;gBAOW,iBAAiB,EAAA,CAAA;sBAAjC,MAAM;;;MEzCI,YAAY,CAAA;IAMhB,cAAc,GAAA;AACnB,QAAA,OAAO,WAAW,CAAC,SAAS,KAAK,EAAE,CAAC;KACrC;IAMM,YAAY,GAAA;QACjB,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAE5B,IAAI,IAAI,CAAC,cAAc,EAAE;YAAE,OAAO,WAAW,CAAC,SAAS,CAAC;AACzD,QAAA,OAAO,IAAI,CAAC;KACZ;IAKS,oBAAoB,GAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC;YAAE,OAAO;AAElF,QAAA,WAAW,CAAC,SAAS,GAAG,EAAE,CAAC;AAC3B,QAAA,WAAW,CAAC,YAAY,GAAG,EAAE,CAAC;AAC9B,QAAA,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AACrC,QAAA,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;KACzC;AAOS,IAAA,cAAc,CAAC,KAAoB,EAAA;AAC3C,QAAA,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE;AAAE,YAAA,OAAO,IAAI,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAEhD,IAAI,IAAI,KAAK,IAAI;AAAE,YAAA,OAAO,KAAK,CAAC;AAChC,QAAA,OAAO,EAAU,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;KACpE;AAOS,IAAA,sBAAsB,CAAC,KAAoB,EAAA;QACnD,MAAM,OAAO,GAAQ,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,IAAI,CAAC;AAE5D,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;KACb;AAOS,IAAA,WAAW,CAAC,KAAoB,EAAA;AACxC,QAAA,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE;AAAE,YAAA,OAAO,IAAI,CAAC;QAExC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC/B,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,sHAAA,CAAwH,CAAC,CAAC;QAElK,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/C,QAAA,IAAI,CAAC,OAAO;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAE1D,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;KAC5B;AAOS,IAAA,eAAe,CAAC,GAAW,EAAA;AACnC,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;AACvB,YAAA,KAAK,CAAC;gBACJ,MAAM;AAER,YAAA,KAAK,CAAC;gBACJ,MAAM,IAAI,IAAI,CAAC;gBACf,MAAM;AAER,YAAA,KAAK,CAAC;gBACJ,MAAM,IAAI,GAAG,CAAC;gBACd,MAAM;AAER,YAAA;AACE,gBAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;SAChD;AACD,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;KACtC;AAOS,IAAA,gBAAgB,CAAC,GAAW,EAAA;QACpC,OAAO,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAM,KAAK,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;KACtJ;AAOS,IAAA,SAAS,CAAC,GAAW,EAAA;QAC7B,MAAM,KAAK,GAAG,mEAAmE,CAAC;QAClF,IAAI,MAAM,GAAG,EAAE,CAAC;AAEhB,QAAA,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACrC,QAAA,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,iEAAA,CAAmE,CAAC,CAAC;AAE/G,QAAA,KACE,IAAI,EAAE,GAAG,CAAC,EAAE,EAAO,EAAE,MAAW,EAAE,GAAG,GAAG,CAAC,GACxC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAE3B,CAAC,MAAM,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAE,EAAE,GAAG,EAAE,GAAG,MAAM,GAAG,MAAM,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,IAAG,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACnI,YAAA,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAEjC,QAAA,OAAO,MAAM,CAAC;KACf;+GApIU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACNM,MAAM,SAAS,GAAkB,MAAc;AACpD,IAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAEtC,IAAA,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,EAAE;AAC9B,QAAA,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC;KAC/B;AACD,IAAA,OAAO,IAAI,CAAC;AACd;;MCLa,iBAAiB,GAAsB,CAClD,OAAyB,EACzB,IAAmB,KACW;AAC9B,IAAA,OAAO,IAAI,CACT,OAAO,CAAC,KAAK,CAAC;QACZ,OAAO,EAAE,OAAO,CAAC,OAAO;AACxB,QAAA,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,QAAQ;YACjB,aAAa,EAAE,WAAW,CAAC,SAAS;AACrC,SAAA;AACF,KAAA,CAAC,CACH,CAAC;AACJ,EAAE;MAMW,iBAAiB,CAAA;IAErB,SAAS,CAAC,OAAyB,EAAE,IAAiB,EAAA;AAC3D,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;YAC/B,OAAO,EAAE,OAAO,CAAC,OAAO;AACxB,YAAA,UAAU,EAAE;gBACV,aAAa,EAAE,WAAW,CAAC,SAAS;AACpC,gBAAA,OAAO,EAAE,QAAQ;AAClB,aAAA;AACF,SAAA,CAAC,CAAC,CAAC;KACL;+GAVU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAjB,iBAAiB,EAAA,CAAA,CAAA,EAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;;;MClBE,uBAAuB,GAAsB,CACxD,OAAyB,EACzB,IAAmB,KACW;AAC9B,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAExC,IAAA,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CACvB,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,KAAI;QACnC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,oBAAoB,EAAE;YACtD,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACpC;QAED,OAAO,WAAW,CAAC,YAAY,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAC9E,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI;YACrB,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAK,CAAC,wBAAwB,CAAC;AAErE,YAAA,WAAW,CAAC,SAAS,GAAG,WAAY,CAAC;AACrC,YAAA,WAAW,CAAC,YAAY,GAAG,YAAa,CAAC;AAEzC,YAAA,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,WAAY,CAAC,CAAC;AAChD,YAAA,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,YAAa,CAAC,CAAC;AAEpD,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACxB,gBAAA,UAAU,EAAE;AACV,oBAAA,aAAa,EAAE,WAAY;AAC5B,iBAAA;AACF,aAAA,CAAC,CAAC,CAAC;AACN,SAAC,CAAC,EACF,UAAU,CAAC,MAAK;AACd,YAAA,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACjC,YAAA,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACpC,YAAA,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AACrC,YAAA,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAExC,YAAA,WAAW,CAAC,SAAS,GAAG,EAAE,CAAC;AAC3B,YAAA,WAAW,CAAC,YAAY,GAAG,EAAE,CAAC;AAC9B,YAAA,WAAW,CAAC,IAAI,GAAG,SAAS,CAAC;AAE7B,YAAA,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC;YAC9B,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACpC,CAAC,CACH,CAAC;KACH,CAAC,CACH,CAAC;AACJ,EAAE;MAMW,uBAAuB,CAAA;AAElC,IAAA,WAAA,CACqB,WAAwB,EAAA;QAAxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;KACxC;IAEE,SAAS,CAAC,OAAyB,EAAE,IAAiB,EAAA;QAC3D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9B,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,KAAI;YACnC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,oBAAoB,EAAE;gBACtD,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CACnF,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI;oBACrB,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAK,CAAC,wBAAwB,CAAC;AAErE,oBAAA,WAAW,CAAC,SAAS,GAAG,WAAY,CAAC;AACrC,oBAAA,WAAW,CAAC,YAAY,GAAG,YAAa,CAAC;AAEzC,oBAAA,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,WAAY,CAAC,CAAC;AAChD,oBAAA,YAAY,CAAC,OAAO,CAAC,cAAc,EAAE,YAAa,CAAC,CAAC;AAEpD,oBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;AAC/B,wBAAA,UAAU,EAAE;AACV,4BAAA,aAAa,EAAE,WAAY;AAC5B,yBAAA;AACF,qBAAA,CAAC,CAAC,CAAC;AACN,iBAAC,CAAC,EACF,UAAU,CAAC,MAAK;AACd,oBAAA,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;AACjC,oBAAA,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AACpC,oBAAA,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AACrC,oBAAA,YAAY,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAExC,oBAAA,WAAW,CAAC,SAAS,GAAG,EAAE,CAAC;AAC3B,oBAAA,WAAW,CAAC,YAAY,GAAG,EAAE,CAAC;AAC9B,oBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,SAAS,CAAC;AAElC,oBAAA,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC;oBAC9B,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;iBACpC,CAAC,CACH,CAAC;aACH;YAED,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;SACpC,CAAC,CACH,CAAC;KACH;+GA7CU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAU,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;mHAAvB,uBAAuB,EAAA,CAAA,CAAA,EAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;;;;;"}
|