mstate-angular 0.2.1 → 0.2.3

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.
Files changed (90) hide show
  1. package/esm2022/lib/action-form/action-form.component.mjs +149 -0
  2. package/esm2022/lib/common/constant.mjs +5 -0
  3. package/esm2022/lib/common/enum.mjs +48 -0
  4. package/esm2022/lib/components/action-card/action-card.component.mjs +24 -0
  5. package/esm2022/lib/components/button/button.component.mjs +20 -0
  6. package/esm2022/lib/components/dropdown/dropdown.component.mjs +50 -0
  7. package/esm2022/lib/components/error-card/error-card.component.mjs +23 -0
  8. package/esm2022/lib/components/input-field/input-field.component.mjs +27 -0
  9. package/esm2022/lib/components/loader/loader.component.mjs +12 -0
  10. package/esm2022/lib/components/select/select.component.mjs +50 -0
  11. package/esm2022/lib/components/workflow-end-card/workflow-end-card.component.mjs +11 -0
  12. package/esm2022/lib/input-selector/input-selector.component.mjs +42 -0
  13. package/esm2022/lib/interfaces/api.interface.mjs +2 -0
  14. package/esm2022/lib/interfaces/interface.mjs +2 -0
  15. package/esm2022/lib/mstate-angular/mstate-angular.component.mjs +155 -0
  16. package/esm2022/lib/mstate-angular.helper.mjs +61 -0
  17. package/esm2022/lib/mstate-angular.module.mjs +18 -0
  18. package/esm2022/lib/mstate-angular.service.mjs +50 -0
  19. package/esm2022/mstate-angular.mjs +5 -0
  20. package/esm2022/public-api.mjs +6 -0
  21. package/fesm2022/mstate-angular.mjs +673 -0
  22. package/fesm2022/mstate-angular.mjs.map +1 -0
  23. package/index.d.ts +5 -0
  24. package/lib/action-form/action-form.component.d.ts +33 -0
  25. package/lib/common/constant.d.ts +2 -0
  26. package/lib/common/enum.d.ts +41 -0
  27. package/lib/components/action-card/action-card.component.d.ts +11 -0
  28. package/lib/components/button/button.component.d.ts +7 -0
  29. package/lib/components/dropdown/dropdown.component.d.ts +22 -0
  30. package/lib/components/error-card/error-card.component.d.ts +9 -0
  31. package/lib/components/input-field/input-field.component.d.ts +16 -0
  32. package/lib/components/loader/loader.component.d.ts +5 -0
  33. package/lib/components/select/select.component.d.ts +22 -0
  34. package/lib/components/workflow-end-card/workflow-end-card.component.d.ts +5 -0
  35. package/lib/input-selector/input-selector.component.d.ts +21 -0
  36. package/{src/lib/interfaces/api.interface.ts → lib/interfaces/api.interface.d.ts} +42 -51
  37. package/lib/interfaces/interface.d.ts +73 -0
  38. package/lib/mstate-angular/mstate-angular.component.d.ts +72 -0
  39. package/lib/mstate-angular.helper.d.ts +18 -0
  40. package/lib/mstate-angular.module.d.ts +9 -0
  41. package/lib/mstate-angular.service.d.ts +17 -0
  42. package/package.json +27 -14
  43. package/{src/public-api.ts → public-api.d.ts} +2 -6
  44. package/ng-package.json +0 -7
  45. package/src/lib/action-form/action-form.component.html +0 -13
  46. package/src/lib/action-form/action-form.component.scss +0 -0
  47. package/src/lib/action-form/action-form.component.spec.ts +0 -23
  48. package/src/lib/action-form/action-form.component.ts +0 -124
  49. package/src/lib/common/constant.ts +0 -4
  50. package/src/lib/common/enum.ts +0 -46
  51. package/src/lib/components/action-card/action-card.component.html +0 -1
  52. package/src/lib/components/action-card/action-card.component.scss +0 -0
  53. package/src/lib/components/action-card/action-card.component.spec.ts +0 -21
  54. package/src/lib/components/action-card/action-card.component.ts +0 -21
  55. package/src/lib/components/button/button.component.html +0 -3
  56. package/src/lib/components/button/button.component.scss +0 -0
  57. package/src/lib/components/button/button.component.spec.ts +0 -21
  58. package/src/lib/components/button/button.component.ts +0 -11
  59. package/src/lib/components/dropdown/dropdown.component.html +0 -10
  60. package/src/lib/components/dropdown/dropdown.component.scss +0 -0
  61. package/src/lib/components/dropdown/dropdown.component.spec.ts +0 -21
  62. package/src/lib/components/dropdown/dropdown.component.ts +0 -46
  63. package/src/lib/components/input-field/input-field.component.html +0 -9
  64. package/src/lib/components/input-field/input-field.component.scss +0 -0
  65. package/src/lib/components/input-field/input-field.component.spec.ts +0 -21
  66. package/src/lib/components/input-field/input-field.component.ts +0 -16
  67. package/src/lib/components/loader/loader.component.html +0 -1
  68. package/src/lib/components/loader/loader.component.scss +0 -0
  69. package/src/lib/components/loader/loader.component.spec.ts +0 -21
  70. package/src/lib/components/loader/loader.component.ts +0 -11
  71. package/src/lib/components/select/select.component.html +0 -10
  72. package/src/lib/components/select/select.component.scss +0 -43
  73. package/src/lib/components/select/select.component.spec.ts +0 -21
  74. package/src/lib/components/select/select.component.ts +0 -46
  75. package/src/lib/input-selector/input-selector.component.html +0 -23
  76. package/src/lib/input-selector/input-selector.component.scss +0 -0
  77. package/src/lib/input-selector/input-selector.component.spec.ts +0 -21
  78. package/src/lib/input-selector/input-selector.component.ts +0 -38
  79. package/src/lib/interfaces/interface.ts +0 -81
  80. package/src/lib/material.scss +0 -439
  81. package/src/lib/mstate-angular/mstate-angular.component.html +0 -40
  82. package/src/lib/mstate-angular/mstate-angular.component.scss +0 -36
  83. package/src/lib/mstate-angular/mstate-angular.component.spec.ts +0 -21
  84. package/src/lib/mstate-angular/mstate-angular.component.ts +0 -186
  85. package/src/lib/mstate-angular.helper.ts +0 -35
  86. package/src/lib/mstate-angular.module.ts +0 -9
  87. package/src/lib/mstate-angular.service.ts +0 -77
  88. package/tsconfig.lib.json +0 -14
  89. package/tsconfig.lib.prod.json +0 -10
  90. package/tsconfig.spec.json +0 -14
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mstate-angular.mjs","sources":["../../../projects/mstate-angular/src/lib/common/enum.ts","../../../projects/mstate-angular/src/lib/common/constant.ts","../../../projects/mstate-angular/src/lib/mstate-angular.helper.ts","../../../projects/mstate-angular/src/lib/mstate-angular.service.ts","../../../projects/mstate-angular/src/lib/components/input-field/input-field.component.ts","../../../projects/mstate-angular/src/lib/components/input-field/input-field.component.html","../../../projects/mstate-angular/src/lib/components/select/select.component.ts","../../../projects/mstate-angular/src/lib/components/select/select.component.html","../../../projects/mstate-angular/src/lib/components/dropdown/dropdown.component.ts","../../../projects/mstate-angular/src/lib/components/dropdown/dropdown.component.html","../../../projects/mstate-angular/src/lib/input-selector/input-selector.component.ts","../../../projects/mstate-angular/src/lib/input-selector/input-selector.component.html","../../../projects/mstate-angular/src/lib/components/button/button.component.ts","../../../projects/mstate-angular/src/lib/components/button/button.component.html","../../../projects/mstate-angular/src/lib/components/loader/loader.component.ts","../../../projects/mstate-angular/src/lib/components/loader/loader.component.html","../../../projects/mstate-angular/src/lib/action-form/action-form.component.ts","../../../projects/mstate-angular/src/lib/action-form/action-form.component.html","../../../projects/mstate-angular/src/lib/components/action-card/action-card.component.ts","../../../projects/mstate-angular/src/lib/components/action-card/action-card.component.html","../../../projects/mstate-angular/src/lib/components/error-card/error-card.component.ts","../../../projects/mstate-angular/src/lib/components/error-card/error-card.component.html","../../../projects/mstate-angular/src/lib/components/workflow-end-card/workflow-end-card.component.ts","../../../projects/mstate-angular/src/lib/components/workflow-end-card/workflow-end-card.component.html","../../../projects/mstate-angular/src/lib/mstate-angular/mstate-angular.component.ts","../../../projects/mstate-angular/src/lib/mstate-angular/mstate-angular.component.html","../../../projects/mstate-angular/src/lib/mstate-angular.module.ts","../../../projects/mstate-angular/src/public-api.ts","../../../projects/mstate-angular/src/mstate-angular.ts"],"sourcesContent":["export enum Route {\r\n EXECUTE_ACTION = 'workflow/v2/execute',\r\n GET_WORKFLOW_CONFIG = 'workflow/config',\r\n GET_CURRENT_ACTIONS_WITHOUT_INSTANCE = 'workflow/v2/actions',\r\n GET_CURRENT_ACTIONS_WITH_INSTANCE = 'workflow/actions',\r\n}\r\n\r\nexport enum FieldType {\r\n DATE_PICKER = 'datePicker',\r\n TIME_PICKER = 'timePicker',\r\n INPUT_FIELD = 'inputField',\r\n TEXT_AREA = 'textArea',\r\n CHECKBOX = 'checkBox',\r\n RADIO_LIST = 'radioList',\r\n DROP_DOWN = 'dropDown',\r\n SUMMARY = 'summary',\r\n CONTEXT_FIELD = 'CONTEXT_FIELD',\r\n CUSTOM_FIELD = 'CUSTOM_FIELD',\r\n}\r\n\r\nexport enum ManualStepModule {\r\n CONTEXT_FIELD = 'CONTEXT_FIELD',\r\n CUSTOM_FIELD = 'CUSTOM_FIELD',\r\n USER_INPUT = 'USER_INPUT',\r\n}\r\n\r\nexport enum Theme {\r\n DARK = 'dark',\r\n LIGHT = 'light',\r\n SYSTEM = 'system',\r\n}\r\n\r\nexport enum Variable {\r\n WORKFLOW = 'workflow',\r\n TOKEN = 'token',\r\n INSTANCE_ID = 'instanceID',\r\n START = 'start',\r\n TRIGGER_AGAIN = 'triggerAgain',\r\n ERRORS = 'errors',\r\n}\r\n\r\nexport enum ActionType {\r\n MANUAL = 'MANUAL',\r\n AUTO = 'AUTO',\r\n CHAINED = 'CHAINED',\r\n}\r\n","// export const MSTATE_URL: string = 'https://dev.mstate.mobioffice.io/api';\r\n// export const MSTATE_URL = 'http://localhost:3000/api';\r\nexport const MSTATE_URL: string = 'https://api.mstate.mobioffice.io/api';\r\nexport const TOKEN_KEY: string = 'secret-key';\r\n","import { Injectable, SimpleChanges } from '@angular/core';\r\nimport { Step, UserInput } from './interfaces/interface';\r\nimport { FieldType } from './common/enum';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MstateAngularHelper {\r\n detectChange(change: SimpleChanges, keys: string[]) {\r\n for (const key of keys) {\r\n if (change[key] && change[key].currentValue !== change[key].previousValue)\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n formatString(str: string = '') {\r\n return str.toUpperCase().replace(/_/gi, ' ');\r\n }\r\n\r\n getObjectValue<T>(obj: any, target: string) {\r\n const keys = target ? target.split('.') : [];\r\n\r\n let cur: any = obj;\r\n for (const key of keys) {\r\n cur = cur?.[key];\r\n }\r\n\r\n return cur as T | undefined;\r\n }\r\n\r\n checkIsStep(step: Step | UserInput): step is Step {\r\n return (step as Step)?.config !== undefined;\r\n }\r\n\r\n checkIsHandledStep(module: FieldType) {\r\n switch (module) {\r\n case FieldType.CHECKBOX:\r\n case FieldType.DROP_DOWN:\r\n case FieldType.INPUT_FIELD:\r\n case FieldType.RADIO_LIST:\r\n return true;\r\n\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n checkInputError(form: FormGroup, key: string) {\r\n switch (\r\n (form.controls[key].status === 'INVALID' && form.controls[key].touched) ||\r\n (form.controls[key].status === 'INVALID' && form.controls[key].dirty)\r\n ) {\r\n case true:\r\n return {\r\n isError: true,\r\n message: `${key} is required`,\r\n };\r\n default:\r\n return {\r\n isError: false,\r\n message: '',\r\n };\r\n }\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { MSTATE_URL, TOKEN_KEY } from './common/constant';\r\nimport { Route } from './common/enum';\r\n\r\nimport {\r\n GetCurrentActionsWithInstanceIDRequest,\r\n GetCurrentActionsWithoutInstanceIDRequest,\r\n GetCurrentActionsWithoutInstanceIDResponse,\r\n MstateResponse,\r\n PostExecuteActionRequest,\r\n PostExecuteActionResponse,\r\n} from './interfaces/api.interface';\r\nimport axios, { AxiosRequestConfig } from 'axios';\r\nimport { MstateAngularHelper } from './mstate-angular.helper';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class MstateAngularService {\r\n private getHeaders(token: string) {\r\n return new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n [TOKEN_KEY]: token,\r\n });\r\n }\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private mstateHelper: MstateAngularHelper\r\n ) {}\r\n\r\n executeAction<T>(payload: PostExecuteActionRequest<T>) {\r\n return this.http.post<MstateResponse<PostExecuteActionResponse>>(\r\n `${MSTATE_URL}/${Route.EXECUTE_ACTION}`,\r\n {\r\n instanceID: payload.instanceID ?? '',\r\n name: payload.workflow,\r\n action: payload.action,\r\n },\r\n { headers: this.getHeaders(payload.token) }\r\n );\r\n }\r\n\r\n getCurrentActionsWithInstanceID(\r\n payload: GetCurrentActionsWithInstanceIDRequest\r\n ) {\r\n return this.http.get<\r\n MstateResponse<GetCurrentActionsWithoutInstanceIDResponse>\r\n >(\r\n `${MSTATE_URL}/${Route.GET_CURRENT_ACTIONS_WITH_INSTANCE}/${payload.instanceID}`,\r\n {\r\n headers: this.getHeaders(payload.token),\r\n }\r\n );\r\n }\r\n\r\n getCurrentActionsWithoutInstanceID(\r\n payload: GetCurrentActionsWithoutInstanceIDRequest\r\n ) {\r\n return this.http.get<\r\n MstateResponse<GetCurrentActionsWithoutInstanceIDResponse>\r\n >(\r\n `${MSTATE_URL}/${Route.GET_CURRENT_ACTIONS_WITHOUT_INSTANCE}?name=${payload.workflow}`,\r\n {\r\n headers: this.getHeaders(payload.token),\r\n }\r\n );\r\n }\r\n\r\n async handleDropdownAPI(request: AxiosRequestConfig, target: string) {\r\n const response = await axios(request);\r\n\r\n return this.mstateHelper.getObjectValue<any>(response?.data, target) ?? [];\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UserInput } from '../../interfaces/interface';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MstateAngularHelper } from '../../mstate-angular.helper';\n\n@Component({\n selector: 'mobi-office-input-field',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule],\n templateUrl: './input-field.component.html',\n styleUrl: './input-field.component.scss',\n})\nexport class InputFieldComponent {\n @Input({ required: true }) config!: UserInput;\n @Input({ required: true }) mstateModel!: FormGroup;\n\n constructor(private mstateHelper: MstateAngularHelper) {}\n\n checkInputError(form: FormGroup, key: string) {\n return this.mstateHelper.checkInputError(form, key);\n }\n}\n","<div\n class=\"form-group\"\n [formGroup]=\"mstateModel\"\n style=\"display: flex; flex-direction: column\"\n>\n <label>{{ config.label }}</label>\n <input\n style=\"flex: 1\"\n [required]=\"config.field.isRequired || false\"\n [type]=\"config.inputType\"\n [name]=\"config.field.keyForAPI\"\n [placeholder]=\"config.field.placeholder\"\n [formControlName]=\"config.field.keyForAPI\"\n class=\"form-control\"\n />\n @if (checkInputError(mstateModel, config.field.keyForAPI).isError) {\n <small>{{\n checkInputError(mstateModel, config.field.keyForAPI).message\n }}</small>\n }\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UserInput } from '../../interfaces/interface';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MstateAngularService } from '../../mstate-angular.service';\nimport { MstateAngularHelper } from '../../mstate-angular.helper';\nimport { NgSelectModule } from '@ng-select/ng-select';\n\n@Component({\n selector: 'mobi-office-select',\n standalone: true,\n imports: [ReactiveFormsModule, NgSelectModule, CommonModule],\n providers: [MstateAngularService],\n templateUrl: './select.component.html',\n styleUrl: './select.component.scss',\n})\nexport class SelectComponent implements OnInit {\n @Input({ required: true }) config!: UserInput;\n @Input({ required: true }) mstateModel!: FormGroup;\n\n constructor(\n private mstateService: MstateAngularService,\n private mstateHelper: MstateAngularHelper\n ) {}\n\n protected list: any[] = [];\n\n ngOnInit(): void {\n const field = this.config.field ?? {};\n\n if (field.request) {\n this.mstateService\n .handleDropdownAPI(field.request, field?.mapper?.target ?? '')\n .then((data) => {\n this.list = data;\n })\n .catch((e) => console.log(e));\n } else {\n this.list = field.itemList ?? [];\n }\n }\n\n getObjectValue(obj: any, target: string) {\n return this.mstateHelper.getObjectValue(obj, target);\n }\n\n checkInputError(form: FormGroup, key: string) {\n return this.mstateHelper.checkInputError(form, key);\n }\n}\n","<div class=\"form-group\" [formGroup]=\"mstateModel\">\n <label>{{ config.label }}</label>\n\n <ng-select\n [required]=\"config.field.isRequired || false\"\n [items]=\"list\"\n [multiple]=\"true\"\n [bindLabel]=\"this.config.field.mapper?.label ?? 'label'\"\n [placeholder]=\"config.field.placeholder\"\n [formControlName]=\"config.field.keyForAPI\"\n >\n </ng-select>\n\n @if (checkInputError(mstateModel, config.field.keyForAPI).isError) {\n <small>{{\n checkInputError(mstateModel, config.field.keyForAPI).message\n }}</small>\n }\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UserInput } from '../../interfaces/interface';\nimport { FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { MstateAngularService } from '../../mstate-angular.service';\nimport { MstateAngularHelper } from '../../mstate-angular.helper';\nimport { NgSelectModule } from '@ng-select/ng-select';\n\n@Component({\n selector: 'mobi-office-dropdown',\n standalone: true,\n imports: [ReactiveFormsModule, NgSelectModule, CommonModule],\n providers: [MstateAngularService],\n templateUrl: './dropdown.component.html',\n styleUrl: './dropdown.component.scss',\n})\nexport class DropdownComponent implements OnInit {\n @Input({ required: true }) config!: UserInput;\n @Input({ required: true }) mstateModel!: FormGroup;\n\n constructor(\n private mstateService: MstateAngularService,\n private mstateHelper: MstateAngularHelper\n ) {}\n\n protected list: any[] = [];\n\n ngOnInit(): void {\n const field = this.config.field ?? {};\n\n if (field.request) {\n this.mstateService\n .handleDropdownAPI(field.request, field?.mapper?.target ?? '')\n .then((data) => {\n this.list = data;\n })\n .catch((e) => console.log(e));\n } else {\n this.list = field.itemList ?? [];\n }\n }\n\n getObjectValue(obj: any, target: string) {\n return this.mstateHelper.getObjectValue(obj, target);\n }\n\n checkInputError(form: FormGroup, key: string) {\n return this.mstateHelper.checkInputError(form, key);\n }\n}\n","<div class=\"form-group\" [formGroup]=\"mstateModel\">\n <label>{{ config.label }}</label>\n\n <ng-select\n [items]=\"list\"\n [multiple]=\"false\"\n [bindLabel]=\"this.config.field.mapper?.label ?? 'label'\"\n [placeholder]=\"config.field.placeholder\"\n [formControlName]=\"config.field.keyForAPI\"\n [required]=\"config.field.isRequired || false\"\n >\n </ng-select>\n\n @if (checkInputError(mstateModel, config.field.keyForAPI).isError) {\n <small>{{\n checkInputError(mstateModel, config.field.keyForAPI).message\n }}</small>\n }\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Step, UserInput } from '../interfaces/interface';\nimport { MstateAngularHelper } from '../mstate-angular.helper';\nimport { MstateAngularService } from '../mstate-angular.service';\nimport { FieldType } from '../common/enum';\nimport { InputFieldComponent } from '../components/input-field/input-field.component';\nimport { SelectComponent } from '../components/select/select.component';\nimport { DropdownComponent } from '../components/dropdown/dropdown.component';\nimport { FormGroup } from '@angular/forms';\n\n@Component({\n selector: 'mobi-office-input-selector',\n standalone: true,\n imports: [\n CommonModule,\n InputFieldComponent,\n SelectComponent,\n DropdownComponent,\n ],\n providers: [MstateAngularHelper, MstateAngularService],\n templateUrl: './input-selector.component.html',\n styleUrl: './input-selector.component.scss',\n})\nexport class InputSelectorComponent implements OnInit {\n @Input({ required: true }) step!: UserInput | Step;\n @Input({ required: true }) mstateModel!: FormGroup;\n\n constructor(private mstateHelper: MstateAngularHelper) {}\n\n protected config!: UserInput;\n protected FieldType = FieldType;\n\n ngOnInit(): void {\n this.config = this.mstateHelper.checkIsStep(this.step)\n ? this.step?.config?.data\n : this.step;\n }\n\n checkInputError(form: FormGroup, key: string) {\n return this.mstateHelper.checkInputError(form, key);\n }\n}\n","@switch (config.fieldType) { @case (FieldType.INPUT_FIELD) {\n<mobi-office-input-field [config]=\"config\" [mstateModel]=\"mstateModel\" />\n} @case (FieldType.TEXT_AREA) {\n<mobi-office-input-field [config]=\"config\" [mstateModel]=\"mstateModel\" />\n} @case (FieldType.DROP_DOWN) {\n<mobi-office-dropdown [config]=\"config\" [mstateModel]=\"mstateModel\" />\n} @case (FieldType.RADIO_LIST) {\n<mobi-office-dropdown [config]=\"config\" [mstateModel]=\"mstateModel\" />\n} @case (FieldType.CHECKBOX) {\n<mobi-office-select [config]=\"config\" [mstateModel]=\"mstateModel\" />\n} @default { } }\n","import { Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'mobi-office-button',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n})\nexport class ButtonComponent {\n @Input() type: 'submit' | 'menu' | 'reset' | 'button' = 'submit';\n @Input() onClick: () => void = () => {};\n}\n","<button [type]=\"type\" (click)=\"onClick()\" class=\"btn\">\n <ng-content></ng-content>\n</button>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'mobi-office-loader',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './loader.component.html',\n styleUrl: './loader.component.scss',\n})\nexport class LoaderComponent {}\n","<span>Loading...</span>\n","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { MstateAngularService } from '../mstate-angular.service';\r\nimport { catchError, finalize } from 'rxjs';\r\nimport { ActionConfig, UserInput } from '../interfaces/interface';\r\nimport { EvaluatedAction } from '../interfaces/api.interface';\r\nimport { ActionType, ManualStepModule } from '../common/enum';\r\nimport { InputSelectorComponent } from '../input-selector/input-selector.component';\r\nimport { ButtonComponent } from '../components/button/button.component';\r\nimport {\r\n FormBuilder,\r\n FormGroup,\r\n ReactiveFormsModule,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { MstateAngularHelper } from '../mstate-angular.helper';\r\nimport { LoaderComponent } from '../components/loader/loader.component';\r\n\r\n@Component({\r\n selector: 'lib-action-form',\r\n standalone: true,\r\n imports: [\r\n InputSelectorComponent,\r\n ButtonComponent,\r\n ReactiveFormsModule,\r\n LoaderComponent,\r\n ],\r\n providers: [MstateAngularService, MstateAngularHelper],\r\n templateUrl: './action-form.component.html',\r\n styleUrl: './action-form.component.scss',\r\n})\r\nexport class ActionFormComponent implements OnInit {\r\n @Input({ required: true }) token: string = '';\r\n @Input({ required: true }) workflow: string = '';\r\n @Input({ required: true }) config: ActionConfig | EvaluatedAction = {\r\n name: '',\r\n type: ActionType.MANUAL,\r\n steps: [],\r\n };\r\n @Output() onExecuteAction = new EventEmitter<{\r\n value: any;\r\n errors?: string[];\r\n }>();\r\n @Input() updateCustomFieldValue?: (key: string) => any;\r\n\r\n @Input() instanceID?: string;\r\n @Input() onSuccess?: (actionName: string) => void;\r\n\r\n //#region Custom Declaration\r\n protected form!: FormGroup;\r\n protected isLoading = false;\r\n protected nonUserInputField: any = {};\r\n\r\n constructor(\r\n private fb: FormBuilder,\r\n private mstateAngularService: MstateAngularService,\r\n private mstateHelper: MstateAngularHelper,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n if (Boolean(this.config?.steps?.length) === false) {\r\n this.handleExecuteAction();\r\n return;\r\n }\r\n\r\n this.assignFormBuilder();\r\n this.handleStepConfigFilter();\r\n }\r\n\r\n //#region handlers\r\n\r\n protected handleExecuteAction() {\r\n if (this.form.status === 'VALID') {\r\n this.isLoading = true;\r\n\r\n this.mstateAngularService\r\n .executeAction({\r\n action: {\r\n name: this.config.name,\r\n payload: {\r\n ...this.form.value,\r\n ...this.nonUserInputField,\r\n },\r\n },\r\n token: this.token,\r\n workflow: this.workflow,\r\n })\r\n .pipe(\r\n catchError((e) => {\r\n this.onExecuteAction.emit({\r\n value: {},\r\n errors: e.error?.errors ?? [],\r\n });\r\n\r\n throw e;\r\n }),\r\n finalize(() => {\r\n this.isLoading = false;\r\n }),\r\n )\r\n .subscribe((data) => {\r\n this.onExecuteAction.emit({\r\n value: data.data,\r\n errors: [],\r\n });\r\n if (this.onSuccess) {\r\n this.onSuccess(this.config.name);\r\n }\r\n });\r\n } else {\r\n this.markAllAsTouched(this.form);\r\n }\r\n }\r\n private markAllAsTouched(formGroup: FormGroup): void {\r\n Object.keys(formGroup.controls).forEach((key) => {\r\n const control = formGroup.get(key);\r\n if (control?.markAsTouched) {\r\n control?.markAsTouched();\r\n }\r\n });\r\n }\r\n\r\n private handleStepConfigFilter = () => {\r\n const keyForAPISet = new Set();\r\n\r\n this.config.steps = this.config?.steps?.filter((stepConfig) => {\r\n const step = stepConfig as UserInput;\r\n\r\n switch (step?.module) {\r\n case ManualStepModule.CUSTOM_FIELD: {\r\n if (this.updateCustomFieldValue) {\r\n this.nonUserInputField[step?.context?.as] =\r\n this.updateCustomFieldValue(step?.context?.key);\r\n }\r\n return true;\r\n }\r\n\r\n case ManualStepModule.CONTEXT_FIELD:\r\n this.nonUserInputField[step?.context?.as] = step?.context?.value;\r\n return true;\r\n\r\n default: {\r\n const isDuplicate = keyForAPISet.has(step?.field?.keyForAPI);\r\n keyForAPISet.add(step?.field?.keyForAPI);\r\n return isDuplicate === false;\r\n }\r\n }\r\n }) as UserInput[];\r\n };\r\n\r\n private assignFormBuilder() {\r\n const validators = this.config.steps.reduce(\r\n (acc, data) =>\r\n Object.assign(\r\n acc,\r\n this.mstateHelper.checkIsStep(data) === false &&\r\n this.mstateHelper.checkIsHandledStep(data.fieldType)\r\n ? {\r\n [data?.field?.keyForAPI]: [\r\n data?.field.multiple ? [] : '',\r\n data?.field?.isRequired ? [Validators.required] : undefined,\r\n ],\r\n }\r\n : {},\r\n ),\r\n {},\r\n );\r\n this.form = this.fb.group(validators);\r\n }\r\n\r\n //#endregion\r\n}\r\n","<div>\r\n <p style=\"font-size: 2rem; text-align: center\">\r\n {{ config.meta?.title ?? config.name }}\r\n </p>\r\n\r\n <form [formGroup]=\"form\" (ngSubmit)=\"handleExecuteAction()\">\r\n @for (step of config.steps; track $index) {\r\n <mobi-office-input-selector [step]=\"step\" [mstateModel]=\"form\" />\r\n }\r\n\r\n <div style=\"margin-top: 10px\">\r\n <mobi-office-button type=\"submit\">\r\n @if (isLoading) {\r\n <mobi-office-loader></mobi-office-loader>\r\n } @else {\r\n Submit\r\n }\r\n </mobi-office-button>\r\n </div>\r\n </form>\r\n</div>\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EvaluatedAction } from '../../interfaces/api.interface';\nimport { ActionConfig } from '../../interfaces/interface';\nimport { ButtonComponent } from '../button/button.component';\n\n@Component({\n selector: 'mobi-office-action-card',\n standalone: true,\n imports: [CommonModule, ButtonComponent],\n templateUrl: './action-card.component.html',\n styleUrl: './action-card.component.scss',\n})\nexport class ActionCardComponent {\n @Input({ required: true }) config?: EvaluatedAction | ActionConfig;\n @Output() executeAction = new EventEmitter<EvaluatedAction | ActionConfig>();\n\n triggerExecuteAction() {\n this.executeAction.emit(this.config);\n }\n}\n","<div class=\"card\">\n <div class=\"img\"></div>\n <div class=\"card-action\">\n <mobi-office-button (click)=\"triggerExecuteAction()\">\n perform\n </mobi-office-button>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { ButtonComponent } from '../button/button.component';\r\n\r\n@Component({\r\n selector: 'lib-error-card',\r\n standalone: true,\r\n imports: [ButtonComponent],\r\n templateUrl: './error-card.component.html',\r\n styleUrl: './error-card.component.scss',\r\n})\r\nexport class ErrorCardComponent {\r\n @Input({ required: true }) errors!: string[];\r\n @Output() retry = new EventEmitter<undefined>();\r\n\r\n protected handleRetryError() {\r\n this.retry.emit();\r\n }\r\n}\r\n","<div class=\"error\">\r\n <p style=\"font-size: 2rem; text-align: center\">Error</p>\r\n\r\n @for (message of errors; track message) {\r\n <small>\r\n {{ message }}\r\n </small>\r\n }\r\n <mobi-office-button (click)=\"handleRetryError()\">Retry</mobi-office-button>\r\n</div>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-workflow-end-card',\r\n standalone: true,\r\n imports: [],\r\n templateUrl: './workflow-end-card.component.html',\r\n styleUrl: './workflow-end-card.component.scss',\r\n})\r\nexport class WorkflowEndCardComponent {}\r\n","<p>Workflow Ended</p>\r\n","import {\n Component,\n Input,\n OnChanges,\n OnInit,\n SimpleChanges,\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { Theme, Variable } from '../common/enum';\nimport { ActionFormComponent } from '../action-form/action-form.component';\nimport { MstateAngularHelper } from '../mstate-angular.helper';\nimport { MstateAngularService } from '../mstate-angular.service';\nimport { catchError, finalize } from 'rxjs';\nimport { EvaluatedAction } from '../interfaces/api.interface';\nimport { ActionConfig } from '../interfaces/interface';\nimport { ActionCardComponent } from '../components/action-card/action-card.component';\nimport { LoaderComponent } from '../components/loader/loader.component';\nimport { ErrorCardComponent } from '../components/error-card/error-card.component';\nimport { WorkflowEndCardComponent } from '../components/workflow-end-card/workflow-end-card.component';\n\n@Component({\n selector: 'mstate-angular',\n standalone: true,\n imports: [\n CommonModule,\n ActionFormComponent,\n ActionCardComponent,\n LoaderComponent,\n ErrorCardComponent,\n WorkflowEndCardComponent,\n ],\n providers: [MstateAngularHelper, MstateAngularService],\n templateUrl: './mstate-angular.component.html',\n styleUrl: './mstate-angular.component.scss',\n})\nexport class MstateAngularComponent implements OnChanges, OnInit {\n @Input({ required: true }) token: string = '';\n @Input({ required: true }) workflow: string = '';\n @Input() instanceID?: string;\n /**\n * @type {boolean}\n * @default true\n * @description Trigger if to start workflow.\n */\n @Input() start: boolean = true;\n /**\n * @type {'dark' | 'light' | 'system'}\n * @default 'light'\n * @description To change the color theme of mstate.\n */\n @Input() theme?: Theme;\n /**\n * @type {string}\n * @description To Validate who are allowed to perform or see action.\n */\n @Input() who?: string;\n /**\n * Triggers whenever your current workflow moved to other.\n * @param {string} newInstanceID - The new instance ID on which your current workflow moved.\n * @returns {void}.\n */\n @Input() onInstanceChange?: (newInstanceID: string) => void;\n /**\n * Triggers when The Action execution is completed.\n * @param {string} actionName - action name which you have executed at this moment.\n * @returns {void}.\n */\n @Input() onSuccess?: (actionName: string) => void;\n /**\n * Triggers when Error occurs while performing any action.\n * @param {unknown[]} errors - Error response from the api call done by Mstate.\n * @returns {void}.\n */\n @Input() onError?: (errors: unknown[]) => void;\n /**\n * Handles your steps which contain Custom field module.\n * @param {string} key - Which key you expect for getting the value.\n * @returns {unknown} - whatever value you want to save in that custom field.\n */\n @Input() handleCustomField?: (key: string) => unknown;\n\n //#region Variables & Events\n\n protected isLoading = true;\n protected errors: any[] = [];\n protected errorMessages: string[] = [];\n protected allowedActions: (EvaluatedAction | ActionConfig)[] = [];\n\n constructor(\n private mstateAngularHelper: MstateAngularHelper,\n private mstateAngularService: MstateAngularService,\n ) {}\n\n ngOnInit(): void {\n if (this.start) this.setAllowedActions();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.mstateAngularHelper.detectChange(changes, [Variable.START])) {\n if (this.start) this.setAllowedActions();\n }\n }\n\n //#endregion\n\n //#region Handlers\n\n private setAllowedActions() {\n this.isLoading = true;\n\n if (this.instanceID) {\n this.mstateAngularService\n .getCurrentActionsWithInstanceID({\n instanceID: this.instanceID,\n token: this.token,\n })\n .pipe(\n catchError((err: any) => {\n this.handleError({}, err.error?.errors);\n throw err;\n }),\n finalize(() => {\n this.isLoading = false;\n }),\n )\n .subscribe((data) => {\n this.allowedActions = Object.values(data.data);\n });\n } else {\n this.mstateAngularService\n .getCurrentActionsWithoutInstanceID({\n workflow: this.workflow,\n token: this.token,\n })\n .pipe(\n catchError((err: any) => {\n this.handleError({}, err.error?.errors);\n throw err;\n }),\n finalize(() => {\n this.isLoading = false;\n }),\n )\n .subscribe((data) => {\n this.allowedActions = Object.values(data.data);\n });\n }\n }\n\n protected handleExecuteAction(response: { value: any; errors?: string[] }) {\n const { value, errors = [] } = response;\n\n if (errors?.length) {\n this.handleError(value, errors);\n } else {\n this.allowedActions = value.actions;\n }\n\n if (\n value?.instanceID &&\n value?.instanceID !== this.instanceID &&\n !errors?.length\n ) {\n this.instanceID = value?.instanceID;\n\n if (this.onInstanceChange) {\n this.onInstanceChange(value?.instanceID);\n }\n }\n }\n\n protected handleActionExecution(config: EvaluatedAction | ActionConfig) {\n this.allowedActions = [config];\n }\n\n protected handleRetryAction() {\n if (this.allowedActions.length === 0) {\n if (this.start) this.setAllowedActions();\n }\n\n this.errors = [];\n this.errorMessages = [];\n }\n\n private handleError(value: any, errors: any[]) {\n this.errors = errors;\n value.instanceID = errors[0]\n ?.split(\"instanceID='\")\n ?.pop()\n ?.replace(\"'\", '');\n this.errorMessages = this.errors.filter(\n (e: string) => typeof e === 'string',\n );\n\n if (this.onError) {\n this.onError(this.errors);\n }\n }\n //#endregion\n}\n","<div class=\"mstate-angular\">\n <img\n src=\"https://firebasestorage.googleapis.com/v0/b/mobioffice-dev.appspot.com/o/companies_logo%2Flogo.png?alt=media&token=e5f238f0-c373-4c76-9168-37fbe7da1de0\"\n alt=\"logo\"\n width=\"100%\"\n class=\"logo\"\n />\n\n @if (isLoading) {\n <mobi-office-loader />\n } @else if (errorMessages.length) {\n <lib-error-card [errors]=\"errorMessages\" (retry)=\"handleRetryAction()\" />\n } @else {\n @switch (allowedActions.length) {\n @case (0) {\n <lib-workflow-end-card />\n }\n @case (1) {\n <lib-action-form\n [workflow]=\"workflow\"\n [token]=\"token\"\n [instanceID]=\"instanceID\"\n [config]=\"allowedActions[0]\"\n (onExecuteAction)=\"handleExecuteAction($event)\"\n [updateCustomFieldValue]=\"handleCustomField\"\n [onSuccess]=\"onSuccess\"\n ></lib-action-form>\n }\n @default {\n @for (item of allowedActions; track $index) {\n <mobi-office-action-card\n [config]=\"item\"\n (executeAction)=\"handleActionExecution($event)\"\n />\n }\n }\n }\n }\n</div>\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MstateAngularComponent } from './mstate-angular/mstate-angular.component';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n imports: [CommonModule, MstateAngularComponent, ReactiveFormsModule], // Import other necessary modules like CommonModule\r\n exports: [MstateAngularComponent], // Export the pipe so it can be used externally\r\n})\r\nexport class MstateAngularModule {}\r\n","/*\r\n * Public API Surface of mstate-angular\r\n */\r\n\r\nexport * from './lib/mstate-angular/mstate-angular.component';\r\nexport * from './lib/mstate-angular.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.MstateAngularHelper","i1.MstateAngularHelper","i2","i1.MstateAngularService","i1","i2.MstateAngularService","i3.MstateAngularHelper"],"mappings":";;;;;;;;;;;;AAAA,IAAY,KAKX;AALD,CAAA,UAAY,KAAK,EAAA;AACf,IAAA,KAAA,CAAA,gBAAA,CAAA,GAAA,qBAAsC;AACtC,IAAA,KAAA,CAAA,qBAAA,CAAA,GAAA,iBAAuC;AACvC,IAAA,KAAA,CAAA,sCAAA,CAAA,GAAA,qBAA4D;AAC5D,IAAA,KAAA,CAAA,mCAAA,CAAA,GAAA,kBAAsD;AACxD,CAAC,EALW,KAAK,KAAL,KAAK,GAKhB,EAAA,CAAA,CAAA;AAED,IAAY,SAWX;AAXD,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,YAA0B;AAC1B,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,YAA0B;AAC1B,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,YAA0B;AAC1B,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,UAAsB;AACtB,IAAA,SAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,SAAA,CAAA,YAAA,CAAA,GAAA,WAAwB;AACxB,IAAA,SAAA,CAAA,WAAA,CAAA,GAAA,UAAsB;AACtB,IAAA,SAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,SAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,SAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC/B,CAAC,EAXW,SAAS,KAAT,SAAS,GAWpB,EAAA,CAAA,CAAA;AAED,IAAY,gBAIX;AAJD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,gBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,gBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AAC3B,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,GAI3B,EAAA,CAAA,CAAA;AAED,IAAY,KAIX;AAJD,CAAA,UAAY,KAAK,EAAA;AACf,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,KAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACnB,CAAC,EAJW,KAAK,KAAL,KAAK,GAIhB,EAAA,CAAA,CAAA;AAED,IAAY,QAOX;AAPD,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,QAAA,CAAA,aAAA,CAAA,GAAA,YAA0B;AAC1B,IAAA,QAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,QAAA,CAAA,eAAA,CAAA,GAAA,cAA8B;AAC9B,IAAA,QAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACnB,CAAC,EAPW,QAAQ,KAAR,QAAQ,GAOnB,EAAA,CAAA,CAAA;AAED,IAAY,UAIX;AAJD,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,CAAC,EAJW,UAAU,KAAV,UAAU,GAIrB,EAAA,CAAA,CAAA;;AC7CD;AACA;AACO,MAAM,UAAU,GAAW,sCAAsC;AACjE,MAAM,SAAS,GAAW,YAAY;;MCKhC,mBAAmB,CAAA;IAC9B,YAAY,CAAC,MAAqB,EAAE,IAAc,EAAA;AAChD,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACtB,YAAA,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa;AACvE,gBAAA,OAAO,IAAI;;AAGf,QAAA,OAAO,KAAK;;IAGd,YAAY,CAAC,MAAc,EAAE,EAAA;QAC3B,OAAO,GAAG,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;;IAG9C,cAAc,CAAI,GAAQ,EAAE,MAAc,EAAA;AACxC,QAAA,MAAM,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;QAE5C,IAAI,GAAG,GAAQ,GAAG;AAClB,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE;AACtB,YAAA,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;;AAGlB,QAAA,OAAO,GAAoB;;AAG7B,IAAA,WAAW,CAAC,IAAsB,EAAA;AAChC,QAAA,OAAQ,IAAa,EAAE,MAAM,KAAK,SAAS;;AAG7C,IAAA,kBAAkB,CAAC,MAAiB,EAAA;QAClC,QAAQ,MAAM;YACZ,KAAK,SAAS,CAAC,QAAQ;YACvB,KAAK,SAAS,CAAC,SAAS;YACxB,KAAK,SAAS,CAAC,WAAW;YAC1B,KAAK,SAAS,CAAC,UAAU;AACvB,gBAAA,OAAO,IAAI;AAEb,YAAA;AACE,gBAAA,OAAO,KAAK;;;IAIlB,eAAe,CAAC,IAAe,EAAE,GAAW,EAAA;QAC1C,QACE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO;aACrE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;AAErE,YAAA,KAAK,IAAI;gBACP,OAAO;AACL,oBAAA,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,CAAG,EAAA,GAAG,CAAc,YAAA,CAAA;iBAC9B;AACH,YAAA;gBACE,OAAO;AACL,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,OAAO,EAAE,EAAE;iBACZ;;;+GAxDI,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,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,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCYY,oBAAoB,CAAA;AACvB,IAAA,UAAU,CAAC,KAAa,EAAA;QAC9B,OAAO,IAAI,WAAW,CAAC;AACrB,YAAA,cAAc,EAAE,kBAAkB;YAClC,CAAC,SAAS,GAAG,KAAK;AACnB,SAAA,CAAC;;IAGJ,WACU,CAAA,IAAgB,EAChB,YAAiC,EAAA;QADjC,IAAI,CAAA,IAAA,GAAJ,IAAI;QACJ,IAAY,CAAA,YAAA,GAAZ,YAAY;;AAGtB,IAAA,aAAa,CAAI,OAAoC,EAAA;AACnD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,CAAG,EAAA,UAAU,CAAI,CAAA,EAAA,KAAK,CAAC,cAAc,EAAE,EACvC;AACE,YAAA,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;YACpC,IAAI,EAAE,OAAO,CAAC,QAAQ;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM;AACvB,SAAA,EACD,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAC5C;;AAGH,IAAA,+BAA+B,CAC7B,OAA+C,EAAA;AAE/C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAGlB,CAAG,EAAA,UAAU,CAAI,CAAA,EAAA,KAAK,CAAC,iCAAiC,CAAA,CAAA,EAAI,OAAO,CAAC,UAAU,EAAE,EAChF;YACE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;AACxC,SAAA,CACF;;AAGH,IAAA,kCAAkC,CAChC,OAAkD,EAAA;AAElD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAGlB,CAAG,EAAA,UAAU,CAAI,CAAA,EAAA,KAAK,CAAC,oCAAoC,CAAA,MAAA,EAAS,OAAO,CAAC,QAAQ,EAAE,EACtF;YACE,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;AACxC,SAAA,CACF;;AAGH,IAAA,MAAM,iBAAiB,CAAC,OAA2B,EAAE,MAAc,EAAA;AACjE,QAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC;AAErC,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAM,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE;;+GAtDjE,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAApB,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,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA;;4FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCLY,mBAAmB,CAAA;AAI9B,IAAA,WAAA,CAAoB,YAAiC,EAAA;QAAjC,IAAY,CAAA,YAAA,GAAZ,YAAY;;IAEhC,eAAe,CAAC,IAAe,EAAE,GAAW,EAAA;QAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC;;+GAP1C,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,ECbhC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,8mBAqBA,EDZY,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,8BAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,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,EAAA,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;;4FAIhC,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,cACvB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,8mBAAA,EAAA;qFAKjB,MAAM,EAAA,CAAA;sBAAhC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACE,WAAW,EAAA,CAAA;sBAArC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;MECd,eAAe,CAAA;IAI1B,WACU,CAAA,aAAmC,EACnC,YAAiC,EAAA;QADjC,IAAa,CAAA,aAAA,GAAb,aAAa;QACb,IAAY,CAAA,YAAA,GAAZ,YAAY;QAGZ,IAAI,CAAA,IAAA,GAAU,EAAE;;IAE1B,QAAQ,GAAA;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;AAErC,QAAA,IAAI,KAAK,CAAC,OAAO,EAAE;AACjB,YAAA,IAAI,CAAC;AACF,iBAAA,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE;AAC5D,iBAAA,IAAI,CAAC,CAAC,IAAI,KAAI;AACb,gBAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,aAAC;AACA,iBAAA,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;aAC1B;YACL,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE;;;IAIpC,cAAc,CAAC,GAAQ,EAAE,MAAc,EAAA;QACrC,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC;;IAGtD,eAAe,CAAC,IAAe,EAAE,GAAW,EAAA;QAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC;;+GA/B1C,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAAH,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAJf,CAAC,oBAAoB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZnC,8jBAmBA,EAAA,MAAA,EAAA,CAAA,sdAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDRY,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,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,EAAA,EAAA,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,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,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,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKhD,eAAe,EAAA,UAAA,EAAA,CAAA;kBAR3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAClB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,mBAAmB,EAAE,cAAc,EAAE,YAAY,CAAC,EACjD,SAAA,EAAA,CAAC,oBAAoB,CAAC,EAAA,QAAA,EAAA,8jBAAA,EAAA,MAAA,EAAA,CAAA,sdAAA,CAAA,EAAA;qHAKN,MAAM,EAAA,CAAA;sBAAhC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACE,WAAW,EAAA,CAAA;sBAArC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;MEFd,iBAAiB,CAAA;IAI5B,WACU,CAAA,aAAmC,EACnC,YAAiC,EAAA;QADjC,IAAa,CAAA,aAAA,GAAb,aAAa;QACb,IAAY,CAAA,YAAA,GAAZ,YAAY;QAGZ,IAAI,CAAA,IAAA,GAAU,EAAE;;IAE1B,QAAQ,GAAA;QACN,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;AAErC,QAAA,IAAI,KAAK,CAAC,OAAO,EAAE;AACjB,YAAA,IAAI,CAAC;AACF,iBAAA,iBAAiB,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE;AAC5D,iBAAA,IAAI,CAAC,CAAC,IAAI,KAAI;AACb,gBAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAClB,aAAC;AACA,iBAAA,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;aAC1B;YACL,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE;;;IAIpC,cAAc,CAAC,GAAQ,EAAE,MAAc,EAAA;QACrC,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC;;IAGtD,eAAe,CAAC,IAAe,EAAE,GAAW,EAAA;QAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC;;+GA/B1C,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAG,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAAH,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAJjB,CAAC,oBAAoB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECZnC,+jBAmBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDRY,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,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,EAAA,EAAA,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,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,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,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAKhD,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EACpB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,mBAAmB,EAAE,cAAc,EAAE,YAAY,CAAC,EACjD,SAAA,EAAA,CAAC,oBAAoB,CAAC,EAAA,QAAA,EAAA,+jBAAA,EAAA;qHAKN,MAAM,EAAA,CAAA;sBAAhC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACE,WAAW,EAAA,CAAA;sBAArC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;MEMd,sBAAsB,CAAA;AAIjC,IAAA,WAAA,CAAoB,YAAiC,EAAA;QAAjC,IAAY,CAAA,YAAA,GAAZ,YAAY;QAGtB,IAAS,CAAA,SAAA,GAAG,SAAS;;IAE/B,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI;AACnD,cAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE;AACrB,cAAE,IAAI,CAAC,IAAI;;IAGf,eAAe,CAAC,IAAe,EAAE,GAAW,EAAA;QAC1C,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC;;+GAhB1C,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAJtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,SAAA,EAAA,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpBxD,slBAWA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDII,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,EACnB,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,kGACf,iBAAiB,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAMR,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAblC,SAAS;+BACE,4BAA4B,EAAA,UAAA,EAC1B,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,eAAe;wBACf,iBAAiB;AAClB,qBAAA,EAAA,SAAA,EACU,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,EAAA,QAAA,EAAA,slBAAA,EAAA;qFAK3B,IAAI,EAAA,CAAA;sBAA9B,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACE,WAAW,EAAA,CAAA;sBAArC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;;;MEhBd,eAAe,CAAA;AAP5B,IAAA,WAAA,GAAA;QAQW,IAAI,CAAA,IAAA,GAA2C,QAAQ;AACvD,QAAA,IAAA,CAAA,OAAO,GAAe,MAAK,GAAG;AACxC;+GAHY,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECV5B,wGAGA,EAAA,MAAA,EAAA,CAAA,6ZAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDGY,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAIX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAClB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,wGAAA,EAAA,MAAA,EAAA,CAAA,6ZAAA,CAAA,EAAA;8BAKd,IAAI,EAAA,CAAA;sBAAZ;gBACQ,OAAO,EAAA,CAAA;sBAAf;;;MEFU,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECV5B,2BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDKY,YAAY,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAIX,eAAe,EAAA,UAAA,EAAA,CAAA;kBAP3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAClB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,2BAAA,EAAA;;;MEwBZ,mBAAmB,CAAA;AAsB9B,IAAA,WAAA,CACU,EAAe,EACf,oBAA0C,EAC1C,YAAiC,EAAA;QAFjC,IAAE,CAAA,EAAA,GAAF,EAAE;QACF,IAAoB,CAAA,oBAAA,GAApB,oBAAoB;QACpB,IAAY,CAAA,YAAA,GAAZ,YAAY;QAxBK,IAAK,CAAA,KAAA,GAAW,EAAE;QAClB,IAAQ,CAAA,QAAA,GAAW,EAAE;AACrB,QAAA,IAAA,CAAA,MAAM,GAAmC;AAClE,YAAA,IAAI,EAAE,EAAE;YACR,IAAI,EAAE,UAAU,CAAC,MAAM;AACvB,YAAA,KAAK,EAAE,EAAE;SACV;AACS,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAGxC;QAQM,IAAS,CAAA,SAAA,GAAG,KAAK;QACjB,IAAiB,CAAA,iBAAA,GAAQ,EAAE;QAuE7B,IAAsB,CAAA,sBAAA,GAAG,MAAK;AACpC,YAAA,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE;AAE9B,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,UAAU,KAAI;gBAC5D,MAAM,IAAI,GAAG,UAAuB;AAEpC,gBAAA,QAAQ,IAAI,EAAE,MAAM;AAClB,oBAAA,KAAK,gBAAgB,CAAC,YAAY,EAAE;AAClC,wBAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;4BAC/B,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC;gCACvC,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC;;AAEnD,wBAAA,OAAO,IAAI;;oBAGb,KAAK,gBAAgB,CAAC,aAAa;AACjC,wBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK;AAChE,wBAAA,OAAO,IAAI;oBAEb,SAAS;AACP,wBAAA,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC;wBAC5D,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC;wBACxC,OAAO,WAAW,KAAK,KAAK;;;AAGlC,aAAC,CAAgB;AACnB,SAAC;;IAzFD,QAAQ,GAAA;AACN,QAAA,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,KAAK,EAAE;YACjD,IAAI,CAAC,mBAAmB,EAAE;YAC1B;;QAGF,IAAI,CAAC,iBAAiB,EAAE;QACxB,IAAI,CAAC,sBAAsB,EAAE;;;IAKrB,mBAAmB,GAAA;QAC3B,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;AAChC,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AAErB,YAAA,IAAI,CAAC;AACF,iBAAA,aAAa,CAAC;AACb,gBAAA,MAAM,EAAE;AACN,oBAAA,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;AACtB,oBAAA,OAAO,EAAE;AACP,wBAAA,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK;wBAClB,GAAG,IAAI,CAAC,iBAAiB;AAC1B,qBAAA;AACF,iBAAA;gBACD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB;AACA,iBAAA,IAAI,CACH,UAAU,CAAC,CAAC,CAAC,KAAI;AACf,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;AACxB,oBAAA,KAAK,EAAE,EAAE;AACT,oBAAA,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE;AAC9B,iBAAA,CAAC;AAEF,gBAAA,MAAM,CAAC;AACT,aAAC,CAAC,EACF,QAAQ,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACxB,aAAC,CAAC;AAEH,iBAAA,SAAS,CAAC,CAAC,IAAI,KAAI;AAClB,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;oBACxB,KAAK,EAAE,IAAI,CAAC,IAAI;AAChB,oBAAA,MAAM,EAAE,EAAE;AACX,iBAAA,CAAC;AACF,gBAAA,IAAI,IAAI,CAAC,SAAS,EAAE;oBAClB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;;AAEpC,aAAC,CAAC;;aACC;AACL,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;;;AAG5B,IAAA,gBAAgB,CAAC,SAAoB,EAAA;AAC3C,QAAA,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YAC9C,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;AAClC,YAAA,IAAI,OAAO,EAAE,aAAa,EAAE;gBAC1B,OAAO,EAAE,aAAa,EAAE;;AAE5B,SAAC,CAAC;;IA+BI,iBAAiB,GAAA;AACvB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CACzC,CAAC,GAAG,EAAE,IAAI,KACR,MAAM,CAAC,MAAM,CACX,GAAG,EACH,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,KAAK;YAC3C,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS;AACnD,cAAE;AACE,gBAAA,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,GAAG;oBACxB,IAAI,EAAE,KAAK,CAAC,QAAQ,GAAG,EAAE,GAAG,EAAE;AAC9B,oBAAA,IAAI,EAAE,KAAK,EAAE,UAAU,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,SAAS;AAC5D,iBAAA;AACF;AACH,cAAE,EAAE,CACP,EACH,EAAE,CACH;QACD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;;+GAxI5B,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAG,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,EAJnB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1BxD,wnBAqBA,EAAA,MAAA,EAAA,CAAA,oEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDAI,sBAAsB,EACtB,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,EACf,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,qbACnB,eAAe,EAAA,QAAA,EAAA,oBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAMN,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAb/B,SAAS;+BACE,iBAAiB,EAAA,UAAA,EACf,IAAI,EACP,OAAA,EAAA;wBACP,sBAAsB;wBACtB,eAAe;wBACf,mBAAmB;wBACnB,eAAe;AAChB,qBAAA,EAAA,SAAA,EACU,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,wnBAAA,EAAA,MAAA,EAAA,CAAA,oEAAA,CAAA,EAAA;+IAK3B,KAAK,EAAA,CAAA;sBAA/B,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACE,QAAQ,EAAA,CAAA;sBAAlC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACE,MAAM,EAAA,CAAA;sBAAhC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAKf,eAAe,EAAA,CAAA;sBAAxB;gBAIQ,sBAAsB,EAAA,CAAA;sBAA9B;gBAEQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;;;MEhCU,mBAAmB,CAAA;AAPhC,IAAA,WAAA,GAAA;AASY,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAkC;AAK7E;IAHC,oBAAoB,GAAA;QAClB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;;+GAL3B,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,ECbhC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,6MAQA,EDCY,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,+BAAE,eAAe,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAI5B,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,cACvB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,6MAAA,EAAA;8BAKb,MAAM,EAAA,CAAA;sBAAhC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACf,aAAa,EAAA,CAAA;sBAAtB;;;MELU,kBAAkB,CAAA;AAP/B,IAAA,WAAA,GAAA;AASY,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAa;AAKhD;IAHW,gBAAgB,GAAA;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;;+GALR,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECV/B,wSAUA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDJY,eAAe,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAId,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EACd,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,eAAe,CAAC,EAAA,QAAA,EAAA,wSAAA,EAAA;8BAKC,MAAM,EAAA,CAAA;sBAAhC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACf,KAAK,EAAA,CAAA;sBAAd;;;MEHU,wBAAwB,CAAA;+GAAxB,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,iFCTrC,2BACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDQa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;+BACE,uBAAuB,EAAA,UAAA,EACrB,IAAI,EAAA,OAAA,EACP,EAAE,EAAA,QAAA,EAAA,2BAAA,EAAA;;;ME8BA,sBAAsB,CAAA;IAqDjC,WACU,CAAA,mBAAwC,EACxC,oBAA0C,EAAA;QAD1C,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;QACnB,IAAoB,CAAA,oBAAA,GAApB,oBAAoB;QAtDH,IAAK,CAAA,KAAA,GAAW,EAAE;QAClB,IAAQ,CAAA,QAAA,GAAW,EAAE;AAEhD;;;;AAIG;QACM,IAAK,CAAA,KAAA,GAAY,IAAI;;QAuCpB,IAAS,CAAA,SAAA,GAAG,IAAI;QAChB,IAAM,CAAA,MAAA,GAAU,EAAE;QAClB,IAAa,CAAA,aAAA,GAAa,EAAE;QAC5B,IAAc,CAAA,cAAA,GAAuC,EAAE;;IAOjE,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,iBAAiB,EAAE;;AAG1C,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE;YACpE,IAAI,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,iBAAiB,EAAE;;;;;IAQpC,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AAErB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC;AACF,iBAAA,+BAA+B,CAAC;gBAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB;AACA,iBAAA,IAAI,CACH,UAAU,CAAC,CAAC,GAAQ,KAAI;gBACtB,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC;AACvC,gBAAA,MAAM,GAAG;AACX,aAAC,CAAC,EACF,QAAQ,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACxB,aAAC,CAAC;AAEH,iBAAA,SAAS,CAAC,CAAC,IAAI,KAAI;gBAClB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAChD,aAAC,CAAC;;aACC;AACL,YAAA,IAAI,CAAC;AACF,iBAAA,kCAAkC,CAAC;gBAClC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB;AACA,iBAAA,IAAI,CACH,UAAU,CAAC,CAAC,GAAQ,KAAI;gBACtB,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC;AACvC,gBAAA,MAAM,GAAG;AACX,aAAC,CAAC,EACF,QAAQ,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACxB,aAAC,CAAC;AAEH,iBAAA,SAAS,CAAC,CAAC,IAAI,KAAI;gBAClB,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;AAChD,aAAC,CAAC;;;AAIE,IAAA,mBAAmB,CAAC,QAA2C,EAAA;QACvE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,GAAG,QAAQ;AAEvC,QAAA,IAAI,MAAM,EAAE,MAAM,EAAE;AAClB,YAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC;;aAC1B;AACL,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC,OAAO;;QAGrC,IACE,KAAK,EAAE,UAAU;AACjB,YAAA,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC,UAAU;AACrC,YAAA,CAAC,MAAM,EAAE,MAAM,EACf;AACA,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,EAAE,UAAU;AAEnC,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,gBAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,UAAU,CAAC;;;;AAKpC,IAAA,qBAAqB,CAAC,MAAsC,EAAA;AACpE,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,MAAM,CAAC;;IAGtB,iBAAiB,GAAA;QACzB,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;YACpC,IAAI,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,iBAAiB,EAAE;;AAG1C,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE;AAChB,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE;;IAGjB,WAAW,CAAC,KAAU,EAAE,MAAa,EAAA;AAC3C,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,QAAA,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC,CAAC;cACvB,KAAK,CAAC,cAAc;AACtB,cAAE,GAAG;AACL,cAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CACrC,CAAC,CAAS,KAAK,OAAO,CAAC,KAAK,QAAQ,CACrC;AAED,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;;;+GAhKlB,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAL,mBAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,+SAJtB,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,+CC/BxD,grCAuCA,EAAA,MAAA,EAAA,CAAA,izVAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDfI,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,wLACnB,mBAAmB,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,eAAe,EACf,QAAA,EAAA,oBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,kBAAkB,mGAClB,wBAAwB,EAAA,QAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAMf,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAflC,SAAS;+BACE,gBAAgB,EAAA,UAAA,EACd,IAAI,EACP,OAAA,EAAA;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,mBAAmB;wBACnB,eAAe;wBACf,kBAAkB;wBAClB,wBAAwB;AACzB,qBAAA,EAAA,SAAA,EACU,CAAC,mBAAmB,EAAE,oBAAoB,CAAC,EAAA,QAAA,EAAA,grCAAA,EAAA,MAAA,EAAA,CAAA,izVAAA,CAAA,EAAA;qHAK3B,KAAK,EAAA,CAAA;sBAA/B,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACE,QAAQ,EAAA,CAAA;sBAAlC,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAChB,UAAU,EAAA,CAAA;sBAAlB;gBAMQ,KAAK,EAAA,CAAA;sBAAb;gBAMQ,KAAK,EAAA,CAAA;sBAAb;gBAKQ,GAAG,EAAA,CAAA;sBAAX;gBAMQ,gBAAgB,EAAA,CAAA;sBAAxB;gBAMQ,SAAS,EAAA,CAAA;sBAAjB;gBAMQ,OAAO,EAAA,CAAA;sBAAf;gBAMQ,iBAAiB,EAAA,CAAA;sBAAzB;;;MEtEU,mBAAmB,CAAA;+GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,YAHpB,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,aACzD,sBAAsB,CAAA,EAAA,CAAA,CAAA;AAErB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAHpB,OAAA,EAAA,CAAA,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,CAAA,EAAA,CAAA,CAAA;;4FAGxD,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJ/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,CAAC;AACpE,oBAAA,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,iBAAA;;;ACRD;;AAEG;;ACFH;;AAEG;;;;"}
package/index.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="mstate-angular" />
5
+ export * from './public-api';
@@ -0,0 +1,33 @@
1
+ import { OnInit, EventEmitter } from '@angular/core';
2
+ import { MstateAngularService } from '../mstate-angular.service';
3
+ import { ActionConfig } from '../interfaces/interface';
4
+ import { EvaluatedAction } from '../interfaces/api.interface';
5
+ import { FormBuilder, FormGroup } from '@angular/forms';
6
+ import { MstateAngularHelper } from '../mstate-angular.helper';
7
+ import * as i0 from "@angular/core";
8
+ export declare class ActionFormComponent implements OnInit {
9
+ private fb;
10
+ private mstateAngularService;
11
+ private mstateHelper;
12
+ token: string;
13
+ workflow: string;
14
+ config: ActionConfig | EvaluatedAction;
15
+ onExecuteAction: EventEmitter<{
16
+ value: any;
17
+ errors?: string[] | undefined;
18
+ }>;
19
+ updateCustomFieldValue?: (key: string) => any;
20
+ instanceID?: string;
21
+ onSuccess?: (actionName: string) => void;
22
+ protected form: FormGroup;
23
+ protected isLoading: boolean;
24
+ protected nonUserInputField: any;
25
+ constructor(fb: FormBuilder, mstateAngularService: MstateAngularService, mstateHelper: MstateAngularHelper);
26
+ ngOnInit(): void;
27
+ protected handleExecuteAction(): void;
28
+ private markAllAsTouched;
29
+ private handleStepConfigFilter;
30
+ private assignFormBuilder;
31
+ static ɵfac: i0.ɵɵFactoryDeclaration<ActionFormComponent, never>;
32
+ static ɵcmp: i0.ɵɵComponentDeclaration<ActionFormComponent, "lib-action-form", never, { "token": { "alias": "token"; "required": true; }; "workflow": { "alias": "workflow"; "required": true; }; "config": { "alias": "config"; "required": true; }; "updateCustomFieldValue": { "alias": "updateCustomFieldValue"; "required": false; }; "instanceID": { "alias": "instanceID"; "required": false; }; "onSuccess": { "alias": "onSuccess"; "required": false; }; }, { "onExecuteAction": "onExecuteAction"; }, never, never, true, never>;
33
+ }
@@ -0,0 +1,2 @@
1
+ export declare const MSTATE_URL: string;
2
+ export declare const TOKEN_KEY: string;
@@ -0,0 +1,41 @@
1
+ export declare enum Route {
2
+ EXECUTE_ACTION = "workflow/v2/execute",
3
+ GET_WORKFLOW_CONFIG = "workflow/config",
4
+ GET_CURRENT_ACTIONS_WITHOUT_INSTANCE = "workflow/v2/actions",
5
+ GET_CURRENT_ACTIONS_WITH_INSTANCE = "workflow/actions"
6
+ }
7
+ export declare enum FieldType {
8
+ DATE_PICKER = "datePicker",
9
+ TIME_PICKER = "timePicker",
10
+ INPUT_FIELD = "inputField",
11
+ TEXT_AREA = "textArea",
12
+ CHECKBOX = "checkBox",
13
+ RADIO_LIST = "radioList",
14
+ DROP_DOWN = "dropDown",
15
+ SUMMARY = "summary",
16
+ CONTEXT_FIELD = "CONTEXT_FIELD",
17
+ CUSTOM_FIELD = "CUSTOM_FIELD"
18
+ }
19
+ export declare enum ManualStepModule {
20
+ CONTEXT_FIELD = "CONTEXT_FIELD",
21
+ CUSTOM_FIELD = "CUSTOM_FIELD",
22
+ USER_INPUT = "USER_INPUT"
23
+ }
24
+ export declare enum Theme {
25
+ DARK = "dark",
26
+ LIGHT = "light",
27
+ SYSTEM = "system"
28
+ }
29
+ export declare enum Variable {
30
+ WORKFLOW = "workflow",
31
+ TOKEN = "token",
32
+ INSTANCE_ID = "instanceID",
33
+ START = "start",
34
+ TRIGGER_AGAIN = "triggerAgain",
35
+ ERRORS = "errors"
36
+ }
37
+ export declare enum ActionType {
38
+ MANUAL = "MANUAL",
39
+ AUTO = "AUTO",
40
+ CHAINED = "CHAINED"
41
+ }
@@ -0,0 +1,11 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { EvaluatedAction } from '../../interfaces/api.interface';
3
+ import { ActionConfig } from '../../interfaces/interface';
4
+ import * as i0 from "@angular/core";
5
+ export declare class ActionCardComponent {
6
+ config?: EvaluatedAction | ActionConfig;
7
+ executeAction: EventEmitter<EvaluatedAction | ActionConfig>;
8
+ triggerExecuteAction(): void;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<ActionCardComponent, never>;
10
+ static ɵcmp: i0.ɵɵComponentDeclaration<ActionCardComponent, "mobi-office-action-card", never, { "config": { "alias": "config"; "required": true; }; }, { "executeAction": "executeAction"; }, never, never, true, never>;
11
+ }
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ButtonComponent {
3
+ type: 'submit' | 'menu' | 'reset' | 'button';
4
+ onClick: () => void;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "mobi-office-button", never, { "type": { "alias": "type"; "required": false; }; "onClick": { "alias": "onClick"; "required": false; }; }, {}, never, ["*"], true, never>;
7
+ }
@@ -0,0 +1,22 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { UserInput } from '../../interfaces/interface';
3
+ import { FormGroup } from '@angular/forms';
4
+ import { MstateAngularService } from '../../mstate-angular.service';
5
+ import { MstateAngularHelper } from '../../mstate-angular.helper';
6
+ import * as i0 from "@angular/core";
7
+ export declare class DropdownComponent implements OnInit {
8
+ private mstateService;
9
+ private mstateHelper;
10
+ config: UserInput;
11
+ mstateModel: FormGroup;
12
+ constructor(mstateService: MstateAngularService, mstateHelper: MstateAngularHelper);
13
+ protected list: any[];
14
+ ngOnInit(): void;
15
+ getObjectValue(obj: any, target: string): unknown;
16
+ checkInputError(form: FormGroup, key: string): {
17
+ isError: boolean;
18
+ message: string;
19
+ };
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<DropdownComponent, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<DropdownComponent, "mobi-office-dropdown", never, { "config": { "alias": "config"; "required": true; }; "mstateModel": { "alias": "mstateModel"; "required": true; }; }, {}, never, never, true, never>;
22
+ }
@@ -0,0 +1,9 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class ErrorCardComponent {
4
+ errors: string[];
5
+ retry: EventEmitter<undefined>;
6
+ protected handleRetryError(): void;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<ErrorCardComponent, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<ErrorCardComponent, "lib-error-card", never, { "errors": { "alias": "errors"; "required": true; }; }, { "retry": "retry"; }, never, never, true, never>;
9
+ }
@@ -0,0 +1,16 @@
1
+ import { UserInput } from '../../interfaces/interface';
2
+ import { FormGroup } from '@angular/forms';
3
+ import { MstateAngularHelper } from '../../mstate-angular.helper';
4
+ import * as i0 from "@angular/core";
5
+ export declare class InputFieldComponent {
6
+ private mstateHelper;
7
+ config: UserInput;
8
+ mstateModel: FormGroup;
9
+ constructor(mstateHelper: MstateAngularHelper);
10
+ checkInputError(form: FormGroup, key: string): {
11
+ isError: boolean;
12
+ message: string;
13
+ };
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputFieldComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputFieldComponent, "mobi-office-input-field", never, { "config": { "alias": "config"; "required": true; }; "mstateModel": { "alias": "mstateModel"; "required": true; }; }, {}, never, never, true, never>;
16
+ }
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class LoaderComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<LoaderComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<LoaderComponent, "mobi-office-loader", never, {}, {}, never, never, true, never>;
5
+ }
@@ -0,0 +1,22 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { UserInput } from '../../interfaces/interface';
3
+ import { FormGroup } from '@angular/forms';
4
+ import { MstateAngularService } from '../../mstate-angular.service';
5
+ import { MstateAngularHelper } from '../../mstate-angular.helper';
6
+ import * as i0 from "@angular/core";
7
+ export declare class SelectComponent implements OnInit {
8
+ private mstateService;
9
+ private mstateHelper;
10
+ config: UserInput;
11
+ mstateModel: FormGroup;
12
+ constructor(mstateService: MstateAngularService, mstateHelper: MstateAngularHelper);
13
+ protected list: any[];
14
+ ngOnInit(): void;
15
+ getObjectValue(obj: any, target: string): unknown;
16
+ checkInputError(form: FormGroup, key: string): {
17
+ isError: boolean;
18
+ message: string;
19
+ };
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "mobi-office-select", never, { "config": { "alias": "config"; "required": true; }; "mstateModel": { "alias": "mstateModel"; "required": true; }; }, {}, never, never, true, never>;
22
+ }
@@ -0,0 +1,5 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class WorkflowEndCardComponent {
3
+ static ɵfac: i0.ɵɵFactoryDeclaration<WorkflowEndCardComponent, never>;
4
+ static ɵcmp: i0.ɵɵComponentDeclaration<WorkflowEndCardComponent, "lib-workflow-end-card", never, {}, {}, never, never, true, never>;
5
+ }
@@ -0,0 +1,21 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { Step, UserInput } from '../interfaces/interface';
3
+ import { MstateAngularHelper } from '../mstate-angular.helper';
4
+ import { FieldType } from '../common/enum';
5
+ import { FormGroup } from '@angular/forms';
6
+ import * as i0 from "@angular/core";
7
+ export declare class InputSelectorComponent implements OnInit {
8
+ private mstateHelper;
9
+ step: UserInput | Step;
10
+ mstateModel: FormGroup;
11
+ constructor(mstateHelper: MstateAngularHelper);
12
+ protected config: UserInput;
13
+ protected FieldType: typeof FieldType;
14
+ ngOnInit(): void;
15
+ checkInputError(form: FormGroup, key: string): {
16
+ isError: boolean;
17
+ message: string;
18
+ };
19
+ static ɵfac: i0.ɵɵFactoryDeclaration<InputSelectorComponent, never>;
20
+ static ɵcmp: i0.ɵɵComponentDeclaration<InputSelectorComponent, "mobi-office-input-selector", never, { "step": { "alias": "step"; "required": true; }; "mstateModel": { "alias": "mstateModel"; "required": true; }; }, {}, never, never, true, never>;
21
+ }
@@ -1,51 +1,42 @@
1
- import { ActionConfig, UserInput, Workflow } from './interface';
2
-
3
- export interface GetWorkflowRequest {
4
- workflow: string;
5
- token: string;
6
- }
7
-
8
- export interface GetCurrentActionsWithoutInstanceIDRequest {
9
- workflow: string;
10
- token: string;
11
- }
12
-
13
- export interface GetCurrentActionsWithInstanceIDRequest {
14
- instanceID: string;
15
- token: string;
16
- }
17
-
18
- export interface PostExecuteActionRequest<T> {
19
- instanceID?: string;
20
- token: string;
21
- workflow: string;
22
- action: {
23
- name: string;
24
- payload: T;
25
- };
26
- }
27
-
28
- export interface GetWorkflowResponse {
29
- data: Workflow;
30
- }
31
-
32
- export interface GetCurrentActionsWithoutInstanceIDResponse {
33
- [actionName: string]: ActionConfig;
34
- }
35
-
36
- export interface EvaluatedAction extends ActionConfig {
37
- steps: UserInput[];
38
- }
39
-
40
- export interface GetCurrentActionsWithInstanceIDResponse {
41
- [actionName: string]: EvaluatedAction;
42
- }
43
-
44
- export interface PostExecuteActionResponse {}
45
-
46
- export interface MstateResponse<T = any> {
47
- data: T;
48
- path: string;
49
- statusCode: number;
50
- timestamp: Date;
51
- }
1
+ import { ActionConfig, UserInput, Workflow } from './interface';
2
+ export interface GetWorkflowRequest {
3
+ workflow: string;
4
+ token: string;
5
+ }
6
+ export interface GetCurrentActionsWithoutInstanceIDRequest {
7
+ workflow: string;
8
+ token: string;
9
+ }
10
+ export interface GetCurrentActionsWithInstanceIDRequest {
11
+ instanceID: string;
12
+ token: string;
13
+ }
14
+ export interface PostExecuteActionRequest<T> {
15
+ instanceID?: string;
16
+ token: string;
17
+ workflow: string;
18
+ action: {
19
+ name: string;
20
+ payload: T;
21
+ };
22
+ }
23
+ export interface GetWorkflowResponse {
24
+ data: Workflow;
25
+ }
26
+ export interface GetCurrentActionsWithoutInstanceIDResponse {
27
+ [actionName: string]: ActionConfig;
28
+ }
29
+ export interface EvaluatedAction extends ActionConfig {
30
+ steps: UserInput[];
31
+ }
32
+ export interface GetCurrentActionsWithInstanceIDResponse {
33
+ [actionName: string]: EvaluatedAction;
34
+ }
35
+ export interface PostExecuteActionResponse {
36
+ }
37
+ export interface MstateResponse<T = any> {
38
+ data: T;
39
+ path: string;
40
+ statusCode: number;
41
+ timestamp: Date;
42
+ }
@@ -0,0 +1,73 @@
1
+ import { AxiosRequestConfig } from 'axios';
2
+ import { ActionType, FieldType, ManualStepModule } from '../common/enum';
3
+ export interface Workflow {
4
+ name: string;
5
+ version: string;
6
+ meta?: unknown;
7
+ maxChainCount: number;
8
+ states: State[];
9
+ }
10
+ export interface State {
11
+ name: string;
12
+ actions: Action[];
13
+ }
14
+ export interface Action {
15
+ name: string;
16
+ on: {
17
+ [key: string]: {
18
+ name: string;
19
+ type: 'ACTION' | 'STATE';
20
+ };
21
+ };
22
+ }
23
+ export interface ActionConfig {
24
+ name: string;
25
+ as?: string;
26
+ who?: string[];
27
+ type: ActionType;
28
+ meta?: any;
29
+ steps: Step[] | UserInput[];
30
+ }
31
+ export interface Step {
32
+ id: string;
33
+ module: string;
34
+ config: {
35
+ data: UserInput;
36
+ };
37
+ }
38
+ export interface SelectOptions {
39
+ id: string | number;
40
+ label: string;
41
+ }
42
+ export interface ListMapper {
43
+ id: string;
44
+ label: string;
45
+ target: string;
46
+ page?: number;
47
+ limit?: number;
48
+ }
49
+ export interface UserInput {
50
+ id: string;
51
+ module: ManualStepModule;
52
+ buttonActionText: string;
53
+ fieldType: FieldType;
54
+ field: {
55
+ keyForAPI: string;
56
+ isRequired?: boolean;
57
+ label: string;
58
+ value: string;
59
+ placeholder: string;
60
+ multiple?: boolean;
61
+ request?: AxiosRequestConfig;
62
+ mapper?: ListMapper;
63
+ itemList?: (SelectOptions | any)[];
64
+ };
65
+ label: string;
66
+ context: any;
67
+ inputType?: 'text' | 'number' | 'date' | 'time' | 'password';
68
+ order: number;
69
+ minLength?: number;
70
+ maxLength?: number;
71
+ export?: (value: any) => any;
72
+ customValidation?: (value: any) => boolean;
73
+ }
@@ -0,0 +1,72 @@
1
+ import { OnChanges, OnInit, SimpleChanges } from '@angular/core';
2
+ import { Theme } from '../common/enum';
3
+ import { MstateAngularHelper } from '../mstate-angular.helper';
4
+ import { MstateAngularService } from '../mstate-angular.service';
5
+ import { EvaluatedAction } from '../interfaces/api.interface';
6
+ import { ActionConfig } from '../interfaces/interface';
7
+ import * as i0 from "@angular/core";
8
+ export declare class MstateAngularComponent implements OnChanges, OnInit {
9
+ private mstateAngularHelper;
10
+ private mstateAngularService;
11
+ token: string;
12
+ workflow: string;
13
+ instanceID?: string;
14
+ /**
15
+ * @type {boolean}
16
+ * @default true
17
+ * @description Trigger if to start workflow.
18
+ */
19
+ start: boolean;
20
+ /**
21
+ * @type {'dark' | 'light' | 'system'}
22
+ * @default 'light'
23
+ * @description To change the color theme of mstate.
24
+ */
25
+ theme?: Theme;
26
+ /**
27
+ * @type {string}
28
+ * @description To Validate who are allowed to perform or see action.
29
+ */
30
+ who?: string;
31
+ /**
32
+ * Triggers whenever your current workflow moved to other.
33
+ * @param {string} newInstanceID - The new instance ID on which your current workflow moved.
34
+ * @returns {void}.
35
+ */
36
+ onInstanceChange?: (newInstanceID: string) => void;
37
+ /**
38
+ * Triggers when The Action execution is completed.
39
+ * @param {string} actionName - action name which you have executed at this moment.
40
+ * @returns {void}.
41
+ */
42
+ onSuccess?: (actionName: string) => void;
43
+ /**
44
+ * Triggers when Error occurs while performing any action.
45
+ * @param {unknown[]} errors - Error response from the api call done by Mstate.
46
+ * @returns {void}.
47
+ */
48
+ onError?: (errors: unknown[]) => void;
49
+ /**
50
+ * Handles your steps which contain Custom field module.
51
+ * @param {string} key - Which key you expect for getting the value.
52
+ * @returns {unknown} - whatever value you want to save in that custom field.
53
+ */
54
+ handleCustomField?: (key: string) => unknown;
55
+ protected isLoading: boolean;
56
+ protected errors: any[];
57
+ protected errorMessages: string[];
58
+ protected allowedActions: (EvaluatedAction | ActionConfig)[];
59
+ constructor(mstateAngularHelper: MstateAngularHelper, mstateAngularService: MstateAngularService);
60
+ ngOnInit(): void;
61
+ ngOnChanges(changes: SimpleChanges): void;
62
+ private setAllowedActions;
63
+ protected handleExecuteAction(response: {
64
+ value: any;
65
+ errors?: string[];
66
+ }): void;
67
+ protected handleActionExecution(config: EvaluatedAction | ActionConfig): void;
68
+ protected handleRetryAction(): void;
69
+ private handleError;
70
+ static ɵfac: i0.ɵɵFactoryDeclaration<MstateAngularComponent, never>;
71
+ static ɵcmp: i0.ɵɵComponentDeclaration<MstateAngularComponent, "mstate-angular", never, { "token": { "alias": "token"; "required": true; }; "workflow": { "alias": "workflow"; "required": true; }; "instanceID": { "alias": "instanceID"; "required": false; }; "start": { "alias": "start"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "who": { "alias": "who"; "required": false; }; "onInstanceChange": { "alias": "onInstanceChange"; "required": false; }; "onSuccess": { "alias": "onSuccess"; "required": false; }; "onError": { "alias": "onError"; "required": false; }; "handleCustomField": { "alias": "handleCustomField"; "required": false; }; }, {}, never, never, true, never>;
72
+ }
@@ -0,0 +1,18 @@
1
+ import { SimpleChanges } from '@angular/core';
2
+ import { Step, UserInput } from './interfaces/interface';
3
+ import { FieldType } from './common/enum';
4
+ import { FormGroup } from '@angular/forms';
5
+ import * as i0 from "@angular/core";
6
+ export declare class MstateAngularHelper {
7
+ detectChange(change: SimpleChanges, keys: string[]): boolean;
8
+ formatString(str?: string): string;
9
+ getObjectValue<T>(obj: any, target: string): T | undefined;
10
+ checkIsStep(step: Step | UserInput): step is Step;
11
+ checkIsHandledStep(module: FieldType): boolean;
12
+ checkInputError(form: FormGroup, key: string): {
13
+ isError: boolean;
14
+ message: string;
15
+ };
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<MstateAngularHelper, never>;
17
+ static ɵprov: i0.ɵɵInjectableDeclaration<MstateAngularHelper>;
18
+ }