zek 17.3.4 → 17.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/esm2022/lib/components/base.component.mjs +3 -3
  2. package/esm2022/lib/components/core-ui.component.mjs +3 -3
  3. package/esm2022/lib/components/core.component.mjs +3 -3
  4. package/esm2022/lib/components/edit-base.component.mjs +9 -9
  5. package/esm2022/lib/components/list-base.component.mjs +3 -3
  6. package/esm2022/lib/modules/age/age.pipe.mjs +3 -3
  7. package/esm2022/lib/modules/alert/alert/alert.mjs +3 -3
  8. package/esm2022/lib/modules/alert/toast/toast.mjs +3 -3
  9. package/esm2022/lib/modules/alert/validation/validation.mjs +3 -3
  10. package/esm2022/lib/modules/autocomplete/autocomplete.directive.mjs +3 -3
  11. package/esm2022/lib/modules/bb/bb-modal-base.component.mjs +3 -3
  12. package/esm2022/lib/modules/bb/bb-modal-toolbar.mjs +3 -3
  13. package/esm2022/lib/modules/bb/bb.component.mjs +3 -3
  14. package/esm2022/lib/modules/bb/bb.module.mjs +4 -4
  15. package/esm2022/lib/modules/callback/callback.pipe.mjs +3 -3
  16. package/esm2022/lib/modules/card/card/card.mjs +3 -3
  17. package/esm2022/lib/modules/date-ago/date-ago.pipe.mjs +26 -28
  18. package/esm2022/lib/modules/datepicker/date-value-accessor.mjs +3 -3
  19. package/esm2022/lib/modules/datepicker/datepicker.module.mjs +4 -4
  20. package/esm2022/lib/modules/edit-toolbar/edit-toolbar.mjs +3 -3
  21. package/esm2022/lib/modules/file/file-size.pipe.mjs +3 -3
  22. package/esm2022/lib/modules/file-viewer/file-viewer.mjs +3 -3
  23. package/esm2022/lib/modules/google-login-button/google-login-button.mjs +3 -3
  24. package/esm2022/lib/modules/google-login-button/module.mjs +4 -4
  25. package/esm2022/lib/modules/grid-toolbar/grid-toolbar/grid-toolbar.mjs +3 -3
  26. package/esm2022/lib/modules/grid-toolbar/grid-toolbar-bar/grid-toolbar-bar.mjs +3 -3
  27. package/esm2022/lib/modules/index.mjs +2 -1
  28. package/esm2022/lib/modules/list-toolbar/list-toolbar.mjs +3 -3
  29. package/esm2022/lib/modules/loading/loading-interceptor.mjs +6 -6
  30. package/esm2022/lib/modules/loading/loading.mjs +3 -3
  31. package/esm2022/lib/modules/loading/loading.module.mjs +4 -4
  32. package/esm2022/lib/modules/modal/filter-modal/filter-modal.component.mjs +3 -3
  33. package/esm2022/lib/modules/modal/modal/modal.component.mjs +18 -18
  34. package/esm2022/lib/modules/modal/modal.module.mjs +4 -4
  35. package/esm2022/lib/modules/modal/sum-modal/sum-modal.component.mjs +3 -3
  36. package/esm2022/lib/modules/numeric/numeric.directive.mjs +3 -3
  37. package/esm2022/lib/modules/page-title/page-title.component.mjs +3 -3
  38. package/esm2022/lib/modules/pager/pager/pager.mjs +3 -3
  39. package/esm2022/lib/modules/password/password.mjs +3 -3
  40. package/esm2022/lib/modules/progress/progress.mjs +3 -3
  41. package/esm2022/lib/modules/radio/radio.mjs +3 -3
  42. package/esm2022/lib/modules/readonly/readonly.directive.mjs +3 -3
  43. package/esm2022/lib/modules/recaptcha/recaptcha.module.mjs +4 -4
  44. package/esm2022/lib/modules/recaptcha/recaptcha.service.mjs +3 -3
  45. package/esm2022/lib/modules/safe/safe.pipe.mjs +3 -3
  46. package/esm2022/lib/modules/select/module.mjs +4 -4
  47. package/esm2022/lib/modules/select/select.mjs +3 -3
  48. package/esm2022/lib/modules/select2/select2.mjs +3 -3
  49. package/esm2022/lib/modules/select2/select2.module.mjs +4 -4
  50. package/esm2022/lib/modules/select2-multiple/select2-multiple.mjs +3 -3
  51. package/esm2022/lib/modules/sort/sort-button-group/sort-button-group.mjs +3 -3
  52. package/esm2022/lib/modules/sort/sort.mjs +3 -3
  53. package/esm2022/lib/modules/time/time.module.mjs +4 -4
  54. package/esm2022/lib/modules/time/time.pipe.mjs +7 -7
  55. package/esm2022/lib/modules/time/timer-service.mjs +3 -3
  56. package/esm2022/lib/modules/tooltip/tooltip.mjs +3 -3
  57. package/esm2022/lib/modules/utc-to-local/index.mjs +2 -0
  58. package/esm2022/lib/modules/utc-to-local/utc-to-local.pipe.mjs +26 -0
  59. package/esm2022/lib/modules/validator/field-validator.mjs +3 -3
  60. package/esm2022/lib/modules/validators/directive.mjs +9 -9
  61. package/esm2022/lib/modules/validators/module.mjs +4 -4
  62. package/esm2022/lib/modules/wizard/wizard/wizard.mjs +3 -3
  63. package/esm2022/lib/modules/wizard/wizard2/wizard2.mjs +3 -3
  64. package/esm2022/lib/services/alert.service.mjs +3 -3
  65. package/esm2022/lib/services/auth-guard.service.mjs +3 -3
  66. package/esm2022/lib/services/auth.service.mjs +3 -3
  67. package/esm2022/lib/services/http-error-handler.service.mjs +3 -3
  68. package/esm2022/lib/services/web.api.mjs +3 -3
  69. package/esm2022/lib/utils/date-helper.mjs +6 -1
  70. package/esm2022/lib/utils/tmp-helper.mjs +6 -3
  71. package/esm2022/lib/zek.module.mjs +4 -4
  72. package/fesm2022/zek.mjs +297 -269
  73. package/fesm2022/zek.mjs.map +1 -1
  74. package/lib/modules/index.d.ts +1 -0
  75. package/lib/modules/time/time.pipe.d.ts +2 -2
  76. package/lib/modules/utc-to-local/index.d.ts +1 -0
  77. package/lib/modules/utc-to-local/utc-to-local.pipe.d.ts +10 -0
  78. package/lib/utils/date-helper.d.ts +2 -0
  79. package/lib/utils/tmp-helper.d.ts +1 -1
  80. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"zek.mjs","sources":["../../../projects/zek/src/lib/models/print.model.ts","../../../projects/zek/src/lib/utils/array-helper.ts","../../../projects/zek/src/lib/utils/base64-helper.ts","../../../projects/zek/src/lib/utils/bitwise-helper.ts","../../../projects/zek/src/lib/utils/bootstrap.helper.ts","../../../projects/zek/src/lib/utils/convert.ts","../../../projects/zek/src/lib/utils/css-helper.ts","../../../projects/zek/src/lib/utils/overlap-helper.ts","../../../projects/zek/src/lib/utils/time-helper.ts","../../../projects/zek/src/lib/utils/date-helper.ts","../../../projects/zek/src/lib/utils/error-helper.ts","../../../projects/zek/src/lib/utils/file.helper.ts","../../../projects/zek/src/lib/utils/object-helper.ts","../../../projects/zek/src/lib/utils/filter-helper.ts","../../../projects/zek/src/lib/utils/handler.ts","../../../projects/zek/src/lib/utils/html-helper.ts","../../../projects/zek/src/lib/utils/jwt-helper.ts","../../../projects/zek/src/lib/utils/math-helper.ts","../../../projects/zek/src/lib/utils/pager-helper.ts","../../../projects/zek/src/lib/utils/random-helper.ts","../../../projects/zek/src/lib/utils/storage-helper.ts","../../../projects/zek/src/lib/utils/string-helper.ts","../../../projects/zek/src/lib/utils/thenBy.ts","../../../projects/zek/src/lib/utils/tmp-helper.ts","../../../projects/zek/src/lib/utils/url-helper.ts","../../../projects/zek/src/lib/utils/validation-helper.ts","../../../projects/zek/src/lib/services/auth.service.ts","../../../projects/zek/src/lib/services/auth-guard.service.ts","../../../projects/zek/src/lib/services/base.service.ts","../../../projects/zek/src/lib/services/crud.service.ts","../../../projects/zek/src/lib/services/alert.service.ts","../../../projects/zek/src/lib/services/http-error-handler.service.ts","../../../projects/zek/src/lib/tokens.ts","../../../projects/zek/src/lib/services/web.api.ts","../../../projects/zek/src/lib/components/core.component.ts","../../../projects/zek/src/lib/components/base.component.ts","../../../projects/zek/src/lib/components/core-ui.component.ts","../../../projects/zek/src/lib/components/edit-base.component.ts","../../../projects/zek/src/lib/models/edit-base.model.ts","../../../projects/zek/src/lib/models/file.model.ts","../../../projects/zek/src/lib/models/filter.model.ts","../../../projects/zek/src/lib/models/gender.model.ts","../../../projects/zek/src/lib/models/key-pair.model.ts","../../../projects/zek/src/lib/models/list-base.model.ts","../../../projects/zek/src/lib/models/month.model.ts","../../../projects/zek/src/lib/models/pager.model.ts","../../../projects/zek/src/lib/models/tree.model.ts","../../../projects/zek/src/lib/models/valid-event-args.model.ts","../../../projects/zek/src/lib/models/index.ts","../../../projects/zek/src/lib/components/list-base.component.ts","../../../projects/zek/src/lib/modules/age/age.pipe.ts","../../../projects/zek/src/lib/modules/alert/alert/alert.ts","../../../projects/zek/src/lib/modules/alert/alert/alert.html","../../../projects/zek/src/lib/modules/alert/toast/toast.ts","../../../projects/zek/src/lib/modules/alert/toast/toast.html","../../../projects/zek/src/lib/modules/alert/validation/validation.ts","../../../projects/zek/src/lib/modules/alert/validation/validation.html","../../../projects/zek/src/lib/modules/autocomplete/autocomplete.directive.ts","../../../projects/zek/src/lib/modules/bb/bb.component.ts","../../../projects/zek/src/lib/modules/bb/bb.component.html","../../../projects/zek/src/lib/modules/bb/bb-modal-toolbar.ts","../../../projects/zek/src/lib/modules/bb/bb-modal-toolbar.html","../../../projects/zek/src/lib/modules/bb/bb.module.ts","../../../projects/zek/src/lib/modules/bb/bb-modal-base.component.ts","../../../projects/zek/src/lib/modules/card/card/card.ts","../../../projects/zek/src/lib/modules/card/card/card.html","../../../projects/zek/src/lib/modules/callback/callback.pipe.ts","../../../projects/zek/src/lib/modules/date-ago/date-ago.pipe.ts","../../../projects/zek/src/lib/modules/datepicker/date-value-accessor.ts","../../../projects/zek/src/lib/modules/datepicker/datepicker.module.ts","../../../projects/zek/src/lib/modules/edit-toolbar/edit-toolbar.ts","../../../projects/zek/src/lib/modules/edit-toolbar/edit-toolbar.html","../../../projects/zek/src/lib/modules/file/file-size.pipe.ts","../../../projects/zek/src/lib/modules/modal/modal/modal.component.ts","../../../projects/zek/src/lib/modules/modal/modal/modal.component.html","../../../projects/zek/src/lib/modules/modal/filter-modal/filter-modal.component.ts","../../../projects/zek/src/lib/modules/modal/filter-modal/filter-modal.component.html","../../../projects/zek/src/lib/modules/modal/sum-modal/sum-modal.component.ts","../../../projects/zek/src/lib/modules/modal/sum-modal/sum-modal.component.html","../../../projects/zek/src/lib/modules/modal/modal.module.ts","../../../projects/zek/src/lib/modules/safe/safe.pipe.ts","../../../projects/zek/src/lib/modules/file-viewer/file-viewer.ts","../../../projects/zek/src/lib/modules/file-viewer/file-viewer.html","../../../projects/zek/src/lib/modules/google-login-button/loader.ts","../../../projects/zek/src/lib/modules/google-login-button/google-login-button.ts","../../../projects/zek/src/lib/modules/google-login-button/module.ts","../../../projects/zek/src/lib/modules/grid-toolbar/grid-toolbar/grid-toolbar.ts","../../../projects/zek/src/lib/modules/grid-toolbar/grid-toolbar/grid-toolbar.html","../../../projects/zek/src/lib/modules/grid-toolbar/grid-toolbar-bar/grid-toolbar-bar.ts","../../../projects/zek/src/lib/modules/grid-toolbar/grid-toolbar-bar/grid-toolbar-bar.html","../../../projects/zek/src/lib/modules/list-toolbar/list-toolbar.ts","../../../projects/zek/src/lib/modules/list-toolbar/list-toolbar.html","../../../projects/zek/src/lib/modules/loading/loading-interceptor.ts","../../../projects/zek/src/lib/modules/loading/loading.ts","../../../projects/zek/src/lib/modules/loading/loading.module.ts","../../../projects/zek/src/lib/modules/loading/index.ts","../../../projects/zek/src/lib/modules/numeric/numeric.directive.ts","../../../projects/zek/src/lib/modules/page-title/page-title.component.ts","../../../projects/zek/src/lib/modules/page-title/page-title.component.html","../../../projects/zek/src/lib/modules/pager/pager/pager.ts","../../../projects/zek/src/lib/modules/pager/pager/pager.html","../../../projects/zek/src/lib/modules/validator/field-validator.ts","../../../projects/zek/src/lib/modules/validator/field-validator.html","../../../projects/zek/src/lib/modules/password/password.ts","../../../projects/zek/src/lib/modules/password/password.html","../../../projects/zek/src/lib/modules/progress/progress.ts","../../../projects/zek/src/lib/modules/progress/progress.html","../../../projects/zek/src/lib/modules/radio/radio.ts","../../../projects/zek/src/lib/modules/radio/radio.html","../../../projects/zek/src/lib/modules/readonly/readonly.directive.ts","../../../projects/zek/src/lib/modules/recaptcha/loader.ts","../../../projects/zek/src/lib/modules/recaptcha/recaptcha.service.ts","../../../projects/zek/src/lib/modules/recaptcha/recaptcha.module.ts","../../../projects/zek/src/lib/modules/select/select.ts","../../../projects/zek/src/lib/modules/select/select.html","../../../projects/zek/src/lib/modules/select/module.ts","../../../projects/zek/src/lib/modules/select2/select2.ts","../../../projects/zek/src/lib/modules/select2/select2.html","../../../projects/zek/src/lib/modules/select2/select2.module.ts","../../../projects/zek/src/lib/modules/select2-multiple/select2-multiple.ts","../../../projects/zek/src/lib/modules/select2-multiple/select2-multiple.html","../../../projects/zek/src/lib/modules/sort/sort.ts","../../../projects/zek/src/lib/modules/sort/sort-button-group/sort-button-group.ts","../../../projects/zek/src/lib/modules/sort/sort-button-group/sort-button-group.html","../../../projects/zek/src/lib/modules/time/time.pipe.ts","../../../projects/zek/src/lib/modules/time/time.module.ts","../../../projects/zek/src/lib/modules/time/timer-service.ts","../../../projects/zek/src/lib/modules/tooltip/tooltip.ts","../../../projects/zek/src/lib/modules/validators/validator.ts","../../../projects/zek/src/lib/modules/validators/directive.ts","../../../projects/zek/src/lib/modules/validators/module.ts","../../../projects/zek/src/lib/modules/wizard/wizard/wizard.ts","../../../projects/zek/src/lib/modules/wizard/wizard/wizard.html","../../../projects/zek/src/lib/modules/wizard/wizard2/wizard2.ts","../../../projects/zek/src/lib/modules/wizard/wizard2/wizard2.html","../../../projects/zek/src/lib/modules/index.ts","../../../projects/zek/src/lib/zek.module.ts","../../../projects/zek/src/public-api.ts","../../../projects/zek/src/zek.ts"],"sourcesContent":["export enum PrintType {\r\n Show = 1,\r\n Pdf = 2\r\n}","// import { KeyPair } from \"../models/key-pair.model\";\r\n// import { Tree } from \"../models/tree.model\";\r\n\r\nimport { KeyPair, KeyPairEx, Tree } from \"../models\";\r\n\r\n\r\nexport class ArrayHelper {\r\n static insert(value: any[], index: number, v: any) {\r\n value.splice(index, 0, v);\r\n };\r\n\r\n static contains(value: any[], v: any) {\r\n for (var i = 0; i < value.length; i++) {\r\n if (value[i] === v) return true;\r\n }\r\n return false;\r\n };\r\n\r\n\r\n static isArray(arg: any) {\r\n return Array.isArray(arg) && arg.length > 0;\r\n }\r\n // static distinct(value: any[]) {\r\n // var arr: any[] = [];\r\n // for (var i = 0; i < value.length; i++) {\r\n // let val = value[i];\r\n // if (!this.contains(arr, val)) {\r\n // arr.push(val);\r\n // }\r\n // }\r\n // return arr;\r\n // }\r\n\r\n static distinct(source: any[]) {\r\n let length = source.length, result = [], seen = new Set();\r\n\r\n for (let index = 0; index < length; index++) {\r\n let value = source[index];\r\n if (seen.has(value)) continue;\r\n\r\n seen.add(value);\r\n result.push(value);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n static filterByKey(filterValue: any, key: string, array: any[]) {\r\n if (typeof filterValue === 'undefined' || filterValue == null || (typeof key === 'string' && key.length === 0))\r\n return array;\r\n\r\n return array.filter(x => x !== undefined && x !== null && x[key] === filterValue);\r\n }\r\n\r\n static flattenArray(value: any[]): any[] {\r\n let result: any[] = [];\r\n if (value) {\r\n value.forEach(tree => {\r\n tree.indent = 0;\r\n result.push(tree);\r\n result = result.concat(this.getChildren(tree));\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n private static getChildren(tree: Tree, indent: number = 1): any[] {\r\n let result: any[] = [];\r\n if (tree.children) {\r\n tree.childrenCount = tree.children.length;\r\n tree.children.forEach(child => {\r\n child.indent = indent;\r\n result.push(child);\r\n result = result.concat(this.getChildren(child, indent + 1));\r\n });\r\n } else {\r\n tree.childrenCount = 0;\r\n }\r\n\r\n delete tree.children;\r\n delete tree.childrenIds;\r\n //delete tree.childrenCount;\r\n //delete tree.indent;\r\n return result;\r\n }\r\n\r\n\r\n\r\n static treeToKeyPairArray(value: Tree[]) {\r\n let result: KeyPair[] = [];\r\n if (value) {\r\n value.forEach(tree => {\r\n result.push({ key: tree.key, value: tree.value });\r\n result = result.concat(this.getIndentChildren(tree));\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n\r\n\r\n private static getIndentChildren(tree: Tree, indent: number = 1): KeyPair[] {\r\n let result: KeyPair[] = [];\r\n if (tree.children) {\r\n tree.children.forEach(child => {\r\n //result.push({ key: child.key, value: '└' + '─'.repeat(indent) + child.value });\r\n result.push({ key: child.key, value: '&emsp;'.repeat(indent) + child.value });\r\n result = result.concat(this.getChildren(child, indent + 1));\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n\r\n\r\n private static enumToKeyPairBaseArray<T extends KeyPair<number, string>>(value: any): T[] {\r\n const keys = Object.keys(value);\r\n const slice = keys.length / 2;\r\n let result: T[] = [];\r\n // for (let i = 0; i < slice; i++) {\r\n // result.push({ key: +keys[i], value: keys[i + slice] } as T);\r\n // }\r\n for (let i = slice; i < keys.length; i++) {\r\n let name = keys[i];\r\n result.push({ key: + value[name], value: name } as T);\r\n }\r\n return result;\r\n //return Array.from(keys.slice(keys.length / 2), x => { key:x, value:'aaa' } as Object);\r\n }\r\n static enumToKeyPairArray(value: any): KeyPair<number, string>[] {\r\n return this.enumToKeyPairBaseArray<KeyPair<number, string>>(value);\r\n }\r\n static enumToKeyPairExArray(value: any): KeyPairEx<number, string>[] {\r\n return this.enumToKeyPairBaseArray<KeyPairEx<number, string>>(value);\r\n }\r\n}","export class Base64Helper {\r\n public static utf8ToBase64String(str: string) {\r\n return btoa(unescape(encodeURIComponent(str)));\r\n }\r\n\r\n public static base64StringToUtf8(str: string) {\r\n return decodeURIComponent(escape(atob(str)));\r\n }\r\n\r\n public static base64StringToBlob(str: string, type?: string) {\r\n const byteString = atob(str);\r\n const int8Array = new Uint8Array(byteString.length);\r\n for (let i = 0; i < byteString.length; i++) {\r\n int8Array[i] = byteString.charCodeAt(i);\r\n }\r\n const blob = new Blob([int8Array], { type: type });\r\n return blob;\r\n }\r\n}\r\n","export class BitwiseHelper {\r\n static hasFlag(flags: number, flagToCheck: any): boolean {\r\n return (flags & flagToCheck) === flagToCheck;\r\n }\r\n\r\n static addFlags(flags: number, ...flagsToAdd: any[]): number {\r\n if (!flagsToAdd) return flags;\r\n\r\n flagsToAdd.forEach(flag => {\r\n flags |= flag;\r\n });\r\n\r\n return flags;\r\n }\r\n}","import { AlertType } from '../models/alert-type';\r\nimport { StringHelper } from './string-helper';\r\n\r\nexport enum ComponentType {\r\n Primary = 1,\r\n // Secondary,\r\n Success,\r\n Delete,\r\n //Danger,\r\n Warning,\r\n Info,\r\n // Light,\r\n // Dark,\r\n}\r\n\r\nexport enum Color {\r\n Primary = 1,\r\n Secondary = 2,\r\n Success = 3,\r\n Danger = 4,\r\n Warning = 5,\r\n Info = 6,\r\n Dark = 8,\r\n}\r\n\r\nexport class BootstrapHelper {\r\n static cssColor(color?: Color | null) {\r\n switch (color) {\r\n case Color.Primary:\r\n return 'bg-primary text-white'\r\n case Color.Secondary:\r\n return 'bg-secondary text-white';\r\n case Color.Success:\r\n return 'bg-success text-white';\r\n case Color.Danger:\r\n return 'bg-danger text-white';\r\n case Color.Warning:\r\n return 'bg-warning text-dark';\r\n case Color.Info:\r\n return 'bg-info text-dark';\r\n case Color.Dark:\r\n return 'bg-dark text-white';\r\n default:\r\n return '';\r\n }\r\n }\r\n static cssIcon(type: ComponentType): string | null {\r\n if (!type) {\r\n return null;\r\n }\r\n\r\n switch (type) {\r\n case ComponentType.Delete:\r\n return 'fa-solid fa-trash';\r\n\r\n // case ComponentType.Danger:\r\n case ComponentType.Warning:\r\n return 'fa-solid fa-triangle-exclamation';\r\n\r\n case ComponentType.Info:\r\n return 'fa-solid fa-circle-info';\r\n\r\n default:\r\n return 'fa-solid fa-check';\r\n }\r\n }\r\n\r\n static cssButton(type: ComponentType): string {\r\n switch (type) {\r\n case ComponentType.Primary:\r\n // case ComponentType.Secondary:\r\n case ComponentType.Success:\r\n // case ComponentType.Danger:\r\n case ComponentType.Warning:\r\n case ComponentType.Info:\r\n // case ComponentType.Light:\r\n // case ComponentType.Dark:\r\n return `btn-${ComponentType[type].toLowerCase()}`;\r\n\r\n case ComponentType.Delete:\r\n return 'btn-danger';\r\n default:\r\n return 'btn-secondary';\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n // static getAlertType(type?: string | null): AlertType | null {\r\n // if (!type) return null;\r\n\r\n // let v = StringHelper.firstUpper(type);\r\n // if (!v)\r\n // return null;\r\n\r\n // var enumValue = (<any>AlertType)[v];\r\n // if (!enumValue)\r\n // return null;\r\n\r\n\r\n // return enumValue;\r\n // }\r\n static cssAlert(type?: AlertType | null): string {\r\n switch (type) {\r\n case 'primary':\r\n return 'alert-primary';\r\n case 'secondary':\r\n return 'alert-secondary';\r\n case 'success':\r\n return 'alert-success';\r\n case 'danger':\r\n return 'alert-danger';\r\n case 'warning':\r\n return 'alert-warning';\r\n case 'info':\r\n return 'alert-info';\r\n case 'light':\r\n return 'alert-light';\r\n case 'dark':\r\n return 'alert-dark';\r\n default:\r\n return 'alert-secondary';\r\n }\r\n }\r\n static cssAlertIcon(type?: AlertType | null): string {\r\n switch (type) {\r\n case 'success':\r\n return 'fa-solid fa-circle-check';\r\n case 'danger':\r\n return 'fa-solid fa-circle-xmark';\r\n case 'warning':\r\n return 'fa-solid fa-circle-exclamation';\r\n case 'info':\r\n return 'fa-solid fa-circle-info';\r\n default:\r\n return '';\r\n }\r\n }\r\n}","export class Convert {\r\n static toBoolean(value: any) {\r\n if (typeof value !== 'undefined' && value !== null && value !== '') {\r\n switch (`${value}`.toUpperCase()) {\r\n case \"TRUE\":\r\n case \"YES\":\r\n case \"1\":\r\n case \"ON\":\r\n return true;\r\n\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n static toBooleanProperty(value: any): boolean {\r\n return value != null && `${value}` !== 'false';\r\n }\r\n\r\n static parseNumber(value: any) {\r\n if (typeof value === 'undefined' || value == null || (typeof value === 'string' && value.length === 0)) return null;\r\n let n = Number(value);\r\n return !isNaN(n) ? n : null;\r\n }\r\n static toNumber(value: any, defaultValue = 0) {\r\n return this.isNumber(value) ? Number(value) : defaultValue;\r\n }\r\n\r\n static isNumber(value: any): boolean {\r\n // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,\r\n // and other non-number values as NaN, where Number just uses 0) but it considers the string\r\n // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.\r\n return !isNaN(parseFloat(value as any)) && !isNaN(Number(value));\r\n }\r\n\r\n // static toNumber(value: any){\r\n // if (typeof value !== 'undefined' && value !== null && value !== '') {\r\n // return +value;\r\n // }\r\n\r\n // return 0;\r\n // }\r\n}","import { ArrayHelper } from './array-helper';\r\n\r\nexport class CssHelper {\r\n static addClass<T extends string | string[] | null | undefined>(clazz: T, addClasses?: string | string[] | null): T {\r\n if (!clazz || clazz === '' || clazz.length == 0) {\r\n return addClasses as T;\r\n }\r\n\r\n if (!addClasses || addClasses === '') {\r\n return clazz;\r\n }\r\n\r\n\r\n let arr = ArrayHelper.distinct(this.parseClassNames(clazz).concat(this.parseClassNames(addClasses)));\r\n\r\n return Array.isArray(clazz) ? arr as T : arr.join(' ') as T;\r\n }\r\n\r\n\r\n static removeClass<T extends string | string[] | null | undefined>(clazz: T, removeClasses?: string | string[] | null): T {\r\n if (!clazz || clazz === '') {\r\n return clazz;\r\n }\r\n\r\n if (!removeClasses || removeClasses === '' || removeClasses.length === 0) {\r\n return clazz;\r\n }\r\n\r\n let arrClasses = this.parseClassNames(clazz);\r\n let arrRemove = this.parseClassNames(removeClasses);\r\n\r\n var arr: any[] = [];\r\n for (var i = 0; i < arrClasses.length; i++) {\r\n let val = arrClasses[i];\r\n if (!ArrayHelper.contains(arrRemove, val)) {\r\n arr.push(val);\r\n }\r\n }\r\n return Array.isArray(clazz) ? arr as T : arr.join(' ') as T;\r\n }\r\n\r\n\r\n static parseClassNames(raw?: string | string[] | null) {\r\n if (Array.isArray(raw)) {\r\n return raw\r\n }\r\n\r\n if (typeof raw === 'string') {\r\n return raw.split(/\\s+/)\r\n }\r\n\r\n return []\r\n }\r\n}","export enum PeriodRelation {\r\n After,\r\n StartTouching,\r\n StartInside,\r\n InsideStartTouching,\r\n EnclosingStartTouching,\r\n Enclosing,\r\n EnclosingEndTouching,\r\n ExactMatch,\r\n Inside,\r\n InsideEndTouching,\r\n EndInside,\r\n EndTouching,\r\n Before,\r\n}\r\n\r\nexport class OverlapHelper {\r\n\r\n\r\n static getRelation(start1: Date, end1: Date, start2: Date, end2: Date): PeriodRelation {\r\n if (end2 < start1) {\r\n return PeriodRelation.After;\r\n }\r\n if (start2 > end1) {\r\n return PeriodRelation.Before;\r\n }\r\n if (start2 == start1 && end2 == end1) {\r\n return PeriodRelation.ExactMatch;\r\n }\r\n if (end2 == start1) {\r\n return PeriodRelation.StartTouching;\r\n }\r\n if (start2 == end1) {\r\n return PeriodRelation.EndTouching;\r\n }\r\n if (this.hasInside2(start1, end1, start2, end2)) {\r\n if (start2 == start1) {\r\n return PeriodRelation.EnclosingStartTouching;\r\n }\r\n return end2 == end1 ? PeriodRelation.EnclosingEndTouching : PeriodRelation.Enclosing;\r\n }\r\n let periodContainsMyStart = this.hasInside(start2, end2, start1);\r\n let periodContainsMyEnd = this.hasInside(start2, end2, end1);\r\n if (periodContainsMyStart && periodContainsMyEnd) {\r\n if (start2 == start1) {\r\n return PeriodRelation.InsideStartTouching;\r\n }\r\n return end2 == end1 ? PeriodRelation.InsideEndTouching : PeriodRelation.Inside;\r\n }\r\n if (periodContainsMyStart) {\r\n return PeriodRelation.StartInside;\r\n }\r\n if (periodContainsMyEnd) {\r\n return PeriodRelation.EndInside;\r\n }\r\n\r\n throw new Error(\"invalid period relation of '\" + start1 + \"-\" + end1 + \"' and '\" + start2 + \"-\" + end2 + \"'\");\r\n }\r\n\r\n static hasInside(start: Date, end: Date, date: Date): boolean {\r\n return date >= start && date <= end;\r\n }\r\n\r\n static hasInside2(start1: Date, end1: Date, start2: Date, end2: Date): boolean {\r\n return this.hasInside(start1, end1, start2) && this.hasInside(start1, end1, end2);\r\n }\r\n\r\n static intersects(start1: Date, end1: Date, start2: Date, end2: Date): boolean {\r\n return this.hasInside(start1, end1, start2) || this.hasInside(start1, end1, end2) || (start2 < start1 && end2 > end1);\r\n }\r\n\r\n static overlaps(start1: Date, end1: Date, start2: Date, end2: Date): boolean {\r\n var relation = this.getRelation(start1, end1, start2, end2);\r\n return relation != PeriodRelation.After &&\r\n relation != PeriodRelation.StartTouching &&\r\n relation != PeriodRelation.EndTouching &&\r\n relation != PeriodRelation.Before;\r\n }\r\n\r\n\r\n}","import { OverlapHelper } from \"./overlap-helper\";\r\n\r\nexport class TimeHelper {\r\n static parseTime(value: any): string | null {\r\n if (typeof value === 'undefined' || value == null || value === '') return null;\r\n return this.toTime(value);\r\n }\r\n static toTime(value: string): string {\r\n if (typeof value === 'string') {\r\n value = value.trim();\r\n\r\n if (/^(\\d{1,2}:\\d{1,2})$/.test(value)) {\r\n const [h, m] = value.split(':').map((val: string) => +val);\r\n return `${h < 10 ? '0' : ''}${h}:${m < 10 ? '0' : ''}${m}:00`;\r\n } else if (/^(\\d{1,2}:\\d{1,2}:\\d{1,2})$/.test(value)) {\r\n const [h, m, s] = value.split(':').map((val: string) => +val);\r\n return `${h < 10 ? '0' : ''}${h}:${m < 10 ? '0' : ''}${m}:${s < 10 ? '0' : ''}${s}`;\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n\r\n static toDate(time: string | undefined | null): Date {\r\n let date = new Date(0);\r\n\r\n let tmp = this.parseTime(time);\r\n if (!tmp) return date;\r\n\r\n let timeDate = new Date('1970-01-01T' + time + 'Z');\r\n date.setTime(date.getTime() + timeDate.getTime());\r\n return date;\r\n };\r\n\r\n\r\n static intersects(start1: string, end1: string, start2: string, end2: string): boolean {\r\n let startDate1 = this.toDate(start1);\r\n let endDate1 = this.toDate(end1);\r\n let startDate2 = this.toDate(start2);\r\n let endDate2 = this.toDate(end2);\r\n\r\n return OverlapHelper.intersects(startDate1, endDate1, startDate2, endDate2);\r\n }\r\n\r\n static overlaps(start1: string, end1: string, start2: string, end2: string): boolean {\r\n let startDate1 = this.toDate(start1);\r\n let endDate1 = this.toDate(end1);\r\n let startDate2 = this.toDate(start2);\r\n let endDate2 = this.toDate(end2);\r\n\r\n return OverlapHelper.overlaps(startDate1, endDate1, startDate2, endDate2);\r\n }\r\n}","import { TimeHelper } from \"./time-helper\";\r\n\r\n\r\n\r\nexport class DateHelper {\r\n\r\n static minDate() {\r\n return new Date(0);\r\n };\r\n\r\n static equals(value1?: Date | null, value2?: Date | null) {\r\n let val1 = (value1 === undefined || value1 === null) ? null : value1;\r\n let val2 = (value2 === undefined || value2 === null) ? null : value2;\r\n\r\n\r\n if (val1 === val2) {\r\n return true;\r\n }\r\n\r\n if (!val1 || !val2) {\r\n return false;\r\n }\r\n\r\n return val1.getTime() === val2.getTime();\r\n }\r\n\r\n static getDates(start: Date, end: Date) {\r\n var dates = new Array<Date>();\r\n var date = new Date(start.valueOf());\r\n while (date <= end) {\r\n dates.push(new Date(date));\r\n date = this.addDays(date, 1);\r\n }\r\n return dates;\r\n }\r\n\r\n static dateOnly(value: Date) {\r\n let year = value.getFullYear();\r\n let month = value.getMonth();\r\n let day = value.getDate();\r\n let date = new Date(Date.UTC(year, month, day));\r\n\r\n return date;\r\n }\r\n\r\n static toISODateString(value: Date | string) {\r\n let date = this.parseDate(value);\r\n\r\n if (!date)\r\n return null;\r\n\r\n let year = date.getFullYear();\r\n // Add +1 to month since 0 is January\r\n let month = date.getMonth() + 1;\r\n let day = date.getDate();\r\n\r\n let str = `${year}-${month < 10 ? '0' : ''}${month}-${day < 10 ? '0' : ''}${day}`;\r\n //str = year.toString() + \"-\" + (month + 1).toString().padStart(2, \"0\") + \"-\" + day.toString().padStart(2, \"0\");\r\n return str;\r\n }\r\n\r\n\r\n\r\n static addTime(value: Date, time: string | undefined | null) {\r\n let tmp = TimeHelper.parseTime(time);\r\n if (!tmp) return value;\r\n\r\n let timeDate = new Date('1970-01-01T' + time + 'Z');\r\n let date = value;\r\n date.setTime(date.getTime() + timeDate.getTime());\r\n return date;\r\n };\r\n static addYears(v: Date, years: number): Date {\r\n if (!years) return v;\r\n\r\n let date = v;\r\n date.setFullYear(v.getFullYear() + years);\r\n return date;\r\n }\r\n static addMonths(v: Date, months: number) {\r\n if (!months) return v;\r\n\r\n let date = v;\r\n date.setMonth(date.getMonth() + months);\r\n return date;\r\n };\r\n static addDays(v: Date, days: number) {\r\n if (!days) return v;\r\n\r\n let date = v;\r\n date.setDate(date.getDate() + days);\r\n return date;\r\n };\r\n static addHours(v: Date, hours: number) {\r\n if (!hours) return v;\r\n\r\n let date = new Date(v);\r\n //todo need to check if this line needs --> date = new Date(date.getTime());\r\n date.setHours(date.getHours() + hours);\r\n return date;\r\n }\r\n static addMinutes(v: Date, minutes: number) {\r\n if (!minutes) return v;\r\n\r\n let date = new Date(v);\r\n //todo need to check if this line needs --> date = new Date(date.getTime());\r\n date.setMinutes(date.getMinutes() + minutes);\r\n return date;\r\n }\r\n static addSeconds(v: Date, seconds: number) {\r\n if (!seconds) return v;\r\n\r\n let date = v;\r\n date.setSeconds(date.getSeconds() + seconds);\r\n\r\n return date;\r\n };\r\n static isToday(date: Date) {\r\n let today = new Date();\r\n return this.isSameDate(date, today);\r\n };\r\n static clone(date: Date) {\r\n return new Date(+date);\r\n };\r\n static isAnotherMonth(a: Date, b: Date) {\r\n return b && a.getMonth() !== b.getMonth();\r\n };\r\n static isWeekend(v: Date,): boolean {\r\n return v.getDay() === 0 || v.getDay() === 6;\r\n };\r\n static isSameDate(a: Date, b: Date) {\r\n return b && a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\r\n };\r\n\r\n\r\n static getAge(value?: Date | string | null, now?: Date | null) {\r\n if (value === undefined || value === null || value === '' || value !== value) return null;\r\n\r\n const date = this.toDate(value);\r\n\r\n let nowTime = now ? now.getTime() : Date.now();\r\n let timeDiff = nowTime - date.getTime();\r\n\r\n return Math.floor((timeDiff / 86400000) / 365.25);//86400000 = (1000 * 60 * 60 * 24) = 1000 millisecond * 60second * 60minute * 24hour\r\n };\r\n static subtractMonths(endDate: Date, starDate: Date) {\r\n let start = starDate <= endDate ? starDate : endDate;\r\n let end = starDate <= endDate ? endDate : starDate;\r\n let plus = starDate <= endDate ? 1 : -1;\r\n\r\n let months = (end.getFullYear() - start.getFullYear()) * 12;\r\n months -= start.getMonth();\r\n months += end.getMonth();\r\n return months * plus;\r\n };\r\n\r\n static subtractDays(value: Date, date: Date) {\r\n if (!date)\r\n return null;\r\n\r\n date = this.toDate(date);\r\n let timeDiff = date.getTime() - value.getTime();\r\n return Math.floor(timeDiff / 86400000);//86400000 = (1000 * 60 * 60 * 24) = 1000 millisecond * 60second * 60minute * 24hour\r\n };\r\n static subtractHours(value: Date, date?: Date | null) {\r\n if (!date)\r\n return null;\r\n\r\n date = this.toDate(date);\r\n let timeDiff = date.getTime() - value.getTime();\r\n return Math.floor((timeDiff % 86400000) / 3600000);\r\n };\r\n static subtractMinutes(value: Date, date?: Date | null) {\r\n if (!date)\r\n return null;\r\n\r\n date = this.toDate(date);\r\n let timeDiff = date.getTime() - value.getTime();\r\n //\r\n return Math.floor(((timeDiff % 86400000) % 3600000) / 60000);\r\n };\r\n\r\n\r\n\r\n\r\n static ISO8601_DATE_REGEX =\r\n /^(\\d{4})-?(\\d\\d)-?(\\d\\d)(?:T(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:\\.(\\d+))?)?)?(Z|([+-])(\\d\\d):?(\\d\\d))?)?$/;\r\n // 1 2 3 4 5 6 7 8 9 10 11\r\n\r\n\r\n static parseDate(value: any): Date | null {\r\n if (typeof value === 'undefined' || value == null || value === '') return null;\r\n return this.toDate(value);\r\n }\r\n\r\n // export function toDate(value: string|number|Date): Date this function is imported from date pipe \r\n // packages/common/src/i18n/format_date.ts\r\n\r\n /***\r\n * Converts a value to date.\r\n *\r\n * Supported input formats:\r\n * - `Date`\r\n * - number: timestamp\r\n * - string: numeric (e.g. \"1234\"), ISO and date strings in a format supported by\r\n * [Date.parse()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse).\r\n * Note: ISO strings without time return a date without timeoffset.\r\n *\r\n * Throws if unable to convert to a date.\r\n */\r\n static toDate(value: string | number | Date): Date {\r\n if (this.isDate(value)) {\r\n return value;\r\n }\r\n\r\n if (typeof value === 'number' && !isNaN(value)) {\r\n return new Date(value);\r\n }\r\n\r\n if (typeof value === 'string') {\r\n value = value.trim();\r\n\r\n const parsedNb = parseFloat(value);\r\n\r\n // any string that only contains numbers, like \"1234\" but not like \"1234hello\"\r\n if (!isNaN(value as any - parsedNb)) {\r\n return new Date(parsedNb);\r\n }\r\n\r\n if (/^(\\d{4}-\\d{1,2}-\\d{1,2})$/.test(value)) {\r\n /* For ISO Strings without time the day, month and year must be extracted from the ISO String\r\n before Date creation to avoid time offset and errors in the new Date.\r\n If we only replace '-' with ',' in the ISO String (\"2015,01,01\"), and try to create a new\r\n date, some browsers (e.g. IE 9) will throw an invalid Date error.\r\n If we leave the '-' (\"2015-01-01\") and try to create a new Date(\"2015-01-01\") the timeoffset\r\n is applied.\r\n Note: ISO months are 0 for January, 1 for February, ... */\r\n const [y, m, d] = value.split('-').map((val: string) => +val);\r\n return new Date(y, m - 1, d);\r\n }\r\n\r\n let match: RegExpMatchArray | null;\r\n if (match = value.match(this.ISO8601_DATE_REGEX)) {\r\n return this.isoStringToDate(match);\r\n }\r\n }\r\n\r\n const date = new Date(value as any);\r\n if (!this.isDate(date)) {\r\n throw new Error(`Unable to convert \"${value}\" into a date`);\r\n }\r\n return date;\r\n }\r\n\r\n /**\r\n * Converts a date in ISO8601 to a Date.\r\n * Used instead of `Date.parse` because of browser discrepancies.\r\n */\r\n static isoStringToDate(match: RegExpMatchArray): Date {\r\n const date = new Date(0);\r\n let tzHour = 0;\r\n let tzMin = 0;\r\n\r\n // match[8] means that the string contains \"Z\" (UTC) or a timezone like \"+01:00\" or \"+0100\"\r\n const dateSetter = match[8] ? date.setUTCFullYear : date.setFullYear;\r\n const timeSetter = match[8] ? date.setUTCHours : date.setHours;\r\n\r\n // if there is a timezone defined like \"+01:00\" or \"+0100\"\r\n if (match[9]) {\r\n tzHour = Number(match[9] + match[10]);\r\n tzMin = Number(match[9] + match[11]);\r\n }\r\n dateSetter.call(date, Number(match[1]), Number(match[2]) - 1, Number(match[3]));\r\n const h = Number(match[4] || 0) - tzHour;\r\n const m = Number(match[5] || 0) - tzMin;\r\n const s = Number(match[6] || 0);\r\n const ms = Math.round(parseFloat('0.' + (match[7] || 0)) * 1000);\r\n timeSetter.call(date, h, m, s, ms);\r\n return date;\r\n }\r\n\r\n static isDate(value: any): value is Date {\r\n return value instanceof Date && !isNaN(value.valueOf());\r\n }\r\n}","import { KeyPair } from \"../models\";\r\n\r\nexport class ErrorHelper {\r\n static responseToKeyPairArray(response: any) {\r\n let error: any;\r\n if (typeof response.error === 'string' && response.error[0] === '{') {\r\n error = JSON.parse(response.error);\r\n } else {\r\n error = response.error;\r\n }\r\n\r\n return this.toKeyPairArray(error);\r\n }\r\n\r\n static toKeyPairArray(error: any) {\r\n if (typeof error === 'object') {\r\n const errors = error.traceId || error.success === false\r\n ? error.errors\r\n : error;\r\n\r\n const result: KeyPair<string | null | undefined, string | null | undefined>[] = [];\r\n const properties = Object.keys(errors);\r\n\r\n for (let property of properties) {\r\n const messages = errors[property];\r\n if (messages instanceof Array) {\r\n for (let message of messages) {\r\n result.push({ key: property, value: message });\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n return null;\r\n }\r\n}","export class FileHelper {\r\n static getExtension(path?: string | null) {\r\n if (path === undefined || path == null)\r\n return path;\r\n\r\n if (typeof path !== 'string') {\r\n throw new Error(\"path parameter is not string\");\r\n }\r\n\r\n const directorySeparatorChar = '\\\\';\r\n const altDirectorySeparatorChar = '/';\r\n const volumeSeparatorChar = ':';\r\n\r\n let length = path.length;\r\n for (let i = length; --i >= 0;) {\r\n let ch = path[i];\r\n if (ch === '.') {\r\n if (i !== length - 1)\r\n return path.substring(i, length);\r\n else\r\n return '';\r\n }\r\n if (ch == directorySeparatorChar || ch == altDirectorySeparatorChar || ch == volumeSeparatorChar)\r\n break;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n\r\n static download(blob: Blob | null, fileName: string) {\r\n if (!blob) return;\r\n\r\n const nav = (window.navigator as any);\r\n if (nav && nav.msSaveOrOpenBlob) {\r\n nav.msSaveOrOpenBlob(blob, fileName);\r\n } else {\r\n let a = document.createElement('a');\r\n a.href = URL.createObjectURL(blob);\r\n a.download = fileName;\r\n a.target = '_blank';\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n }\r\n}","\r\nexport class ObjectHelper {\r\n static isDefined(value: any) {\r\n return typeof value !== 'undefined' && value !== null;\r\n }\r\n\r\n static isObject(value: any) {\r\n return this.isDefined(value) && typeof value === 'object';\r\n }\r\n\r\n\r\n /**\r\n * Check if the object is a string or array before evaluating the length attribute.\r\n * This avoids falsely rejecting objects that contain a custom length attribute.\r\n * For example, the object {id: 1, length: 0, width: 0} should not be returned as empty.\r\n */\r\n static isEmptyValue(value: any): boolean {\r\n return !this.isDefined(value) || ((typeof value === 'string' || Array.isArray(value)) && value.length === 0);\r\n }\r\n\r\n\r\n static isEmpty(obj: any) {\r\n if (!this.isDefined(obj))\r\n return true;\r\n // if (typeof obj === 'undefined' || obj === null)\r\n // return true;\r\n for (let prop in obj) {\r\n let v = obj[prop];\r\n if (!this.isEmptyValue(v))\r\n return false;\r\n // if (typeof (obj[prop]) !== undefined && obj[prop] !== null && obj[prop] !== '') {\r\n // return false;\r\n // }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n /**\r\n * @deprecated The method should not be used. please use deleteNullFields\r\n */\r\n static deleteNullKeys(val: any) {\r\n this.deleteNullFields(val);\r\n };\r\n\r\n static deleteNullFields<T extends {}>(val: T) {\r\n if (!val) return;\r\n for (let key in val) {\r\n let tmp = val[key];\r\n if (tmp === undefined || tmp === null) {\r\n delete val[key];\r\n }\r\n }\r\n return val\r\n };\r\n\r\n static assignFields<T extends {}, U extends {}>(target: T, source: U): T {\r\n let t: any = target;\r\n let s: any = source;\r\n for (const key of Object.keys(target)) {\r\n let v = s[key];\r\n if (typeof v !== 'undefined') {\r\n t[key] = v;\r\n }\r\n }\r\n return target;\r\n }\r\n\r\n\r\n\r\n static deepCopy<T = any>(value: any): T {\r\n if (!this.isObject(value))\r\n return value;\r\n\r\n let output: any = {};\r\n if (Array.isArray(value)) {\r\n output = value.map(x => this.deepCopy(x));\r\n }\r\n else {\r\n Object.keys(value).forEach((key: any) => {\r\n const v = value[key];\r\n\r\n if (this.isObject(v)) {\r\n output[key] = this.deepCopy(v);\r\n\r\n } else {\r\n Object.assign(output, { [key]: v });\r\n }\r\n });\r\n }\r\n\r\n return output as T;\r\n }\r\n\r\n}","import { ObjectHelper } from \"./object-helper\";\r\n\r\nexport class FilterHelper {\r\n static isEmpty(obj: any) {\r\n if (typeof obj === 'undefined' || obj === null)\r\n return true;\r\n\r\n let tmp = Object.assign({}, obj);\r\n delete tmp.page;\r\n delete tmp.pageSize;\r\n delete tmp.sort;\r\n\r\n return ObjectHelper.isEmpty(tmp);\r\n }\r\n}","export var handler = (function () {\r\n var i = 1;\r\n var listeners: any = {};\r\n\r\n return {\r\n addListener: function (element: HTMLElement, event: string, handler: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) {\r\n element.addEventListener(event, handler, options); \r\n listeners[i] = {\r\n element: element,\r\n event: event,\r\n handler: handler,\r\n options: options,\r\n };\r\n return i++;\r\n },\r\n removeListener: function (id: number) {\r\n if (id in listeners) {\r\n var h = listeners[id];\r\n h.element.removeEventListener(h.event, h.handler, h.options);\r\n delete listeners[id];\r\n }\r\n }\r\n };\r\n}());","export class HtmlHelper {\r\n static escapeHtml(source: string) {\r\n if (source == null) {\r\n source = '';\r\n }\r\n\r\n return source\r\n .replace(/&/g, '&amp;')\r\n .replace(/\"/g, '&quot;')\r\n .replace(/'/g, '&#39;')\r\n .replace(/</g, '&lt;')\r\n .replace(/>/g, '&gt;');\r\n }\r\n\r\n\r\n static addInput(type: string, name: string, id: string = name, force = false) {\r\n let node = document.createElement('input');\r\n node.type = type;\r\n node.name = name;\r\n node.id = id;\r\n\r\n document.getElementsByTagName('body')[0].appendChild(node);\r\n return node;\r\n }\r\n\r\n\r\n static loadScript(url: string, nonce?: string, async = true, defer = true) {\r\n const script = document.createElement('script');\r\n script.innerHTML = '';\r\n script.src = url;\r\n script.type = 'text/javascript';\r\n\r\n if (nonce) {\r\n script.nonce = nonce;\r\n }\r\n\r\n if (async) {\r\n script.async = true;\r\n }\r\n if (defer) {\r\n script.defer = true;\r\n }\r\n\r\n document.head.appendChild(script);\r\n //2022-02-24 document.getElementsByTagName('head')[0].appendChild(script);\r\n }\r\n static loadScripts(...scripts: string[]) {\r\n var promises: any[] = [];\r\n scripts.forEach((script) => promises.push(this.internalLoadScript(script)));\r\n return Promise.all(promises);\r\n }\r\n private static internalLoadScript(src: string) {\r\n return new Promise((resolve, reject) => {\r\n let script = document.createElement('script') as any;\r\n script.src = src;\r\n script.type = 'text/javascript';\r\n if (script.readyState) { //IE\r\n script.onreadystatechange = () => {\r\n if (script.readyState === \"loaded\" || script.readyState === \"complete\") {\r\n script.onreadystatechange = null;\r\n resolve({ script: src, loaded: true });\r\n }\r\n };\r\n } else { //Others\r\n script.onload = () => {\r\n resolve({ script: src, loaded: true });\r\n };\r\n }\r\n script.onerror = (error: any) => resolve({ script: src, loaded: false });\r\n document.getElementsByTagName('head')[0].appendChild(script);\r\n });\r\n }\r\n\r\n}","export class JwtHelper {\r\n\r\n static decode(token: any) {\r\n let base64Url = token.split('.')[1]\r\n let base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\r\n let jsonPayload = decodeURIComponent(atob(base64).split('').map(function (c) {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n }).join(''));\r\n return JSON.parse(jsonPayload)\r\n }\r\n}","export class MathHelper {\r\n static round(value: number, decimals: number = 0): number {\r\n return Math.round(Number(value) * Math.pow(10, decimals)) / (Math.pow(10, decimals));\r\n };\r\n\r\n\r\n static clamp(v: number, min: number, max: number) {\r\n return Math.max(min, Math.min(max, v));\r\n }\r\n\r\n static sum(...values: number[]) {\r\n return values.reduce((acc, cur) => acc + cur, 0);;\r\n }\r\n}","import { Pager } from \"../models\";\r\n\r\nexport class PagerHelper {\r\n static get(totalItemCount: number | null | undefined, pageNumber: number | null | undefined = 1, pageSize: number | null | undefined = 10) {\r\n if (!totalItemCount) totalItemCount = 0;\r\n if (!pageNumber) pageNumber = 1;\r\n if (!pageSize) pageSize = 10;\r\n\r\n // calculate total pages\r\n const pageCount = Math.ceil(totalItemCount / pageSize);\r\n let startPage: number, endPage: number;\r\n if (pageCount <= 10) {\r\n // less than 10 total pages so show all\r\n startPage = 1;\r\n endPage = pageCount;\r\n } else {\r\n // more than 10 total pages so calculate start and end pages\r\n if (pageNumber <= 6) {\r\n startPage = 1;\r\n endPage = 10;\r\n } else if (pageNumber + 4 >= pageCount) {\r\n startPage = pageCount - 9;\r\n endPage = pageCount;\r\n } else {\r\n startPage = pageNumber - 5;\r\n endPage = pageNumber + 4;\r\n }\r\n }\r\n\r\n // calculate start and end item indexes\r\n const firstItemOnPage = (pageNumber - 1) * pageSize + 1;\r\n const lastItemOnPage = Math.min(firstItemOnPage + pageSize - 1, totalItemCount);\r\n\r\n const hasPreviousPage = pageNumber > 1;\r\n const hasNextPage = pageNumber < pageCount;\r\n const isFirstPage = pageNumber <= 1;\r\n const isLastPage = pageNumber >= pageCount;\r\n\r\n // create an array of pages to ng-repeat in the pager control\r\n //let pages = _.range(startPage, endPage + 1);\r\n const pages: number[] = [];\r\n for (let i = startPage; i <= endPage; i++) {\r\n pages.push(i);\r\n }\r\n\r\n // return object with all pager properties required by the view\r\n return {\r\n pageCount,\r\n totalItemCount,\r\n pageNumber,\r\n pageSize,\r\n hasPreviousPage,\r\n hasNextPage,\r\n isFirstPage,\r\n isLastPage,\r\n firstItemOnPage,\r\n lastItemOnPage,\r\n //startPage: startPage,\r\n //endPage: endPage,\r\n pages\r\n } as Pager;\r\n }\r\n}","export class RandomHelper {\r\n static randomHex(count: number = 2) {\r\n let out: string = '';\r\n for (let i: number = 0; i < count; i++) {\r\n // tslint:disable-next-line:no-bitwise\r\n out += (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n }\r\n return out;\r\n }\r\n\r\n static randomInt(min: number, max: number) {\r\n min = Math.ceil(min);\r\n max = Math.floor(max);\r\n\r\n return Math.floor(Math.random() * (max - min + 1)) + min;\r\n }\r\n}","export class StorageHelper {\r\n static set(key: string, value: any) {\r\n if (!key) { return; }\r\n\r\n if (!value) {\r\n localStorage.removeItem(key);\r\n return;\r\n }\r\n\r\n if (typeof value === \"object\") {\r\n value = JSON.stringify(value);\r\n }\r\n localStorage.setItem(key, value);\r\n }\r\n\r\n\r\n static get(key: string) {\r\n let str = localStorage.getItem(key);\r\n \r\n if (!str) { return null; }\r\n \r\n // assume it is an object that has been stringified\r\n if (str[0] === '{') {\r\n let v = JSON.parse(str);\r\n return v;\r\n }\r\n \r\n return str;\r\n }\r\n}","export class StringHelper {\r\n static firstUpper(v?: string | null) {\r\n if (!v || v.length < 1)\r\n return v;\r\n\r\n return v.charAt(0).toUpperCase() + v.slice(1);\r\n }\r\n\r\n static isNullOrEmpty(value?: string | null) {\r\n return typeof value === 'undefined' || value == null || ((typeof value === 'string') && value.length === 0);\r\n }\r\n static isNullOrWhiteSpace(value?: string | null) {\r\n return typeof value === 'undefined' || value == null || ((typeof value === 'string') && value.trim().length === 0);\r\n }\r\n static tryTrim(val: string | undefined | null) {\r\n if (!val)\r\n return val;\r\n return val.trim();\r\n }\r\n static ifNullEmpty(value?: string | null) {\r\n return typeof value === 'undefined' || value == null ? '' : value;\r\n }\r\n static join(val: string | undefined | null, separator: string, part: string | undefined | null) {\r\n if (this.isNullOrEmpty(val)) {\r\n return part;\r\n }\r\n if (this.isNullOrEmpty(part)) {\r\n return val;\r\n }\r\n\r\n return val + separator + part;\r\n }\r\n static trim(val: string | null, ch: string) {\r\n if (!val || !ch)\r\n return val;\r\n\r\n var start = 0,\r\n end = val.length;\r\n\r\n while (start < end && val[start] === ch)\r\n ++start;\r\n\r\n while (end > start && val[end - 1] === ch)\r\n --end;\r\n\r\n return (start > 0 || end < val.length) ? val.substring(start, end) : val;\r\n }\r\n static trimAny(val: string | null, chars: string) {\r\n if (!val || !chars)\r\n return val;\r\n\r\n var start = 0,\r\n end = val.length;\r\n\r\n while (start < end && chars.indexOf(val[start]) >= 0)\r\n ++start;\r\n\r\n while (end > start && chars.indexOf(val[end - 1]) >= 0)\r\n --end;\r\n\r\n return (start > 0 || end < val.length) ? val.substring(start, end) : val;\r\n }\r\n\r\n}","export var firstBy = (function() {\r\n\r\n function identity(v: any){return v;}\r\n\r\n function ignoreCase(v: any){return typeof(v)===\"string\" ? v.toLowerCase() : v;}\r\n\r\n function makeCompareFunction(f: any, opt: any){\r\n opt = typeof(opt)===\"number\" ? {direction:opt} : opt||{};\r\n if(typeof(f)!=\"function\"){\r\n var prop = f;\r\n // make unary function\r\n f = function(v1: any){return !!v1[prop] ? v1[prop] : \"\";}\r\n }\r\n if(f.length === 1) {\r\n // f is a unary function mapping a single item to its sort score\r\n var uf = f;\r\n var preprocess = opt.ignoreCase?ignoreCase:identity;\r\n var cmp = opt.cmp || function(v1: any,v2: any) {return v1 < v2 ? -1 : v1 > v2 ? 1 : 0;}\r\n f = function(v1: any,v2: any) {return cmp(preprocess(uf(v1)), preprocess(uf(v2)));}\r\n }\r\n if(opt.direction === -1) return function(v1: any,v2: any){return -f(v1,v2)};\r\n return f;\r\n }\r\n\r\n /* adds a secondary compare function to the target function (`this` context)\r\n which is applied in case the first one returns 0 (equal)\r\n returns a new compare function, which has a `thenBy` method as well */\r\n function tb(this: any, func: any, opt: any) {\r\n /* should get value false for the first call. This can be done by calling the \r\n exported function, or the firstBy property on it (for es6 module compatibility)\r\n */\r\n var x = (typeof(this) == \"function\" && !this.firstBy) ? this : false;\r\n var y = makeCompareFunction(func, opt);\r\n var f = x ? function(a: any, b: any) {\r\n return x(a,b) || y(a,b);\r\n }\r\n : y;\r\n f.thenBy = tb;\r\n return f;\r\n }\r\n tb.firstBy = tb;\r\n return tb;\r\n})();","export class TmpHelper {\r\n private static _obj: any = {};\r\n\r\n static get(key: string): any {\r\n if (!key) return;\r\n return this._obj[key];\r\n }\r\n\r\n static set(key: string, value: any) {\r\n if (!key) return;\r\n this._obj[key] = value;\r\n }\r\n\r\n static clear() {\r\n this._obj = {};\r\n }\r\n static remove(key: string) {\r\n if (!key) return;\r\n delete this._obj[key]\r\n }\r\n}","export class UrlHelper {\r\n static getController(url: string) {\r\n return url.substring(0, url.lastIndexOf('/') + 1);\r\n }\r\n static getAction(url: string) {\r\n let action = url.substring(url.lastIndexOf('/') + 1);\r\n let i = action.indexOf(';');\r\n return i === -1 ? action : action.substring(0, i);\r\n }\r\n static getNoParam(url: string) {\r\n let i1 = url.indexOf('?');\r\n let i2 = url.indexOf(';');\r\n if (i1 !== -1) {\r\n if (i2 !== -1) {\r\n let min = i1 < i2 ? i1 : i2;\r\n return url.substring(0, min)\r\n }\r\n return url.substring(0, i1)\r\n }\r\n if (i2 !== -1) {\r\n return url.substring(0, i2)\r\n }\r\n return url;\r\n }\r\n}","export class ValidationHelper {\r\n static readonly emailRegExp = /^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\r\n\r\n static isValidEmail(email?: string | null) {\r\n if (typeof email === 'undefined' || email == null || ((typeof email === 'string') && email.length === 0)) {\r\n return false;\r\n }\r\n\r\n return this.emailRegExp.test(email);\r\n }\r\n}","import { Injectable, } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\nimport { KeyPair, LoginToken, LoginUser } from '../models';\r\nimport { Convert, DateHelper, ObjectHelper, StorageHelper } from '../utils';\r\nimport { BitwiseHelper } from '../utils/bitwise-helper';\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n private _isInitialized: boolean = false;\r\n private _oldValue: boolean = false;\r\n private _user: LoginUser | null = null;\r\n\r\n get user(): LoginUser | null {\r\n if (!this._isInitialized) {\r\n let user = StorageHelper.get('login');\r\n if (user) {\r\n user.id = ObjectHelper.isDefined(user.id) ? Convert.parseNumber(user.id) : user.id;\r\n user.expired = ObjectHelper.isDefined(user.expired) ? DateHelper.parseDate(user.expired) : user.expired;\r\n user.refreshTokenTime = ObjectHelper.isDefined(user.refreshTokenTime) ? DateHelper.parseDate(user.refreshTokenTime) : user.refreshTokenTime;\r\n\r\n if (Array.isArray(user.roles)) {\r\n user.roles = user.roles.map(function (e: any) { return e ? e.toUpperCase() : e; });\r\n }\r\n }\r\n this._user = user;\r\n this._isInitialized = true;\r\n this._starRefreshTokenTimer();\r\n }\r\n return this._user;\r\n }\r\n\r\n\r\n private _timerId: any;\r\n private _starRefreshTokenTimer() {\r\n this._stopRefreshTokenTimer();\r\n\r\n let user = this._user;\r\n if (user && user.refreshTokenTime) {\r\n let timeout = user.refreshTokenTime.getTime() - Date.now();// - (60 * 1000);\r\n\r\n if (timeout < 0) {\r\n this._emitRefreshToken();\r\n }\r\n\r\n const minRefreshTime = 60_000//1 min;\r\n if (timeout < minRefreshTime) {\r\n timeout = minRefreshTime;\r\n }\r\n\r\n this._timerId = setInterval(() => {\r\n this._emitRefreshToken();\r\n }, timeout);\r\n }\r\n }\r\n private _stopRefreshTokenTimer() {\r\n if (typeof this._timerId === 'number') {\r\n clearInterval(this._timerId);\r\n }\r\n }\r\n private _emitRefreshToken() {\r\n if (this._onRefreshTokenSubject) {\r\n this._onRefreshTokenSubject.next();\r\n }\r\n }\r\n\r\n\r\n isAuthenticated(): boolean {\r\n let expired = this.getExpired() || new Date(0);// if getExpired is null return min JS date\r\n\r\n const newValue = new Date() < expired;\r\n if (this._oldValue !== newValue) {\r\n this._oldValue = newValue;\r\n\r\n this.emitOnSignedIn();\r\n // if (this._onSignedInSubject) {\r\n // this._onSignedInSubject.next(newValue);\r\n // }\r\n\r\n //if user is signed in and expired we need to logout (remove from localStorage)\r\n if (!newValue) {\r\n this.logout();\r\n }\r\n return newValue;\r\n }\r\n return newValue;\r\n }\r\n emitOnSignedIn() {\r\n if (this._onSignedInSubject) {\r\n this._onSignedInSubject.next(this._oldValue);\r\n }\r\n }\r\n\r\n private _onSignedInSubject?: BehaviorSubject<boolean>;//BehaviorSubject is for initial firt value = false\r\n private _onSignedInObservable?: Observable<boolean>;\r\n get onSignedIn(): Observable<boolean> {\r\n if (!this._onSignedInSubject) {\r\n this._onSignedInSubject = new BehaviorSubject<boolean>(false);\r\n this._onSignedInObservable = this._onSignedInSubject.asObservable();\r\n }\r\n\r\n if (!this._onSignedInObservable)\r\n throw new Error(\"_onExecuteObservable is undefined\");\r\n\r\n return this._onSignedInObservable;\r\n }\r\n\r\n\r\n private _onRefreshTokenSubject?: Subject<void>;\r\n private _onRefreshTokenObservable?: Observable<void>;\r\n get onRefreshToken(): Observable<void> {\r\n if (!this._onRefreshTokenSubject) {\r\n this._onRefreshTokenSubject = new Subject<void>();\r\n this._onRefreshTokenObservable = this._onRefreshTokenSubject.asObservable();\r\n }\r\n\r\n if (!this._onRefreshTokenObservable)\r\n throw new Error(\"onRefreshTokenObservable is undefined\");\r\n\r\n return this._onRefreshTokenObservable;\r\n }\r\n\r\n\r\n\r\n login(user: LoginToken | LoginUser | null) {\r\n // if (user) {\r\n // // I think we don't need this\r\n // user.id = ObjectHelper.isDefined(user.id) ? Convert.parseNumber(user.id) : user.id;\r\n // user.expired = ObjectHelper.isDefined(user.expired) ? DateHelper.parseDate(user.expired) : user.expired;\r\n // user.refreshTokenTime = ObjectHelper.isDefined(user.refreshTokenTime) ? DateHelper.parseDate(user.refreshTokenTime) : user.refreshTokenTime;\r\n // if (Array.isArray(user.roles)) {\r\n // user.roles = user.roles.map(function (e) { return e.toUpperCase(); });\r\n // }\r\n // }\r\n\r\n StorageHelper.set('login', user);\r\n this._user = null;\r\n this._isInitialized = false;//user get method will init user\r\n this.isAuthenticated();//this method need to execute subject.next(); \r\n }\r\n logout() {\r\n this.login(null);\r\n }\r\n\r\n\r\n\r\n protected getExpired(): Date | null | undefined {\r\n let user = this.user;\r\n if (user) {\r\n return user.expired;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n protected getRefreshTokenExpired(): Date | null | undefined {\r\n let user = this.user;\r\n if (user) {\r\n return user.refreshTokenTime;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n\r\n // isInRole(allowedRoles: string[]): boolean {\r\n // if (!allowedRoles || allowedRoles.length === 0) {\r\n // return true;\r\n // }\r\n\r\n // const tmp = this.getUser();\r\n // const roles = tmp ? tmp.roles : null;\r\n // if (!roles || roles.length === 0) {\r\n // return false;\r\n // }\r\n\r\n // let isInRole = allowedRoles.some(role => roles.indexOf(role) !== -1);\r\n // return isInRole;\r\n // }\r\n\r\n\r\n hasPermission(permission?: KeyPair<number, number> | number | null): boolean {\r\n if (!permission) {\r\n return true;\r\n }\r\n\r\n let key = 0;\r\n let value: number | null | undefined;\r\n if (typeof permission === 'number' || typeof permission === 'string') {\r\n key = +permission;\r\n }// else if (Array.isArray(permission)) {\r\n // }\r\n else if (typeof permission === 'object') {\r\n if (!permission.key)\r\n return true;\r\n\r\n key = permission.key;\r\n value = permission.value;\r\n }\r\n\r\n return this.hasPermissions([key], value);\r\n }\r\n\r\n\r\n hasPermissions(permissions?: Array<number>, value?: number | null): boolean {\r\n if (!permissions || permissions.length === 0) {\r\n return true;\r\n }\r\n\r\n const user = this.user;\r\n const userPermissions = user ? user.permissions : null;\r\n if (!userPermissions) {\r\n return false;\r\n }\r\n\r\n if (value) {\r\n for (let i = 0; i < permissions.length; i++) {\r\n const p = permissions[i];\r\n let found = userPermissions[p];\r\n if (found) {\r\n let hasPermission = BitwiseHelper.hasFlag(found, value);\r\n if (hasPermission)\r\n return true;\r\n }\r\n }\r\n } else {\r\n for (let i = 0; i < permissions.length; i++) {\r\n const p = permissions[i];\r\n let found = userPermissions[p];\r\n if (found)\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n hasDataPermission(data: any) {\r\n //if (data === undefined || data === null) return true;\r\n // const allowedRoles = data.roles;\r\n // let isInRole = this.isInRole(allowedRoles);\r\n\r\n const permission = data.permission;\r\n\r\n let hasPermission = this.hasPermission(permission);\r\n\r\n // return isInRole && hasPermission;\r\n return hasPermission;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable()\r\nexport class AuthGuardService implements CanActivate {\r\n constructor(protected readonly authService: AuthService, protected readonly router: Router) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Observable<boolean> | Promise<boolean> {\r\n if (!this.authService.isAuthenticated()) {\r\n this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });\r\n return false;\r\n }\r\n\r\n return this.authService.hasDataPermission(route.data);\r\n\r\n // const allowedRoles = route.data.roles;\r\n // let isInRole = this.authService.isInRole(allowedRoles);\r\n\r\n // const permission = route.data.permission;\r\n // let hasPermission = this.authService.hasPermission(permission);\r\n\r\n // return isInRole && hasPermission;\r\n }\r\n}","import { WebApiClient } from \"./web.api\";\r\nimport { HttpErrorHandler, HandleError } from \"./http-error-handler.service\";\r\n\r\nexport class BaseService {\r\n protected readonly handleError: HandleError;\r\n constructor(\r\n protected readonly controller: string,\r\n protected readonly api: WebApiClient,\r\n httpErrorHandler: HttpErrorHandler) {\r\n this.handleError = httpErrorHandler.createHandleError(this.constructor.name);\r\n }\r\n}","import { catchError, Observable } from \"rxjs\";\r\n\r\nimport { HttpErrorHandler } from \"./http-error-handler.service\";\r\nimport { PagedList } from \"../models\";\r\nimport { BaseService } from \"./base.service\";\r\nimport { WebApiClient } from \"./web.api\";\r\n\r\nexport interface IService {\r\n getAll(filter: any): Observable<PagedList>;\r\n delete(id: any): Observable<any>;\r\n delete2(id: any, id2: any): Observable<any>;\r\n export(filter: any, fileTypeId: any): Observable<Blob | null>;\r\n sum(filter: any): Observable<any>;\r\n\r\n get(id: any): Observable<any>;\r\n get2(id: any, id2: any): Observable<any>;\r\n save(model: any): Observable<any>;\r\n restore(id: any): Observable<any>;\r\n approve(model: any): Observable<any>;\r\n disapprove(model: any): Observable<any>;\r\n batch(model: any): Observable<any>;\r\n}\r\nexport class CrudService extends BaseService implements IService {\r\n constructor(\r\n controller: string,\r\n api: WebApiClient,\r\n httpErrorHandler: HttpErrorHandler) {\r\n super(controller, api, httpErrorHandler);\r\n }\r\n\r\n get(id: number) {\r\n return this.api.get(`api/${this.controller}/${id}`).pipe(catchError(this.handleError(this.get.name, null)));\r\n }\r\n get2(id: number, id2: number) {\r\n return this.api.get(`api/${this.controller}/${id}/${id2}`).pipe(catchError(this.handleError(this.get2.name, null)));\r\n }\r\n\r\n getAll(filter?: any): Observable<PagedList> {\r\n return this.api.get(`api/${this.controller}`, filter).pipe(catchError(this.handleError(this.getAll.name)));\r\n }\r\n sum(filter?: any) {\r\n return this.api.get(`api/${this.controller}/Sum`, filter).pipe(catchError(this.handleError(this.sum.name)));\r\n }\r\n\r\n save(model: any) {\r\n return !model.id\r\n ? this.api.post<any>(`api/${this.controller}`, model).pipe(catchError(this.handleError(this.save.name, null)))\r\n : this.api.put<any>(`api/${this.controller}/${model.id}`, model).pipe(catchError(this.handleError(this.save.name, null)));\r\n }\r\n\r\n delete(id: any) {\r\n return this.api.delete(`api/${this.controller}/${id}`).pipe(catchError(this.handleError(this.delete.name, null)));\r\n }\r\n delete2(id: any, id2: any) {\r\n return this.api.delete(`api/${this.controller}/${id}/${id2}`).pipe(catchError(this.handleError(this.delete2.name, null)));\r\n }\r\n\r\n restore(id: any) {\r\n return this.api.patch(`api/${this.controller}/${id}/Restore`).pipe(catchError(this.handleError(this.restore.name, null)));\r\n }\r\n\r\n approve(model: any) {\r\n return this.api.patch(`api/${this.controller}/Approve`, model).pipe(catchError(this.handleError(this.approve.name, null)));\r\n }\r\n disapprove(model: any) {\r\n return this.api.patch(`api/${this.controller}/Disapprove`, model).pipe(catchError(this.handleError(this.disapprove.name, null)));\r\n }\r\n\r\n batch(model: any) {\r\n return this.api.post(`api/${this.controller}/Batch`, model).pipe(catchError(this.handleError(this.batch.name, null)));\r\n }\r\n\r\n\r\n export(model: any, fileTypeId: any): Observable<Blob | null> {\r\n return this.api.getBlob(`api/${this.controller}/Export/${fileTypeId}`, model).pipe(catchError(this.handleError('export', null)));\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationStart } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { AlertType } from '../models';\r\nimport { BootstrapHelper } from '../utils/bootstrap.helper';\r\n\r\nexport class BaseAlert {\r\n type?: AlertType | null;\r\n icon?: string | null;\r\n title?: string | null;\r\n css?: string | null;\r\n // id?: string;\r\n}\r\n\r\nexport class Alert extends BaseAlert {\r\n messages?: string[];\r\n}\r\n\r\nexport class Toast extends BaseAlert {\r\n message?: string | null;\r\n}\r\n\r\n@Injectable()\r\nexport class AlertService {\r\n private alertSubject = new Subject<any>();\r\n private toastSubject = new Subject<any>();\r\n private keepAfterRouteChange = false;\r\n // private id = 0;\r\n\r\n constructor(router: Router) {\r\n // clear alert messages on route change unless 'keepAfterRouteChange' flag is true\r\n router.events.subscribe(event => {\r\n if (event instanceof NavigationStart) {\r\n if (this.keepAfterRouteChange) {\r\n // only keep for a single route change\r\n this.keepAfterRouteChange = false;\r\n } else {\r\n // clear alert messages\r\n this.clear();\r\n }\r\n }\r\n });\r\n }\r\n\r\n add(alertType: AlertType, message: String, keepAfterRouteChange = false) {\r\n let messages = [];\r\n messages.push(message);\r\n this.addRange(alertType, messages, keepAfterRouteChange);\r\n }\r\n addRange(alertType: AlertType, messages: String[], keepAfterRouteChange = false) {\r\n this.keepAfterRouteChange = keepAfterRouteChange;\r\n this.alertSubject.next(<Alert>{ type: alertType, messages: messages });\r\n }\r\n clear() {\r\n this.alertSubject.next(null);\r\n }\r\n\r\n\r\n getAlert() {\r\n return this.alertSubject.asObservable();\r\n }\r\n getToast() {\r\n return this.toastSubject.asObservable();\r\n }\r\n\r\n\r\n success(message: string, title?: string | null, icon?: string | null) {\r\n this.show(message, title, 'success', icon);\r\n }\r\n error(message: string, title?: string | null, icon?: string | null) {\r\n this.show(message, title, 'danger', icon);\r\n }\r\n warning(message: string, title?: string | null, icon?: string | null) {\r\n this.show(message, title, 'warning', icon);\r\n }\r\n info(message: string, title?: string | null, icon?: string | null) {\r\n this.show(message, title, 'info', icon);\r\n }\r\n private show(message: string, title?: string | null, alertType?: AlertType | null, icon?: string | null) {\r\n if (!icon) {\r\n icon = BootstrapHelper.cssAlertIcon(alertType)\r\n }\r\n\r\n this.toastSubject.next(<Toast>{ message, title, type: alertType, icon });//, id: `${this.id++}`\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AlertService } from './alert.service';\r\nimport { AlertType } from '../models';\r\nimport { ObjectHelper } from '../utils/object-helper';\r\n\r\n/** Type of the handleError function returned by HttpErrorHandler.createHandleError */\r\nexport type HandleError = <T = any>(operation?: string, result?: T, show?: boolean) => (error: HttpErrorResponse) => Observable<T>;\r\nexport type HandleErrorResult = <T = any>(operation?: string, result?: T, show?: boolean) => (error: HttpErrorResponse) => Observable<T>;\r\n\r\n/** Handles HttpClient errors */\r\n@Injectable()\r\nexport class HttpErrorHandler {\r\n constructor(\r\n private readonly alert: AlertService,\r\n private readonly translate: TranslateService,\r\n private readonly router: Router) { }\r\n\r\n /** Create curried handleError function that already knows the service name */\r\n createHandleError = (serviceName = '') => <T>(operation = 'operation', result = {} as T, show = true) => this.handleError(serviceName, operation, result, show);\r\n createHandleErrorResult = (serviceName = '') => <T>(operation = 'operation', result = {} as T, show = true) => this.handleErrorResult(serviceName, operation, result, show);\r\n\r\n /**\r\n * Returns a function that handles Http operation failures.\r\n * This error handler lets the app continue to run as if no error occurred.\r\n * @param serviceName = name of the data service that attempted the operation\r\n * @param operation - name of the operation that failed\r\n * @param result - optional value to return as the observable result\r\n * @param show - optional value to show error\r\n */\r\n handleError<T>(serviceName = '', operation = 'operation', result = {} as T, show?: boolean) {\r\n return (response: HttpErrorResponse): Observable<T> => {\r\n console.error(response);\r\n\r\n if (show) {\r\n this.showError(serviceName, operation, response)\r\n }\r\n\r\n return of(result);\r\n };\r\n }\r\n\r\n\r\n\r\n /**\r\n * Returns a function that handles Http operation failures.\r\n * This error handler lets the app continue to run as if no error occurred.\r\n * @param serviceName = name of the data service that attempted the operation\r\n * @param operation - name of the operation that failed\r\n * @param show - optional value to show error\r\n */\r\n handleErrorResult<T>(serviceName = '', operation = 'operation', result = {} as T, show?: boolean) {\r\n return (response: HttpErrorResponse): Observable<any> => {\r\n console.error(response);\r\n\r\n if (show) {\r\n this.showError(serviceName, operation, response)\r\n }\r\n\r\n\r\n let error: any; \r\n if (typeof response.error === 'string' && response.error[0] === '{') {\r\n error = JSON.parse(response.error);\r\n } else {\r\n error = response.error;\r\n }\r\n\r\n if (error instanceof ErrorEvent) {\r\n error = response.error.message;\r\n }\r\n\r\n return ObjectHelper.isDefined(error) ? of(error) : of(result);\r\n };\r\n }\r\n\r\n\r\n private showError(serviceName: string, operation: string, response: HttpErrorResponse) {\r\n switch (response.status) {\r\n case 0://No Connection\r\n this.alert.error(`Can't connect to api server.`);\r\n break;\r\n\r\n case 400://Bad Request\r\n let error: any;\r\n if (typeof response.error === 'string' && response.error[0] === '{') {\r\n error = JSON.parse(response.error);\r\n } else {\r\n error = response.error;\r\n }\r\n\r\n if (error instanceof ErrorEvent) {\r\n this.alert.error(`${serviceName}: ${operation} failed: ${response.error.message}`);\r\n } if (typeof error === 'string') {\r\n this.alert.error(response.error as string);\r\n } else if (typeof error === 'object') {\r\n const errors = error.traceId || error.success === false\r\n ? error.errors\r\n : error;\r\n\r\n const errorMessages: string[] = [];\r\n const properties = Object.getOwnPropertyNames(errors);\r\n\r\n for (let property of properties) {\r\n const messages = errors[property];\r\n if (messages instanceof Array) {\r\n for (let message of messages) {\r\n const messageKey = `Validation.${message}`;\r\n let translatedMessage = this.translate.instant(messageKey);\r\n // if translation not found then use message\r\n if (messageKey == translatedMessage) {\r\n translatedMessage = message;\r\n }\r\n\r\n if (property) {\r\n const propertyKey = `Fields.${property}`;\r\n let translatedProperty = this.translate.instant(`Fields.${property}`);\r\n // if translation not found then use property\r\n if (propertyKey == translatedProperty) {\r\n translatedProperty = property\r\n }\r\n errorMessages.push(translatedProperty + ' - ' + translatedMessage);\r\n }\r\n else {\r\n errorMessages.push(translatedMessage);\r\n }\r\n }\r\n }\r\n }\r\n this.alert.addRange('danger', errorMessages);\r\n }\r\n break;\r\n\r\n case 401://Unauthorized\r\n this.alert.error('Unauthorized');\r\n this.router.navigate(['/login']);\r\n break;\r\n\r\n case 403://Forbidden\r\n this.alert.error('Forbidden');\r\n break;\r\n\r\n case 404://Not Found\r\n this.alert.error('Not Found');\r\n break;\r\n\r\n case 402://Payment Required\r\n this.alert.error('License Payment Required');\r\n break;\r\n\r\n case 500://Internal Server Error\r\n this.alert.error('Internal Server Error');\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n}","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const API_BASE_URL = new InjectionToken<string>('API_BASE_URL');\r\nexport const DATE_FORMAT = new InjectionToken<string>('DATE_FORMAT');\r\nexport const LANGUAGE = new InjectionToken<string>('LANGUAGE');\r\nexport const RECAPTCHA_SITE_KEY = new InjectionToken<string>('RECAPTCHA_SITE_KEY');\r\nexport const GOOGLE_CLIENT_ID = new InjectionToken<string>('GOOGLE_CLIENT_ID');","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams/*, HttpErrorResponse*/ } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n//import { of } from 'rxjs/observable/of';\r\n//import { catchError } from 'rxjs/operators';\r\n\r\nimport { AuthService } from './auth.service';\r\n//import { deleteNullProperties } from '../utils';\r\n//import { HttpErrorHandler, HandleError } from './http-error-handler.service';\r\nimport { HttpParameterCodec } from '@angular/common/http';\r\nimport { API_BASE_URL } from '../tokens';\r\n\r\nexport interface WebApiConfig {\r\n baseUrl: string;\r\n}\r\n\r\n@Injectable()\r\nexport class WebApiClient {\r\n constructor(\r\n protected readonly http: HttpClient,\r\n protected readonly auth: AuthService,\r\n @Inject(API_BASE_URL) private readonly baseUrl: string) {\r\n }\r\n\r\n get<T = any>(url: string, params?: any): Observable<T> {\r\n return this.http.get<T>(this.baseUrl + url, { headers: this.getHeaders(), params: this.toHttpParams(params) });\r\n /*.catch(catchError(this.handleError(url)))\r\n .do((res: Response) => {\r\n // Handle success, maybe display notification\r\n }, (error: any) => {\r\n // Handle errors\r\n })\r\n .finally(() => {\r\n // Request completed\r\n });\r\n */\r\n }\r\n\r\n getString(url: string, params?: object): Observable<string | null> {\r\n return this.http.get(this.baseUrl + url, { headers: this.getHeaders(), responseType: 'text', params: this.toHttpParams(params) });\r\n }\r\n getBytes(url: string, params?: any): Observable<ArrayBuffer> {\r\n return this.http.get(this.baseUrl + url, { headers: this.getHeaders(), responseType: 'arraybuffer', params: this.toHttpParams(params) });\r\n }\r\n getBlob(url: string, params?: any): Observable<Blob> {\r\n return this.http.get(this.baseUrl + url, { headers: this.getHeaders(), responseType: 'blob', params: this.toHttpParams(params) });\r\n }\r\n postBlob(url: string, body: any): Observable<Blob> {\r\n return this.http.post(this.baseUrl + url, body, { headers: this.getHeaders(), responseType: 'blob' });\r\n }\r\n\r\n\r\n protected toHttpParams(obj: any) {\r\n if (!obj)\r\n return undefined;\r\n\r\n let params = new HttpParams({ encoder: new CustomHttpParamEncoder() });\r\n for (const key of Object.keys(obj)) {\r\n const field = obj[key];\r\n\r\n if (field === undefined || field === null || (typeof field === 'string' && field.length === 0))\r\n continue;\r\n\r\n let value = field;\r\n // if (typeof field === 'string' && field.length > 0) {\r\n // value = field.replace(/\\+/gi, '%2B');\r\n // }\r\n\r\n params = params.append(key, value);\r\n // if (field instanceof Array) {\r\n // field.forEach((item: any) => {\r\n // params = params.append(`${key}[]`, item);\r\n // });\r\n // } else {\r\n // params = params.append(key, field);\r\n // }\r\n }\r\n return params;\r\n\r\n\r\n //deleteNullProperties(obj);\r\n //comment because int[] not sending in c# it send \"1,2,3,4\"\r\n // return obj\r\n // ? Object.getOwnPropertyNames(obj).reduce((p, key) => p.set(key, obj[key]), new HttpParams())\r\n // : undefined;\r\n }\r\n\r\n //toKeyPairs(obj: any): KeyPair[] | undefined {\r\n // if (obj instanceof Object) {\r\n // const properties = Object.getOwnPropertyNames(obj);\r\n // const result = new Array<KeyPair>();\r\n // for (let property of properties) {\r\n // const value = obj[property];\r\n // result.push({ key: property, value: value });\r\n // }\r\n // return result;\r\n // }\r\n // return undefined;\r\n //}\r\n\r\n post<T = any>(url: string, body?: any | null): Observable<T> {\r\n return this.http.post<T>(this.baseUrl + url, body, { headers: this.getHeaders() });\r\n //.pipe(\r\n //catchError(this.handleError(url))\r\n //);\r\n }\r\n put<T = any>(url: string, body?: any | null): Observable<T> {\r\n return this.http.put<T>(this.baseUrl + url, body, { headers: this.getHeaders() });\r\n //.pipe(\r\n //catchError(this.handleError(url))\r\n //);\r\n }\r\n delete(url: string, body?: any | null): Observable<any> {\r\n return this.http.request('delete', this.baseUrl + url, { body, headers: this.getHeaders() });\r\n //return this.http.delete(environment.url + url, { headers: this.getHeaders() });\r\n //.pipe(\r\n //catchError(this.handleError(url))\r\n //);\r\n }\r\n patch<T = any>(url: string, body?: any | null): Observable<T> {\r\n return this.http.patch<T>(this.baseUrl + url, body, { headers: this.getHeaders() });\r\n }\r\n\r\n\r\n protected getHeaders(): HttpHeaders {\r\n let httpHeaders = new HttpHeaders();\r\n httpHeaders = httpHeaders.set('Content-Type', 'application/json');\r\n const tmp = this.auth.user;\r\n const token = tmp ? tmp.token : undefined;\r\n if (token)\r\n httpHeaders = httpHeaders.set('Authorization', token);\r\n return httpHeaders;\r\n }\r\n\r\n\r\n\r\n //private getParams(params?: KeyPair[] | null) {\r\n // if (!params || params.length === 0) {\r\n // return undefined;\r\n // }\r\n // let httpParams = new HttpParams();\r\n // if (params) {\r\n // for (let param of params) {\r\n // httpParams = httpParams.set(param.key, param.value);\r\n // }\r\n // }\r\n // return httpParams;\r\n //}\r\n}\r\n\r\n\r\n\r\nexport class CustomHttpParamEncoder implements HttpParameterCodec {\r\n encodeKey(key: string): string {\r\n return encodeURIComponent(key);\r\n }\r\n encodeValue(value: string): string {\r\n return encodeURIComponent(value);\r\n }\r\n decodeKey(key: string): string {\r\n return decodeURIComponent(key);\r\n }\r\n decodeValue(value: string): string {\r\n return decodeURIComponent(value);\r\n }\r\n}","import { OnInit, Directive, OnDestroy } from '@angular/core';\r\nimport { Convert } from '../utils';\r\n\r\n\r\n\r\n@Directive()\r\nexport class CoreComponent implements OnInit, OnDestroy {\r\n loading = false;\r\n\r\n ngOnInit() {\r\n this.load();\r\n }\r\n ngOnDestroy() {\r\n this.destroy();\r\n }\r\n\r\n async load() {\r\n try {\r\n if (this.loading) return;\r\n\r\n this.loading = true;\r\n await this.init();\r\n await this.bindModel();\r\n await this.bindDictionary();\r\n await this.onBindingCompleted();\r\n }\r\n finally {\r\n this.loading = false;\r\n }\r\n\r\n await this.onLoadCompleted();\r\n }\r\n init() { }\r\n bindModel() { }\r\n bindDictionary() { }\r\n onBindingCompleted() { }\r\n onLoadCompleted() { }\r\n\r\n async destroy() {\r\n }\r\n}","import { Input, Directive, Type, inject } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { PrintType } from '../models/print.model';\r\nimport { WebApiClient } from '../services';\r\nimport { CoreComponent } from './core.component';\r\nimport { BooleanInput } from './types';\r\nimport { Convert, FileHelper, UrlHelper } from '../utils';\r\n\r\n@Directive()\r\nexport class BaseComponent<TModel = any> extends CoreComponent {\r\n constructor(\r\n protected readonly route: ActivatedRoute,\r\n protected readonly router: Router\r\n ) {\r\n super();\r\n }\r\n\r\n\r\n private _readOnly = false;\r\n @Input()\r\n get readOnly() {\r\n return this._readOnly;\r\n }\r\n set readOnly(v: BooleanInput) {\r\n this._readOnly = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _url: string | null = null;\r\n protected get url(): string {\r\n if (!this._url)\r\n this._url = UrlHelper.getNoParam(this.router.url);\r\n return this._url;\r\n }\r\n\r\n @Input() model?: TModel | null;\r\n\r\n\r\n\r\n protected getParam(name: string) {\r\n return this.route.snapshot.paramMap.get(name);\r\n }\r\n protected getQueryParam(name: string) {\r\n return this.route.snapshot.queryParamMap.get(name);\r\n }\r\n\r\n\r\n protected navigateReturnUrl() {\r\n const returnUrl = this.getQueryParam('returnUrl') || this.getParam('returnUrl');\r\n if (returnUrl) {\r\n this.router.navigateByUrl(returnUrl);\r\n // let urlTree = this.router.parseUrl(returnUrl);\r\n // const urlWithoutParams = urlTree.root.children[PRIMARY_OUTLET].segments.map(it => it.path).join('/')\r\n // this.router.navigate([urlWithoutParams, urlTree.root.children[PRIMARY_OUTLET].segments[urlTree.root.children[PRIMARY_OUTLET].segments.length - 1].parameters]);\r\n return;\r\n }\r\n\r\n this.router.navigate([this.router.url.substring(0, this.router.url.lastIndexOf('/'))]);\r\n }\r\n\r\n\r\n cancel() {\r\n this.navigateReturnUrl();\r\n }\r\n\r\n downloadFile(blob: Blob | null, fileName: string, type?: string | null) {\r\n FileHelper.download(blob, fileName);\r\n }\r\n print(id?: number | null, printType?: PrintType) {\r\n const split = this.url.split('/');\r\n if (split.length < 2) {\r\n return;\r\n }\r\n const template = split[1];\r\n let api = inject(WebApiClient);\r\n\r\n let actionName: string;\r\n\r\n switch (printType) {\r\n case PrintType.Pdf:\r\n actionName = 'PrintPdfIdLink';\r\n break;\r\n\r\n default:\r\n actionName = 'ShowIdLink'\r\n break;\r\n }\r\n api.getString(`api/Reports/${actionName}`, { template, id }).subscribe(url => {\r\n if (url) {\r\n window.open(url, '_blank');\r\n }\r\n });\r\n }\r\n}\r\n","import { AfterContentInit, ChangeDetectorRef, Directive, ElementRef, EventEmitter, Input, Output, Renderer2 } from \"@angular/core\";\r\nimport { ControlValueAccessor } from \"@angular/forms\";\r\nimport { Convert } from \"../utils\";\r\nimport { CancelArgs } from \"./args\";\r\nimport { CoreComponent } from \"./core.component\";\r\nimport { BooleanInput } from \"./types\";\r\n\r\nlet uniqueId = 0;\r\n\r\n@Directive()\r\nexport class CoreUiComponent extends CoreComponent\r\n implements AfterContentInit, ControlValueAccessor {\r\n constructor(\r\n protected _renderer: Renderer2,\r\n protected _elementRef: ElementRef\r\n //private _changeDetector: ChangeDetectorRef\r\n ) {\r\n super();\r\n }\r\n\r\n /** The method to be called in order to update ngModel */\r\n _onChange: (value: any) => void = () => { };\r\n\r\n /**\r\n * onTouch function registered via registerOnTouch (ControlValueAccessor).\r\n * @docs-private\r\n */\r\n _onTouched: () => any = () => { };\r\n\r\n\r\n /**\r\n * Helper method that sets a property on a target element using the current Renderer\r\n * implementation.\r\n * @nodoc\r\n */\r\n protected setProperty(key: string, value: any): void {\r\n this._renderer.setProperty(this._elementRef.nativeElement, key, value);\r\n }\r\n\r\n @Output() readonly change: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() readonly changing: EventEmitter<CancelArgs> = new EventEmitter<CancelArgs>();\r\n\r\n private _name: string = `zek-${++uniqueId}`;\r\n get name(): string {\r\n return this._name;\r\n }\r\n @Input()\r\n set name(value: string) {\r\n if (this._name !== value) {\r\n this._name = value;\r\n this.onNameChanged();\r\n }\r\n }\r\n onNameChanged() { }\r\n\r\n\r\n private _isInitialized: boolean = false;\r\n get isInitialized(): boolean {\r\n return this._isInitialized;\r\n }\r\n\r\n protected _value: any = null;\r\n get value(): any {\r\n return this._value;\r\n }\r\n @Input()\r\n set value(newValue: any) {\r\n if (this._value !== newValue) {\r\n let cancelEventArgs: CancelArgs = {\r\n oldValue: this._value,\r\n newValue: newValue\r\n };\r\n\r\n this.onValueChanging(cancelEventArgs);\r\n if (cancelEventArgs.cancel === true)\r\n return;\r\n\r\n // Set this before proceeding to ensure no circular loop occurs with selection.\r\n this._value = newValue;\r\n this.onValueChanged();\r\n }\r\n }\r\n onValueChanging(e: CancelArgs) {\r\n this.changing.emit(e);\r\n }\r\n onValueChanged() { }\r\n\r\n /**\r\n * Use this method for client side change\r\n * @param newValue \r\n */\r\n setNgModel(newValue: any) {\r\n if (!this.disabled) {\r\n if (this._value !== newValue) {\r\n this.value = newValue;\r\n this._emitChangeEvent();\r\n this._onChange(this._value);//write value to NgModel\r\n }\r\n }\r\n }\r\n\r\n private _readonly: boolean = false;\r\n /** Whether the component is disabled */\r\n get readonly(): boolean {\r\n return this._readonly;\r\n }\r\n @Input()\r\n set readonly(value: BooleanInput) {\r\n let v = Convert.toBooleanProperty(value);\r\n if (this._readonly !== v) {\r\n this._readonly = v;\r\n this.onReadOnlyChanged();\r\n }\r\n }\r\n onReadOnlyChanged() { }\r\n\r\n\r\n private _disabled: boolean = false;\r\n /** Whether the component is disabled */\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n @Input()\r\n set disabled(value: BooleanInput) {\r\n let v = Convert.toBooleanProperty(value);\r\n if (this._disabled !== v) {\r\n this._disabled = v;\r\n this.onDisabledChanged();\r\n }\r\n }\r\n onDisabledChanged() { }\r\n\r\n\r\n private _required: boolean = false;\r\n /** Whether the component is required */\r\n get required(): boolean {\r\n return this._required;\r\n }\r\n @Input()\r\n set required(value: BooleanInput) {\r\n let v = Convert.toBooleanProperty(value);\r\n if (this._required !== v) {\r\n this._required = v;\r\n this.onRequiredChanged();\r\n }\r\n }\r\n onRequiredChanged() { }\r\n\r\n\r\n _onInputInteraction(event: Event) {\r\n // We always have to stop propagation on the change event.\r\n // Otherwise the change event, from the input element, will bubble up and\r\n // emit its event object to the `change` output.\r\n event.stopPropagation();\r\n this.setNgModel((event.target as any).value);\r\n }\r\n\r\n /** Dispatch change event with current value. */\r\n _emitChangeEvent(): void {\r\n if (this._isInitialized) {\r\n this.change.emit(this._value);\r\n }\r\n }\r\n\r\n\r\n ngAfterContentInit() {\r\n // Mark this component as initialized in AfterContentInit because the initial value can\r\n // possibly be set by NgModel on component, and it is possible that the OnInit of the\r\n // NgModel occurs *after* the OnInit of the component.\r\n this._isInitialized = true;\r\n }\r\n\r\n\r\n /**\r\n * Sets the model value. Implemented as part of ControlValueAccessor.\r\n * (write from model to el.nativeElement)\r\n * @param value\r\n */\r\n writeValue(value: any) {\r\n this.value = value;\r\n //this._changeDetector.markForCheck();\r\n //this._renderer.setProperty(this._elementRef.nativeElement, 'value', value);\r\n }\r\n\r\n /**\r\n * Registers a callback to be triggered when the model value changes.\r\n * Implemented as part of ControlValueAccessor.\r\n * @param fn Callback to be registered.\r\n */\r\n registerOnChange(fn: (_: any) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n /**\r\n * Registers a callback to be triggered when the control is touched.\r\n * Implemented as part of ControlValueAccessor.\r\n * @param fn Callback to be registered.\r\n */\r\n registerOnTouched(fn: any) {\r\n this._onTouched = fn;\r\n }\r\n\r\n\r\n /**\r\n * Sets the disabled state of the control. Implemented as a part of ControlValueAccessor.\r\n * @param isDisabled Whether the control should be disabled.\r\n */\r\n setDisabledState(isDisabled: boolean) {\r\n this.disabled = isDisabled;\r\n //this._changeDetector.markForCheck();\r\n //this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);\r\n }\r\n}","import { ViewChild, Directive } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { NgForm } from '@angular/forms';\r\n\r\nimport { BaseComponent } from './base.component';\r\nimport { ApproveModel, IObjectConstructor, PrintType } from '../models';\r\nimport { ZekModal } from '../modules/modal/modal/modal.component';\r\nimport { AlertService } from '../services/alert.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { IService } from '../services';\r\nimport { firstValueFrom } from 'rxjs';\r\n// import { IObjectConstructor } from '../models/ctor';\r\n// import { IService } from '../services/base.service';\r\n// import { AlertService } from '../modules/alert/shared/alert.service';\r\n// import { Area } from '../models/area.model';\r\n// import { PrintType } from '../models/print.model';\r\n// import { TranslateService } from '@ngx-translate/core';\r\n// import { ModalComponent } from '../modules/modal/modal.component';\r\n\r\n@Directive()\r\nexport class EditFormComponent<TModel = any> extends BaseComponent<TModel> {\r\n id?: number | null;\r\n id2?: number | null;\r\n // area = Area;\r\n @ViewChild('f', { static: false }) form?: NgForm;\r\n\r\n\r\n approveModel: ApproveModel = {};\r\n @ViewChild('approveModal', { static: false }) protected readonly approveModal?: ZekModal;\r\n @ViewChild('disapproveModal', { static: false }) protected readonly disapproveModal?: ZekModal;\r\n // @ViewChild('submitModal', { static: false }) protected readonly submitModal?: ModalComponent;\r\n\r\n override init() {\r\n super.init();\r\n const idParam = this.getParam('id') || this.getQueryParam('id');\r\n if (idParam)\r\n this.id = +idParam;\r\n\r\n const id2Param = this.getParam('id2') || this.getQueryParam('id2');\r\n if (id2Param)\r\n this.id2 = +id2Param;\r\n }\r\n\r\n override async bindModel() {\r\n if (this.id) {\r\n this.model = await this.getModel();\r\n }\r\n else {\r\n this.initCreate();\r\n }\r\n }\r\n\r\n protected initCreate() {\r\n this.model = {} as TModel;\r\n }\r\n\r\n protected getModel(): Promise<any> {\r\n throw 'Not implemented getModel';\r\n }\r\n\r\n onSubmit(f: NgForm) {\r\n this.save(f);\r\n }\r\n async save(f?: NgForm) {\r\n if (!f || f.valid) {\r\n return await this.internalSave(true);\r\n }\r\n\r\n return false;\r\n }\r\n protected internalSave(navigateToReturnUrl?: boolean): Promise<boolean> {\r\n throw 'Not implemented internalSave';\r\n }\r\n\r\n\r\n showApproveModal() {\r\n this.approveModel = {};\r\n if (this.approveModal) {\r\n this.approveModal.show();\r\n }\r\n else {\r\n throw new Error('approveModal is null or undefined');\r\n }\r\n }\r\n async approve() {\r\n if (this.id) {\r\n this.approveModel.ids = [this.id];\r\n let approved = await this.internalApprove(this.approveModel);\r\n if (approved) {\r\n this.load();\r\n }\r\n }\r\n }\r\n protected internalApprove(model?: any): Promise<boolean> {\r\n throw 'Not implemented internalApprove';\r\n }\r\n\r\n showDisapproveModal() {\r\n this.approveModel = {};\r\n if (this.disapproveModal) {\r\n this.disapproveModal.show();\r\n }\r\n else {\r\n throw new Error('disapproveModal is null or undefined');\r\n }\r\n }\r\n async disapprove() {\r\n if (this.id) {\r\n this.approveModel.ids = [this.id];\r\n let disapproved = await this.internalDisapprove(this.approveModel);\r\n if (disapproved) {\r\n this.load();\r\n }\r\n }\r\n }\r\n protected internalDisapprove(model?: any): Promise<boolean> {\r\n throw 'Not implemented internalDisapprove';\r\n }\r\n}\r\n\r\n@Directive()\r\nexport class EditBaseComponent<TModel = any> extends EditFormComponent<TModel> {\r\n\r\n constructor(\r\n readonly service: IService,\r\n readonly translate: TranslateService,\r\n readonly alert: AlertService,\r\n route: ActivatedRoute,\r\n router: Router) {\r\n super(route, router);\r\n }\r\n\r\n protected override async internalSave(navigateToReturnUrl?: boolean | null): Promise<boolean> {\r\n this.alert.clear();\r\n let data = await firstValueFrom(this.service.save(this.model));\r\n let success = false;\r\n if (typeof data === 'number' && data > 0) {\r\n success = true;\r\n this.id = data;\r\n } else if (typeof data === 'object' && data?.success) {\r\n success = true;\r\n }\r\n\r\n if (success) {\r\n let message = await firstValueFrom(this.translate.get('Alert.SaveSuccess'));\r\n this.alert.success(message, null, 'fa-solid fa-floppy-disk');\r\n\r\n if (navigateToReturnUrl === true) {\r\n this.navigateReturnUrl();\r\n }\r\n\r\n return true;\r\n // if (navigateToReturnUrl) {\r\n // this.navigateReturnUrl();\r\n // } else if (!this.id) {//if insert\r\n // this.router.navigate([this.router.url.substring(0, this.router.url.length - 6), id]);\r\n // }\r\n } else {\r\n let message = await firstValueFrom(this.translate.get('Alert.SaveError'));\r\n this.alert.error(message, null, 'fa-solid fa-floppy-disk');\r\n return false;\r\n }\r\n }\r\n\r\n protected override async internalApprove(model?: any): Promise<boolean> {\r\n let data = await firstValueFrom(this.service.approve(model));\r\n if (data && data.length > 0) {\r\n let message = await firstValueFrom(this.translate.get('Alert.Approved'));\r\n this.alert.success(message, null, 'fa-solid fa-floppy-disk');\r\n return true;\r\n } else {\r\n let message = await firstValueFrom(this.translate.get('Alert.ApproveError'));\r\n this.alert.error(message, null, 'fa-solid fa-floppy-disk');\r\n return false;\r\n }\r\n }\r\n\r\n protected override async internalDisapprove(model?: any): Promise<boolean> {\r\n let data = await firstValueFrom(this.service.disapprove(model));\r\n if (data && data.length > 0) {\r\n let message = await firstValueFrom(this.translate.get('Alert.Disapproved'));\r\n this.alert.success(message, null, 'fa-solid fa-floppy-disk');\r\n return true;\r\n } else {\r\n let message = await firstValueFrom(this.translate.get('Alert.DisapproveError'));\r\n this.alert.error(message, null, 'fa-solid fa-floppy-disk');\r\n return false;\r\n }\r\n }\r\n\r\n protected async internalSubmit(model?: any): Promise<boolean> {\r\n let data = await firstValueFrom(this.service.approve(model));\r\n if (data && data.length > 0) {\r\n let message = await firstValueFrom(this.translate.get('Alert.Submitted'));\r\n this.alert.success(message, null, 'fa-solid fa-floppy-disk');\r\n return true;\r\n } else {\r\n let message = await firstValueFrom(this.translate.get('Alert.SubmitError'));\r\n this.alert.error(message, null, 'fa-solid fa-floppy-disk');\r\n return false;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n protected override async getModel() {\r\n if (this.id2)\r\n return await firstValueFrom(this.service.get2(this.id, this.id2));\r\n else\r\n return await firstValueFrom(this.service.get(this.id));\r\n }\r\n protected override initCreate() {\r\n this.model = {} as TModel;\r\n }\r\n\r\n override print(printType?: PrintType) {\r\n super.print(this.id, printType);\r\n }\r\n\r\n async restore() {\r\n let data = await firstValueFrom(this.service.restore(this.id))\r\n if (data?.success) {\r\n let message = await firstValueFrom(this.translate.get('Alert.Restored'));\r\n this.alert.success(message);\r\n this.load();\r\n }\r\n }\r\n export(fileTypeId: number) {\r\n this.service.export({ id: this.id }, fileTypeId).subscribe(data => {\r\n this.downloadFile(data, 'export.xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');\r\n });\r\n }\r\n}\r\n\r\n@Directive()\r\nexport class EditComponent<TModel> extends EditBaseComponent<TModel> {\r\n\r\n constructor(\r\n private readonly ctorModel: IObjectConstructor<TModel>,\r\n service: IService,\r\n translate: TranslateService,\r\n alert: AlertService,\r\n route: ActivatedRoute,\r\n router: Router) {\r\n super(service, translate, alert, route, router);\r\n }\r\n\r\n protected override initCreate() {\r\n this.model = new this.ctorModel();\r\n }\r\n}","export class EditBase {\r\n id?: number | null;\r\n\r\n isDeleted?: boolean | null;\r\n readOnly?: boolean | null;\r\n}","export class FileBase {\r\n id?: number | null;\r\n //mimeType: string;\r\n fileName?: string | null;\r\n fileType?: string | null;\r\n fileSize?: number | null;\r\n isDeleted?: boolean | null;\r\n}\r\nexport class FileString extends FileBase {\r\n data?: string | null;\r\n\r\n constructor(init?: Partial<FileString>) {\r\n super();\r\n if (init) {\r\n Object.assign(this, init);\r\n }\r\n }\r\n}\r\nexport class FileBytes extends FileBase {\r\n //data: byte[];\r\n\r\n constructor(init?: Partial<FileString>) {\r\n super();\r\n if (init) {\r\n Object.assign(this, init);\r\n }\r\n }\r\n}","export class FilterBase {\r\n id?: number | null = null;\r\n isDeleted: boolean | null = null;\r\n quickSearch: string | null = null;\r\n\r\n page: number = 1;\r\n pageSize: number = 10;\r\n\r\n sort: string | null = null;\r\n asc: boolean = false;\r\n}","export enum Gender {\r\n Male = 1,\r\n Female = 2,\r\n}","export class KeyPair<TKey = any, TValue = any> {\r\n key?: TKey | null;\r\n value?: TValue | null;\r\n\r\n constructor(init?: Partial<KeyPair>) {\r\n if (init) {\r\n Object.assign(this, init);\r\n }\r\n }\r\n}\r\n\r\nexport class KeyPairEx<TKey = any, TValue = any> extends KeyPair<TKey, TValue> {\r\n [key: string]: any\r\n}\r\n\r\nexport class KeyPairChecked<TKey = any, TValue = any> extends KeyPair<TKey, TValue> {\r\n checked?: boolean | null;\r\n\r\n}\r\n\r\nexport class KeyPairRequired<TKey = any, TValue = any> extends KeyPair<TKey, TValue> {\r\n required?: boolean | null;\r\n}","export class ListBase {\r\n id?: number | null;\r\n isDeleted?: boolean | null;\r\n}","export enum Month\r\n{\r\n January = 1,\r\n February = 2,\r\n March = 3,\r\n April = 4,\r\n May = 5,\r\n June = 6,\r\n July = 7,\r\n August = 8,\r\n September = 9,\r\n October = 10,\r\n November = 11,\r\n December = 12\r\n}","export class PagerBase {\r\n totalItemCount: number = 0;\r\n}\r\n\r\nexport class Pager extends PagerBase {\r\n pageCount = 1;\r\n pageNumber = 1;\r\n pageSize = 25;\r\n hasPreviousPage = false;\r\n hasNextPage = false;\r\n isFirstPage = false;\r\n isLastPage = false;\r\n firstItemOnPage = 0;\r\n lastItemOnPage = 0;\r\n\r\n pages: number[] = [];\r\n}\r\n\r\nexport class PagedListBase<T = any> {\r\n data: T[] = [];\r\n\r\n pager: Pager = new Pager();\r\n\r\n totalItemCount = 0;\r\n pageNumber = 1;\r\n pageSize = 25;\r\n count = 0;\r\n}\r\nexport class PagedList<T = any> extends PagedListBase<T>\r\n{\r\n pageCount = 1;\r\n hasPreviousPage = false;\r\n hasNextPage = false;\r\n isFirstPage = false;\r\n isLastPage = false;\r\n firstItemOnPage = 0;\r\n lastItemOnPage = 0;\r\n}","import { KeyPair } from './key-pair.model';\r\n\r\nexport class Tree extends KeyPair<number, string> {\r\n parentId?: number | null;\r\n children?: Tree[] | null;\r\n childrenCount?: number | null;\r\n indent?: number | null;\r\n childrenIds?: number[] | null;\r\n}","export class ValidEventArgs {\r\n valid: boolean = true;\r\n}","export * from './alert-type';\r\nexport * from './approve.moodel';\r\nexport * from './batch.model';\r\nexport * from './captcha.model';\r\nexport * from './ctor';\r\nexport * from './edit-base.model';\r\nexport * from './file.model';\r\nexport * from './filter.model';\r\nexport * from './gender.model';\r\nexport * from './key-pair.model';\r\nexport * from './list-base.model';\r\nexport * from './login.model';\r\nexport * from './month.model';\r\nexport * from './nav.model';\r\nexport * from './pager.model';\r\nexport * from './print.model';\r\nexport * from './tree.model';\r\nexport * from './valid-event-args.model';\r\n\r\n\r\n//export * from './';","import { Router, ActivatedRoute } from '@angular/router';\r\nimport { ViewChild, Directive, Input } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { IService } from '../services';\r\nimport { BaseComponent } from './base.component';\r\nimport { ApproveModel, FilterBase, PagedList, Pager, PrintType } from '../models';\r\nimport { ZekModal } from '../modules/modal/modal/modal.component';\r\nimport { AlertService } from '../services/alert.service';\r\nimport { FilterHelper, PagerHelper, StorageHelper, StringHelper, UrlHelper } from '../utils';\r\nimport { firstValueFrom } from 'rxjs';\r\n// declare let bootstrap: any;\r\n\r\n@Directive()\r\nexport class ListBaseComponent<TService extends IService = IService, TPagedListData = any> extends BaseComponent<PagedList<TPagedListData>> {\r\n filter: any = new FilterBase();\r\n saveFilter = true;\r\n sortFields: any;\r\n protected internalFilter: any = new FilterBase();\r\n isFiltered: boolean = false;\r\n selectedIds: any[] = [];\r\n pager = new Pager();\r\n sumModel: any;\r\n\r\n\r\n @ViewChild('filterModal', { static: false }) protected readonly filterModal?: ZekModal | null;\r\n\r\n approveModel: ApproveModel = {};\r\n @ViewChild('approveModal', { static: false }) protected readonly approveModal?: ZekModal | null;\r\n protected approvedMesage = 'Alert.Approved';\r\n\r\n @ViewChild('disapproveModal', { static: false }) protected readonly disapproveModal?: ZekModal | null;\r\n protected disapprovedMesage = 'Alert.Disapproved';\r\n\r\n constructor(\r\n protected readonly service: TService,\r\n readonly translate: TranslateService,\r\n readonly alert: AlertService,\r\n route: ActivatedRoute,\r\n router: Router) {\r\n super(route, router);\r\n }\r\n\r\n override init() {\r\n super.init();\r\n\r\n this.reset();\r\n this.initDefaultFilter();\r\n this.initStoredFilter();\r\n this.assignFilter();\r\n\r\n //this.selectedIds = [];\r\n //this.pagedList = new PagedList();\r\n }\r\n override async bindModel(): Promise<void> {\r\n this.selectedIds = [];\r\n this.model = await firstValueFrom(this.service.getAll(this.internalFilter));\r\n if (this.model) {\r\n let totalCount = this.model.totalItemCount;\r\n if (!totalCount && this.model.pager) {\r\n totalCount = this.model.pager ? (this.model.pager.totalItemCount || 0) : 0;\r\n }\r\n this.pager = PagerHelper.get(totalCount, this.internalFilter.page, this.internalFilter.pageSize);\r\n\r\n }\r\n else\r\n this.pager = new Pager();\r\n //this.pagedList.pager = this.pager;\r\n }\r\n\r\n\r\n protected initDefaultFilter() {\r\n }\r\n private initStoredFilter() {\r\n let filterParam = this.getQueryParam('filter') || this.getParam('filter');\r\n\r\n if (filterParam) {\r\n const tmp = StorageHelper.get('filter');\r\n if (tmp && tmp.url && tmp.url === this.url && tmp.filter) {\r\n this.filter = Object.assign({}, tmp.filter);\r\n //we dont need this.assignFilter(); because after initStoredFilter(); will be assigned.\r\n } else {\r\n localStorage.removeItem('filter');\r\n }\r\n } else {\r\n localStorage.removeItem('filter');\r\n }\r\n }\r\n changePage(page: number) {\r\n this.internalFilter.page = page;\r\n this.filter.page = page;\r\n this.refresh();\r\n this.autoSaveFilter();\r\n }\r\n changePageSize(pageSize: number) {\r\n this.internalFilter.pageSize = pageSize;\r\n this.filter.pageSize = pageSize;\r\n this.changePage(1);\r\n }\r\n showFilter() {\r\n this.filterModal?.show();\r\n }\r\n search() {\r\n //this.filterModal?.hide();\r\n this.assignFilter();\r\n this.changePage(1);\r\n //this.internalAutoSaveFilter();\r\n }\r\n protected assignFilter() {\r\n this.internalFilter = Object.assign({}, this.filter);\r\n this.isFiltered = !FilterHelper.isEmpty(this.internalFilter);\r\n }\r\n private autoSaveFilter() {\r\n if (this.saveFilter)\r\n this.internalSaveFilter()\r\n }\r\n private internalSaveFilter() {\r\n StorageHelper.set('filter', {\r\n url: this.url,\r\n filter: this.internalFilter\r\n });\r\n }\r\n reset() {\r\n this.filter = { page: 1, pageSize: 25 };\r\n this.assignFilter();\r\n }\r\n refresh() {\r\n this.bindModel();\r\n }\r\n\r\n\r\n create() {\r\n const url = UrlHelper.getNoParam(this.router.url);\r\n // this.router.navigate([url, 'create', { returnUrl: url + ';filter=1' }]);\r\n this.router.navigate([url, 'create'],\r\n { queryParams: { returnUrl: url + '?filter=1' } }\r\n );\r\n }\r\n async delete(id: number) {\r\n this.alert.clear();\r\n let data = await firstValueFrom(this.service.delete(id));\r\n if (data?.success) {\r\n let message = await firstValueFrom(this.translate.get('Alert.Deleted'));\r\n this.alert.error(message, null, 'fa-solid fa-trash')\r\n this.refresh();\r\n }\r\n }\r\n async delete2(id: number, id2: number) {\r\n this.alert.clear();\r\n let data = await firstValueFrom(this.service.delete2(id, id2))\r\n if (data?.success) {\r\n let message = await firstValueFrom(this.translate.get('Alert.Deleted'));\r\n this.alert.error(message, null, 'fa-solid fa-trash')\r\n this.refresh();\r\n }\r\n }\r\n\r\n edit(id: number) {\r\n // this.router.navigate([this.url, id],\r\n // { queryParams: { returnUrl: this.url + ';filter=1' } }\r\n // );\r\n\r\n this.router.navigate([this.url, id],\r\n { queryParams: { returnUrl: this.url + '?filter=1' } }\r\n );\r\n }\r\n edit2(id: number, id2: number) {\r\n // this.router.navigate([this.url, id, id2, { returnUrl: this.url + ';filter=1' }]);\r\n this.router.navigate([this.url, id, id2],\r\n { queryParams: { returnUrl: this.url + '?filter=1' } }\r\n );\r\n }\r\n select(item: any) {\r\n item.selected = !item.selected;\r\n let id = item.id;\r\n if (id) {\r\n if (item.selected) {\r\n this.selectedIds.push(id);\r\n } else {\r\n this.selectedIds = this.selectedIds.filter(item => item !== id);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n showApproveModal(id: number) {\r\n if (!id || !this.approveModal) return;\r\n\r\n let tmp = { ids: [id] };\r\n this.approveModel = {};\r\n this.approveModal.show(tmp);\r\n }\r\n showApproveSelectedModal() {\r\n let tmp = { ids: this.getSelectedIds() };\r\n if (!tmp.ids || tmp.ids.length === 0 || !this.approveModal) return;\r\n\r\n this.approveModel = {};\r\n this.approveModal.show(tmp);\r\n }\r\n async approve(m: any) {\r\n if (!m) return;\r\n\r\n this.alert.clear();\r\n let data = await firstValueFrom(this.service.approve(m));\r\n if (!data || data.length === 0)\r\n return;\r\n\r\n let message = await firstValueFrom(this.translate.get(this.approvedMesage));\r\n this.alert.success(message, null, 'fa-solid fa-thumbs-up')\r\n this.refresh();\r\n }\r\n\r\n\r\n showDisapproveModal(id: number) {\r\n if (!id || !this.disapproveModal) return;\r\n\r\n let tmp = { ids: [id] };\r\n this.approveModel = {};\r\n this.disapproveModal.show(tmp);\r\n }\r\n showDisapproveSelectedModal() {\r\n let tmp = { ids: this.getSelectedIds() };\r\n if (!tmp.ids || tmp.ids.length === 0 || !this.disapproveModal) return;\r\n\r\n this.approveModel = {};\r\n this.disapproveModal.show(tmp);\r\n }\r\n async disapprove(m: any) {\r\n if (!m || !this.approveModel) return;\r\n\r\n if (typeof m === 'object') {\r\n m.status = this.approveModel.status;\r\n m.comment = StringHelper.tryTrim(this.approveModel.comment);\r\n if (!m.comment) delete m.comment;\r\n }\r\n\r\n this.alert.clear();\r\n let data = await firstValueFrom(this.service.disapprove(m));\r\n if (!data || data.length === 0)\r\n return;\r\n\r\n let message = await firstValueFrom(this.translate.get(this.disapprovedMesage));\r\n this.alert.success(message, null, 'fa-solid fa-thumbs-down')\r\n this.refresh();\r\n }\r\n\r\n getSelectedIds() {\r\n return this.selectedIds;\r\n // if (!this.pagedList || !this.pagedList.data) return [];\r\n\r\n // let ids = [];\r\n // for (const item of this.pagedList.data) {\r\n // if (!item.selected || !item.id) continue;\r\n\r\n // ids.push(item.id);\r\n // }\r\n // return ids;\r\n }\r\n\r\n showSum() { }\r\n async sum() {\r\n this.sumModel = null;\r\n let data = await firstValueFrom(this.service.sum(this.internalFilter));\r\n if (data) {\r\n this.sumModel = data;\r\n this.showSum();\r\n } else {\r\n let message = await firstValueFrom(this.translate.get('Alert.SumError'));\r\n this.alert.error(message);\r\n }\r\n }\r\n\r\n export(fileTypeId: number) {\r\n this.service.export(this.internalFilter, fileTypeId).subscribe(data => {\r\n this.downloadFile(data, 'export.xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');\r\n });\r\n }\r\n\r\n\r\n override print(printType?: PrintType) {\r\n if (!this.model || !this.model.data) return;\r\n\r\n let ids = this.getSelectedIds();\r\n for (const id of ids) {\r\n super.print(id, printType);\r\n }\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DateHelper } from '../../utils';\r\n\r\n@Pipe({\r\n standalone: true,\r\n name: 'age'\r\n})\r\nexport class AgePipe implements PipeTransform {\r\n transform(value: any, now?: any): number | null {\r\n if (typeof value === 'undefined' || value === null || value === '' || value !== value) return null;\r\n \r\n const date = DateHelper.toDate(value);\r\n\r\n let timeDiff = (now ? DateHelper.toDate(now).getTime() : Date.now()) - date.getTime();\r\n return Math.floor((timeDiff / (1000 * 3600 * 24)) / 365.25);\r\n }\r\n}","import { Component, Input } from '@angular/core';\r\nimport { BooleanInput, CoreComponent } from '../../../components';\r\nimport { AlertType } from '../../../models';\r\nimport { Convert } from '../../../utils';\r\nimport { BootstrapHelper } from '../../../utils/bootstrap.helper';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-alert',\r\n templateUrl: './alert.html',\r\n styles: [':host { display: block; }'],\r\n imports: [CommonModule]\r\n})\r\nexport class ZekAlert extends CoreComponent {\r\n private _type: AlertType | null | undefined = 'info';\r\n @Input()\r\n get type(): AlertType | null | undefined {\r\n return this._type;\r\n }\r\n set type(v: AlertType | null | undefined) {\r\n if (v !== this._type) {\r\n this._type = v\r\n this.init();\r\n }\r\n }\r\n\r\n _showClose: boolean = true;\r\n @Input()\r\n get showClose(): boolean {\r\n return this._showClose;\r\n }\r\n set showClose(v: BooleanInput) {\r\n this._showClose = Convert.toBooleanProperty(v);\r\n }\r\n\r\n @Input() title?: string | null;\r\n\r\n\r\n override init() {\r\n this.cssAlert = BootstrapHelper.cssAlert(this._type);\r\n this.cssIcon = BootstrapHelper.cssAlertIcon(this._type);\r\n }\r\n\r\n cssAlert = '';\r\n cssIcon = '';\r\n}\r\n\r\n","<div class=\"alert {{cssAlert}} alert-dismissible fade show\" role=\"alert\">\r\n <button *ngIf=\"_showClose\" type=\"button\" class=\"btn-close\" data-bs-dismiss=\"alert\" aria-label=\"Close\"></button>\r\n <div class=\"row\">\r\n <div class=\"col-auto pe-1\" *ngIf=\"cssIcon\">\r\n <span class=\"flex-shrink-0\"><i class=\"{{cssIcon}}\"></i></span>\r\n </div>\r\n <div class=\"col-auto\">\r\n <div *ngIf=\"title\">\r\n <h5 class=\"alert-heading\">{{title}}</h5>\r\n </div>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { BootstrapHelper, Convert } from '../../../utils';\r\n//declare let bootstrap: any;\r\n\r\nimport { AlertService, Toast } from '../../../services/alert.service';\r\nimport { NumberInput } from '../../../components';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nfunction clamp(v: number, min = 10, max = 3600000) {\r\n return Math.max(min, Math.min(max, v));\r\n}\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-toast',\r\n styleUrls: ['./toast.css'],\r\n templateUrl: './toast.html',\r\n imports: [CommonModule]\r\n})\r\nexport class ZekToast implements OnInit, OnDestroy {\r\n @Input()\r\n get delay(): number {\r\n return this._delay;\r\n }\r\n set delay(v: NumberInput) {\r\n let tmp = clamp(Convert.toNumber(v) || 0);\r\n if (this._delay !== tmp) {\r\n this._delay = tmp;\r\n }\r\n }\r\n _delay: number = 3000;\r\n \r\n \r\n @Input() icon = true;\r\n\r\n toasts: any[] = [];\r\n private _subscription?: Subscription;\r\n private _timeout: any;\r\n\r\n constructor(private readonly alertService: AlertService) { }\r\n\r\n ngOnInit() {\r\n this._subscription = this.alertService.getToast().subscribe((toast: Toast) => {\r\n if (!toast) {\r\n // clear alerts when an empty alert is received\r\n this.toasts = [];\r\n return;\r\n }\r\n\r\n // add toast to array\r\n this.cssInit(toast);\r\n this.toasts.unshift(toast);\r\n\r\n this._timeout = setTimeout(() => {\r\n this.remove(toast);\r\n // let toastEl = document.getElementById(`toast-${toast.id}`);\r\n // let t = new bootstrap.Toast(toastEl);\r\n // t.show();\r\n }, this._delay);\r\n\r\n\r\n // let toastElList = [].slice.call(document.querySelectorAll('.toast'))\r\n // let toastList = toastElList.map(function (toastEl) {\r\n // return new bootstrap.Toast(toastEl)\r\n // })\r\n // toastList.forEach(t => {\r\n // t.show();\r\n // });\r\n });\r\n\r\n\r\n\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n if (this._subscription) {\r\n this._subscription.unsubscribe();\r\n }\r\n this.clearTimeout();\r\n }\r\n\r\n\r\n clear() {\r\n this.alertService.clear();\r\n }\r\n remove(toast: Toast) {\r\n this.toasts = this.toasts.filter(x => x !== toast);\r\n }\r\n\r\n clearTimeout() {\r\n if (this._timeout) {\r\n clearTimeout(this._timeout);\r\n this._timeout = null;\r\n }\r\n }\r\n\r\n\r\n cssInit(toast: Toast) {\r\n if (!toast || !toast.type)\r\n return;\r\n\r\n\r\n if (this.icon && !toast.icon) {\r\n toast.icon = BootstrapHelper.cssAlertIcon(toast.type);\r\n }\r\n\r\n var v = toast as any;\r\n switch (toast.type) {\r\n case 'primary':\r\n v.css = 'bg-primary text-white';\r\n break;\r\n case 'success':\r\n v.css = 'bg-success text-white';\r\n // v.iconColor = 'text--accent-green';\r\n // v.borderColor = 'border--accent-green';\r\n break;\r\n case 'danger':\r\n v.css = 'bg-danger text-white';\r\n // v.iconColor = 'text--accent-red';\r\n // v.borderColor = 'border--accent-red';\r\n break;\r\n case 'warning':\r\n v.css = 'bg-warning text-dark';\r\n // v.iconColor = 'text--accent-yellow';\r\n // v.borderColor = 'border--accent-yellow';\r\n break;\r\n case 'info':\r\n v.css = 'bg-info text-white';\r\n // v.iconColor = 'text--accent-blue';\r\n // v.borderColor = 'border--accent-blue';\r\n break;\r\n case 'light':\r\n v.css = 'bg-light text-dark';\r\n break;\r\n case 'dark':\r\n v.css = 'bg-dark text-white';\r\n break;\r\n\r\n\r\n default:\r\n v.css = 'bg-secondary text-white';\r\n break;\r\n }\r\n }\r\n}\r\n\r\n","<div class=\"toast-container position-fixed top-0 end-0 p-3\">\r\n <div *ngFor=\"let toast of toasts\" class=\"toast fade show border-0 {{ toast.css }}\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" [attr.data-bs-delay]=\"_delay\">\r\n <div class=\"toast-header\">\r\n <span class=\"me-1\" *ngIf=\"icon && toast.icon\"><i class=\"{{ toast.icon }}\"></i></span>\r\n <strong class=\"me-auto\" *ngIf=\"toast.title\">{{ toast.title }}</strong>\r\n <button type=\"button\" class=\"btn-close ms-auto me-2\" data-bs-dismiss=\"toast\" aria-label=\"Close\" (click)=\"remove(toast)\"></button>\r\n </div>\r\n <div class=\"toast-body\">\r\n {{ toast.message }}\r\n </div>\r\n </div>\r\n <!-- <div *ngFor=\"let toast of toasts\" class=\"toast fade show\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" data-bs-delay=\"3000\">\r\n <div class=\"toast-body\">\r\n <div class=\"row\">\r\n <div class=\"col-auto pe-1 border-start border-8 {{toast.borderColor}}\">\r\n <span *ngIf=\"toast.icon\" class=\"icon flex-shrink-0 {{toast.iconColor}}\"><i class=\"{{toast.icon}}\"></i></span>\r\n </div>\r\n <div class=\"col\">\r\n <div *ngIf=\"toast.title\"><h5>{{toast.title}}</h5></div>\r\n {{ toast.message }}\r\n </div>\r\n <div class=\"col-auto p-0\">\r\n <button type=\"button\" class=\"btn-close ms-auto me-2\" data-bs-dismiss=\"toast\" aria-label=\"Close\" (click)=\"remove(toast)\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div> -->\r\n</div>","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { AlertService, Alert } from '../../../services/alert.service';\r\nimport { BootstrapHelper } from '../../../utils';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-validation',\r\n templateUrl: './validation.html',\r\n styles: [':host { display: block; }'],\r\n imports: [CommonModule]\r\n})\r\nexport class ZekValidation implements OnInit, OnDestroy {\r\n alerts: Alert[] = [];\r\n private subscription?: Subscription;\r\n\r\n constructor(private readonly alertService: AlertService) { }\r\n\r\n ngOnInit() {\r\n this.subscription = this.alertService.getAlert().subscribe((alert: Alert) => {\r\n if (!alert) {\r\n // clear alerts when an empty alert is received\r\n this.alerts = [];\r\n return;\r\n }\r\n // add alert to array\r\n this.alerts.push(alert);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription?.unsubscribe();\r\n }\r\n\r\n\r\n clear() {\r\n this.alertService.clear();\r\n }\r\n remove(alert: Alert) {\r\n this.alerts = this.alerts.filter(x => x !== alert);\r\n }\r\n\r\n cssIcon(alert: Alert) {\r\n if (!alert) {\r\n return;\r\n }\r\n\r\n if (alert.icon && alert.icon.length > 0)\r\n return alert.icon;\r\n\r\n\r\n if (!alert.type) {\r\n return;\r\n }\r\n\r\n return BootstrapHelper.cssAlertIcon(alert.type);\r\n }\r\n\r\n cssAlert(alert: Alert) {\r\n if (!alert) {\r\n return;\r\n }\r\n\r\n return BootstrapHelper.cssAlert(alert.type);\r\n }\r\n}","<div *ngFor=\"let alert of alerts\" class=\"alert {{ cssAlert(alert) }} alert-dismissible fade show mt-3\" role=\"alert\">\r\n <button (click)=\"remove(alert)\" type=\"button\" class=\"btn-close\" aria-label=\"Close\"></button>\r\n <div *ngFor=\"let message of alert.messages\">\r\n <i *ngIf=\"cssIcon(alert)\" class=\"{{ cssIcon(alert) }}\"></i>\r\n {{message}}\r\n </div>\r\n <ng-content></ng-content>\r\n</div>","import { AfterViewInit, ElementRef } from '@angular/core';\r\nimport { Directive } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: 'form'\r\n})\r\nexport class ZekAutoComplete implements AfterViewInit {\r\n constructor(private readonly el: ElementRef, private readonly router: Router) {\r\n\r\n }\r\n ngAfterViewInit() {\r\n if (this.router.url === '/login') {\r\n return;\r\n }\r\n\r\n this.el.nativeElement.setAttribute('autocomplete', 'off');\r\n }\r\n}","import { Component, Input, Output, EventEmitter, OnInit, AfterViewInit, OnDestroy, forwardRef } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { BooleanInput } from '../../components';\r\nimport { CoreUiComponent } from '../../components/core-ui.component';\r\nimport { KeyPair, PagedList } from '../../models';\r\nimport { Convert } from '../../utils';\r\ndeclare let bootstrap: any;\r\nlet uniqueId = 0;\r\n\r\n/**\r\n * Provider Expression that allows bb to register as a ControlValueAccessor. This\r\n * allows it to support [(ngModel)] and ngControl.\r\n * @docs-private\r\n */\r\nconst ZEK_BB_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ZekButtonBrowse),\r\n multi: true,\r\n};\r\n\r\n@Component({\r\n selector: 'zek-bb',\r\n templateUrl: './bb.component.html',\r\n providers: [ZEK_BB_CONTROL_VALUE_ACCESSOR],\r\n})\r\nexport class ZekButtonBrowse extends CoreUiComponent {\r\n override destroy() {\r\n this._modal?.dispose();\r\n this._modal = null;\r\n return super.destroy();\r\n }\r\n\r\n private _uniqueId: string = `zek-bb-${++uniqueId}`;\r\n /** The unique ID for the bb. */\r\n @Input() id: string = this._uniqueId;\r\n get modalId(): string {\r\n return `${this.id || this._uniqueId}-modal`;\r\n }\r\n filter: any = {};\r\n data: PagedList = new PagedList();\r\n\r\n\r\n private _type?: string | null;\r\n @Input()\r\n get type() {\r\n return this._type;\r\n }\r\n set type(v: string | null | undefined) {\r\n if (this._type !== v) {\r\n this._type = v;\r\n this.onValueChanged();//get and set input text\r\n }\r\n }\r\n\r\n private _text: string | null = null;\r\n @Input()\r\n get text(): string | null {\r\n return this._text;\r\n }\r\n set text(v: string | null) {\r\n if (this._text !== v) {\r\n this._text = v\r\n this.onTextChanged();\r\n }\r\n }\r\n onTextChanged() {\r\n this.onKeyPairChange.emit({ key: this._value, value: this._text } as KeyPair)\r\n }\r\n\r\n\r\n\r\n private _readOnly: boolean = false;\r\n @Input()\r\n get readOnly(): boolean {\r\n return this._readOnly;\r\n }\r\n set readOnly(v: BooleanInput) {\r\n this._readOnly = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n\r\n private _hide: boolean = false;\r\n @Input()\r\n get hide(): boolean {\r\n return this._hide;\r\n }\r\n set hide(v: BooleanInput) {\r\n this._hide = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _showInput: boolean = true;\r\n @Input()\r\n get showInput(): boolean {\r\n return this._showInput;\r\n }\r\n set showInput(v: BooleanInput) {\r\n this._showInput = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _multiSelect = false;\r\n @Input()\r\n get multiSelect() {\r\n return this._multiSelect;\r\n }\r\n set multiSelect(v: BooleanInput) {\r\n this._multiSelect = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n @Output() onShowModal = new EventEmitter();\r\n @Output() onChooseAll = new EventEmitter();\r\n @Output() onKeyPairChange = new EventEmitter<KeyPair>();\r\n @Output() onBindText = new EventEmitter();\r\n\r\n private _modal: any;\r\n get modal(): any {\r\n if (!this._modal) {\r\n let modalEl = document.getElementById(this.modalId);\r\n this._modal = new bootstrap.Modal(modalEl, { backdrop: false });\r\n }\r\n return this._modal;\r\n }\r\n set modal(v: any) {\r\n this._modal = v;\r\n }\r\n\r\n\r\n size?: '' | 'sm' | 'lg' | 'xl' | 'xxl' | null = 'lg';\r\n get _sizeCss() {\r\n switch (this.size) {\r\n case 'sm':\r\n return 'modal-sm';\r\n case 'lg':\r\n return 'modal-lg';\r\n case 'xl':\r\n return 'modal-xl';\r\n case 'xxl':\r\n return 'modal-xxl';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n\r\n showModal() {\r\n if (!this.disabled && !this.readOnly) {\r\n this.onShowModal.emit(this.filter);\r\n\r\n this.data = new PagedList();\r\n if (this.modal)\r\n this.modal.show();\r\n }\r\n }\r\n close() {\r\n this._modal?.hide();\r\n }\r\n\r\n\r\n\r\n choose(value: any) {\r\n if (!this.disabled && !this.readOnly) {\r\n this.setNgModel(value);\r\n this.close();\r\n }\r\n }\r\n chooseAll(filter: any) {\r\n this.onChooseAll.emit(filter);\r\n this.close();\r\n }\r\n\r\n delete() {\r\n if (!this.readOnly) {//!this.disabled && \r\n this.setNgModel(undefined);\r\n }\r\n }\r\n\r\n _onKey(event: KeyboardEvent) {\r\n if (event.key === 'Delete') {\r\n this.delete();\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n override onValueChanged() {\r\n if (typeof this._value !== 'undefined' && this._value !== null &&\r\n typeof this._type !== 'undefined' && this._type !== null) {\r\n this.bindText();\r\n } else {\r\n this.text = null;\r\n }\r\n }\r\n bindText() {\r\n this.onBindText.emit();\r\n }\r\n}","<div *ngIf=\"!hide && showInput\" class=\"input-group\">\r\n <input type=\"text\" class=\"form-control\" [ngClass]=\"{ 'ng-valid required': !required || value, 'ng-invalid': required && !value }\" (keyup)=\"_onKey($event)\" title=\"ID = {{value}}\" [value]=\"text\" [attr.readonly]=\"true\">\r\n <button type=\"button\" [disabled]=\"disabled || readOnly\" class=\"btn btn-outline-secondary\" (click)=\"showModal()\">\r\n <i class=\"fa-solid fa-ellipsis\"></i>\r\n </button>\r\n <button type=\"button\" [disabled]=\"disabled || readOnly\" class=\"btn btn-outline-secondary dropdown-toggle dropdown-toggle-split\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <span class=\"visually-hidden\">Toggle Dropdown</span>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li><a class=\"dropdown-item\" (click)=\"delete()\" href=\"javascript:void(0)\"> <i class=\"fa-solid fa-trash\"></i> Delete <kbd>delete</kbd> </a></li>\r\n </ul>\r\n</div>\r\n<div *ngIf=\"!hide || disabled || readOnly\" class=\"modal fade\" [id]=\"modalId\" tabindex=\"-1\" aria-labelledby=\"bb-modal-label\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog {{_sizeCss}}\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title\" id=\"{{modalId}}-label\">{{'Action.Choose' | translate }}</h5>\r\n <button type=\"button\" (click)=\"close()\" class=\"btn-close\" data-bs-dismiss2=\"modal\" aria-label=\"Close\"></button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { BooleanInput } from '../../components';\r\nimport { Convert } from '../../utils';\r\n\r\n@Component({\r\n selector: 'zek-bb-modal-toolbar',\r\n templateUrl: './bb-modal-toolbar.html',\r\n})\r\nexport class ZekButtonBrowseModalToolbar {\r\n\r\n @Output() onSearch = new EventEmitter();\r\n search() {\r\n this.onSearch.emit();\r\n }\r\n\r\n @Output() onReset = new EventEmitter();\r\n reset() {\r\n this.onReset.emit();\r\n }\r\n\r\n private _multiSelect = false;\r\n @Input() get multiSelect() {\r\n return this._multiSelect;\r\n }\r\n set multiSelect(v: BooleanInput) {\r\n this._multiSelect = Convert.toBooleanProperty(v);\r\n }\r\n\r\n @Output() onChooseAll = new EventEmitter();\r\n chooseAll() {\r\n if (!this.multiSelect) return;\r\n this.onChooseAll.emit();\r\n }\r\n\r\n // @Output()\r\n // onCreate = new EventEmitter();\r\n // create() {\r\n // this.onCreate.emit();\r\n // }\r\n}","<ng-content select=\"[left]\"></ng-content>\r\n<button type=\"button\" (click)=\"search()\" class=\"btn btn-primary me-2\" id=\"bb-filter-button\" title=\"Filter\">\r\n <i class=\"fa-solid fa-filter\" aria-hidden=\"true\"></i>\r\n</button>\r\n<button type=\"button\" (click)=\"reset()\" class=\"btn btn-secondary me-2\" title=\"Reset\">\r\n <i class=\"fa-solid fa-xmark\" aria-hidden=\"true\"></i>\r\n</button>\r\n<button *ngIf=\"multiSelect\" type=\"button\" (click)=\"chooseAll()\" class=\"btn btn-secondary me-2\" title=\"Choose All\">\r\n <i class=\"fa-solid fa-hand-point-up\" aria-hidden=\"true\"></i>\r\n</button>\r\n<ng-content></ng-content>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\nimport { ZekButtonBrowse } from './bb.component';\r\nimport { ZekButtonBrowseModalToolbar } from './bb-modal-toolbar';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n TranslateModule,\r\n ],\r\n declarations: [\r\n ZekButtonBrowse,\r\n ZekButtonBrowseModalToolbar\r\n ],\r\n exports: [\r\n ZekButtonBrowse,\r\n ZekButtonBrowseModalToolbar\r\n ]\r\n})\r\nexport class ButtonBrowseModule { }","import { Directive, EventEmitter, Input, Output } from \"@angular/core\";\r\nimport { BooleanInput, CoreComponent } from \"../../components\";\r\nimport { PagedList } from \"../../models\";\r\nimport { Convert } from \"../../utils\";\r\n\r\n@Directive()\r\nexport class ButtonBrowseModalBaseComponent extends CoreComponent {\r\n @Input() type?: string | null;\r\n @Input() filter: any = {};\r\n @Input() data?: PagedList | null;\r\n\r\n private _multiSelect = false;\r\n @Input() get multiSelect() {\r\n return this._multiSelect;\r\n }\r\n set multiSelect(v: BooleanInput) {\r\n this._multiSelect = Convert.toBooleanProperty(v);\r\n }\r\n\r\n @Input() value: any;\r\n\r\n @Output() onChoose = new EventEmitter();\r\n choose(value: any) {\r\n this.onChoose.emit(value);\r\n }\r\n\r\n @Output() onChooseAll = new EventEmitter();\r\n chooseAll() {\r\n this.onChooseAll.emit(this.filter);\r\n }\r\n\r\n onKeydown(e: Event) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.search();\r\n }\r\n\r\n bindData() { }\r\n async refresh() {\r\n try {\r\n this.loading = true;\r\n await this.bindData();\r\n }\r\n finally {\r\n this.loading = false;\r\n }\r\n\r\n }\r\n onPageChange(page: number) {\r\n this.filter.page = page;\r\n this.refresh();\r\n }\r\n onPageSizeChange(pageSize: number) {\r\n this.filter.pageSize = pageSize;\r\n this.onPageChange(1);\r\n }\r\n\r\n search() {\r\n this.onPageChange(1);\r\n }\r\n\r\n reset() {\r\n this.filter = {};\r\n }\r\n}","import { CommonModule } from '@angular/common';\r\nimport { Component, ElementRef, ViewChild, AfterViewInit, ChangeDetectorRef, ContentChild, AfterContentInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-card',\r\n templateUrl: './card.html',\r\n styles: [':host { display: block; }'],\r\n imports: [CommonModule]\r\n})\r\nexport class ZekCard implements AfterViewInit {\r\n /**\r\n *\r\n */\r\n constructor(private readonly cdRef: ChangeDetectorRef) {\r\n }\r\n\r\n @ViewChild('headerRef') private headerWrapper: ElementRef | undefined;\r\n @ViewChild('bodyRef') private bodyRef: ElementRef | undefined;\r\n // @ViewChild('contentRef') private contentRef: ElementRef | undefined;\r\n @ViewChild('footerRef') private footerRef: ElementRef | undefined;\r\n\r\n private _css = '';\r\n @Input()\r\n get css() {\r\n return this._css;\r\n }\r\n set css(value: string | null | undefined) {\r\n this._css = value || '';\r\n }\r\n showHeader = true;\r\n showBody = true;\r\n\r\n // showContent = true;\r\n showFooter = true;\r\n\r\n ngAfterViewInit() {\r\n this.showHeader = this.headerWrapper ? this.headerWrapper.nativeElement.childNodes.length > 0 : false;\r\n this.showBody = this.bodyRef ? this.bodyRef.nativeElement.children.length > 0 : false;\r\n // this.showContent = this.contentRef ? this.contentRef.nativeElement.children.length > 0 : false;\r\n this.showFooter = this.footerRef ? this.footerRef.nativeElement.childNodes.length > 0 : false;\r\n\r\n this.cdRef.detectChanges();\r\n }\r\n}","<div class=\"card {{css}}\">\r\n <div class=\"card-header\" #headerRef *ngIf=\"showHeader\">\r\n <ng-content select=\"[card-header]\"></ng-content>\r\n </div>\r\n <div class=\"card-body\" #bodyRef *ngIf=\"showBody\">\r\n <ng-content select=\"[card-body]\"></ng-content>\r\n </div>\r\n <ng-content></ng-content>\r\n <div class=\"card-footer\" #footerRef *ngIf=\"showFooter\">\r\n <ng-content select=\"[card-footer]\"></ng-content>\r\n </div>\r\n</div>","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({\r\n standalone:true,\r\n name: 'callback',\r\n pure: false//this pure need because we are changing filter model and pure=false is handling\r\n})\r\nexport class ZekCallbackPipe implements PipeTransform {\r\n transform(items: any[], callback: (item: any, filter?: any) => boolean, filter?: any): any {\r\n if (!items || !callback) {\r\n return items;\r\n }\r\n\r\n return filter\r\n ? items.filter(item => callback(item, filter))\r\n : items.filter(item => callback(item));\r\n }\r\n}","import {Pipe, PipeTransform} from '@angular/core';\r\nimport { DateHelper } from '../../utils';\r\n\r\n@Pipe({\r\n standalone: true,\r\n name: 'dateAgo',\r\n pure: true\r\n})\r\nexport class DateAgoPipe implements PipeTransform {\r\n\r\n transform(value: any, args?: any): string | Date | null {\r\n if (value === undefined || value === null || value === '' || value !== value) return null;\r\n\r\n const date = DateHelper.toDate(value);\r\n if (date) {\r\n const seconds = Math.floor((+new Date() - +new Date(date)) / 1000);\r\n if (seconds < 29) // less than 30 seconds ago will show as 'Just now'\r\n return 'Just now';\r\n const intervals : { [key: string]: number}= {\r\n 'year': 31536000,\r\n 'month': 2592000,\r\n 'week': 604800,\r\n 'day': 86400,\r\n 'hour': 3600,\r\n 'minute': 60,\r\n 'second': 1\r\n };\r\n let counter;\r\n for (const i in intervals) {\r\n counter = Math.floor(seconds / intervals[i]);\r\n if (counter > 0)\r\n if (counter === 1) {\r\n return counter + ' ' + i + ' ago'; // singular (1 day ago)\r\n } else {\r\n return counter + ' ' + i + 's ago'; // plural (2 days ago)\r\n }\r\n }\r\n }\r\n return date;\r\n }\r\n\r\n}","import { Directive, ElementRef, OnDestroy, forwardRef, HostListener, OnChanges, SimpleChanges, Inject } from '@angular/core'\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { DATE_FORMAT, LANGUAGE } from '../../tokens';\r\nimport { DateHelper } from '../../utils';\r\n\r\ndeclare let Datepicker: any;\r\n\r\nconst DATE_VALUE_ACCESSOR = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DateValueAccessor),\r\n multi: true,\r\n};\r\n\r\n\r\n\r\n@Directive({\r\n selector: '[zek-date],input[type=date][formControlName],input[type=date][formControl],input[type=date][ngModel]',//,input[type=date][ngModel]\r\n providers: [DATE_VALUE_ACCESSOR],\r\n host: {\r\n //არაა საჭირო ეს ევენტი ისედაც მუშაობს'(change)': 'onChange($event.target.value)',\r\n //აღარ არის საჭირო რადგანაც ახა ვერსიაში updateOnBlur=true აკეთებს მაგას \"(keyup)\": \"onKeyUp($event)\",\r\n }\r\n})\r\nexport class DateValueAccessor implements ControlValueAccessor, OnDestroy {\r\n //@Input() ngModel: any;\r\n private datepicker?: any;\r\n private oldValue?: Date | null = null;\r\n\r\n constructor(private el: ElementRef,\r\n @Inject(DATE_FORMAT) format: string,\r\n @Inject(LANGUAGE) language: string,\r\n @Inject('env') env?: any | null) {\r\n\r\n if (env) {\r\n if (env.datepickerFormat) {\r\n format = env.datepickerFormat;\r\n }\r\n if (env.lang) {\r\n language = env.lang;\r\n }\r\n }\r\n\r\n if (el.nativeElement.type === 'date') {\r\n el.nativeElement.type = 'text'//change input type to text to override browser default date editor\r\n }\r\n this.el.nativeElement.setAttribute('autocomplete', 'off');\r\n\r\n this.datepicker = new Datepicker(el.nativeElement, {\r\n autohide: true,\r\n //beforeShowDay: this.beforeShowDay,\r\n buttonClass: 'btn',\r\n //clearBtn: true,\r\n\r\n //datesDisabled: []\r\n daysOfWeekHighlighted: [0, 6],\r\n format: format,\r\n language: language,\r\n\r\n //prevArrow: '«',\r\n //nextArrow: '»',\r\n //orientation: 'top auto', //left|right|auto for horizontal and top|bottom|auto\r\n todayBtn: true,\r\n //todayBtnMode: 0, //0\tfocus\tMove the focused date to the current date without changing the selection. 1 select\tSelect (or toggle the selection of) the current date\r\n todayHighlight: true,\r\n updateOnBlur: true,\r\n weekStart: 1,//0:Sunday – 6:Saturday\r\n });\r\n\r\n el.nativeElement.addEventListener('changeDate', (e: CustomEvent) => {\r\n this.onChangeDate(e);//execude \r\n });\r\n\r\n setTimeout(() => {\r\n let min = this.el.nativeElement.getAttribute('min');\r\n let max = this.el.nativeElement.getAttribute('max');\r\n\r\n let minDate = min ? DateHelper.toDate(min) : null;\r\n let maxDate = max ? DateHelper.toDate(max) : null;\r\n this.datepicker.setOptions({\r\n minDate: minDate,//String|Date|Number\r\n maxDate: maxDate,//String|Date|Number\r\n });\r\n }, 0);\r\n }\r\n\r\n // onKeyUp(e: any) {\r\n\r\n // if (e && e.target) {\r\n // let v = e.target.value;\r\n // if (v && v.length === 10 && (v.indexOf('.') > 1 || (v.indexOf('/') > 1 || v.indexOf('-') > 1))) {\r\n // var parsed = Datepicker.parseDate(v, environment.datepickerFormat, environment.lang);//parseDate(v);\r\n // var date = parseDate(parsed);\r\n\r\n // if (date) {\r\n // var ev = new KeyboardEvent('keydown', {\r\n // key: \"Enter\",//datepicke listens only by key parameter. other parameter don't need. check after update new version!!!\r\n // });\r\n // console.log(e.target.dispatchEvent(ev));\r\n // }\r\n // }\r\n // }\r\n // }\r\n\r\n ngOnDestroy() {\r\n this.el.nativeElement.removeEventListener('changeDate', this.onChangeDate);\r\n\r\n if (this.datepicker && typeof this.datepicker.destroy === 'function') {\r\n this.datepicker.destroy()\r\n }\r\n }\r\n\r\n /**\r\n * Fires when user choose date in datepicker\r\n * @param e Custom event \r\n */\r\n onChangeDate(e: CustomEvent) {\r\n this.setDate(e.detail.date);\r\n }\r\n\r\n\r\n // private beforeShowDay(date: any) {\r\n // if (date.getMonth() == new Date().getMonth()) {\r\n // switch (date.getDate()) {\r\n // case 4:\r\n // return {\r\n // content: '<span data-bs-toggle=\"tooltip\" title=\"Example tooltip\">4</span>',\r\n // classes: 'bg-info'\r\n // };\r\n // case 8:\r\n // return false;\r\n // case 12:\r\n // return \"text-success\";\r\n // }\r\n // }\r\n // }\r\n\r\n\r\n //set value into ngModel (when choose date in calendar)\r\n setDate(newValue?: Date | null) {\r\n //newValue = parseDate(newValue);\r\n\r\n if (this.isReadOnly()) {\r\n //if values not equals sets old value \r\n if (!DateHelper.equals(newValue, this.oldValue)) {\r\n if (this.oldValue) {\r\n this.datepicker.setDate(this.oldValue, { clear: true });//if read only don't change date (it just changes element value not ngModel)\r\n } else {\r\n this.datepicker.setDate({ clear: true });//if read only don't change date (it just changes element value not ngModel)\r\n }\r\n }\r\n return;\r\n }\r\n\r\n this.oldValue = newValue;\r\n\r\n if (newValue) {\r\n this.onChange(DateHelper.toISODateString(newValue));\r\n } else {\r\n this.onChange(null);\r\n }\r\n }\r\n\r\n\r\n\r\n private isReadOnly() {\r\n return this.el.nativeElement.disabled || this.el.nativeElement.readOnly;\r\n }\r\n\r\n\r\n\r\n //write from model to el.nativeElement\r\n writeValue(value: any) {\r\n let date = DateHelper.parseDate(value);\r\n this.oldValue = date;\r\n\r\n if (date) {\r\n this.datepicker.setDate(date, { clear: true });//to display in input\r\n } else {\r\n this.datepicker.setDate({ clear: true });\r\n }\r\n\r\n\r\n\r\n //this._renderer.setProperty(this._elementRef.nativeElement, 'value', value);\r\n\r\n\r\n // let readOnly = this.isReadOnly();\r\n // if (readOnly) {\r\n // this.el.nativeElement.value = Datepicker.formatDate(date, this.datepicker.config.format);\r\n // }\r\n // else {\r\n // this.datepicker.setDate(date);\r\n // }\r\n }\r\n /*writeValue(date: Date) {\r\n // Create UTC Date, time is set to 00:00 in UTC time\r\n const utcDate: Date | null = date\r\n ? new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()))\r\n : null;\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'valueAsDate', utcDate);\r\n }*/\r\n\r\n //@HostListener('input', ['$event.target.valueAsDate']) onChange = (_: any) => { };\r\n\r\n\r\n //@HostListener('input', [])\r\n onChange: (_: any) => void = () => { };\r\n registerOnChange(fn: (_: any) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n //@HostListener('blur', [])\r\n onTouched = () => { };\r\n registerOnTouched(fn: any) {\r\n this.onTouched = fn;\r\n }\r\n}","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { DATE_FORMAT, LANGUAGE } from '../../tokens';\r\nimport { DateValueAccessor } from './date-value-accessor';\r\n\r\nexport interface DatepickerConfig {\r\n dateFormat: string;\r\n language: string;\r\n}\r\n\r\n@NgModule({\r\n declarations: [DateValueAccessor],\r\n exports: [DateValueAccessor]\r\n})\r\nexport class DatepickerModule {\r\n public static forRoot(config: DatepickerConfig, environment?: any | null): ModuleWithProviders<DatepickerModule> {\r\n\r\n return {\r\n ngModule: DatepickerModule,\r\n providers: [\r\n DateValueAccessor,\r\n { provide: DATE_FORMAT, useValue: config.dateFormat },\r\n { provide: LANGUAGE, useValue: config.language },\r\n { provide: 'env', useValue: environment }\r\n ]\r\n };\r\n }\r\n\r\n public static forChild(config: DatepickerConfig, environment?: any | null) {\r\n return this.forRoot(config, environment);\r\n }\r\n}","import { Component, Output, EventEmitter, Input } from '@angular/core';\r\nimport { BooleanInput } from '../../components';\r\nimport { PrintType } from '../../models/print.model';\r\nimport { Convert } from '../../utils';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-edit-toolbar',\r\n templateUrl: './edit-toolbar.html',\r\n imports: [CommonModule, TranslateModule]\r\n})\r\nexport class ZekEditToolbar {\r\n\r\n private _showSave = true;\r\n @Input()\r\n get showSave() {\r\n return this._showSave;\r\n }\r\n set showSave(v: BooleanInput) {\r\n this._showSave = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _showCancel = true;\r\n @Input()\r\n get showCancel() {\r\n return this._showCancel;\r\n }\r\n set showCancel(v: BooleanInput) {\r\n this._showCancel = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n printType = PrintType;\r\n\r\n private _showExport = false;\r\n @Input()\r\n get showExport() {\r\n return this._showExport;\r\n }\r\n set showExport(v: BooleanInput) {\r\n this._showExport = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n private _showPrint = false;\r\n @Input()\r\n get showPrint() {\r\n return this._showPrint;\r\n }\r\n set showPrint(v: BooleanInput) {\r\n this._showPrint = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _readOnly = false;\r\n @Input()\r\n get readOnly() {\r\n return this._readOnly;\r\n }\r\n set readOnly(v: BooleanInput) {\r\n this._readOnly = Convert.toBooleanProperty(v);\r\n }\r\n\r\n @Output() onSave = new EventEmitter();\r\n // save(navigateToReturnUrl: boolean) {\r\n // this.onSave.emit(navigateToReturnUrl);\r\n // }\r\n\r\n @Output() onCancel = new EventEmitter();\r\n cancel() {\r\n this.onCancel.emit();\r\n }\r\n\r\n // @Output()\r\n // onReset = new EventEmitter();\r\n // reset() {\r\n // this.onReset.emit();\r\n // }\r\n\r\n @Output() onPrint = new EventEmitter<PrintType>();\r\n print(printType?: PrintType) {\r\n this.onPrint.emit(printType);\r\n }\r\n\r\n\r\n @Output() onExport = new EventEmitter<number>();\r\n exportExcel() {\r\n this.onExport.emit(1);\r\n }\r\n}","<div class=\"btn-toolbar\" role=\"toolbar\" aria-label=\"Action toolbar\">\r\n <ng-content select=\"[left]\"></ng-content>\r\n <div *ngIf=\"showSave\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Save group\">\r\n <button type=\"submit\" class=\"btn btn-primary\" [disabled]=\"readOnly\"><i class=\"fa-solid fa-floppy-disk\"></i> {{ 'Action.Save' | translate }}</button>\r\n </div>\r\n <div *ngIf=\"showCancel\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Cancel group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancel()\"><i class=\"fa-solid fa-ban\"></i> {{ 'Action.Close' | translate }}</button>\r\n </div>\r\n <div *ngIf=\"showPrint\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Print group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button>\r\n <div class=\"btn-group\" role=\"group\">\r\n <button type=\"button\" class=\"btn btn-secondary dropdown-toggle dropdown-toggle-split\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <span class=\"visually-hidden\">Toggle Dropdown</span>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Show)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button></li>\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-file-pdf\"></i> {{ 'Action.Print' | translate }} PDF</button></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showExport\" class=\"btn-group\" role=\"group\" aria-label=\"Filter / Export group\">\r\n <div class=\"btn-group\" role=\"group\">\r\n <button id=\"btnGroupExport\" type=\"button\" class=\"btn btn-secondary dropdown-toggle\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"><i class=\"fa-solid fa-download\"></i> {{ 'Action.Export' | translate }}</button>\r\n <ul class=\"dropdown-menu\" aria-labelledby=\"btnGroupExport\">\r\n <li><a class=\"dropdown-item\" href=\"javascript:void(0)\" (click)=\"exportExcel()\"><i class=\"fa-solid fa-file-excel\"></i> Excel</a></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <ng-content></ng-content>\r\n</div>","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/*\r\n * Convert bytes into largest possible unit.\r\n * Takes an precision argument that defaults to 2.\r\n * Usage:\r\n * bytes | fileSize:precision\r\n * Example:\r\n * {{ 1024 | fileSize}}\r\n * formats to: 1 KB\r\n*/\r\n@Pipe({\r\n standalone: true,\r\n name: 'fileSize'\r\n})\r\nexport class ZekFileSizePipe implements PipeTransform {\r\n\r\n private units = [\r\n 'bytes',\r\n 'kB',\r\n 'MB',\r\n 'GB',\r\n 'TB',\r\n 'PB',\r\n 'EB',\r\n 'ZB',\r\n 'YB'\r\n ];\r\n\r\n transform(bytes: number | null | undefined = 0, precision: number | null | undefined = 0): string {\r\n if (typeof bytes === 'undefined' || bytes == null)\r\n bytes = 0;\r\n if (typeof precision === 'undefined' || precision == null)\r\n precision = 0;\r\n\r\n if (isNaN(parseFloat(String(bytes))) || !isFinite(bytes)) return '?';\r\n\r\n let unit = 0;\r\n\r\n while (bytes >= 1024) {\r\n bytes /= 1024;\r\n unit++;\r\n }\r\n\r\n return bytes.toFixed(+ precision) + ' ' + this.units[unit];\r\n }\r\n}","import { Component, Output, EventEmitter, Input } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BooleanInput, CoreComponent } from '../../../components';\r\nimport { BootstrapHelper, ComponentType, Convert, handler, RandomHelper } from '../../../utils';\r\nimport { ValidEventArgs } from '../../../models/valid-event-args.model';\r\n\r\ndeclare let bootstrap: any;\r\n// let nextUniqueId = 0;\r\n\r\n@Component({\r\n selector: 'zek-modal',\r\n templateUrl: './modal.component.html'\r\n})\r\nexport class ZekModal extends CoreComponent {\r\n constructor(private readonly translate: TranslateService) {\r\n super();\r\n this.elementId = RandomHelper.randomHex();\r\n }\r\n override async destroy() {\r\n await super.destroy();\r\n this._modal?.dispose();\r\n this._modal = null;\r\n\r\n if (this.hiddenHandler) {\r\n handler.removeListener(this.hiddenHandler);\r\n }\r\n if (this.shownHandler) {\r\n handler.removeListener(this.shownHandler);\r\n }\r\n }\r\n override init() {\r\n super.init()\r\n if (!this.okButtonText) {\r\n this.translate.get('Action.Ok').subscribe(text => {\r\n this.okButtonText = text;\r\n });\r\n }\r\n\r\n setTimeout(() => {\r\n let modalEl = this.getModalElement();\r\n if (modalEl) {\r\n this.shownHandler = handler.addListener(modalEl, 'shown.bs.modal', () => {\r\n this.onShown.emit();\r\n });\r\n\r\n this.hiddenHandler = handler.addListener(modalEl, 'hidden.bs.modal', () => {\r\n this.onHidden.emit();\r\n });\r\n }\r\n }, 1);\r\n }\r\n\r\n\r\n\r\n shownHandler?: number | null;\r\n hiddenHandler?: number | null;\r\n\r\n @Input() model: any;\r\n readonly elementId: string;\r\n\r\n\r\n private _showOk: boolean = true;\r\n @Input()\r\n get showOk(): boolean {\r\n return this._showOk;\r\n }\r\n set showOk(v: BooleanInput) {\r\n this._showOk = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _disabledOk: boolean = false;\r\n @Input()\r\n get disabledOk(): boolean {\r\n return this._disabledOk;\r\n }\r\n set disabledOk(v: BooleanInput) {\r\n this._disabledOk = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _showCancel: boolean = true;\r\n @Input()\r\n get showCancel(): boolean {\r\n return this._showCancel;\r\n }\r\n set showCancel(v: BooleanInput) {\r\n this._showCancel = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n private _autoHide: boolean = true;\r\n @Input()\r\n get autoHide(): boolean {\r\n return this._autoHide;\r\n }\r\n set autoHide(v: BooleanInput) {\r\n this._autoHide = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n @Input() title?: string | null;\r\n\r\n @Input() text?: string | null;\r\n\r\n @Input() icon?: string | null;\r\n\r\n @Input() okButtonText?: string | null;\r\n\r\n @Output() onShown = new EventEmitter<any>();\r\n\r\n @Output() onHidden = new EventEmitter<any>();\r\n\r\n @Output() onOk = new EventEmitter<any>();\r\n\r\n @Input() componentType = ComponentType.Primary;\r\n\r\n\r\n\r\n\r\n private _large: boolean = false;\r\n @Input()\r\n get large(): boolean {\r\n return this._large;\r\n }\r\n set large(v: BooleanInput) {\r\n this._large = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _xl: boolean = false;\r\n @Input()\r\n get xl(): boolean {\r\n return this._xl;\r\n }\r\n set xl(v: BooleanInput) {\r\n this._xl = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n private _scrollable: boolean = false;\r\n @Input()\r\n get scrollable(): boolean {\r\n return this._scrollable;\r\n }\r\n set scrollable(v: BooleanInput) {\r\n this._scrollable = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _fullscreen: boolean = false;\r\n @Input()\r\n get fullscreen(): boolean {\r\n return this._fullscreen;\r\n }\r\n set fullscreen(v: BooleanInput) {\r\n this._fullscreen = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _showHeader: boolean = true;\r\n @Input()\r\n get showHeader(): boolean {\r\n return this._showHeader;\r\n }\r\n set showHeader(v: BooleanInput) {\r\n this._showHeader = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _showFooter: boolean = true;\r\n @Input()\r\n get showFooter(): boolean {\r\n return this._showFooter;\r\n }\r\n set showFooter(v: BooleanInput) {\r\n this._showFooter = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n\r\n\r\n @Output() onValidating = new EventEmitter<ValidEventArgs>(false);\r\n // @Input() xxl: boolean;\r\n\r\n private _modal: any;\r\n // public get modal(): any {\r\n // if (!this._modal) {\r\n // this.getModal();\r\n // }\r\n // return this._modal;\r\n // }\r\n // public set modal(v: any) {\r\n // this._modal = v;\r\n // }\r\n\r\n protected getModalElement() {\r\n return document.getElementById('modal-' + this.elementId);\r\n }\r\n protected getModal() {\r\n let modalEl = this.getModalElement();\r\n return new bootstrap.Modal(modalEl, { backdrop: 'static' });\r\n }\r\n\r\n\r\n\r\n\r\n cssButton(): string {\r\n return BootstrapHelper.cssButton(this.componentType);\r\n }\r\n\r\n // private isShown = false;\r\n show(model?: any) {\r\n if (!model) model = {};\r\n this.model = model;\r\n\r\n // this.modal?.show();\r\n\r\n\r\n if (!this._modal) {\r\n this._modal = this.getModal();\r\n }\r\n if (this._modal) {\r\n this._modal.show();\r\n // this.isShown = true;\r\n }\r\n }\r\n\r\n hide() {\r\n // this.modal?.hide();\r\n\r\n // if (this.isShown) {\r\n // if (this._modal) {\r\n // this._modal.hide();\r\n // this.isShown = false;\r\n // }\r\n // } else {\r\n\r\n // }\r\n\r\n if (this._modal) {\r\n this._modal.hide();\r\n }\r\n else {\r\n let btn = document.getElementById('modal-cancel-button-' + this.elementId);\r\n if (btn) {\r\n btn.click();\r\n }\r\n }\r\n }\r\n\r\n ok() {\r\n let event = new ValidEventArgs();\r\n this.onValidating.emit(event);\r\n if (!event.valid) return;\r\n\r\n if (this.autoHide)\r\n this.hide();\r\n\r\n this.onOk.emit(this.model);\r\n }\r\n\r\n keyDown(e: Event) {\r\n e.preventDefault();\r\n this.ok();\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'zek-delete-modal',\r\n templateUrl: './modal.component.html'\r\n})\r\nexport class ZekDeleteModal extends ZekModal {\r\n constructor(translate: TranslateService) {\r\n super(translate);\r\n this.icon = 'fa-solid fa-trash';\r\n translate.get('Action.Delete').subscribe((res: string) => this.title = res);\r\n translate.get('Alert.DeleteQuestion').subscribe((res: string) => this.text = res);\r\n this.componentType = ComponentType.Delete;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'zek-approve-modal',\r\n templateUrl: './modal.component.html'\r\n})\r\nexport class ZekApproveModal extends ZekModal {\r\n constructor(translate: TranslateService) {\r\n super(translate);\r\n this.icon = 'fa-solid fa-thumbs-up';\r\n translate.get('Action.Approve').subscribe((res: string) => this.title = res);\r\n translate.get('Alert.ApproveQuestion').subscribe((res: string) => this.text = res);\r\n this.componentType = ComponentType.Success;\r\n }\r\n}\r\n@Component({\r\n selector: 'zek-submit-modal',\r\n templateUrl: './modal.component.html'\r\n})\r\nexport class ZekSubmitModal extends ZekModal {\r\n constructor(translate: TranslateService) {\r\n super(translate);\r\n this.icon = 'fa-solid fa-thumbs-up';\r\n translate.get('Action.Submit').subscribe((res: string) => this.title = res);\r\n translate.get('Alert.SubmitQuestion').subscribe((res: string) => this.text = res);\r\n this.componentType = ComponentType.Success;\r\n }\r\n}\r\n@Component({\r\n selector: 'zek-disapprove-modal',\r\n templateUrl: './modal.component.html'\r\n})\r\nexport class ZekDisapproveModal extends ZekModal {\r\n constructor(translate: TranslateService) {\r\n super(translate);\r\n this.icon = 'fa-solid fa-thumbs-down';\r\n translate.get('Action.Disapprove').subscribe((res: string) => this.title = res);\r\n translate.get('Alert.DisapproveQuestion').subscribe((res: string) => this.text = res);\r\n this.componentType = ComponentType.Delete;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'zek-restore-modal',\r\n templateUrl: './modal.component.html'\r\n})\r\nexport class ZekRestoreModal extends ZekModal {\r\n constructor(translate: TranslateService) {\r\n super(translate);\r\n this.icon = 'fa-solid fa-rotate-right';\r\n translate.get('Action.Restore').subscribe((res: string) => this.title = res);\r\n translate.get('Action.RestoreQuestion').subscribe((res: string) => this.text = res);\r\n this.componentType = ComponentType.Success;\r\n }\r\n}","<div (keydown.enter)=\"keyDown($event)\" class=\"modal fade\" data-bs-backdrop=\"static\" id=\"modal-{{elementId}}\" tabindex=\"-1\" attr.aria-labelledby=\"modal-lable-{{elementId}}\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog\" [class.modal-lg]=\"large\" [class.modal-xl]=\"xl\" [class.modal-dialog-scrollable]=\"scrollable\" [class.modal-fullscreen]=\"fullscreen\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\" *ngIf=\"showHeader\">\r\n <ng-content select=\"header\"></ng-content>\r\n <h5 class=\"modal-title\" id=\"modal-lable-{{elementId}}\">{{title}}</h5>\r\n <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-label=\"Close\"></button>\r\n </div>\r\n <div class=\"modal-body\">\r\n {{text}}\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"modal-footer\" *ngIf=\"showFooter\">\r\n <ng-content select=\"footer\"></ng-content>\r\n <button [class.visually-hidden]=\"!showOk\" [disabled]=\"disabledOk\" type=\"button\" class=\"btn {{cssButton()}}\" id=\"modal-ok-button-{{elementId}}\" (click)=\"ok()\"><i *ngIf=\"icon\" class=\"{{ icon }}\"></i> {{ okButtonText }}</button>\r\n <button [class.visually-hidden]=\"!showCancel\" type=\"button\" class=\"btn btn-secondary\" id=\"modal-cancel-button-{{elementId}}\" data-bs-dismiss=\"modal\"><i class=\"fa-solid fa-ban\"></i> {{ 'Action.Cancel' | translate }}</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, Output, EventEmitter } from '@angular/core';\r\nimport { ZekModal } from '../modal/modal.component';\r\n\r\n@Component({\r\n selector: 'zek-filter-modal',\r\n templateUrl: './filter-modal.component.html'\r\n})\r\nexport class ZekFilterModal extends ZekModal {\r\n @Output() onReset = new EventEmitter();\r\n\r\n reset() {\r\n this.onReset.emit();\r\n }\r\n\r\n protected override getModalElement(){\r\n return document.getElementById('filter-modal');\r\n }\r\n}","<div (keydown.enter)=\"keyDown($event)\" class=\"modal fade\" data-bs-backdrop=\"static\" id=\"filter-modal\" tabindex=\"-1\" attr.aria-labelledby=\"modal-lable-{{elementId}}\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog\" [class.modal-lg]=\"!xl\" [class.modal-xl]=\"xl\" >\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title\" id=\"modal-lable-{{elementId}}\">{{ 'Action.Filter' | translate }}</h5>\r\n <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-label=\"Close\"></button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"ok()\"><i class=\"fa-solid fa-filter\"></i> {{ 'Action.Filter' | translate }}</button>\r\n <button *ngIf=\"showCancel\" type=\"button\" class=\"btn btn-secondary\" id=\"modal-cancel-button-{{elementId}}\" data-bs-dismiss=\"modal\"><i class=\"fa-solid fa-ban\"></i> {{ 'Action.Cancel' | translate }}</button>\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"reset()\"><i class=\"fa-solid fa-xmark\"></i> {{ 'Action.Reset' | translate }}</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, Input, ViewChild } from '@angular/core';\r\nimport { ZekModal } from '../modal/modal.component';\r\n\r\n@Component({\r\n selector: 'zek-sum-modal',\r\n templateUrl: './sum-modal.component.html'\r\n})\r\nexport class ZekSumModal {\r\n\r\n @Input() model: any;\r\n\r\n @ViewChild('sumModal', { static: false }) private modal?: ZekModal;\r\n\r\n\r\n sum() {\r\n if (this.modal) {\r\n this.modal.show();\r\n }\r\n else {\r\n throw new Error('sumModal is null or undefined');\r\n }\r\n }\r\n}","<zek-modal #sumModal [showCancel]=\"false\" [title]=\"'Action.Sum' | translate\">\r\n <table class=\"table table-striped table-borderless table-hover\">\r\n <tbody>\r\n <tr *ngFor=\"let item of model\">\r\n <td class=\"w-75\">{{item.key}}</td>\r\n <td class=\"w-25\">\r\n <ng-container *ngIf=\"item.key != 'Count'; else elseBlock\">{{item.value | number:'1.2' }}</ng-container>\r\n <ng-template #elseBlock>{{item.value}}</ng-template>\r\n </td>\r\n <tr>\r\n </tbody>\r\n </table>\r\n</zek-modal>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\nimport { \r\n ZekModal,\r\n ZekDeleteModal,\r\n ZekApproveModal,\r\n ZekDisapproveModal,\r\n ZekRestoreModal,\r\n ZekSubmitModal\r\n} from './modal/modal.component';\r\nimport { ZekFilterModal } from './filter-modal/filter-modal.component';\r\nimport { ZekSumModal } from './sum-modal/sum-modal.component';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n TranslateModule\r\n ],\r\n declarations: [\r\n ZekModal,\r\n ZekDeleteModal,\r\n ZekApproveModal,\r\n ZekSubmitModal,\r\n ZekDisapproveModal,\r\n ZekRestoreModal,\r\n ZekFilterModal,\r\n ZekSumModal\r\n ],\r\n exports: [\r\n ZekModal,\r\n ZekDeleteModal,\r\n ZekApproveModal,\r\n ZekSubmitModal,\r\n ZekDisapproveModal,\r\n ZekRestoreModal,\r\n ZekFilterModal,\r\n ZekSumModal\r\n ]\r\n})\r\nexport class ZekModalModule { }","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n standalone: true,\r\n name: 'safe'\r\n})\r\nexport class ZekSafePipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) {\r\n }\r\n\r\n /**\r\n * Transform\r\n *\r\n * @param value: string\r\n * @param type: string html, style, script, url, resourceUrl\r\n */\r\n transform(value: string, type?: '' | 'html' | 'style' | 'script' | 'url' | 'resourceUrl' | null): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\r\n switch (type) {\r\n case 'html':\r\n return this.sanitizer.bypassSecurityTrustHtml(value);\r\n case 'style':\r\n return this.sanitizer.bypassSecurityTrustStyle(value);\r\n case 'script':\r\n return this.sanitizer.bypassSecurityTrustScript(value);\r\n case 'url':\r\n return this.sanitizer.bypassSecurityTrustUrl(value);\r\n case 'resourceUrl':\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\r\n default:\r\n return this.sanitizer.bypassSecurityTrustHtml(value);\r\n }\r\n }\r\n}","import { Component, ViewChild } from '@angular/core';\r\n\r\nimport { ZekModal, ZekModalModule } from '../modal';\r\nimport { CoreComponent } from '../../components';\r\nimport { FileHelper } from '../../utils';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ZekSafePipe } from '../safe';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-file-viewer',\r\n templateUrl: './file-viewer.html',\r\n imports: [CommonModule, ZekModalModule, ZekSafePipe],\r\n providers: []\r\n})\r\nexport class ZekFileViewer<TModal extends ZekModal = ZekModal> extends CoreComponent {\r\n\r\n @ViewChild('viewModal', { static: true }) viewModal?: TModal | null;\r\n\r\n src?: string | null;\r\n\r\n show(url: string, extension?: string | null) {\r\n\r\n let ext = extension || FileHelper.getExtension(url);\r\n switch (ext) {\r\n case '.docx':\r\n case '.doc':\r\n this.src = 'https://docs.google.com/a/umd.edu/viewer?url=' + url + '&embedded=true';\r\n break;\r\n\r\n case '.xlsx':\r\n case '.xls':\r\n\r\n this.src = 'http://view.officeapps.live.com/op/view.aspx?src=' + url;\r\n break;\r\n\r\n // case '.jpg':\r\n // case '.jpeg':\r\n // case '.png':\r\n // case '.pdf':\r\n default:\r\n this.src = url;\r\n break;\r\n }\r\n\r\n\r\n // <!-- <iframe id=\"office\" width=\"100%\" height=\"99%\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\" allowfullscreen=\"allowfullscreen\"\r\n // src=\"https://docs.google.com/spreadsheets/u/0/d/1Yv92dG0AOki6prNq5RwRSWTpdcidzFkakW9nMf0RaUQ/preview/sheet?gid=0\"></iframe> -->\r\n\r\n // <!-- <iframe id=\"office\" width=\"100%\" height=\"99%\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" \r\n // src=\"https://docs.google.com/a/umd.edu/viewer?url=https://github.com/poychang/blog.poychang.net/raw/master/assets/post-files/THIS-IS-WORD.docx&amp;embedded=true\">\r\n // </iframe> -->\r\n // <!-- <iframe id=\"office\" width=\"100%\" height=\"99%\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" \r\n // src=\" https://view.officeapps.live.com/op/embed.aspx?src=https://github.com/poychang/blog.poychang.net/raw/master/assets/post-files/THIS-IS-WORD.docx\">\r\n // </iframe> -->\r\n\r\n\r\n // this.src = 'http://view.officeapps.live.com/op/view.aspx?src=https://sample-videos.com/xls/Sample-Spreadsheet-50000-rows.xls';\r\n\r\n if (this.viewModal) {\r\n this.viewModal.show();\r\n }\r\n }\r\n}\r\n","<zek-modal #viewModal [fullscreen]=\"true\" [showHeader]=\"true\" [showFooter]=\"false\">\r\n <ng-container *ngIf=\"src\">\r\n <iframe id=\"office\" width=\"100%\" height=\"99%\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" allowfullscreen=\"allowfullscreen\"\r\n [src]=\"src | safe:'resourceUrl'\">\r\n </iframe>\r\n </ng-container>\r\n</zek-modal>","import { HtmlHelper } from \"../../utils\";\r\n\r\ndeclare var google: any;\r\n\r\n\r\ndeclare global {\r\n interface Window {\r\n onGoogleLibraryLoad: () => void;\r\n }\r\n}\r\n\r\nfunction loadScript(\r\n onLoaded: (google: any) => void,\r\n url?: string,\r\n nonce?: string\r\n): void {\r\n window.onGoogleLibraryLoad = () => {\r\n onLoaded(google);\r\n };\r\n\r\n const src = url || \"https://accounts.google.com/gsi/client\";\r\n HtmlHelper.loadScript(src, nonce, true, true);\r\n}\r\n\r\nexport const loader = { loadScript };","import { Component, Directive, EventEmitter, Inject, Input, Output } from \"@angular/core\";\r\nimport { loader } from './loader';\r\nimport { GOOGLE_CLIENT_ID } from \"../../tokens\";\r\nimport { CoreComponent, BooleanInput, NumberInput } from \"../../components\";\r\nimport { Convert } from \"../../utils\";\r\n\r\ndeclare let google: any;\r\nlet uniqueId = 0;\r\n\r\nexport interface GoogleLoginConfig {\r\n client_id: string;\r\n}\r\nexport type GoogleLoginButtonTextInput =\r\n 'signin_with' | 'signup_with' | 'continue_with' | 'signin' | null | undefined;\r\n\r\n\r\n@Directive({\r\n selector: 'zek-google-login',\r\n host: {\r\n '[attr.id]': 'id',\r\n }\r\n})\r\nexport class ZekGoogleLoginButton extends CoreComponent {\r\n constructor(@Inject(GOOGLE_CLIENT_ID) private readonly client_id: string) {\r\n super();\r\n }\r\n\r\n private _uniqueId: string = `zek-google-button-container-${++uniqueId}`;\r\n @Input() id: string = this._uniqueId;\r\n\r\n private _prompt: boolean = true;\r\n @Input() get prompt() {\r\n return this._prompt;\r\n }\r\n set prompt(v: BooleanInput) {\r\n this._prompt = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _autoSelect: boolean = false;\r\n @Input() get autoSelect() {\r\n return this._autoSelect;\r\n }\r\n set autoSelect(v: BooleanInput) {\r\n this._autoSelect = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n private _cancelOnTapOutside: boolean = true;\r\n @Input() get cancelOnTapOutside() {\r\n return this._cancelOnTapOutside;\r\n }\r\n set cancelOnTapOutside(v: BooleanInput) {\r\n this._cancelOnTapOutside = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n private _width: NumberInput;\r\n @Input() get width() {\r\n return this._width;\r\n }\r\n set width(v: NumberInput) {\r\n this._width = v;\r\n }\r\n\r\n\r\n private _text: GoogleLoginButtonTextInput;\r\n @Input() get text() {\r\n return this._text;\r\n }\r\n set text(v: GoogleLoginButtonTextInput) {\r\n this._text = v;\r\n }\r\n\r\n\r\n\r\n @Output() onLoginResponse = new EventEmitter();\r\n @Output() onLogin = new EventEmitter();\r\n\r\n // private _type: 'standard' | 'icon';\r\n // public get type(): '' {\r\n // return this._type;\r\n // }\r\n // public set type(v: 'standard' | 'icon') {\r\n // this._type = v;\r\n // }\r\n\r\n\r\n\r\n\r\n // private static _loaded = false;\r\n // static async loadScript() {\r\n // if (this._loaded) return;\r\n // await HtmlHelper.loadScripts('https://accounts.google.com/gsi/client');\r\n // this._loaded = true;\r\n // }\r\n\r\n\r\n private google?: any;\r\n override async init() {\r\n super.init();\r\n // await GoogleLoginButton.loadScript();\r\n\r\n if (\"google\" in window) {\r\n this.google = google;\r\n this.initialize();\r\n } else {\r\n loader.loadScript(this.onLoadComplete);\r\n }\r\n }\r\n private onLoadComplete = (google: any) => {\r\n this.google = google;\r\n this.initialize();\r\n }\r\n\r\n initialize() {\r\n this.google.accounts.id.initialize({\r\n client_id: this.client_id,\r\n callback: (response: any) => {\r\n this.handleCredentialResponse(response);\r\n },\r\n auto_select: this._autoSelect,\r\n cancel_on_tap_outside: this._cancelOnTapOutside,\r\n });\r\n\r\n setTimeout(() => {\r\n this.renderButton();\r\n this.autoPrompt();\r\n },);\r\n }\r\n renderButton() {\r\n let options: any = { theme: \"outline\", size: \"large\" };\r\n if (this._width)\r\n options.width = this._width;\r\n if (this._text)\r\n options.text = this._text\r\n\r\n this.google.accounts.id.renderButton(\r\n document.getElementById(this.id),\r\n // this._elementRef.nativeElement.parentElement,\r\n options // customization attributes\r\n );\r\n }\r\n autoPrompt() {\r\n if (this._prompt)\r\n this.google.accounts.id.prompt(); // also display the One Tap dialog\r\n }\r\n\r\n\r\n handleCredentialResponse(response: any) {\r\n this.onLoginResponse?.emit(response);\r\n this.onLogin?.emit(response.credential);\r\n\r\n // let payload = JwtHelper.decode(response.credential);\r\n // console.log(\"ID: \" + payload.sub);\r\n // console.log('Full Name: ' + payload.name);\r\n // console.log('Given Name: ' + payload.given_name);\r\n // console.log('Family Name: ' + payload.family_name);\r\n // console.log(\"Image URL: \" + payload.picture);\r\n // console.log(\"Email: \" + payload.email);\r\n }\r\n}","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { GoogleLoginConfig, ZekGoogleLoginButton } from './google-login-button';\r\nimport { GOOGLE_CLIENT_ID } from '../../tokens';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n ZekGoogleLoginButton\r\n ],\r\n exports: [\r\n ZekGoogleLoginButton\r\n ]\r\n})\r\nexport class ZekGoogleLoginModule {\r\n public static forRoot(config: GoogleLoginConfig): ModuleWithProviders<ZekGoogleLoginModule> {\r\n return {\r\n ngModule: ZekGoogleLoginModule,\r\n providers: [\r\n ZekGoogleLoginButton,\r\n {\r\n provide: GOOGLE_CLIENT_ID,\r\n useValue: config.client_id\r\n },\r\n ]\r\n };\r\n }\r\n\r\n\r\n public static forChild(config: GoogleLoginConfig) {\r\n return this.forRoot(config);\r\n }\r\n}","import { Component, Output, EventEmitter, Input } from '@angular/core';\r\nimport { BooleanInput } from '../../../components';\r\nimport { Convert } from '../../../utils';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-grid-toolbar',\r\n templateUrl: './grid-toolbar.html',\r\n imports: [CommonModule, TranslateModule]\r\n})\r\nexport class ZekGridToolbar {\r\n // constructor(private readonly router: Router) {\r\n // //private readonly viewContainerRef: ViewContainerRef,\r\n // }\r\n\r\n // getParentComponent(): any {\r\n // return this.viewContainerRef['_data'].componentView.component.viewContainerRef['_view'].component\r\n // }\r\n\r\n @Input() model: any;\r\n\r\n private _showEdit: boolean = true;\r\n @Input()\r\n get showEdit(): boolean {\r\n return this._showEdit;\r\n }\r\n set showEdit(v: BooleanInput) {\r\n this._showEdit = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _editEnabled: boolean = true;\r\n @Input()\r\n get editEnabled(): boolean {\r\n return this._editEnabled;\r\n }\r\n set editEnabled(v: BooleanInput) {\r\n this._editEnabled = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _showDelete: boolean = true;\r\n @Input()\r\n get showDelete(): boolean {\r\n return this._showDelete;\r\n }\r\n set showDelete(v: BooleanInput) {\r\n this._showDelete = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _deleteEnabled: boolean = true;\r\n @Input()\r\n get deleteEnabled(): boolean {\r\n return this._deleteEnabled;\r\n }\r\n set deleteEnabled(v: BooleanInput) {\r\n this._deleteEnabled = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _showRestore: boolean = false;\r\n @Input()\r\n get showRestore(): boolean {\r\n return this._showRestore;\r\n }\r\n set showRestore(v: BooleanInput) {\r\n this._showRestore = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _restoreEnabled: boolean = true;\r\n @Input()\r\n get restoreEnabled(): boolean {\r\n return this._restoreEnabled;\r\n }\r\n set restoreEnabled(v: BooleanInput) {\r\n this._restoreEnabled = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n @Input() approveText = 'Action.Approve';\r\n private _showApprove: boolean = false;\r\n @Input()\r\n get showApprove(): boolean {\r\n return this._showApprove;\r\n }\r\n set showApprove(v: BooleanInput) {\r\n this._showApprove = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _approveEnabled: boolean = false;\r\n @Input()\r\n get approveEnabled(): boolean {\r\n return this._approveEnabled;\r\n }\r\n set approveEnabled(v: BooleanInput) {\r\n this._approveEnabled = Convert.toBooleanProperty(v);\r\n }\r\n\r\n @Input() disapproveText = 'Action.Disapprove';\r\n private _showDisapprove: boolean = false;\r\n @Input()\r\n get showDisapprove(): boolean {\r\n return this._showDisapprove;\r\n }\r\n set showDisapprove(v: BooleanInput) {\r\n this._showDisapprove = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n private _disapproveEnabled: boolean = false;\r\n @Input()\r\n get disapproveEnabled(): boolean {\r\n return this._disapproveEnabled;\r\n }\r\n set disapproveEnabled(v: BooleanInput) {\r\n this._disapproveEnabled = Convert.toBooleanProperty(v);\r\n }\r\n\r\n @Output() onEdit = new EventEmitter<any>();\r\n edit() {\r\n //this.router.navigate([this.router.url, this.model]);\r\n this.onEdit.emit(this.model);\r\n }\r\n\r\n @Output() onDelete = new EventEmitter<any>();\r\n delete() {\r\n this.onDelete.emit(this.model)\r\n }\r\n\r\n @Output() onApprove = new EventEmitter<any>();\r\n approve() {\r\n this.onApprove.emit(this.model)\r\n }\r\n\r\n @Output() onDisapprove = new EventEmitter<any>();\r\n disapprove() {\r\n this.onDisapprove.emit(this.model)\r\n }\r\n\r\n @Output() onRestore = new EventEmitter<any>();\r\n restore() {\r\n this.onRestore.emit(this.model)\r\n }\r\n}\r\n","<div class=\"btn-group btn-group-sm\" role=\"group\" aria-label=\"Table action group\">\r\n <button *ngIf=\"showEdit\" (click)=\"edit()\" type=\"button\" class=\"btn btn-secondary\" title=\"{{ 'Action.Edit' | translate }}\" [disabled]=\"!editEnabled\">\r\n <i class=\"fa-solid fa-pencil\"></i>\r\n </button>\r\n <button *ngIf=\"showApprove\" (click)=\"approve()\" type=\"button\" class=\"btn btn-success\" title=\"{{ approveText | translate }}\" [disabled]=\"!approveEnabled\">\r\n <i class=\"fa-solid fa-thumbs-up\"></i>\r\n </button>\r\n <button *ngIf=\"showDisapprove\" (click)=\"disapprove()\" type=\"button\" class=\"btn btn-danger\" title=\"{{ disapproveText | translate }}\" [disabled]=\"!disapproveEnabled\">\r\n <i class=\"fa-solid fa-thumbs-down\"></i>\r\n </button>\r\n <button *ngIf=\"showDelete\" (click)=\"delete()\" type=\"button\" class=\"btn btn-danger\" title=\"{{ 'Action.Delete' | translate }}\" [disabled]=\"!deleteEnabled\">\r\n <i class=\"fa-solid fa-trash\"></i>\r\n </button>\r\n <button *ngIf=\"showRestore\" (click)=\"restore()\" type=\"button\" class=\"btn btn-success\" title=\"{{ 'Action.Restore' | translate }}\" [disabled]=\"!restoreEnabled\">\r\n <i class=\"fa-solid fa-clock-rotate-left\"></i>\r\n </button>\r\n <ng-content></ng-content>\r\n</div>","import { Component } from \"@angular/core\";\r\nimport { ZekGridToolbar } from \"../grid-toolbar/grid-toolbar\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-grid-toolbar-bar',\r\n templateUrl: './grid-toolbar-bar.html',\r\n imports: [CommonModule, TranslateModule]\r\n})\r\nexport class ZekGridToolbarBar extends ZekGridToolbar {\r\n\r\n}","<button type=\"button\" class=\"btn btn-light btn-sm\" data-bs-toggle=\"dropdown\">\r\n <i class=\"fa-solid fa-ellipsis\"></i>\r\n</button>\r\n<ul class=\"dropdown-menu\">\r\n <li><button *ngIf=\"showEdit\" (click)=\"edit()\" type=\"button\" class=\"dropdown-item\" [disabled]=\"!editEnabled\">\r\n <i class=\"fa-solid fa-pencil\"></i> {{ 'Action.Edit' | translate }}\r\n </button></li>\r\n <li><button *ngIf=\"showApprove\" (click)=\"approve()\" type=\"button\" class=\"dropdown-item\" [disabled]=\"!approveEnabled\">\r\n <i class=\"fa-solid fa-thumbs-up\"></i> {{ approveText | translate }}\r\n </button></li>\r\n <li><button *ngIf=\"showDisapprove\" (click)=\"disapprove()\" type=\"button\" class=\"dropdown-item\" [disabled]=\"!disapproveEnabled\">\r\n <i class=\"fa-solid fa-thumbs-down\"></i> {{ disapproveText | translate }}\r\n </button></li>\r\n <li><button *ngIf=\"showDelete\" (click)=\"delete()\" type=\"button\" class=\"dropdown-item\" [disabled]=\"!deleteEnabled\">\r\n <i class=\"fa-solid fa-trash\"></i> {{ 'Action.Delete' | translate }}\r\n </button></li>\r\n <li><button *ngIf=\"showRestore\" (click)=\"restore()\" type=\"button\" class=\"dropdown-item\" [disabled]=\"!restoreEnabled\">\r\n <i class=\"fa-solid fa-clock-rotate-left\"></i> {{ 'Action.Restore' | translate }}\r\n </button></li>\r\n <ng-content></ng-content>\r\n</ul>","import { Component, Output, EventEmitter, Input } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { BooleanInput } from '../../components';\r\n\r\nimport { PrintType } from '../../models/print.model';\r\nimport { Convert, UrlHelper } from '../../utils';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-list-toolbar',\r\n templateUrl: './list-toolbar.html',\r\n imports: [CommonModule, TranslateModule],\r\n})\r\nexport class ZekListToolbar {\r\n constructor(private readonly router: Router) {\r\n }\r\n\r\n printType = PrintType;\r\n\r\n private _isFiltered = false;\r\n @Input()\r\n get isFiltered() {\r\n return this._isFiltered;\r\n }\r\n set isFiltered(v: BooleanInput) {\r\n this._isFiltered = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n private _showCreate = true;\r\n @Input()\r\n get showCreate() {\r\n return this._showCreate;\r\n }\r\n set showCreate(v: BooleanInput) {\r\n this._showCreate = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n\r\n\r\n private _showFilter = true;\r\n @Input()\r\n get showFilter() {\r\n return this._showFilter;\r\n }\r\n set showFilter(v: BooleanInput) {\r\n this._showFilter = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n private _showPrint = false;\r\n @Input()\r\n get showPrint() {\r\n return this._showPrint;\r\n }\r\n set showPrint(v: BooleanInput) {\r\n this._showPrint = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n\r\n\r\n private _showSum = false;\r\n @Input()\r\n get showSum() {\r\n return this._showSum;\r\n }\r\n set showSum(v: BooleanInput) {\r\n this._showSum = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n private _showExport: boolean = false;\r\n @Input()\r\n get showExport(): boolean {\r\n return this._showExport;\r\n }\r\n set showExport(v: BooleanInput) {\r\n this._showExport = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n @Output() onRefresh = new EventEmitter();\r\n\r\n @Output() onFilter = new EventEmitter();\r\n\r\n refresh() {\r\n this.onRefresh.emit();\r\n }\r\n\r\n create() {\r\n const url = UrlHelper.getNoParam(this.router.url);\r\n // this.router.navigate([url, 'create', { returnUrl: url + ';filter=1' }]);\r\n this.router.navigate([url, 'create'],\r\n { queryParams: { returnUrl: url + '?filter=1' } }\r\n );\r\n }\r\n\r\n\r\n filter() {\r\n this.onFilter.emit();\r\n }\r\n\r\n @Output()\r\n onPrint = new EventEmitter<PrintType>();\r\n print(printType?: PrintType) {\r\n this.onPrint.emit(printType);\r\n }\r\n\r\n @Output()\r\n onSum = new EventEmitter();\r\n sum() {\r\n this.onSum.emit();\r\n }\r\n\r\n\r\n @Output()\r\n onExport = new EventEmitter<number>();\r\n exportExcel() {\r\n this.onExport.emit(1);\r\n }\r\n}","<div class=\"btn-toolbar\" role=\"toolbar\" aria-label=\"Toolbar\">\r\n <div class=\"btn-group me-2\" role=\"group\" aria-label=\"Action group\">\r\n <button *ngIf=\"showCreate\" type=\"button\" class=\"btn btn-primary\" (click)=\"create()\"><i class=\"fa-solid fa-plus\"></i> {{ 'Action.Create' | translate }}</button>\r\n </div>\r\n <div class=\"btn-group me-2\" role=\"group\" aria-label=\"Filter group\">\r\n <button *ngIf=\"showFilter\" type=\"button\" class=\"btn btn-secondary\" [ngClass]=\"{'btn-outline-success': isFiltered, 'btn-secondary': !isFiltered }\" (click)=\"filter()\" data-bs-toggle0=\"modal\" data-bs-backdrop0=\"static\" data-bs-target0=\"#filter-modal\"><i class=\"fa-solid fa-filter\"></i> {{ 'Action.Filter' | translate }}</button>\r\n <button type=\"button\" class=\"btn btn-secondary\" title=\"{{ 'Action.Refresh' | translate }}\" (click)=\"refresh()\"><i class=\"fa-solid fa-rotate\"></i></button>\r\n </div>\r\n <div *ngIf=\"showPrint\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Print group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button>\r\n <div class=\"btn-group\" role=\"group\">\r\n <button type=\"button\" class=\"btn btn-secondary dropdown-toggle dropdown-toggle-split\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <span class=\"visually-hidden\">Toggle Dropdown</span>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Show)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button></li>\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-file-pdf\"></i> {{ 'Action.Print' | translate }} PDF</button></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showSum\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Sum group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"sum()\"><i class=\"fa-solid fa-sigma\"></i> {{ 'Action.Sum' | translate }}</button>\r\n </div>\r\n <div *ngIf=\"showExport\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Export group\">\r\n <div class=\"btn-group\" role=\"group\">\r\n <button id=\"btn-group-export\" type=\"button\" class=\"btn btn-secondary dropdown-toggle\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"><i class=\"fa-solid fa-download\"></i> {{ 'Action.Export' | translate }}</button>\r\n <ul class=\"dropdown-menu\" aria-labelledby=\"btn-group-export\">\r\n <li><a class=\"dropdown-item\" href=\"javascript:void(0)\" (click)=\"exportExcel()\"><i class=\"fa-solid fa-file-excel\"></i> Excel</a></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <ng-content></ng-content>\r\n</div>","import { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\n\r\n@Injectable({providedIn:'root'})\r\nexport class ZekLoadingService {\r\n private _pendingRequests = 0;\r\n private _loadingSubject$?: BehaviorSubject<boolean>\r\n private _onLoadingObservable?: Observable<boolean>;\r\n\r\n start() {\r\n this._pendingRequests++;\r\n this._loadingSubject$?.next(true);\r\n }\r\n end() {\r\n this._pendingRequests--;\r\n if (this._pendingRequests < 0)\r\n this._pendingRequests = 0;\r\n\r\n if (0 === this._pendingRequests) {\r\n this._loadingSubject$?.next(false);\r\n }\r\n }\r\n\r\n get onLoading() {\r\n if (!this._loadingSubject$) {\r\n this._loadingSubject$ = new BehaviorSubject<boolean>(false);\r\n this._onLoadingObservable = this._loadingSubject$.asObservable();\r\n }\r\n\r\n if (!this._onLoadingObservable)\r\n throw new Error(\"_onExecuteObservable is undefined\");\r\n\r\n return this._onLoadingObservable;\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class ZekLoadingInterceptor implements HttpInterceptor {\r\n constructor(private readonly _loading: ZekLoadingService) {\r\n }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n this._loading.start();\r\n\r\n return next.handle(request).pipe(\r\n finalize(() => {\r\n this._loading.end();\r\n })\r\n );\r\n }\r\n}\r\n\r\nexport const ZekLoadingInterceptorProvider = [{\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: ZekLoadingInterceptor,\r\n multi: true\r\n}];","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { ZekLoadingService } from './loading-interceptor';\r\n\r\n@Component({\r\n selector: 'zek-loading',\r\n styleUrls: ['./loading.css'],\r\n template: `\r\n<div *ngIf=\"show\" id=\"loading\" class=\"progress\">\r\n <div class=\"progress-bar progress-bar-striped progress-bar-animated bg-danger\" role=\"progressbar\" style=\"width:100%\" aria-valuenow=\"100\" aria-valuemin=\"0\" aria-valuemax=\"100\"></div>\r\n</div>\r\n`\r\n})\r\nexport class ZekLoading implements OnInit, OnDestroy {\r\n show: boolean = false;\r\n private subscription?: Subscription;\r\n constructor(private readonly _loading: ZekLoadingService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.subscription = this._loading.onLoading.subscribe(x => {\r\n this.show = x\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription?.unsubscribe();\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { ZekLoadingInterceptor, ZekLoadingInterceptorProvider } from './loading-interceptor';\r\nimport { ZekLoading } from './loading';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ],\r\n declarations: [\r\n ZekLoading\r\n ],\r\n providers: [\r\n ZekLoadingInterceptor,\r\n ZekLoadingInterceptorProvider,\r\n ],\r\n exports: [\r\n ZekLoading,\r\n ]\r\n})\r\nexport class ZekLoadingModule {\r\n}\r\n","export * from './loading.module';\r\nexport * from './loading';\r\n// export * from './loading-interceptor';","import { Directive, ElementRef, HostListener, Input } from \"@angular/core\";\r\nimport { BooleanInput, NumberInput } from \"../../components\";\r\nimport { Convert, MathHelper } from \"../../utils\";\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: \"[numeric]\",\r\n})\r\nexport class NumericDirective {\r\n private _digits = 0;\r\n get digits() {\r\n return this._digits;\r\n }\r\n @Input()\r\n set digits(v: NumberInput) {\r\n let tmp = MathHelper.clamp(Convert.toNumber(v) || 0, 0, 29);\r\n this._digits = tmp;\r\n }\r\n\r\n private _negative: boolean = false;\r\n get negative(): boolean {\r\n return this._negative;\r\n }\r\n @Input() set negative(v: BooleanInput) {\r\n this._negative = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private checkAllowNegative(value: string) {\r\n if (this._digits <= 0) {\r\n return String(value).match(new RegExp(/^-?\\d+$/));\r\n } else {\r\n var regExpString =\r\n \"^-?\\\\s*((\\\\d+(\\\\.\\\\d{0,\" +\r\n this._digits +\r\n \"})?)|((\\\\d*(\\\\.\\\\d{1,\" +\r\n this._digits +\r\n \"}))))\\\\s*$\";\r\n return String(value).match(new RegExp(regExpString));\r\n }\r\n }\r\n\r\n private check(value: string) {\r\n if (this._digits <= 0) {\r\n return String(value).match(new RegExp(/^\\d+$/));\r\n } else {\r\n var regExpString =\r\n \"^\\\\s*((\\\\d+(\\\\.\\\\d{0,\" +\r\n this._digits +\r\n \"})?)|((\\\\d*(\\\\.\\\\d{1,\" +\r\n this._digits +\r\n \"}))))\\\\s*$\";\r\n return String(value).match(new RegExp(regExpString));\r\n }\r\n }\r\n\r\n private run(oldValue: any) {\r\n setTimeout(() => {\r\n let currentValue: string = this.el.nativeElement.value;\r\n let allowNegative = this._negative;\r\n\r\n if (allowNegative) {\r\n if (\r\n ![\"\", \"-\"].includes(currentValue) &&\r\n !this.checkAllowNegative(currentValue)\r\n ) {\r\n this.el.nativeElement.value = oldValue;\r\n }\r\n } else {\r\n if (currentValue !== '' && !this.check(currentValue)) {\r\n this.el.nativeElement.value = oldValue;\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n constructor(private el: ElementRef) { }\r\n\r\n @HostListener(\"keydown\", [\"$event\"])\r\n onKeyDown(event: KeyboardEvent) {\r\n this.run(this.el.nativeElement.value);\r\n }\r\n\r\n @HostListener(\"paste\", [\"$event\"])\r\n onPaste(event: ClipboardEvent) {\r\n this.run(this.el.nativeElement.value);\r\n }\r\n}","import { Component, Input } from '@angular/core';\r\nimport { BooleanInput } from '../../components';\r\nimport { Convert } from '../../utils';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-page-title',\r\n templateUrl: './page-title.component.html',\r\n imports: [CommonModule, TranslateModule]\r\n})\r\nexport class ZekPageTitle {\r\n @Input() icon?: string;\r\n\r\n @Input() title?: string;\r\n\r\n\r\n private _isEditPage: boolean = false;\r\n @Input()\r\n get isEditPage(): boolean {\r\n return this._isEditPage;\r\n }\r\n set isEditPage(v: BooleanInput) {\r\n this._isEditPage = Convert.toBooleanProperty(v);\r\n }\r\n\r\n @Input() modelId?: number | null;\r\n\r\n}","<h1 class=\"h2 pt-3 pb-2 mb-3 border-bottom\">\r\n <i *ngIf=\"icon\" class=\"{{icon}}\"></i><ng-container *ngIf=\"icon\">&nbsp;</ng-container>{{ title }}&nbsp;<ng-container *ngIf=\"isEditPage\">\r\n <small class=\"text-muted\" *ngIf=\"modelId && modelId > 0 else elseBlock\">[<ng-container>{{ 'Action.Edit' | translate }}</ng-container>]</small>\r\n <ng-template #elseBlock>\r\n <small class=\"text-muted\">[<ng-container>{{ 'Action.Create' | translate }}</ng-container>]</small>\r\n </ng-template>\r\n </ng-container>\r\n</h1>","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { BooleanInput } from '../../../components';\r\nimport { Pager } from '../../../models';\r\nimport { Convert } from '../../../utils';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-pager',\r\n templateUrl: './pager.html',\r\n styles: [':host { display: block; }'],\r\n imports: [CommonModule, TranslateModule],\r\n})\r\nexport class ZekPager {\r\n @Input() pager = new Pager();\r\n\r\n private _showPageSize: boolean = true;\r\n @Input()\r\n get showPageSize(): boolean {\r\n return this._showPageSize;\r\n }\r\n set showPageSize(v: BooleanInput) {\r\n this._showPageSize = Convert.toBooleanProperty(v);\r\n }\r\n\r\n @Input() pagerAlign = 'start';\r\n\r\n\r\n setPage(page: number) {\r\n // if (!this.pager) return;\r\n\r\n if (page === this.pager.pageNumber)\r\n return;\r\n this.onPageChange.emit(page);\r\n }\r\n setPageSize(pageSize: number) {\r\n // if (!this.pager) return;\r\n\r\n if (pageSize === this.pager.pageSize)\r\n return;\r\n this.onPageSizeChange.emit(pageSize);\r\n }\r\n\r\n @Output() onPageChange = new EventEmitter<number>();\r\n\r\n @Output() onPageSizeChange = new EventEmitter<number>();\r\n}","<div *ngIf=\"pager\" class=\"row\">\r\n <div [ngClass]=\"{ 'col-sm-8': showPageSize, 'col-sm-12': !showPageSize}\">\r\n <nav aria-label=\"Pagination\">\r\n <ul class=\"pagination\" [ngClass]=\"{ 'justify-content-center': pagerAlign === 'center', 'justify-content-end': pagerAlign === 'end'}\">\r\n <li [class.disabled]=\"pager.isFirstPage\" class=\"page-item\">\r\n <a class=\"page-link\" (click)=\"setPage(1)\" href=\"javascript:void(0)\" [attr.aria-disabled]=\"pager.isFirstPage ? 'true' : null\" aria-label=\"First\">\r\n <span aria-hidden=\"true\">&laquo;&laquo;</span>\r\n </a>\r\n </li>\r\n <li [class.disabled]=\"!pager.hasPreviousPage\" class=\"page-item\">\r\n <a class=\"page-link\" (click)=\"setPage(pager.pageNumber - 1)\" href=\"javascript:void(0)\" [attr.aria-disabled]=\"!pager.hasPreviousPage ? 'true' : null\" aria-label=\"Previous\">\r\n <span aria-hidden=\"true\">&laquo;</span>\r\n </a>\r\n </li>\r\n <li *ngFor=\"let page of pager.pages\" [class.active]=\"page === pager.pageNumber\" class=\"page-item\"><a class=\"page-link\" (click)=\"setPage(page)\" href=\"javascript:void(0)\">{{page}}</a></li>\r\n <li [class.disabled]=\"!pager.hasNextPage\" class=\"page-item\">\r\n <a class=\"page-link\" (click)=\"setPage(pager.pageNumber + 1)\" href=\"javascript:void(0)\" [attr.aria-disabled]=\"!pager.hasNextPage ? 'true' : null\" aria-label=\"Next\">\r\n <span aria-hidden=\"true\">&raquo;</span>\r\n </a>\r\n </li>\r\n <li [class.disabled]=\"pager.isLastPage\" class=\"page-item\">\r\n <a class=\"page-link\" (click)=\"setPage(pager.pageCount)\" href=\"javascript:void(0)\" [attr.aria-disabled]=\"pager.isLastPage ? 'true' : null\" aria-label=\"Last\">\r\n <span aria-hidden=\"true\">&raquo;&raquo;</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </nav>\r\n </div>\r\n <div class=\"col-sm-4\" *ngIf=\"showPageSize\">\r\n <div class=\"float-end\">\r\n <div class=\"dropdown\">\r\n <button class=\"btn btn-secondary dropdown-toggle\" type=\"button\" id=\"page-size-button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n {{pager.pageSize}}\r\n </button>\r\n <ul class=\"dropdown-menu dropdown-menu-end\" aria-labelledby=\"page-size-button\">\r\n <li><h6 class=\"dropdown-header\">{{ 'Pagination.PageSize' | translate }}</h6></li>\r\n <li><a class=\"dropdown-item\" [class.active]=\"pager.pageSize === 10\" (click)=\"setPageSize(10)\" href=\"javascript:void(0)\">10</a></li>\r\n <li><a class=\"dropdown-item\" [class.active]=\"pager.pageSize === 20\" (click)=\"setPageSize(20)\" href=\"javascript:void(0)\">20</a></li>\r\n <li><a class=\"dropdown-item\" [class.active]=\"pager.pageSize === 50\" (click)=\"setPageSize(50)\" href=\"javascript:void(0)\">50</a></li>\r\n <li><a class=\"dropdown-item\" [class.active]=\"pager.pageSize === 100\" (click)=\"setPageSize(100)\" href=\"javascript:void(0)\">100</a></li>\r\n <li><a class=\"dropdown-item\" [class.active]=\"pager.pageSize === 500\" (click)=\"setPageSize(500)\" href=\"javascript:void(0)\">500</a></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"float-end mt-2\">\r\n {{pager.firstItemOnPage}} - {{pager.lastItemOnPage}} of {{pager.totalItemCount}} &nbsp;\r\n </div>\r\n </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@Component({\r\n standalone:true,\r\n selector: 'zek-field-validator, [zek-field-validator]',\r\n host: { '[class]': '\"invalid-tooltip\"' },\r\n templateUrl: './field-validator.html',\r\n imports: [CommonModule, TranslateModule]\r\n})\r\nexport class ZekFieldValidator {\r\n @Input() field: any;\r\n // @Input() field?: NgModel;\r\n\r\n constructor() {\r\n if (this.field)\r\n console.log(this.field.errors);\r\n }\r\n}","<ng-container *ngIf=\"field\">\r\n <ng-container *ngIf=\"field.invalid && (field.dirty || field.touched || field.formDirective?.submitted)\">\r\n <ng-container *ngIf=\"field.errors\">\r\n <ng-container *ngIf=\"field.errors.required\">{{ 'Validation.Required' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.minlength\">{{ 'Validation.MinLengthFormat' | translate:{ value: field.errors.minlength.requiredLength } }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.maxlength\">{{ 'Validation.MaxLengthFormat' | translate:{ value: field.errors.maxlength.requiredLength } }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.email\">{{ 'Validation.Pattern' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.pattern\">{{ 'Validation.Pattern' | translate }}</ng-container><!-- {{ field.errors.pattern.requiredPattern }} -->\r\n <ng-container *ngIf=\"field.errors.mismatch\">{{ 'Validation.Mismatch' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.server\">{{field.errors.server}}</ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { BooleanInput } from '../../components';\r\nimport { Convert } from '../../utils';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ZekFieldValidator } from '../validator';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-password',\r\n templateUrl: './password.html',\r\n imports: [FormsModule, ZekFieldValidator]\r\n})\r\nexport class ZekPassword {\r\n @Input() name = 'Password';\r\n\r\n private _required: boolean = false;\r\n @Input()\r\n get required(): boolean {\r\n return this._required;\r\n }\r\n set required(v: BooleanInput) {\r\n this._required = Convert.toBooleanProperty(v);\r\n }\r\n\r\n @Input() minlength: number | string | null = null;\r\n @Input() maxlength: number | string | null = null;\r\n\r\n @Input() model?: string | null;\r\n @Output('modelChange') onChange = new EventEmitter();\r\n\r\n private _type = 'password';\r\n get type() {\r\n return this._type;\r\n }\r\n\r\n showHide() {\r\n this._type = this._type === 'password' ? 'text' : 'password';\r\n }\r\n}","<div class=\"input-group has-validation\">\r\n <input type=\"{{type}}\" class=\"form-control\" name=\"{{name}}\" id=\"{{name}}\" [attr.aria-describedby]=\"name+'-show'\"\r\n [required]=\"required\" [minlength]=\"minlength\" [maxlength]=\"maxlength\"\r\n [ngModel]=\"model\" (ngModelChange)=\"onChange.emit($event)\"\r\n #password=\"ngModel\"\r\n >\r\n <button class=\"btn btn-outline-secondary\" type=\"button\" id=\"{{name}}-show\" (click)=\"showHide()\"><i class=\"fa-solid fa-eye\"></i></button>\r\n <div zek-field-validator [field]=\"password\"></div>\r\n</div>","import { Component, Input } from '@angular/core';\r\nimport { BooleanInput, NumberInput } from '../../components';\r\nimport { Convert } from '../../utils';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nfunction clamp(v: number, min = 0, max = 100) {\r\n return Math.max(min, Math.min(max, v));\r\n}\r\n\r\ntype Background = 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'light' | 'dark' | 'body' | 'white' | 'transparent';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-progress',\r\n templateUrl: './progress.html',\r\n styles: [':host { display: block; }'],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\nexport class ZekProgress {\r\n @Input()\r\n get value(): number {\r\n return this._value;\r\n }\r\n set value(v: NumberInput) {\r\n let tmp = clamp(Convert.toNumber(v) || 0);\r\n if (this._value !== tmp) {\r\n this._value = tmp;\r\n }\r\n }\r\n private _value: number = 0;\r\n\r\n\r\n @Input()\r\n get showValue(): boolean {\r\n return this._showValue;\r\n }\r\n set showValue(v: BooleanInput) {\r\n this._showValue = Convert.toBooleanProperty(v);\r\n }\r\n private _showValue: boolean = false;\r\n\r\n @Input()\r\n get showTitle(): boolean {\r\n return this._showTitle;\r\n }\r\n set showTitle(v: BooleanInput) {\r\n this._showTitle = Convert.toBooleanProperty(v);\r\n }\r\n private _showTitle: boolean = true;\r\n\r\n get _title() {\r\n return this._showTitle ? `${this._value} %` : null;\r\n }\r\n\r\n\r\n @Input()\r\n get striped(): boolean {\r\n return this._striped;\r\n }\r\n set striped(v: BooleanInput) {\r\n this._striped = Convert.toBooleanProperty(v);\r\n }\r\n private _striped: boolean = false;\r\n\r\n\r\n @Input()\r\n get animated(): boolean {\r\n return this._animated;\r\n }\r\n set animated(v: BooleanInput) {\r\n this._animated = Convert.toBooleanProperty(v);\r\n }\r\n private _animated: boolean = false;\r\n\r\n @Input()\r\n get label() {\r\n return this._label;\r\n }\r\n set label(v: string | null | undefined) {\r\n this._label = v ? v : null;\r\n }\r\n private _label: string | null = null;\r\n\r\n\r\n\r\n @Input()\r\n get height() {\r\n return this._height;\r\n }\r\n set height(v: NumberInput) {\r\n let tmp = Convert.toNumber(v) || 0;\r\n this._height = tmp > 0 ? tmp : null;\r\n }\r\n private _height: number | null = null;\r\n\r\n\r\n @Input()\r\n get background() {\r\n return this._background;\r\n }\r\n set background(v: Background) {\r\n this._background = v;\r\n }\r\n private _background: Background = 'primary';\r\n}","<div class=\"progress\" [style.height.px]=\"height\" [title]=\"_title\" >\r\n <div class=\"progress-bar bg-{{background}}\" role=\"progressbar\"\r\n [class.progress-bar-striped]=\"striped || animated\"\r\n [class.progress-bar-animated]=\"animated\"\r\n [style.width.%]=\"value\"\r\n [attr.aria-valuenow]=\"value\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\">\r\n <ng-container *ngIf=\"showValue\">{{value}}%</ng-container>\r\n <ng-content></ng-content>\r\n </div>\r\n</div>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, forwardRef, Input, OnInit, Renderer2, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { BooleanInput } from '../../components';\r\nimport { CoreUiComponent } from '../../components/core-ui.component';\r\nimport { Convert } from '../../utils';\r\n\r\nlet uniqueId = 0;\r\n\r\n/**\r\n * Provider Expression that allows zek-radio to register as a ControlValueAccessor. This\r\n * allows it to support [(ngModel)] and ngControl.\r\n * @docs-private\r\n */\r\nconst ZEK_RADIO_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ZekRadio),\r\n multi: true,\r\n};\r\n\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-radio',\r\n templateUrl: './radio.html',\r\n host: {\r\n '[attr.id]': 'id',\r\n '[attr.tabindex]': 'null',\r\n '[attr.aria-label]': 'null',\r\n '[attr.aria-labelledby]': 'null',\r\n '[attr.aria-describedby]': 'null',\r\n // Note: under normal conditions focus shouldn't land on this element, however it may be\r\n // programmatically set, for example inside of a focus trap, in this case we want to forward\r\n // the focus to the native element.\r\n '(focus)': '_inputElement.nativeElement.focus()',\r\n\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [ZEK_RADIO_CONTROL_VALUE_ACCESSOR],\r\n})\r\nexport class ZekRadio extends CoreUiComponent\r\n implements OnInit {\r\n constructor(\r\n private _changeDetector: ChangeDetectorRef,\r\n _renderer: Renderer2,\r\n _elementRef: ElementRef) {\r\n super(_renderer, _elementRef);\r\n }\r\n\r\n\r\n private _uniqueId: string = `zek-radio-${++uniqueId}`;\r\n\r\n /** The unique ID for the radio button. */\r\n @Input() id: string = this._uniqueId;\r\n\r\n /** Used to set the 'aria-label' attribute on the underlying input element. */\r\n @Input('aria-label') ariaLabel?: string | null;\r\n\r\n /** The 'aria-labelledby' attribute takes precedence as the element's text alternative. */\r\n @Input('aria-labelledby') ariaLabelledby?: string | null;\r\n\r\n /** The 'aria-describedby' attribute is read after the element's label and field type. */\r\n @Input('aria-describedby') ariaDescribedby?: string | null;\r\n\r\n /** The native `<input type=radio>` element */\r\n @ViewChild('input') _inputElement?: ElementRef<HTMLInputElement> | null;\r\n\r\n\r\n\r\n private _inline: boolean = false;\r\n get inline() {\r\n return this._inline;\r\n }\r\n @Input()\r\n set inline(v: BooleanInput) {\r\n let newValue = Convert.toBooleanProperty(v);\r\n if (this._inline !== newValue) {\r\n this._inline = newValue;\r\n this.onInlineChanged();\r\n }\r\n }\r\n onInlineChanged() { }\r\n\r\n get inputId(): string {\r\n return `${this.id || this._uniqueId}-input`;\r\n }\r\n\r\n\r\n /** The value from ngModel. */\r\n private modelValue: any;\r\n\r\n\r\n private _checked: boolean = false;\r\n @Input()\r\n get checked(): boolean {\r\n return this._checked;\r\n }\r\n set checked(value: BooleanInput) {\r\n const newCheckedState = Convert.toBooleanProperty(value);\r\n if (this._checked !== newCheckedState) {\r\n this._checked = newCheckedState;\r\n this._markForCheck();\r\n }\r\n }\r\n\r\n\r\n override writeValue(value: any): void {\r\n if (this.modelValue !== value) {\r\n this.modelValue = value;\r\n this.checked = this.modelValue === this._value;\r\n }\r\n\r\n }\r\n override onValueChanged() {\r\n if (!this.checked) {\r\n // Update checked when the value changed to match the radio group's value\r\n this.checked = this.modelValue === this._value;\r\n }\r\n }\r\n\r\n\r\n override onRequiredChanged(): void {\r\n this._markForCheck();\r\n }\r\n override onDisabledChanged() {\r\n this._markForCheck();\r\n }\r\n\r\n\r\n /**\r\n * Marks the radio button as needing checking for change detection.\r\n * This method is exposed because the parent radio group will directly\r\n * update bound properties of the radio button.\r\n */\r\n private _markForCheck() {\r\n // When group value changes, the button will not be notified. Use `markForCheck` to explicit\r\n // update radio button's status\r\n this._changeDetector.markForCheck();\r\n }\r\n\r\n\r\n override init(): void {\r\n // Determine if it should be checked\r\n this.checked = this.modelValue === this._value;\r\n }\r\n\r\n\r\n /** Triggered when the radio button receives an interaction from the user. */\r\n override _onInputInteraction(event: Event) {\r\n // We always have to stop propagation on the change event.\r\n // Otherwise the change event, from the input element, will bubble up and\r\n // emit its event object to the `change` output.\r\n event.stopPropagation();\r\n\r\n if (!this.checked && !this.disabled) {\r\n const modelValueChanged = this.value !== this.modelValue;\r\n this.checked = true;\r\n this.modelValue = this._value;\r\n this._emitChangeEvent();\r\n\r\n if (modelValueChanged) {\r\n this._onChange(this._value);\r\n }\r\n }\r\n }\r\n}","<div class=\"form-check\" [class.form-check-inline]=\"inline\">\r\n <input #input class=\"form-check-input\" type=\"radio\"\r\n [id]=\"inputId\"\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled\"\r\n [attr.name]=\"name\"\r\n [attr.value]=\"value\"\r\n [required]=\"required\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledby\"\r\n [attr.aria-describedby]=\"ariaDescribedby\"\r\n (change)=\"_onInputInteraction($event)\">\r\n <label [for]=\"inputId\">\r\n <ng-content></ng-content>\r\n </label>\r\n</div>","import { Directive, Input } from '@angular/core';\r\nimport { BooleanInput } from '../../components';\r\nimport { Convert } from '../../utils';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[readonly],[readOnly]',\r\n host: {\r\n '[attr.readonly]': '_readonly ? \"\" : null'\r\n }\r\n})\r\nexport class ZekReadOnlyDirective {\r\n _readonly = false;\r\n @Input() readonly(v: BooleanInput) {\r\n this._readonly = Convert.toBooleanProperty(v);\r\n }\r\n}","import { HtmlHelper } from \"../../utils\";\r\nimport { ReCaptchaV2 } from \"./recaptcha.model\";\r\n\r\ndeclare var grecaptcha: ReCaptchaV2.ReCaptcha & {\r\n enterprise: ReCaptchaV2.ReCaptcha;\r\n};\r\n\r\ndeclare global {\r\n interface Window {\r\n recaptchaloaded: () => void;\r\n }\r\n}\r\nfunction loadScript(\r\n siteKey: \"explicit\" | string,\r\n onLoaded: (grecaptcha: ReCaptchaV2.ReCaptcha) => void,//ReCaptchaV2.ReCaptcha\r\n urlParams?: string,\r\n url?: string,\r\n nonce?: string\r\n): void {\r\n window.recaptchaloaded = () => {\r\n onLoaded(grecaptcha);\r\n };\r\n\r\n const baseUrl = url || \"https://www.google.com/recaptcha/api.js\";\r\n let params = urlParams || '';\r\n let src = `${baseUrl}?render=${siteKey}&onload=recaptchaloaded${params}`;\r\n\r\n HtmlHelper.loadScript(src, nonce, true, true);\r\n}\r\n\r\nexport const loader = { loadScript };","import { Inject, Injectable, NgZone, Optional } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { RECAPTCHA_SITE_KEY } from '../../tokens';\r\nimport { loader } from './loader';\r\nimport { ReCaptchaV2 } from './recaptcha.model';\r\n\r\ndeclare var grecaptcha: ReCaptchaV2.ReCaptcha & {\r\n enterprise: ReCaptchaV2.ReCaptcha;\r\n};\r\n\r\n\r\nexport interface ReCaptchaConfig {\r\n siteKey: string;\r\n}\r\n\r\n\r\nexport interface OnExecuteData {\r\n /**\r\n * The name of the action that has been executed.\r\n */\r\n action: string;\r\n /**\r\n * The token that reCAPTCHA v3 provided when executing the action.\r\n */\r\n token: string;\r\n}\r\n\r\nexport interface OnExecuteErrorData {\r\n /**\r\n * The name of the action that has been executed.\r\n */\r\n action: string;\r\n /**\r\n * The error which was encountered\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n error: any;\r\n}\r\n\r\ntype ActionBacklogEntry = [string, Subject<string>];\r\n\r\n\r\n\r\n@Injectable()\r\nexport class ReCaptchaService {\r\n private readonly isBrowser: boolean = true;\r\n private readonly siteKey: string;\r\n private readonly zone: NgZone;\r\n\r\n private actionBacklog: ActionBacklogEntry[] | undefined;\r\n private grecaptcha?: ReCaptchaV2.ReCaptcha;\r\n private onExecuteSubject?: Subject<OnExecuteData>;\r\n private onExecuteErrorSubject?: Subject<OnExecuteErrorData>;\r\n private onExecuteObservable?: Observable<OnExecuteData>;\r\n private onExecuteErrorObservable?: Observable<OnExecuteErrorData>;\r\n\r\n constructor(\r\n zone: NgZone,\r\n @Optional() @Inject(RECAPTCHA_SITE_KEY) siteKey: string) {\r\n\r\n this.zone = zone;\r\n this.siteKey = siteKey;\r\n this.init();\r\n }\r\n\r\n public get onExecute(): Observable<OnExecuteData> {\r\n if (!this.onExecuteSubject) {\r\n this.onExecuteSubject = new Subject<OnExecuteData>();\r\n this.onExecuteObservable = this.onExecuteSubject.asObservable();\r\n }\r\n\r\n if (!this.onExecuteObservable)\r\n throw new Error(\"onExecuteObservable is undefined\");\r\n\r\n return this.onExecuteObservable;\r\n }\r\n\r\n public get onExecuteError(): Observable<OnExecuteErrorData> {\r\n if (!this.onExecuteErrorSubject) {\r\n this.onExecuteErrorSubject = new Subject<OnExecuteErrorData>();\r\n this.onExecuteErrorObservable = this.onExecuteErrorSubject.asObservable();\r\n }\r\n\r\n if (!this.onExecuteErrorObservable)\r\n throw new Error(\"onExecuteErrorObservable is undefined\");\r\n\r\n return this.onExecuteErrorObservable;\r\n }\r\n\r\n /**\r\n * Executes the provided `action` with reCAPTCHA v3 API.\r\n * Use the emitted token value for verification purposes on the backend.\r\n *\r\n * For more information about reCAPTCHA v3 actions and tokens refer to the official documentation at\r\n * https://developers.google.com/recaptcha/docs/v3.\r\n *\r\n * @param {string} action the action to execute\r\n * @returns {Observable<string>} an `Observable` that will emit the reCAPTCHA v3 string `token` value whenever ready.\r\n * The returned `Observable` completes immediately after emitting a value.\r\n */\r\n public execute(action: string): Observable<string> {\r\n const subject = new Subject<string>();\r\n if (this.isBrowser) {\r\n if (!this.grecaptcha) {\r\n // todo: add to array of later executions\r\n if (!this.actionBacklog) {\r\n this.actionBacklog = [];\r\n }\r\n\r\n this.actionBacklog.push([action, subject]);\r\n } else {\r\n this.executeActionWithSubject(action, subject);\r\n }\r\n }\r\n\r\n return subject.asObservable();\r\n }\r\n\r\n /** @internal */\r\n private executeActionWithSubject(action: string, subject: Subject<string>): void {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const onError = (error: any) => {\r\n this.zone.run(() => {\r\n subject.error(error);\r\n if (this.onExecuteErrorSubject) {\r\n // We don't know any better at this point, unfortunately, so have to resort to `any`\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\r\n this.onExecuteErrorSubject.next({ action, error });\r\n }\r\n });\r\n };\r\n\r\n this.zone.runOutsideAngular(() => {\r\n try {\r\n if (this.grecaptcha)\r\n this.grecaptcha.execute(this.siteKey, { action }).then((token: string) => {\r\n this.zone.run(() => {\r\n subject.next(token);\r\n subject.complete();\r\n if (this.onExecuteSubject) {\r\n this.onExecuteSubject.next({ action, token });\r\n }\r\n });\r\n }, onError);\r\n } catch (e) {\r\n onError(e);\r\n }\r\n });\r\n }\r\n\r\n /** @internal */\r\n private init() {\r\n if (this.isBrowser) {\r\n if (\"grecaptcha\" in window) {\r\n this.grecaptcha = grecaptcha;\r\n } else {\r\n loader.loadScript(this.siteKey, this.onLoadComplete);\r\n }\r\n }\r\n }\r\n\r\n /** @internal */\r\n private onLoadComplete = (grecaptcha: ReCaptchaV2.ReCaptcha) => {\r\n this.grecaptcha = grecaptcha;\r\n if (this.actionBacklog && this.actionBacklog.length > 0) {\r\n this.actionBacklog.forEach(([action, subject]) => this.executeActionWithSubject(action, subject));\r\n this.actionBacklog = undefined;\r\n }\r\n }\r\n}","import { ModuleWithProviders, NgModule } from \"@angular/core\";\r\nimport { ReCaptchaConfig } from \"./index\";\r\nimport { RECAPTCHA_SITE_KEY } from \"../../tokens\";\r\nimport { ReCaptchaService } from \"./recaptcha.service\";\r\n\r\n//4.2.0\r\n@NgModule({\r\n providers: [ReCaptchaService]\r\n})\r\nexport class RecaptchaModule {\r\n public static forRoot(config: ReCaptchaConfig): ModuleWithProviders<RecaptchaModule> {\r\n return {\r\n ngModule: RecaptchaModule,\r\n providers: [\r\n ReCaptchaService,\r\n {\r\n provide: RECAPTCHA_SITE_KEY,\r\n useValue: config.siteKey\r\n },\r\n ]\r\n };\r\n }\r\n\r\n public static forChild(config: ReCaptchaConfig) {\r\n return this.forRoot(config);\r\n }\r\n}\r\n","import { Component, ElementRef, forwardRef, Input, Renderer2 } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { BooleanInput, CoreUiComponent } from '../../components';\r\nimport { ArrayHelper, Convert } from '../../utils';\r\nimport { KeyPairOption } from './model';\r\n\r\n\r\nlet uniqueId = 0;\r\n\r\n\r\nconst ZEK_SELECT_MULTIPLE_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ZekSelectMultiple),\r\n multi: true,\r\n};\r\n\r\n@Component({\r\n selector: 'zek-select,[zek-select]',\r\n templateUrl: './select.html',\r\n providers: [ZEK_SELECT_MULTIPLE_CONTROL_VALUE_ACCESSOR],\r\n})\r\n\r\nexport class ZekSelectMultiple extends CoreUiComponent {\r\n constructor(renderer: Renderer2, elementRef: ElementRef) {\r\n super(renderer, elementRef);\r\n }\r\n\r\n private _uniqueId: string = `zek-select-${++uniqueId}`;\r\n /** The unique ID for the radio button. */\r\n @Input() id: string = this._uniqueId;\r\n\r\n @Input() valueField?: string | null;\r\n @Input() textField?: string | null;\r\n @Input() checkedTextField?: string | null;\r\n\r\n @Input() css: 'primary' | 'secondary' | 'success' | 'danger ' | 'warning' | 'info' | 'light' | 'dark' = 'primary';\r\n\r\n\r\n @Input()\r\n get placeholder(): string {\r\n return this._placeholder;\r\n }\r\n set placeholder(value: string | null | undefined) {\r\n if (value)\r\n this._placeholder = value;\r\n else\r\n this._placeholder = '';\r\n }\r\n private _placeholder = '';\r\n\r\n @Input()\r\n get label(): string {\r\n return this._label;\r\n }\r\n set label(value: string | null | undefined) {\r\n if (value)\r\n this._label = value;\r\n else\r\n this._label = '';\r\n }\r\n private _label = '';\r\n\r\n\r\n\r\n @Input()\r\n get multiple() {\r\n return this._multiple;\r\n }\r\n set multiple(value: BooleanInput) {\r\n this._multiple = Convert.toBooleanProperty(value);\r\n }\r\n private _multiple = true;\r\n\r\n\r\n private _selected: any[] = [];\r\n\r\n @Input()\r\n get data() {\r\n return this._data;\r\n }\r\n set data(value: any[] | null | undefined) {\r\n if (this._data !== value) {\r\n this._data = value;\r\n this.onDataChanged();\r\n }\r\n }\r\n private _data?: any[] | null = [];\r\n normalized: KeyPairOption[] = [];\r\n onDataChanged() {\r\n this._setSelectionByValue(this._value);\r\n if (this.isInitialized) {\r\n this._normalizeData();\r\n }\r\n }\r\n\r\n _text = '';\r\n\r\n\r\n\r\n override onValueChanged() {\r\n if (Array.isArray(this._data)) {\r\n this._setSelectionByValue(this._value);\r\n }\r\n }\r\n\r\n\r\n override init(): void {\r\n this._normalizeData();\r\n }\r\n\r\n\r\n private _normalizeData() {\r\n this.normalized = [];\r\n if (Array.isArray(this._data)) {\r\n if (this.valueField && this.textField) {\r\n for (const item of this._data) {\r\n this.normalized.push({ key: item[this.valueField], value: item[this.textField], checked: this._selected.includes(item), item: item });\r\n }\r\n } else {\r\n for (const item of this._data) {\r\n this.normalized.push({ key: item, value: item, checked: this._selected.includes(item), item });\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Sets the selected option based on a value. If no option can be\r\n * found with the designated value, the select trigger is cleared.\r\n */\r\n private _setSelectionByValue(value: any | any[]): void {\r\n this._selected = [];\r\n\r\n if (this.multiple && value) {\r\n if (!Array.isArray(value)) {\r\n throw new Error(\"value is not array\");\r\n }\r\n\r\n if (Array.isArray(this._data)) {\r\n let notUnique: any[] = [];\r\n if (this.valueField) {\r\n for (const currentValue of value) {\r\n let items = ArrayHelper.filterByKey(currentValue, this.valueField, this._data);\r\n notUnique = notUnique.concat(items);\r\n }\r\n } else {\r\n for (const currentValue of value) {\r\n let items = this._data.filter(x => x === currentValue);\r\n notUnique = notUnique.concat(items);\r\n }\r\n }\r\n\r\n this._selected = ArrayHelper.distinct(notUnique);\r\n }\r\n } else {\r\n if (Array.isArray(this._data)) {\r\n if (this.valueField) {\r\n this._selected = ArrayHelper.filterByKey(value, this.valueField, this._data);\r\n } else {\r\n this._selected = this._data.filter(x => x === value);\r\n }\r\n }\r\n }\r\n\r\n for (const norm of this.normalized) {\r\n norm.checked = this._selected.includes(norm.item);\r\n }\r\n this._initText();\r\n }\r\n\r\n\r\n\r\n\r\n toggleChecked(v: any) {\r\n if (v && !this.disabled && !this.readonly) {\r\n if (!v.checked) {\r\n v.checked = true;\r\n\r\n if (this.multiple) {\r\n let tmp = [];\r\n for (const item of this.normalized) {\r\n if (item.checked) {\r\n tmp.push(item.key);\r\n }\r\n }\r\n\r\n this.setNgModel(tmp);\r\n // this.value = tmp;\r\n }\r\n else {\r\n //this.value = v.key;\r\n this.setNgModel(v.key);\r\n }\r\n } else {\r\n v.checked = false;\r\n if (this.multiple) {\r\n if (Array.isArray(this._value)) {\r\n this.setNgModel((this._value as any[]).filter(x => x !== v.key));\r\n }\r\n } else {\r\n this.setNgModel(null);\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n private _initText() {\r\n let field = this.checkedTextField || this.textField || '';\r\n if (field) {\r\n this._text = this._selected.filter(x => x !== undefined && x !== null).map(x => x[field]).join(', ');\r\n } else {\r\n this._text = this._selected.join(', ');\r\n }\r\n }\r\n}\r\n","<div class=\"dropdown\" id=\"dropdown-{{id}}\">\r\n <button class=\"btn btn-{{css}} dropdown-toggle\" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n {{label}} <ng-container *ngIf=\"!_text\">{{placeholder}}</ng-container> {{_text}}\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <ng-container *ngIf=\"normalized\">\r\n <li><a class=\"dropdown-item\" href=\"javascript:void(0)\" *ngFor=\"let item of normalized\" (click)=\"toggleChecked(item)\">\r\n <span *ngIf=\"item.checked\"><i class=\"fa-regular fa-square-check\"></i></span>\r\n <span *ngIf=\"!item.checked\"><i class=\"fa-regular fa-square\"></i></span>\r\n {{item.value}}\r\n </a></li>\r\n </ng-container>\r\n </ul>\r\n</div>"," \r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ZekSelectMultiple } from './select';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule\r\n ],\r\n declarations: [\r\n ZekSelectMultiple\r\n ],\r\n exports: [\r\n ZekSelectMultiple\r\n ],\r\n})\r\n\r\nexport class ZekSelectModule {\r\n}","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { RandomHelper, StringHelper } from '../../utils';\r\n\r\n@Component({\r\n selector: 'zek-select2,[zek-select2]',\r\n templateUrl: './select2.html',\r\n styleUrls: ['./select2.css']\r\n\r\n})\r\nexport class ZekSelect2 implements OnDestroy {\r\n filter?: string | null;\r\n text?: string | null;\r\n\r\n readonly elementId = RandomHelper.randomHex();\r\n\r\n private _data: Array<any> = [];\r\n @Input()\r\n get data(): Array<any> {\r\n return this._data;\r\n }\r\n set data(value: Array<any>) {\r\n if (this._data !== value) {\r\n this._data = value;\r\n this.findAndSetItem();\r\n this.filterData();\r\n }\r\n }\r\n filteredData: Array<any> = [];\r\n\r\n @Input() textField: any;\r\n @Input() valueField: any;\r\n @Input() placeholder: string = ''\r\n\r\n @Output() selectedItemChange = new EventEmitter<any>();\r\n private _selectedItem: any;\r\n get selectedItem(): any {\r\n return this._selectedItem;\r\n }\r\n\r\n @Output() valueChange = new EventEmitter<any>();\r\n private _value: any;\r\n @Input()\r\n get value() {\r\n return this._value;\r\n }\r\n set value(v: any) {\r\n if (this._value !== v) {\r\n this._value = v;\r\n this.findAndSetItem();\r\n }\r\n }\r\n\r\n private findAndSetItem() {\r\n let foundItem = null;\r\n if (this._value === undefined || this._value === null || !this.data) {\r\n\r\n } else if (this.valueField === undefined || this.valueField === null || this.valueField === '') {\r\n foundItem = this.data.find(x => x === this._value);\r\n } else {\r\n foundItem = this.data.find(x => x[this.valueField] === this._value);\r\n }\r\n\r\n this._selectedItem = foundItem;\r\n this.setText();\r\n }\r\n\r\n\r\n\r\n\r\n // private _dropdown: any;\r\n // public get dropdown(): any {\r\n // if (!this._dropdown) {\r\n // let el = document.getElementById('btn-' + this.elementId);\r\n // this._dropdown = new bootstrap.Dropdown(el);\r\n // }\r\n // return this._dropdown;\r\n // }\r\n // public set dropdown(v: any) {\r\n // this._dropdown = v;\r\n // }\r\n\r\n ngOnDestroy() {\r\n // this.dropdown?.dispose();\r\n // this.dropdown = null;\r\n }\r\n\r\n\r\n onTextChange(text: string) {\r\n this.filter = StringHelper.tryTrim(text);\r\n this.filterData();\r\n }\r\n\r\n private filterData() {\r\n if (this.filter && this.filter !== '') {\r\n let searchString = this.filter;\r\n if (this.textField === undefined || this.textField === null) {\r\n this.filteredData = this.data.filter(item => item.toLowerCase().indexOf(searchString.toLowerCase()) !== -1);\r\n } else {\r\n this.filteredData = this.data.filter(item => item[this.textField].toLowerCase().indexOf(searchString.toLowerCase()) !== -1);\r\n }\r\n }\r\n else// if (this.filter === undefined || this.filter === null || this.filter === '') \r\n {\r\n this.filteredData = this.data;\r\n }\r\n }\r\n\r\n onFocus(e: FocusEvent) {\r\n // if (this.dropdown){\r\n // this.dropdown.show();\r\n // }\r\n // let dropdown = document.getElementById(`dropdown-menu-container-${this.elementId}`);\r\n // console.log(dropdown);\r\n\r\n // if (dropdown) {\r\n // console.log(dropdown.classList);\r\n\r\n // if (!dropdown.classList.contains('show')) {\r\n // let el = document.getElementById(`input-${this.elementId}`);\r\n // if (el) {\r\n // el.click();\r\n // }\r\n // }\r\n // }\r\n\r\n\r\n\r\n // let inputId = 'input-' + this.elementId;\r\n // let el = document.getElementById(inputId);\r\n // if (el) {\r\n\r\n // if (!el.classList.contains('show')) {\r\n // this.dropdown?.show();\r\n // }\r\n\r\n // let menuId = '#dropdown-menu-' + this.elementId + ' ' + 'a';\r\n // el.addEventListener('keydown', function (e) {\r\n // if (e.key == 'ArrowDown') {\r\n // (document.querySelectorAll(menuId)[0] as any).focus();\r\n // }\r\n // });\r\n // }\r\n }\r\n inputUnfocused() {\r\n // this.expanded = false;\r\n }\r\n\r\n private setText() {\r\n if (this._selectedItem === undefined || this._selectedItem === null) {\r\n this.text = null;\r\n }\r\n else if (this.textField === undefined || this.textField === null) {\r\n this.text = this._selectedItem;\r\n } else {\r\n this.text = this._selectedItem[this.textField];\r\n }\r\n }\r\n\r\n selectItem(item: any) {\r\n\r\n if (this._selectedItem !== item) {\r\n this._selectedItem = item;\r\n this.selectedItemChange.emit(item);\r\n\r\n this.setText();\r\n\r\n //set value\r\n let v;\r\n if (this.valueField === undefined || this.valueField === null || this.valueField === '') {\r\n // this.value = v\r\n v = item;\r\n } else {\r\n // this.value = v[this.valueField];\r\n v = item[this.valueField];\r\n }\r\n\r\n //if value not equals then emit valueChange\r\n if (this._value !== v) {\r\n this._value = v;\r\n this.valueChange.emit(v);\r\n }\r\n }\r\n }\r\n\r\n\r\n}\r\n","<div class=\"input-group position-relative\" id=\"dropdown-menu-container-{{elementId}}\">\r\n <input type=\"text\" class=\"form-control\" placeholder=\"{{placeholder}}\" data-bs-toggle=\"dropdown\" id=\"input-{{elementId}}\" [(ngModel)]=\"text\" (ngModelChange)=\"onTextChange($event)\" (focus)=\"onFocus($event)\" (blur)=\"inputUnfocused()\">\r\n <button class=\"btn btn-outline-secondary dropdown-toggle\" id=\"btn-{{elementId}}\" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" data-bs-reference=\"parent\"></button>\r\n <ul class=\"dropdown-menu dropdown-menu-start w-100 scrollable-menu\" id=\"dropdown-menu-{{elementId}}\">\r\n <ng-container *ngIf=\"textField\">\r\n <li *ngFor=\"let entry of filteredData\">\r\n <a href=\"javascript:void(0)\" (click)=\"selectItem(entry)\" class=\"dropdown-item\">{{entry[textField]}}</a>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngIf=\"!textField\">\r\n <li *ngFor=\"let entry of filteredData\">\r\n <a href=\"javascript:void(0)\" (click)=\"selectItem(entry)\" class=\"dropdown-item\">{{textField}}</a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n<!-- <kendo-autocomplete\r\n [data]=\"data\"\r\n [filterable]=\"true\"\r\n (valueChange)=\"valueChange($event)\"\r\n (filterChange)=\"filterChange($event)\"\r\n (open)=\"open()\"\r\n (close)=\"close()\"\r\n (focus)=\"focus()\"\r\n (blur)=\"blur()\">\r\n</kendo-autocomplete> -->"," \r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ZekSelect2 } from './select2';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule\r\n ],\r\n declarations: [\r\n ZekSelect2\r\n ],\r\n exports: [\r\n ZekSelect2\r\n ],\r\n})\r\n\r\nexport class Select2Module {\r\n}","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { RandomHelper, StringHelper } from '../../utils';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n//declare let bootstrap: any;\r\n\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-select2-multiple,[zek-select2-multiple]',\r\n templateUrl: './select2-multiple.html',\r\n imports: [CommonModule, FormsModule]\r\n})\r\n\r\nexport class ZekSelect2Multiple {\r\n filter?: string | null;\r\n text?: string | null;\r\n\r\n readonly elementId = RandomHelper.randomHex();\r\n\r\n private _data: Array<any> = [];\r\n @Input()\r\n get data(): Array<any> {\r\n return this._data;\r\n }\r\n set data(value: Array<any>) {\r\n if (this._data !== value) {\r\n this._data = value;\r\n this.findAndSetItems();\r\n this.filterData();\r\n }\r\n }\r\n filteredData: Array<any> = [];\r\n\r\n @Input() textField: any;\r\n @Input() valueField: any;\r\n @Input() placeholder: string = ''\r\n\r\n @Output() selectedItemChange = new EventEmitter<any>();\r\n private _selectedItems: Array<any> = [];\r\n get selectedItems(): Array<any> {\r\n return this._selectedItems;\r\n }\r\n\r\n @Output() valueChange = new EventEmitter<any>();\r\n private _value?: Array<any> | null;\r\n @Input()\r\n get value() {\r\n return this._value;\r\n }\r\n set value(v: any) {\r\n if (this._value !== v) {\r\n this._value = v;\r\n this.findAndSetItems();\r\n }\r\n }\r\n\r\n private findAndSetItems() {\r\n this._data?.forEach(x => x.selected = false);\r\n this._selectedItems = [];\r\n let foundItems: Array<any> = [];\r\n if (this._value === undefined || this._value === null || !this.data) {\r\n\r\n } else if (this.valueField === undefined || this.valueField === null || this.valueField === '') {\r\n foundItems = this.data.filter(x => this._value?.includes(x));\r\n } else {\r\n foundItems = this.data.filter(x => this._value?.includes(x[this.valueField]));\r\n }\r\n\r\n if (foundItems.length > 0) {\r\n foundItems.forEach(x => x.selected = true);\r\n this._selectedItems = foundItems;\r\n }\r\n this.setText();\r\n }\r\n\r\n\r\n\r\n onTextChange(text: string) {\r\n this.filter = StringHelper.tryTrim(text);\r\n this.filterData();\r\n }\r\n\r\n private filterData() {\r\n if (this.filter && this.filter !== '') {\r\n let searchString = this.filter;\r\n if (this.textField === undefined || this.textField === null) {\r\n this.filteredData = this.data.filter(item => item.toLowerCase().indexOf(searchString.toLowerCase()) !== -1);\r\n } else {\r\n this.filteredData = this.data.filter(item => item[this.textField].toLowerCase().indexOf(searchString.toLowerCase()) !== -1);\r\n }\r\n }\r\n else {\r\n this.filteredData = this.data;\r\n }\r\n }\r\n\r\n onFocus(e: FocusEvent) {\r\n this.filter = '';\r\n this.text = '';\r\n this.filterData();\r\n }\r\n inputUnfocused() {\r\n this.setText();\r\n }\r\n\r\n private setText() {\r\n if (this.textField === undefined || this.textField === null) {\r\n this.text = this._selectedItems.join(', ');\r\n } else {\r\n this.text = this._selectedItems.map(x => x[this.textField]).join(', ');\r\n }\r\n }\r\n\r\n selectItem(item: any) {\r\n item.selected = !item.selected;\r\n\r\n if (item.selected) {\r\n this._selectedItems.push(item);\r\n } else {\r\n this._selectedItems = this._selectedItems.filter(x => x !== item);\r\n }\r\n\r\n this.selectedItemChange.emit(item);\r\n this.setText();\r\n\r\n let v: Array<any> | null;\r\n if (this.valueField === undefined || this.valueField === null || this.valueField === '') {\r\n v = this._selectedItems ? this._selectedItems : null;\r\n } else {\r\n v = this._selectedItems ? this._selectedItems.map(x => x[this.valueField]) : null;\r\n }\r\n\r\n this._value = v;\r\n this.valueChange.emit(v);\r\n }\r\n\r\n\r\n}\r\n","<div class=\"input-group position-relative\" id=\"dropdown-menu-container-{{elementId}}\">\r\n <input type=\"text\" class=\"form-control\" placeholder=\"{{placeholder}}\" data-bs-toggle=\"dropdown\" data-bs-auto-close=\"outside\" id=\"input-{{elementId}}\" [(ngModel)]=\"text\" (ngModelChange)=\"onTextChange($event)\" (focus)=\"onFocus($event)\" (blur)=\"inputUnfocused()\">\r\n <button class=\"btn btn-outline-secondary dropdown-toggle\" id=\"btn-{{elementId}}\" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" data-bs-reference=\"parent\"></button>\r\n <ul class=\"dropdown-menu dropdown-menu-start w-100 scrollable-menu\" id=\"dropdown-menu-{{elementId}}\">\r\n <ng-container *ngIf=\"textField\">\r\n <li *ngFor=\"let item of filteredData\">\r\n <a href=\"javascript:void(0)\" (click)=\"selectItem(item)\" class=\"dropdown-item\">\r\n <span *ngIf=\"item.selected\"><i class=\"fa-regular fa-square-check\"></i></span>\r\n <span *ngIf=\"!item.selected\"><i class=\"fa-regular fa-square\"></i></span>\r\n {{item[textField]}}\r\n </a>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngIf=\"!textField\">\r\n <li *ngFor=\"let item of filteredData\">\r\n <a href=\"javascript:void(0)\" (click)=\"selectItem(item)\" class=\"dropdown-item\">\r\n <span *ngIf=\"item.selected\"><i class=\"fa-regular fa-square-check\"></i></span>\r\n <span *ngIf=\"!item.selected\"><i class=\"fa-regular fa-square\"></i></span>\r\n {{item}}\r\n </a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>","import { Directive, ElementRef, HostListener, Input, OnInit, Output, EventEmitter, AfterViewInit } from '@angular/core';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[zek-sort]'\r\n})\r\nexport class ZekSort implements AfterViewInit {\r\n private innerHtml: string = '';\r\n\r\n /**\r\n * name of sorting column\r\n */\r\n @Input() header: string | null = null;\r\n\r\n /**\r\n * Executes after 'sort' input changed\r\n */\r\n @Output() sortChange = new EventEmitter<string | null>();\r\n\r\n /**\r\n * Executes after 'asc' input changed\r\n */\r\n @Output() ascChange = new EventEmitter<boolean>();\r\n\r\n /**\r\n * Executes after click on column\r\n */\r\n @Output() onChange = new EventEmitter();\r\n\r\n\r\n constructor(private el: ElementRef/*, renderer: Renderer, private templateRef: TemplateRef<any>, private viewContainer: ViewContainerRef */) {\r\n }\r\n\r\n // @Input() set myIf(shouldAdd: boolean) {\r\n // if (shouldAdd) {\r\n // // If condition is true add template to DOM\r\n // this.viewContainer.createEmbeddedView(this.templateRef);\r\n // } else {\r\n // // Else remove template from DOM\r\n // this.viewContainer.clear();\r\n // }\r\n // }\r\n\r\n\r\n ngAfterViewInit() {\r\n // Use renderer to render the element with styles\r\n //renderer.setElementStyle(el.nativeElement, 'display', 'none');\r\n\r\n this.innerHtml = this.el.nativeElement.innerHTML;\r\n this.initIcon();\r\n }\r\n\r\n initIcon() {\r\n if (!this.innerHtml) return;\r\n\r\n let tmpAsc = 0;\r\n if (!this.header || this.header !== this.sort) {\r\n tmpAsc = 1;\r\n } else if (this.asc) {\r\n tmpAsc = 2;\r\n } else {\r\n tmpAsc = 3;\r\n }\r\n\r\n this.el.nativeElement.innerHTML = (this.innerHtml || '')\r\n + '<span class=\"float-end' + (tmpAsc === 1 ? ' text-muted' : '') + '\">'\r\n + (tmpAsc === 1 ? '<i class=\"fa-solid fa-sort\"></i>' : '')\r\n + (tmpAsc === 2 ? '<i class=\"fa-solid fa-sort-up\"></i>' : '')\r\n + (tmpAsc === 3 ? '<i class=\"fa-solid fa-sort-down\"></i>' : '')\r\n + '</span>';\r\n }\r\n\r\n // @HostListener('click', ['$event.target']) onClick(btn) {\r\n // console.log('button', btn, 'number of clicks:', this.numberOfClicks++);\r\n // }\r\n @HostListener('click') onClick() {\r\n if (this.sort !== this.header) {\r\n this.sort = this.header;\r\n this.sortChange.emit(this.sort);\r\n this.asc = true;\r\n this.ascChange.emit(this.asc);\r\n\r\n } else {\r\n this.asc = !this.asc;\r\n this.ascChange.emit(this.asc);\r\n }\r\n\r\n this.onChange.emit();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n private _sort: string | null = null;\r\n get sort() {\r\n return this._sort;\r\n }\r\n @Input()\r\n set sort(value: string | null) {\r\n if (this._sort !== value) {\r\n this._sort = value;\r\n this.initIcon();\r\n }\r\n }\r\n\r\n\r\n private _asc: boolean = false;\r\n get asc() {\r\n return this._asc;\r\n }\r\n @Input()\r\n set asc(value: boolean) {\r\n if (this._asc !== value) {\r\n this._asc = value;\r\n this.initIcon();\r\n }\r\n }\r\n}","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { KeyPair } from '../../../models/key-pair.model';\r\nimport { RandomHelper } from '../../../utils';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-sort-button-group',\r\n templateUrl: './sort-button-group.html',\r\n imports: [CommonModule, TranslateModule],\r\n})\r\nexport class ZekSortButtonGroup {\r\n elementName: string = '';\r\n\r\n /**\r\n * Executes after 'sort' input changed\r\n */\r\n @Output() sortChange = new EventEmitter<string | null>();\r\n\r\n /**\r\n * Executes after 'asc' input changed\r\n */\r\n @Output() ascChange = new EventEmitter<boolean>();\r\n\r\n /**\r\n * Executes after click on column\r\n */\r\n @Output() onChange = new EventEmitter();\r\n\r\n sortField: any;\r\n private _sort: string | null = null;\r\n get sort(): string | null {\r\n return this._sort;\r\n }\r\n @Input()\r\n set sort(value: string | null) {\r\n if (this._sort !== value) {\r\n this._sort = value;\r\n }\r\n }\r\n\r\n\r\n private _asc: boolean = false;\r\n get asc() {\r\n return this._asc;\r\n }\r\n @Input()\r\n set asc(value: boolean) {\r\n if (this._asc !== value) {\r\n this._asc = value;\r\n }\r\n }\r\n\r\n @Input() sortFields: KeyPair[] | null = null;\r\n\r\n /**\r\n * Default constructor\r\n */\r\n constructor() {\r\n this.elementName = 'sort-button-group-' + RandomHelper.randomHex();\r\n }\r\n\r\n sortFieldClick(item: any) {\r\n if (!item || !item.key) return;\r\n\r\n this.sortField = item;\r\n if (this.sort !== item.key) {\r\n this.sort = item.key;\r\n this.sortChange.emit(this.sort);\r\n this.onChange.emit();\r\n }\r\n }\r\n\r\n ascDescClick() {\r\n this.asc = !this.asc;\r\n this.ascChange.emit(this.asc);\r\n this.onChange.emit();\r\n }\r\n}\r\n","<div class=\"btn-group me-3\" role=\"group\" aria-label=\"Sort group\">\r\n <button type=\"button\" class=\"btn btn-light\" (click)=\"ascDescClick()\">\r\n <span *ngIf=\"asc === undefined || asc === null\"><i class=\"fa-solid fa-sort fa-fw\"></i></span>\r\n <span *ngIf=\"asc === true\"><i class=\"fa-solid fa-arrow-down-z-a fa-fw\"></i></span>\r\n <span *ngIf=\"asc === false\"><i class=\"fa-solid fa-arrow-up-z-a fa-fw\"></i></span>\r\n </button>\r\n <button *ngIf=\"sortFields && sortFields.length > 0\" class=\"btn btn-light dropdown-toggle\" type=\"button\" id=\"{{elementName}}\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <ng-container *ngIf=\"sortField; else elseFieldBlock\">{{ sortField.value | translate }}</ng-container>\r\n <ng-template #elseFieldBlock>{{ 'Action.Sort' | translate }}</ng-template>\r\n </button>\r\n <ul *ngIf=\"sortFields && sortFields.length > 0\" class=\"dropdown-menu\" [attr.aria-labelledby]=\"elementName\">\r\n <li><a *ngFor=\"let item of sortFields\" class=\"dropdown-item\" href=\"javascript:void(0)\" (click)=\"sortFieldClick(item)\">{{ (item.value) | translate }}</a></li>\r\n </ul>\r\n</div><i class=\"\"></i>","import { DatePipe } from '@angular/common';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n//import { toDate } from '../../extensions';\r\n\r\n@Pipe({\r\n name: 'time'\r\n})\r\nexport class TimePipe implements PipeTransform {\r\n constructor(private readonly datePipe: DatePipe) {\r\n }\r\n\r\n transform(value: Date | string | number | null | undefined, format?: string): string | null {\r\n if (value === undefined || value === null || value === '' || value !== value) return null;\r\n\r\n const dateTime: Date = new Date(value);\r\n let dateTimeString: string;\r\n if (this.isValidDate(dateTime)) {\r\n dateTimeString = dateTime.toString();\r\n } else {\r\n dateTimeString = `1970-01-01 ${value}`;\r\n }\r\n\r\n // Replace any dashes with slashes, as Safari and IE11 don't recognise dates with dashes in them.\r\n dateTimeString = dateTimeString.replace(/-/g, '/');\r\n if (!this.isValidDate(new Date(dateTimeString))) {\r\n return null;\r\n }\r\n\r\n const formattedTime = this.datePipe.transform(dateTimeString, format);\r\n return formattedTime;\r\n }\r\n\r\n\r\n private isValidDate(d: any): boolean {\r\n return d instanceof Date && !isNaN(d.getTime());\r\n }\r\n}\r\n/*export class TimePipe extends DatePipe implements PipeTransform {\r\n transform(value: Date | string | number, format?: string, timezone?: string, locale?: string): string | null;\r\n transform(value: null | undefined, format?: string, timezone?: string, locale?: string): null;\r\n transform(value: Date | string | number | null | undefined, format?: string, timezone?: string, locale?: string): string | null {\r\n if (value === undefined || value === null || value === '' || value !== value) return null;\r\n\r\n const dateTime: Date = new Date(value);\r\n\r\n //const date = toDate(value);\r\n let dateTimeString: string;\r\n if (this.isValidDate(dateTime)) {\r\n dateTimeString = dateTime.toString();\r\n } else {\r\n dateTimeString = `1970-01-01 ${value}`;\r\n }\r\n\r\n dateTimeString = dateTimeString.replace(/-/g, '/');\r\n\r\n if (!this.isValidDate(new Date(dateTimeString))) {\r\n return null;\r\n }\r\n\r\n const formattedTime = super.transform(dateTimeString, format);\r\n\r\n return formattedTime;\r\n }\r\n\r\n\r\n private isValidDate(d: any): boolean {\r\n return d instanceof Date && !isNaN(d.getTime());\r\n }\r\n}*/","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\n\r\nimport { TimePipe } from './time.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n TimePipe,\r\n ],\r\n providers: [\r\n DatePipe\r\n ],\r\n exports: [TimePipe]\r\n})\r\nexport class TimeModule { }","import { Injectable, Input } from \"@angular/core\";\r\nimport { Subject, Subscription, timer } from \"rxjs\";\r\nimport { map, takeWhile, tap } from \"rxjs/operators\";\r\nimport { DateHelper } from \"../../utils\";\r\n\r\n@Injectable()\r\nexport class TimerService {\r\n @Input() seconds: number = 0;\r\n\r\n // running: boolean = false;\r\n \r\n private _count : number = 0;\r\n public get count() : number {\r\n return this._count;\r\n }\r\n \r\n private _left : number = 0;\r\n public get left() : number {\r\n return this._left;\r\n }\r\n\r\n expireDate: Date | null = null;\r\n private subscription: Subscription | null = null;\r\n //@Output() checkTime: EventEmitter<number> = new EventEmitter();\r\n\r\n tick = new Subject<number>();\r\n completed = new Subject<any>();\r\n // tickerInterval: any;\r\n // expired: Observable<number> = new Observable<number>();\r\n // initialCountValue: number = 0;\r\n\r\n constructor() { }\r\n\r\n\r\n startHour(hours: number, minutes: number, seconds: number) {\r\n this.start((hours ? hours * 60 * 60 : 0) + (minutes ? minutes * 60 : 0) + seconds);\r\n }\r\n startMinute(minutes: number, seconds: number) {\r\n this.start((minutes ? minutes * 60 : 0) + seconds);\r\n }\r\n start(seconds: number) {\r\n this.clear();\r\n\r\n this._left = seconds;\r\n this._count = seconds;\r\n this.expireDate = DateHelper.addSeconds(new Date(), seconds);\r\n\r\n //this.internalTick();//because run first tick value example 60 -> not 59\r\n const source = timer(0, 1000).pipe(\r\n //map(i => this.count - i),\r\n //takeWhile(i => i > 0),\r\n map(_i => this._left--),\r\n takeWhile(_i => this.left >= 0)\r\n //tap(s => this.checkTime.emit(s))\r\n );\r\n\r\n this.subscription = source.subscribe(() => {\r\n this.internalTick();\r\n });\r\n }\r\n clear() {\r\n this.subscription?.unsubscribe();\r\n this.subscription = null;\r\n this.expireDate = null;\r\n }\r\n\r\n\r\n internalTick() {\r\n if (this.tick) {\r\n this.tick.next(this._left);\r\n }\r\n\r\n if (this.left <= 0 && this.completed) {\r\n this.completed.next(null);\r\n }\r\n /*\r\n // get total seconds between the times\r\n let delta = Math.abs(date_future - date_now) / 1000;\r\n\r\n // calculate (and subtract) whole days\r\n let days = Math.floor(delta / 86400);\r\n delta -= days * 86400;\r\n\r\n // calculate (and subtract) whole hours\r\n let hours = Math.floor(delta / 3600) % 24;\r\n delta -= hours * 3600;\r\n\r\n // calculate (and subtract) whole minutes\r\n let minutes = Math.floor(delta / 60) % 60;\r\n delta -= minutes * 60;\r\n\r\n // what's left is seconds\r\n let seconds = delta % 60; // in theory the modulus is not required\r\n */\r\n }\r\n}","import { AfterViewInit, Directive, ElementRef } from \"@angular/core\";\r\nimport { CoreComponent } from \"../../components\";\r\n\r\ndeclare let bootstrap: any;\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[zek-toltip]'\r\n})\r\nexport class ZekTooltip extends CoreComponent implements AfterViewInit {\r\n private _tooltip: any;\r\n constructor(private el: ElementRef) {\r\n super();\r\n }\r\n\r\n override destroy() {\r\n this._tooltip?.dispose();\r\n this._tooltip = undefined;\r\n return super.destroy();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._tooltip = new bootstrap.Tooltip(this.el.nativeElement);\r\n }\r\n\r\n}","// import { AbstractControl, Validators, ValidatorFn, ValidationErrors } from '@angular/forms'\r\nimport { AbstractControl, ValidationErrors, ValidatorFn } from \"@angular/forms\";\r\n\r\n// export const range = (range?: Array<number> | null): ValidatorFn => {\r\n// return (control: AbstractControl): { [key: string]: any } | null => {\r\n\r\n// if (!range) return null;\r\n// if (Validators.required(control)) return null;\r\n\r\n// let v: number = +control.value;\r\n// return v >= range[0] && v <= range[1] ? null : { actualValue: v, requiredValue: range, range: true };\r\n// };\r\n// };\r\n// export function blue(): ValidatorFn {\r\n// return (control: AbstractControl): { [key: string]: any } | null =>\r\n// control.value?.toLowerCase() === 'blue'\r\n// ? null : { wrongColor: control.value };\r\n// }\r\n\r\n\r\nfunction isEmptyInputValue(value: any): boolean {\r\n /**\r\n * Check if the object is a string or array before evaluating the length attribute.\r\n * This avoids falsely rejecting objects that contain a custom length attribute.\r\n * For example, the object {id: 1, length: 0, width: 0} should not be returned as empty.\r\n */\r\n return typeof value === 'undefined' || value == null || ((typeof value === 'string' || Array.isArray(value)) && value.length === 0);\r\n}\r\n\r\n/**\r\n * Function that has `ValidatorFn` shape, but performs no operation.\r\n */\r\nexport function nullValidator(control: AbstractControl): ValidationErrors | null {\r\n return null;\r\n}\r\n\r\n\r\nexport class Validators {\r\n\r\n /**\r\n * @description\r\n * Validator that requires the control's value to be less than or equal to the provided number.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Validate against a range 0 - 15\r\n *\r\n * ```typescript\r\n * const control = new FormControl(16, Validators.max([0,15]));\r\n *\r\n * console.log(control.errors); // {range: {min: 0, max: 15, actual: 16}}\r\n * ```\r\n *\r\n * @returns A validator function that returns an error map with the\r\n * `range` property if the validation check fails, otherwise `null`.\r\n *\r\n * @see `updateValueAndValidity()`\r\n *\r\n */\r\n static range(min: number, max: number): ValidatorFn {\r\n return rangeValidator([min, max]);\r\n }\r\n\r\n\r\n /**\r\n* @description\r\n* Validator that requires the control's value to be less than or equal to the provided number.\r\n*\r\n* @usageNotes\r\n*\r\n* ### Validate against a range 0 - 15\r\n*\r\n* ```typescript\r\n* const control = new FormControl(16, Validators.max([0,15]));\r\n*\r\n* console.log(control.errors); // {range: {min: 0, max: 15, actual: 16}}\r\n* ```\r\n*\r\n* @returns A validator function that returns an error map with the\r\n* `range` property if the validation check fails, otherwise `null`.\r\n*\r\n* @see `updateValueAndValidity()`\r\n*\r\n*/\r\n static match(value: string): ValidatorFn {\r\n return matchValidator(value);\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Validator that requires the control's value to be between provided numbers.\r\n * See `Validators.range` for additional information.\r\n */\r\nexport function rangeValidator(range: Array<number>): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n if (isEmptyInputValue(control.value) || isEmptyInputValue(range) || range.length < 2) {\r\n return null; // don't validate empty values to allow optional controls\r\n }\r\n const value = parseFloat(control.value);\r\n let max = range[0];\r\n let min = range[1];\r\n if (!isNaN(value) && (value < min || value > max)) {\r\n return { 'range': { 'min': min, 'max': max, 'actual': control.value } };\r\n }\r\n\r\n return null;\r\n };\r\n}\r\n\r\n\r\nexport function matchValidator(input: string): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n if (isEmptyInputValue(control.value)) {\r\n return null; // don't validate empty values to allow optional controls\r\n }\r\n\r\n const targetCtrl = control.get(input);\r\n let targetValue: any;\r\n if (!targetCtrl) {\r\n let el = document.getElementById(input) as any;\r\n if (el) {\r\n targetValue = el.value;\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n targetValue = targetCtrl.value;\r\n }\r\n\r\n if (targetValue !== control.value) {\r\n return { 'mismatch': { 'requiredValue': targetValue, 'actual': control.value } };\r\n }\r\n return null;\r\n };\r\n}","\r\nimport { Directive, forwardRef, Input, OnChanges, SimpleChanges } from \"@angular/core\";\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { matchValidator, nullValidator, rangeValidator } from \"./validator\";\r\n\r\nfunction toFloat(value: string | number): number {\r\n return typeof value === 'number' ? value : parseFloat(value);\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n@Directive()\r\nabstract class AbstractValidatorDirective implements Validator, OnChanges {\r\n private _validator: ValidatorFn = nullValidator;\r\n private _onChange!: () => void;\r\n\r\n /**\r\n * A flag that tracks whether this validator is enabled.\r\n *\r\n * Marking it `internal` (vs `protected`), so that this flag can be used in host bindings of\r\n * directive classes that extend this base class.\r\n * @internal\r\n */\r\n _enabled?: boolean;\r\n\r\n /**\r\n * Name of an input that matches directive selector attribute (e.g. `minlength` for\r\n * `MinLengthDirective`). An input with a given name might contain configuration information (like\r\n * `minlength='10'`) or a flag that indicates whether validator should be enabled (like\r\n * `[required]='false'`).\r\n *\r\n * @internal\r\n */\r\n abstract inputName: string;\r\n\r\n /**\r\n * Creates an instance of a validator (specific to a directive that extends this base class).\r\n *\r\n * @internal\r\n */\r\n abstract createValidator(input: unknown): ValidatorFn;\r\n\r\n /**\r\n * Performs the necessary input normalization based on a specific logic of a Directive.\r\n * For example, the function might be used to convert string-based representation of the\r\n * `minlength` input to an integer value that can later be used in the `Validators.minLength`\r\n * validator.\r\n *\r\n * @internal\r\n */\r\n abstract normalizeInput(input: unknown): unknown;\r\n\r\n /** @nodoc */\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.inputName in changes) {\r\n const input = this.normalizeInput(changes[this.inputName].currentValue);\r\n this._enabled = this.enabled(input);\r\n this._validator = this._enabled ? this.createValidator(input) : nullValidator;\r\n if (this._onChange) {\r\n this._onChange();\r\n }\r\n }\r\n }\r\n\r\n /** @nodoc */\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n return this._validator(control);\r\n }\r\n\r\n /** @nodoc */\r\n registerOnValidatorChange(fn: () => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n /**\r\n * @description\r\n * Determines whether this validator should be active or not based on an input.\r\n * Base class implementation checks whether an input is defined (if the value is different from\r\n * `null` and `undefined`). Validator classes that extend this base class can override this\r\n * function with the logic specific to a particular validator directive.\r\n */\r\n enabled(input: unknown): boolean {\r\n return input != null /* both `null` and `undefined` */;\r\n }\r\n}\r\n\r\n\r\n\r\n\r\nexport const RANGE_VALIDATOR: any = {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => RangeValidator),\r\n multi: true\r\n};\r\n\r\n@Directive({\r\n selector: 'input[type=number][range][formControlName],input[type=number][range][formControl],input[type=number][range][ngModel]',\r\n providers: [RANGE_VALIDATOR],\r\n host: { '[attr.range]': '_enabled ? range : null' }\r\n})\r\nexport class RangeValidator extends AbstractValidatorDirective {\r\n @Input() range!: [number, number] | null;\r\n\r\n /** @internal */\r\n override inputName = 'range';\r\n /** @internal */\r\n override normalizeInput = (input: string | number): number => toFloat(input);\r\n /** @internal */\r\n override createValidator = (range: [number]): ValidatorFn => rangeValidator(range);\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * @description\r\n * Provider which adds `MatchValidator` to the `NG_VALIDATORS` multi-provider list.\r\n */\r\nexport const MATCH_VALIDATOR: any = {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => MatchValidator),\r\n multi: true\r\n};\r\n\r\n@Directive({\r\n selector: '[match][formControlName],match][formControl],[match][ngModel]',\r\n providers: [MATCH_VALIDATOR],\r\n host: { '[attr.match]': '_enabled ? match : null' }\r\n})\r\nexport class MatchValidator extends AbstractValidatorDirective {\r\n @Input() match!: string;\r\n\r\n /** @internal */\r\n override inputName = 'match';\r\n /** @internal */\r\n override normalizeInput = (input: string): string => input;\r\n /** @internal */\r\n override createValidator = (input: string): ValidatorFn => matchValidator(input);\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatchValidator, RangeValidator } from './directive';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n RangeValidator,\r\n MatchValidator,\r\n ],\r\n exports: [\r\n RangeValidator,\r\n MatchValidator\r\n ]\r\n})\r\nexport class ValidatorsModule { }","import { Component, Input } from \"@angular/core\";\r\nimport { ZekSafePipe } from \"../../safe\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-wizard',\r\n templateUrl: './wizard.html',\r\n imports: [CommonModule, ZekSafePipe]\r\n})\r\nexport class ZekWizard {\r\n\r\n progress = 0;\r\n stepsArray: { step: number, progress: number }[] = [\r\n { step: 1, progress: 0 }\r\n ];\r\n\r\n private _steps: number = 1;\r\n @Input()\r\n get steps(): number {\r\n return this._steps;\r\n }\r\n set steps(v: number) {\r\n if (v < 1) v = 1;\r\n\r\n if (this._steps !== v) {\r\n this._steps = v;\r\n this.init();\r\n }\r\n }\r\n\r\n\r\n private _step: number = 1;\r\n @Input()\r\n get step(): number {\r\n return this._step;\r\n }\r\n set step(v: number) {\r\n if (v < 1) v = 1;\r\n else if (v > this.steps) v = this.steps;\r\n\r\n if (this._step !== v) {\r\n this._step = v;\r\n\r\n let found = this.stepsArray.find(x => x.step === this._step);\r\n if (found) {\r\n this.progress = found.progress;\r\n }\r\n }\r\n }\r\n\r\n\r\n private init() {\r\n this.stepsArray = [];\r\n this.stepsArray.push({ step: 1, progress: 0 });\r\n\r\n for (let i = 1; i < this.steps; i++) {\r\n this.stepsArray.push({ step: i + 1, progress: Math.round(100 / (this.steps - 1) * i) });\r\n }\r\n }\r\n\r\n previous() {\r\n this.step--;\r\n }\r\n next() {\r\n this.step++;\r\n }\r\n}","<div class=\"position-relative m-4\">\r\n <div class=\"progress\" style=\"height: 1px;\">\r\n <div class=\"progress-bar\" role=\"progressbar\" [style.width.%]=\"progress\" [attr.aria-valuenow]=\"progress\" aria-valuemin=\"0\" aria-valuemax=\"100\"></div>\r\n </div>\r\n <!-- left: 33%!important -->\r\n <!-- [style.left.%]=\"item.progress\" -->\r\n <button *ngFor=\"let item of stepsArray\" [attr.style]=\"('width:2rem; height:2rem; left:' + item.progress + '%!important') | safe:'style'\" type=\"button\" class=\"position-absolute top-0 translate-middle btn btn-sm btn-primary rounded-pill\">{{ item.step }}</button>\r\n</div>","import { Component } from \"@angular/core\";\r\nimport { ZekWizard } from \"../wizard/wizard\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-wizard2',\r\n templateUrl: './wizard2.html',\r\n imports: [CommonModule]\r\n})\r\nexport class ZekWizard2 extends ZekWizard{\r\n\r\n}","<div class=\"m-2\">\r\n <button *ngFor=\"let item of stepsArray\"\r\n [class.btn-outline-secondary]=\"item.step >= steps\"\r\n [class.btn-primary]=\"item.step < steps\"\r\n type=\"button\"\r\n class=\"btn btn-sm mr me-2\"></button>\r\n</div>","export * from './age';\r\nexport * from './alert';\r\nexport * from './autocomplete';\r\nexport * from './bb';\r\nexport * from './card';\r\nexport * from './callback';\r\nexport * from './date-ago';\r\nexport * from './datepicker';\r\nexport * from './edit-toolbar';\r\nexport * from './file';\r\nexport * from './file-viewer';\r\nexport * from './google-login-button';\r\nexport * from './grid-toolbar';\r\nexport * from './list-toolbar';\r\nexport * from './loading';\r\nexport * from './modal';\r\nexport * from './numeric';\r\nexport * from './page-title';\r\nexport * from './pager';\r\nexport * from './password';\r\nexport * from './progress';\r\nexport * from './radio';\r\nexport * from './readonly';\r\nexport * from './recaptcha/index';\r\nexport * from './safe';\r\nexport * from './select';\r\nexport * from './select2';\r\nexport * from './select2-multiple';\r\nexport * from './sort';\r\nexport * from './time';\r\nexport * from './tooltip';\r\nexport * from './validator';\r\nexport * from './validators';\r\nexport * from './wizard';\r\n\r\n// export * from './'","import { Injector, ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { WebApiClient, WebApiConfig } from './services';\r\nimport { API_BASE_URL } from './tokens';\r\n\r\n@NgModule()\r\nexport class WebApiModule {\r\n public static forRoot(config: WebApiConfig): ModuleWithProviders<WebApiModule> {\r\n return {\r\n ngModule: WebApiModule,\r\n providers: [\r\n WebApiClient,\r\n {\r\n provide: API_BASE_URL,\r\n useValue: config.baseUrl\r\n },\r\n ]\r\n };\r\n }\r\n\r\n public static forChild(config: WebApiConfig) {\r\n return this.forRoot(config);\r\n }\r\n}","/*\r\n * Public API Surface of zek\r\n */\r\n\r\nexport * from \"./lib/components\";\r\nexport * from \"./lib/models\";\r\nexport * from \"./lib/modules\";\r\nexport * from \"./lib/services\";\r\nexport * from \"./lib/utils\";\r\n\r\nexport * from \"./lib/tokens\";\r\nexport * from \"./lib/zek.module\";","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AuthService","i2","i1.AlertService","i3","uniqueId","i1","clamp","i2.ZekModal","loadScript","loader","i1.ZekLoadingService"],"mappings":";;;;;;;;;;;;;;;;IAAY,UAGX;AAHD,CAAA,UAAY,SAAS,EAAA;AACjB,IAAA,SAAA,CAAA,SAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,SAAA,CAAA,SAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;AACX,CAAC,EAHW,SAAS,KAAT,SAAS,GAGpB,EAAA,CAAA,CAAA;;ACHD;AACA;MAKa,WAAW,CAAA;AACpB,IAAA,OAAO,MAAM,CAAC,KAAY,EAAE,KAAa,EAAE,CAAM,EAAA;QAC7C,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;KAC7B;;AAED,IAAA,OAAO,QAAQ,CAAC,KAAY,EAAE,CAAM,EAAA;AAChC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnC,YAAA,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;AAAE,gBAAA,OAAO,IAAI,CAAC;SACnC;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;;IAGD,OAAO,OAAO,CAAC,GAAQ,EAAA;AACnB,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;KAC/C;;;;;;;;;;;IAYD,OAAO,QAAQ,CAAC,MAAa,EAAA;AACzB,QAAA,IAAI,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;AAE1D,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,EAAE;AACzC,YAAA,IAAI,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,SAAS;AAE9B,YAAA,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAChB,YAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACtB;AAED,QAAA,OAAO,MAAM,CAAC;KACjB;AAED,IAAA,OAAO,WAAW,CAAC,WAAgB,EAAE,GAAW,EAAE,KAAY,EAAA;QAC1D,IAAI,OAAO,WAAW,KAAK,WAAW,IAAI,WAAW,IAAI,IAAI,KAAK,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,CAAC;AAC1G,YAAA,OAAO,KAAK,CAAC;QAEjB,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,WAAW,CAAC,CAAC;KACrF;IAED,OAAO,YAAY,CAAC,KAAY,EAAA;QAC5B,IAAI,MAAM,GAAU,EAAE,CAAC;QACvB,IAAI,KAAK,EAAE;AACP,YAAA,KAAK,CAAC,OAAO,CAAC,IAAI,IAAG;AACjB,gBAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAChB,gBAAA,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClB,gBAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACnD,aAAC,CAAC,CAAC;SACN;AACD,QAAA,OAAO,MAAM,CAAC;KACjB;AAEO,IAAA,OAAO,WAAW,CAAC,IAAU,EAAE,SAAiB,CAAC,EAAA;QACrD,IAAI,MAAM,GAAU,EAAE,CAAC;AACvB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;AAC1C,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAG;AAC1B,gBAAA,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AACtB,gBAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACnB,gBAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAChE,aAAC,CAAC,CAAC;SACN;aAAM;AACH,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;SAC1B;QAED,OAAO,IAAI,CAAC,QAAQ,CAAC;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC;;;AAGxB,QAAA,OAAO,MAAM,CAAC;KACjB;IAID,OAAO,kBAAkB,CAAC,KAAa,EAAA;QACnC,IAAI,MAAM,GAAc,EAAE,CAAC;QAC3B,IAAI,KAAK,EAAE;AACP,YAAA,KAAK,CAAC,OAAO,CAAC,IAAI,IAAG;AACjB,gBAAA,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;AAClD,gBAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AACzD,aAAC,CAAC,CAAC;SACN;AAED,QAAA,OAAO,MAAM,CAAC;KACjB;AAGO,IAAA,OAAO,iBAAiB,CAAC,IAAU,EAAE,SAAiB,CAAC,EAAA;QAC3D,IAAI,MAAM,GAAc,EAAE,CAAC;AAC3B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAG;;gBAE1B,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;AAC9E,gBAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAChE,aAAC,CAAC,CAAC;SACN;AACD,QAAA,OAAO,MAAM,CAAC;KACjB;IAIO,OAAO,sBAAsB,CAAoC,KAAU,EAAA;QAC/E,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9B,IAAI,MAAM,GAAQ,EAAE,CAAC;;;;AAIrB,QAAA,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,YAAA,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACnB,YAAA,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,EAAO,CAAC,CAAC;SACzD;AACD,QAAA,OAAO,MAAM,CAAC;;KAEjB;IACD,OAAO,kBAAkB,CAAC,KAAU,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAA0B,KAAK,CAAC,CAAC;KACtE;IACD,OAAO,oBAAoB,CAAC,KAAU,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAA4B,KAAK,CAAC,CAAC;KACxE;AACJ;;MCvIY,YAAY,CAAA;IACd,OAAO,kBAAkB,CAAC,GAAW,EAAA;QACxC,OAAO,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAClD;IAEM,OAAO,kBAAkB,CAAC,GAAW,EAAA;QACxC,OAAO,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;KAChD;AAEM,IAAA,OAAO,kBAAkB,CAAC,GAAW,EAAE,IAAa,EAAA;AACvD,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AACpD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACxC,SAAS,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SAC3C;AACD,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACnD,QAAA,OAAO,IAAI,CAAC;KACf;AACJ;;MClBY,aAAa,CAAA;AACtB,IAAA,OAAO,OAAO,CAAC,KAAa,EAAE,WAAgB,EAAA;AAC1C,QAAA,OAAO,CAAC,KAAK,GAAG,WAAW,MAAM,WAAW,CAAC;KAChD;AAED,IAAA,OAAO,QAAQ,CAAC,KAAa,EAAE,GAAG,UAAiB,EAAA;AAC/C,QAAA,IAAI,CAAC,UAAU;AAAE,YAAA,OAAO,KAAK,CAAC;AAE9B,QAAA,UAAU,CAAC,OAAO,CAAC,IAAI,IAAG;YACtB,KAAK,IAAI,IAAI,CAAC;AAClB,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,KAAK,CAAC;KAChB;AACJ;;ICXW,cAUX;AAVD,CAAA,UAAY,aAAa,EAAA;AACrB,IAAA,aAAA,CAAA,aAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;;AAEX,IAAA,aAAA,CAAA,aAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,aAAA,CAAA,aAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;;AAEN,IAAA,aAAA,CAAA,aAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,aAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;;;AAGR,CAAC,EAVW,aAAa,KAAb,aAAa,GAUxB,EAAA,CAAA,CAAA,CAAA;IAEW,MAQX;AARD,CAAA,UAAY,KAAK,EAAA;AACb,IAAA,KAAA,CAAA,KAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACX,IAAA,KAAA,CAAA,KAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;AACb,IAAA,KAAA,CAAA,KAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACX,IAAA,KAAA,CAAA,KAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACV,IAAA,KAAA,CAAA,KAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACX,IAAA,KAAA,CAAA,KAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,KAAA,CAAA,KAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACZ,CAAC,EARW,KAAK,KAAL,KAAK,GAQhB,EAAA,CAAA,CAAA,CAAA;MAEY,eAAe,CAAA;IACxB,OAAO,QAAQ,CAAC,KAAoB,EAAA;QAChC,QAAQ,KAAK;YACT,KAAK,KAAK,CAAC,OAAO;AACd,gBAAA,OAAO,uBAAuB,CAAA;YAClC,KAAK,KAAK,CAAC,SAAS;AAChB,gBAAA,OAAO,yBAAyB,CAAC;YACrC,KAAK,KAAK,CAAC,OAAO;AACd,gBAAA,OAAO,uBAAuB,CAAC;YACnC,KAAK,KAAK,CAAC,MAAM;AACb,gBAAA,OAAO,sBAAsB,CAAC;YAClC,KAAK,KAAK,CAAC,OAAO;AACd,gBAAA,OAAO,sBAAsB,CAAC;YAClC,KAAK,KAAK,CAAC,IAAI;AACX,gBAAA,OAAO,mBAAmB,CAAC;YAC/B,KAAK,KAAK,CAAC,IAAI;AACX,gBAAA,OAAO,oBAAoB,CAAC;AAChC,YAAA;AACI,gBAAA,OAAO,EAAE,CAAC;SACjB;KACJ;IACD,OAAO,OAAO,CAAC,IAAmB,EAAA;QAC9B,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,OAAO,IAAI,CAAC;SACf;QAED,QAAQ,IAAI;YACR,KAAK,aAAa,CAAC,MAAM;AACrB,gBAAA,OAAO,mBAAmB,CAAC;;YAG/B,KAAK,aAAa,CAAC,OAAO;AACtB,gBAAA,OAAO,kCAAkC,CAAC;YAE9C,KAAK,aAAa,CAAC,IAAI;AACnB,gBAAA,OAAO,yBAAyB,CAAC;AAErC,YAAA;AACI,gBAAA,OAAO,mBAAmB,CAAC;SAClC;KACJ;IAED,OAAO,SAAS,CAAC,IAAmB,EAAA;QAChC,QAAQ,IAAI;YACR,KAAK,aAAa,CAAC,OAAO,CAAC;;YAE3B,KAAK,aAAa,CAAC,OAAO,CAAC;;YAE3B,KAAK,aAAa,CAAC,OAAO,CAAC;YAC3B,KAAK,aAAa,CAAC,IAAI;;;gBAGnB,OAAO,CAAA,IAAA,EAAO,aAAa,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAA,CAAE,CAAC;YAEtD,KAAK,aAAa,CAAC,MAAM;AACrB,gBAAA,OAAO,YAAY,CAAC;AACxB,YAAA;AACI,gBAAA,OAAO,eAAe,CAAC;SAC9B;KACJ;;;;;;;;;;;IAmBD,OAAO,QAAQ,CAAC,IAAuB,EAAA;QACnC,QAAQ,IAAI;AACR,YAAA,KAAK,SAAS;AACV,gBAAA,OAAO,eAAe,CAAC;AAC3B,YAAA,KAAK,WAAW;AACZ,gBAAA,OAAO,iBAAiB,CAAC;AAC7B,YAAA,KAAK,SAAS;AACV,gBAAA,OAAO,eAAe,CAAC;AAC3B,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,cAAc,CAAC;AAC1B,YAAA,KAAK,SAAS;AACV,gBAAA,OAAO,eAAe,CAAC;AAC3B,YAAA,KAAK,MAAM;AACP,gBAAA,OAAO,YAAY,CAAC;AACxB,YAAA,KAAK,OAAO;AACR,gBAAA,OAAO,aAAa,CAAC;AACzB,YAAA,KAAK,MAAM;AACP,gBAAA,OAAO,YAAY,CAAC;AACxB,YAAA;AACI,gBAAA,OAAO,iBAAiB,CAAC;SAChC;KACJ;IACD,OAAO,YAAY,CAAC,IAAuB,EAAA;QACvC,QAAQ,IAAI;AACR,YAAA,KAAK,SAAS;AACV,gBAAA,OAAO,0BAA0B,CAAC;AACtC,YAAA,KAAK,QAAQ;AACT,gBAAA,OAAO,0BAA0B,CAAC;AACtC,YAAA,KAAK,SAAS;AACV,gBAAA,OAAO,gCAAgC,CAAC;AAC5C,YAAA,KAAK,MAAM;AACP,gBAAA,OAAO,yBAAyB,CAAC;AACrC,YAAA;AACI,gBAAA,OAAO,EAAE,CAAC;SACjB;KACJ;AACJ;;MC3IY,OAAO,CAAA;IAChB,OAAO,SAAS,CAAC,KAAU,EAAA;AACvB,QAAA,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,EAAE;AAChE,YAAA,QAAQ,GAAG,KAAK,CAAA,CAAE,CAAC,WAAW,EAAE;AAC5B,gBAAA,KAAK,MAAM,CAAC;AACZ,gBAAA,KAAK,KAAK,CAAC;AACX,gBAAA,KAAK,GAAG,CAAC;AACT,gBAAA,KAAK,IAAI;AACL,oBAAA,OAAO,IAAI,CAAC;AAEhB,gBAAA;AACI,oBAAA,OAAO,KAAK,CAAC;aACpB;SACJ;AAED,QAAA,OAAO,KAAK,CAAC;KAChB;IAED,OAAO,iBAAiB,CAAC,KAAU,EAAA;QAC/B,OAAO,KAAK,IAAI,IAAI,IAAI,GAAG,KAAK,CAAA,CAAE,KAAK,OAAO,CAAC;KAClD;IAED,OAAO,WAAW,CAAC,KAAU,EAAA;QACzB,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,IAAI,IAAI,KAAK,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;AAAE,YAAA,OAAO,IAAI,CAAC;AACpH,QAAA,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACtB,QAAA,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;KAC/B;AACD,IAAA,OAAO,QAAQ,CAAC,KAAU,EAAE,YAAY,GAAG,CAAC,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;KAC9D;IAED,OAAO,QAAQ,CAAC,KAAU,EAAA;;;;AAItB,QAAA,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,KAAY,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;KACpE;AASJ;;MC3CY,SAAS,CAAA;AAClB,IAAA,OAAO,QAAQ,CAAiD,KAAQ,EAAE,UAAqC,EAAA;AAC3G,QAAA,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AAC7C,YAAA,OAAO,UAAe,CAAC;SAC1B;AAED,QAAA,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,EAAE,EAAE;AAClC,YAAA,OAAO,KAAK,CAAC;SAChB;QAGD,IAAI,GAAG,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAErG,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAM,CAAC;KAC/D;AAGD,IAAA,OAAO,WAAW,CAAiD,KAAQ,EAAE,aAAwC,EAAA;AACjH,QAAA,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE;AACxB,YAAA,OAAO,KAAK,CAAC;SAChB;AAED,QAAA,IAAI,CAAC,aAAa,IAAI,aAAa,KAAK,EAAE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;AACtE,YAAA,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;QAEpD,IAAI,GAAG,GAAU,EAAE,CAAC;AACpB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,YAAA,IAAI,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE;AACvC,gBAAA,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACjB;SACJ;AACD,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAM,CAAC;KAC/D;IAGD,OAAO,eAAe,CAAC,GAA8B,EAAA;AACjD,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;AACpB,YAAA,OAAO,GAAG,CAAA;SACb;AAED,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACzB,YAAA,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;SAC1B;AAED,QAAA,OAAO,EAAE,CAAA;KACZ;AACJ;;ICrDW,eAcX;AAdD,CAAA,UAAY,cAAc,EAAA;AACtB,IAAA,cAAA,CAAA,cAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACL,IAAA,cAAA,CAAA,cAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;AACb,IAAA,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,cAAA,CAAA,cAAA,CAAA,qBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,qBAAmB,CAAA;AACnB,IAAA,cAAA,CAAA,cAAA,CAAA,wBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,wBAAsB,CAAA;AACtB,IAAA,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,cAAA,CAAA,cAAA,CAAA,sBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,sBAAoB,CAAA;AACpB,IAAA,cAAA,CAAA,cAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU,CAAA;AACV,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,cAAA,CAAA,cAAA,CAAA,mBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,mBAAiB,CAAA;AACjB,IAAA,cAAA,CAAA,cAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAS,CAAA;AACT,IAAA,cAAA,CAAA,cAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAW,CAAA;AACX,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,EAAA,CAAA,GAAA,QAAM,CAAA;AACV,CAAC,EAdW,cAAc,KAAd,cAAc,GAczB,EAAA,CAAA,CAAA,CAAA;MAEY,aAAa,CAAA;IAGtB,OAAO,WAAW,CAAC,MAAY,EAAE,IAAU,EAAE,MAAY,EAAE,IAAU,EAAA;AACjE,QAAA,IAAI,IAAI,GAAG,MAAM,EAAE;YACf,OAAO,cAAc,CAAC,KAAK,CAAC;SAC/B;AACD,QAAA,IAAI,MAAM,GAAG,IAAI,EAAE;YACf,OAAO,cAAc,CAAC,MAAM,CAAC;SAChC;QACD,IAAI,MAAM,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,EAAE;YAClC,OAAO,cAAc,CAAC,UAAU,CAAC;SACpC;AACD,QAAA,IAAI,IAAI,IAAI,MAAM,EAAE;YAChB,OAAO,cAAc,CAAC,aAAa,CAAC;SACvC;AACD,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;YAChB,OAAO,cAAc,CAAC,WAAW,CAAC;SACrC;AACD,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;AAC7C,YAAA,IAAI,MAAM,IAAI,MAAM,EAAE;gBAClB,OAAO,cAAc,CAAC,sBAAsB,CAAC;aAChD;AACD,YAAA,OAAO,IAAI,IAAI,IAAI,GAAG,cAAc,CAAC,oBAAoB,GAAG,cAAc,CAAC,SAAS,CAAC;SACxF;AACD,QAAA,IAAI,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;AACjE,QAAA,IAAI,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,QAAA,IAAI,qBAAqB,IAAI,mBAAmB,EAAE;AAC9C,YAAA,IAAI,MAAM,IAAI,MAAM,EAAE;gBAClB,OAAO,cAAc,CAAC,mBAAmB,CAAC;aAC7C;AACD,YAAA,OAAO,IAAI,IAAI,IAAI,GAAG,cAAc,CAAC,iBAAiB,GAAG,cAAc,CAAC,MAAM,CAAC;SAClF;QACD,IAAI,qBAAqB,EAAE;YACvB,OAAO,cAAc,CAAC,WAAW,CAAC;SACrC;QACD,IAAI,mBAAmB,EAAE;YACrB,OAAO,cAAc,CAAC,SAAS,CAAC;SACnC;QAED,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;KACjH;AAED,IAAA,OAAO,SAAS,CAAC,KAAW,EAAE,GAAS,EAAE,IAAU,EAAA;AAC/C,QAAA,OAAO,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC;KACvC;IAED,OAAO,UAAU,CAAC,MAAY,EAAE,IAAU,EAAE,MAAY,EAAE,IAAU,EAAA;QAChE,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;KACrF;IAED,OAAO,UAAU,CAAC,MAAY,EAAE,IAAU,EAAE,MAAY,EAAE,IAAU,EAAA;AAChE,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,MAAM,GAAG,MAAM,IAAI,IAAI,GAAG,IAAI,CAAC,CAAC;KACzH;IAED,OAAO,QAAQ,CAAC,MAAY,EAAE,IAAU,EAAE,MAAY,EAAE,IAAU,EAAA;AAC9D,QAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAC5D,QAAA,OAAO,QAAQ,IAAI,cAAc,CAAC,KAAK;YACnC,QAAQ,IAAI,cAAc,CAAC,aAAa;YACxC,QAAQ,IAAI,cAAc,CAAC,WAAW;AACtC,YAAA,QAAQ,IAAI,cAAc,CAAC,MAAM,CAAC;KACzC;AAGJ;;MC9EY,UAAU,CAAA;IACnB,OAAO,SAAS,CAAC,KAAU,EAAA;QACvB,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE;AAAE,YAAA,OAAO,IAAI,CAAC;AAC/E,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAC7B;IACD,OAAO,MAAM,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC3B,YAAA,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;AAErB,YAAA,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACnC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAW,KAAK,CAAC,GAAG,CAAC,CAAC;AAC3D,gBAAA,OAAO,CAAG,EAAA,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAG,EAAA,CAAC,CAAI,CAAA,EAAA,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAG,EAAA,CAAC,KAAK,CAAC;aACjE;AAAM,iBAAA,IAAI,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAClD,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAW,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9D,gBAAA,OAAO,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,CAAA,CAAA,EAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAA,EAAG,CAAC,CAAI,CAAA,EAAA,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAG,EAAA,CAAC,EAAE,CAAC;aACvF;SACJ;AACD,QAAA,OAAO,EAAE,CAAC;KACb;IAGD,OAAO,MAAM,CAAC,IAA+B,EAAA;AACzC,QAAA,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QAEvB,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC/B,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,IAAI,CAAC;QAEtB,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;AACpD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;AAClD,QAAA,OAAO,IAAI,CAAC;KACf;;IAGD,OAAO,UAAU,CAAC,MAAc,EAAE,IAAY,EAAE,MAAc,EAAE,IAAY,EAAA;QACxE,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAEjC,QAAA,OAAO,aAAa,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;KAC/E;IAED,OAAO,QAAQ,CAAC,MAAc,EAAE,IAAY,EAAE,MAAc,EAAE,IAAY,EAAA;QACtE,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAEjC,QAAA,OAAO,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;KAC7E;AACJ;;MChDY,UAAU,CAAA;AAEnB,IAAA,OAAO,OAAO,GAAA;AACV,QAAA,OAAO,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;KACtB;;AAED,IAAA,OAAO,MAAM,CAAC,MAAoB,EAAE,MAAoB,EAAA;AACpD,QAAA,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC;AACrE,QAAA,IAAI,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,IAAI,IAAI,GAAG,MAAM,CAAC;AAGrE,QAAA,IAAI,IAAI,KAAK,IAAI,EAAE;AACf,YAAA,OAAO,IAAI,CAAC;SACf;AAED,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE;AAChB,YAAA,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;KAC5C;AAED,IAAA,OAAO,QAAQ,CAAC,KAAW,EAAE,GAAS,EAAA;AAClC,QAAA,IAAI,KAAK,GAAG,IAAI,KAAK,EAAQ,CAAC;QAC9B,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AACrC,QAAA,OAAO,IAAI,IAAI,GAAG,EAAE;YAChB,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SAChC;AACD,QAAA,OAAO,KAAK,CAAC;KAChB;IAED,OAAO,QAAQ,CAAC,KAAW,EAAA;AACvB,QAAA,IAAI,IAAI,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;AAC/B,QAAA,IAAI,KAAK,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC7B,QAAA,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;AAC1B,QAAA,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AAEhD,QAAA,OAAO,IAAI,CAAC;KACf;IAED,OAAO,eAAe,CAAC,KAAoB,EAAA;QACvC,IAAI,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAEjC,QAAA,IAAI,CAAC,IAAI;AACL,YAAA,OAAO,IAAI,CAAC;AAEhB,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;;QAE9B,IAAI,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAChC,QAAA,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;AAEzB,QAAA,IAAI,GAAG,GAAG,CAAG,EAAA,IAAI,IAAI,KAAK,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAG,EAAA,KAAK,CAAI,CAAA,EAAA,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,CAAG,EAAA,GAAG,EAAE,CAAC;;AAElF,QAAA,OAAO,GAAG,CAAC;KACd;AAID,IAAA,OAAO,OAAO,CAAC,KAAW,EAAE,IAA+B,EAAA;QACvD,IAAI,GAAG,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACrC,QAAA,IAAI,CAAC,GAAG;AAAE,YAAA,OAAO,KAAK,CAAC;QAEvB,IAAI,QAAQ,GAAG,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,GAAG,CAAC,CAAC;QACpD,IAAI,IAAI,GAAG,KAAK,CAAC;AACjB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;AAClD,QAAA,OAAO,IAAI,CAAC;KACf;;AACD,IAAA,OAAO,QAAQ,CAAC,CAAO,EAAE,KAAa,EAAA;AAClC,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,CAAC,CAAC;QAErB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,CAAC;AAC1C,QAAA,OAAO,IAAI,CAAC;KACf;AACD,IAAA,OAAO,SAAS,CAAC,CAAO,EAAE,MAAc,EAAA;AACpC,QAAA,IAAI,CAAC,MAAM;AAAE,YAAA,OAAO,CAAC,CAAC;QAEtB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAC;AACxC,QAAA,OAAO,IAAI,CAAC;KACf;;AACD,IAAA,OAAO,OAAO,CAAC,CAAO,EAAE,IAAY,EAAA;AAChC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,CAAC,CAAC;QAEpB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AACpC,QAAA,OAAO,IAAI,CAAC;KACf;;AACD,IAAA,OAAO,QAAQ,CAAC,CAAO,EAAE,KAAa,EAAA;AAClC,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,CAAC,CAAC;AAErB,QAAA,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;;QAEvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,CAAC;AACvC,QAAA,OAAO,IAAI,CAAC;KACf;AACD,IAAA,OAAO,UAAU,CAAC,CAAO,EAAE,OAAe,EAAA;AACtC,QAAA,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,CAAC,CAAC;AAEvB,QAAA,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;;QAEvB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,CAAC;AAC7C,QAAA,OAAO,IAAI,CAAC;KACf;AACD,IAAA,OAAO,UAAU,CAAC,CAAO,EAAE,OAAe,EAAA;AACtC,QAAA,IAAI,CAAC,OAAO;AAAE,YAAA,OAAO,CAAC,CAAC;QAEvB,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC,CAAC;AAE7C,QAAA,OAAO,IAAI,CAAC;KACf;;IACD,OAAO,OAAO,CAAC,IAAU,EAAA;AACrB,QAAA,IAAI,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;KACvC;;IACD,OAAO,KAAK,CAAC,IAAU,EAAA;AACnB,QAAA,OAAO,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;KAC1B;;AACD,IAAA,OAAO,cAAc,CAAC,CAAO,EAAE,CAAO,EAAA;QAClC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC;KAC7C;;IACD,OAAO,SAAS,CAAC,CAAO,EAAA;AACpB,QAAA,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;KAC/C;;AACD,IAAA,OAAO,UAAU,CAAC,CAAO,EAAE,CAAO,EAAA;AAC9B,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;KACnH;;AAGD,IAAA,OAAO,MAAM,CAAC,KAA4B,EAAE,GAAiB,EAAA;AACzD,QAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,KAAK;AAAE,YAAA,OAAO,IAAI,CAAC;QAE1F,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAEhC,QAAA,IAAI,OAAO,GAAG,GAAG,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/C,IAAI,QAAQ,GAAG,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;AAExC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,QAAQ,IAAI,MAAM,CAAC,CAAC;KACrD;;AACD,IAAA,OAAO,cAAc,CAAC,OAAa,EAAE,QAAc,EAAA;AAC/C,QAAA,IAAI,KAAK,GAAG,QAAQ,IAAI,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AACrD,QAAA,IAAI,GAAG,GAAG,QAAQ,IAAI,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AACnD,QAAA,IAAI,IAAI,GAAG,QAAQ,IAAI,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AAExC,QAAA,IAAI,MAAM,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;AAC5D,QAAA,MAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC3B,QAAA,MAAM,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACzB,OAAO,MAAM,GAAG,IAAI,CAAC;KACxB;;AAED,IAAA,OAAO,YAAY,CAAC,KAAW,EAAE,IAAU,EAAA;AACvC,QAAA,IAAI,CAAC,IAAI;AACL,YAAA,OAAO,IAAI,CAAC;AAEhB,QAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,CAAC;KAC1C;;AACD,IAAA,OAAO,aAAa,CAAC,KAAW,EAAE,IAAkB,EAAA;AAChD,QAAA,IAAI,CAAC,IAAI;AACL,YAAA,OAAO,IAAI,CAAC;AAEhB,QAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;AAChD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,QAAQ,IAAI,OAAO,CAAC,CAAC;KACtD;;AACD,IAAA,OAAO,eAAe,CAAC,KAAW,EAAE,IAAkB,EAAA;AAClD,QAAA,IAAI,CAAC,IAAI;AACL,YAAA,OAAO,IAAI,CAAC;AAEhB,QAAA,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;;AAEhD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,GAAG,QAAQ,IAAI,OAAO,IAAI,KAAK,CAAC,CAAC;KAChE;;aAKM,IAAkB,CAAA,kBAAA,GACrB,sGAAsG,CAAC,EAAA;;IAI3G,OAAO,SAAS,CAAC,KAAU,EAAA;QACvB,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,EAAE;AAAE,YAAA,OAAO,IAAI,CAAC;AAC/E,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KAC7B;;;AAKD;;;;;;;;;;;AAWG;IACH,OAAO,MAAM,CAAC,KAA6B,EAAA;AACvC,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;AACpB,YAAA,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;AAC5C,YAAA,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1B;AAED,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC3B,YAAA,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;AAErB,YAAA,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;;YAGnC,IAAI,CAAC,KAAK,CAAC,KAAY,GAAG,QAAQ,CAAC,EAAE;AACjC,gBAAA,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC7B;AAED,YAAA,IAAI,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACzC;;;;;;AAM0D;gBAC1D,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAW,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC9D,OAAO,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;aAChC;AAED,YAAA,IAAI,KAA8B,CAAC;YACnC,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;AAC9C,gBAAA,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;aACtC;SACJ;AAED,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAY,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE;AACpB,YAAA,MAAM,IAAI,KAAK,CAAC,sBAAsB,KAAK,CAAA,aAAA,CAAe,CAAC,CAAC;SAC/D;AACD,QAAA,OAAO,IAAI,CAAC;KACf;AAED;;;AAGG;IACH,OAAO,eAAe,CAAC,KAAuB,EAAA;AAC1C,QAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,KAAK,GAAG,CAAC,CAAC;;AAGd,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC;AACrE,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC;;AAG/D,QAAA,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;AACV,YAAA,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AACtC,YAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;SACxC;AACD,QAAA,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAChF,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC;AACzC,QAAA,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;QACxC,MAAM,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAChC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AACjE,QAAA,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AACnC,QAAA,OAAO,IAAI,CAAC;KACf;IAED,OAAO,MAAM,CAAC,KAAU,EAAA;AACpB,QAAA,OAAO,KAAK,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;KAC3D;;;MCzRQ,WAAW,CAAA;IACpB,OAAO,sBAAsB,CAAC,QAAa,EAAA;AACvC,QAAA,IAAI,KAAU,CAAC;AACf,QAAA,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YACjE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACtC;aAAM;AACH,YAAA,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;SAC1B;AAED,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KACrC;IAED,OAAO,cAAc,CAAC,KAAU,EAAA;AAC5B,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK;kBACjD,KAAK,CAAC,MAAM;kBACZ,KAAK,CAAC;YAEZ,MAAM,MAAM,GAAoE,EAAE,CAAC;YACnF,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAEvC,YAAA,KAAK,IAAI,QAAQ,IAAI,UAAU,EAAE;AAC7B,gBAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAClC,gBAAA,IAAI,QAAQ,YAAY,KAAK,EAAE;AAC3B,oBAAA,KAAK,IAAI,OAAO,IAAI,QAAQ,EAAE;AAC1B,wBAAA,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;qBAClD;iBACJ;aACJ;AACD,YAAA,OAAO,MAAM,CAAC;SACjB;AACD,QAAA,OAAO,IAAI,CAAC;KACf;AACJ;;MCnCY,UAAU,CAAA;IACnB,OAAO,YAAY,CAAC,IAAoB,EAAA;AACpC,QAAA,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,IAAI,IAAI;AAClC,YAAA,OAAO,IAAI,CAAC;AAEhB,QAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC1B,YAAA,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;SACnD;QAED,MAAM,sBAAsB,GAAG,IAAI,CAAC;QACpC,MAAM,yBAAyB,GAAG,GAAG,CAAC;QACtC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEhC,QAAA,IAAI,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,KAAK,IAAI,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG;AAC5B,YAAA,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,YAAA,IAAI,EAAE,KAAK,GAAG,EAAE;AACZ,gBAAA,IAAI,CAAC,KAAK,MAAM,GAAG,CAAC;oBAChB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;;AAEjC,oBAAA,OAAO,EAAE,CAAC;aACjB;YACD,IAAI,EAAE,IAAI,sBAAsB,IAAI,EAAE,IAAI,yBAAyB,IAAI,EAAE,IAAI,mBAAmB;gBAC5F,MAAM;SACb;AAED,QAAA,OAAO,EAAE,CAAC;KACb;AAGD,IAAA,OAAO,QAAQ,CAAC,IAAiB,EAAE,QAAgB,EAAA;AAC/C,QAAA,IAAI,CAAC,IAAI;YAAE,OAAO;AAElB,QAAA,MAAM,GAAG,GAAI,MAAM,CAAC,SAAiB,CAAC;AACtC,QAAA,IAAI,GAAG,IAAI,GAAG,CAAC,gBAAgB,EAAE;AAC7B,YAAA,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SACxC;aAAM;YACH,IAAI,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACpC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACnC,YAAA,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACtB,YAAA,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC;AACpB,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YAC7B,CAAC,CAAC,KAAK,EAAE,CAAC;AACV,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SAChC;KACJ;AACJ;;MC7CY,YAAY,CAAA;IACrB,OAAO,SAAS,CAAC,KAAU,EAAA;QACvB,OAAO,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,IAAI,CAAC;KACzD;IAED,OAAO,QAAQ,CAAC,KAAU,EAAA;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;KAC7D;AAGD;;;;AAIG;IACH,OAAO,YAAY,CAAC,KAAU,EAAA;AAC1B,QAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;KAChH;IAGD,OAAO,OAAO,CAAC,GAAQ,EAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;AACpB,YAAA,OAAO,IAAI,CAAC;;;AAGhB,QAAA,KAAK,IAAI,IAAI,IAAI,GAAG,EAAE;AAClB,YAAA,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;AAClB,YAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;AACrB,gBAAA,OAAO,KAAK,CAAC;;;;SAIpB;AAED,QAAA,OAAO,IAAI,CAAC;KACf;AAGD;;AAEG;IACH,OAAO,cAAc,CAAC,GAAQ,EAAA;AAC1B,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;KAC9B;;IAED,OAAO,gBAAgB,CAAe,GAAM,EAAA;AACxC,QAAA,IAAI,CAAC,GAAG;YAAE,OAAO;AACjB,QAAA,KAAK,IAAI,GAAG,IAAI,GAAG,EAAE;AACjB,YAAA,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;YACnB,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;AACnC,gBAAA,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;aACnB;SACJ;AACD,QAAA,OAAO,GAAG,CAAA;KACb;;AAED,IAAA,OAAO,YAAY,CAA6B,MAAS,EAAE,MAAS,EAAA;QAChE,IAAI,CAAC,GAAQ,MAAM,CAAC;QACpB,IAAI,CAAC,GAAQ,MAAM,CAAC;QACpB,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;AACnC,YAAA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACf,YAAA,IAAI,OAAO,CAAC,KAAK,WAAW,EAAE;AAC1B,gBAAA,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aACd;SACJ;AACD,QAAA,OAAO,MAAM,CAAC;KACjB;IAID,OAAO,QAAQ,CAAU,KAAU,EAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACrB,YAAA,OAAO,KAAK,CAAC;QAEjB,IAAI,MAAM,GAAQ,EAAE,CAAC;AACrB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACtB,YAAA,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;SAC7C;aACI;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAQ,KAAI;AACpC,gBAAA,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;AAErB,gBAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;oBAClB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;iBAElC;qBAAM;AACH,oBAAA,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;iBACvC;AACL,aAAC,CAAC,CAAC;SACN;AAED,QAAA,OAAO,MAAW,CAAC;KACtB;AAEJ;;MC7FY,YAAY,CAAA;IACrB,OAAO,OAAO,CAAC,GAAQ,EAAA;AACnB,QAAA,IAAI,OAAO,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI;AAC1C,YAAA,OAAO,IAAI,CAAC;QAEhB,IAAI,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;QACjC,OAAO,GAAG,CAAC,IAAI,CAAC;QAChB,OAAO,GAAG,CAAC,QAAQ,CAAC;QACpB,OAAO,GAAG,CAAC,IAAI,CAAC;AAEhB,QAAA,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KACpC;AACJ;;ACdM,IAAI,OAAO,IAAI,YAAA;IAClB,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,SAAS,GAAQ,EAAE,CAAC;IAExB,OAAO;QACH,WAAW,EAAE,UAAU,OAAoB,EAAE,KAAa,EAAE,OAA2C,EAAE,OAA2C,EAAA;YAChJ,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAClD,SAAS,CAAC,CAAC,CAAC,GAAG;AACX,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,OAAO,EAAE,OAAO;aACnB,CAAC;YACF,OAAO,CAAC,EAAE,CAAC;SACd;QACD,cAAc,EAAE,UAAU,EAAU,EAAA;AAChC,YAAA,IAAI,EAAE,IAAI,SAAS,EAAE;AACjB,gBAAA,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;AACtB,gBAAA,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;AAC7D,gBAAA,OAAO,SAAS,CAAC,EAAE,CAAC,CAAC;aACxB;SACJ;KACJ,CAAC;AACN,CAAC,EAAE;;MCvBU,UAAU,CAAA;IACnB,OAAO,UAAU,CAAC,MAAc,EAAA;AAC5B,QAAA,IAAI,MAAM,IAAI,IAAI,EAAE;YAChB,MAAM,GAAG,EAAE,CAAC;SACf;AAED,QAAA,OAAO,MAAM;AACR,aAAA,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;AACtB,aAAA,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;AACvB,aAAA,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;AACtB,aAAA,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;AACrB,aAAA,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KAC9B;AAGD,IAAA,OAAO,QAAQ,CAAC,IAAY,EAAE,IAAY,EAAE,EAAA,GAAa,IAAI,EAAE,KAAK,GAAG,KAAK,EAAA;QACxE,IAAI,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AAEb,QAAA,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3D,QAAA,OAAO,IAAI,CAAC;KACf;AAGD,IAAA,OAAO,UAAU,CAAC,GAAW,EAAE,KAAc,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,IAAI,EAAA;QACrE,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAChD,QAAA,MAAM,CAAC,SAAS,GAAG,EAAE,CAAC;AACtB,QAAA,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;AACjB,QAAA,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAEhC,IAAI,KAAK,EAAE;AACP,YAAA,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;SACxB;QAED,IAAI,KAAK,EAAE;AACP,YAAA,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;SACvB;QACD,IAAI,KAAK,EAAE;AACP,YAAA,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;SACvB;AAED,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;;KAErC;AACD,IAAA,OAAO,WAAW,CAAC,GAAG,OAAiB,EAAA;QACnC,IAAI,QAAQ,GAAU,EAAE,CAAC;QACzB,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC5E,QAAA,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;KAChC;IACO,OAAO,kBAAkB,CAAC,GAAW,EAAA;QACzC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;YACnC,IAAI,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAQ,CAAC;AACrD,YAAA,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;AACjB,YAAA,MAAM,CAAC,IAAI,GAAG,iBAAiB,CAAC;AAChC,YAAA,IAAI,MAAM,CAAC,UAAU,EAAE;AACnB,gBAAA,MAAM,CAAC,kBAAkB,GAAG,MAAK;AAC7B,oBAAA,IAAI,MAAM,CAAC,UAAU,KAAK,QAAQ,IAAI,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE;AACpE,wBAAA,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC;wBACjC,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;qBAC1C;AACL,iBAAC,CAAC;aACL;AAAM,iBAAA;AACH,gBAAA,MAAM,CAAC,MAAM,GAAG,MAAK;oBACjB,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3C,iBAAC,CAAC;aACL;YACD,MAAM,CAAC,OAAO,GAAG,CAAC,KAAU,KAAK,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AACzE,YAAA,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACjE,SAAC,CAAC,CAAC;KACN;AAEJ;;MCzEY,SAAS,CAAA;IAElB,OAAO,MAAM,CAAC,KAAU,EAAA;QACpB,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;AACnC,QAAA,IAAI,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AAC7D,QAAA,IAAI,WAAW,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,EAAA;YACvE,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,SAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACb,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;KACjC;AACJ;;MCVY,UAAU,CAAA;AACnB,IAAA,OAAO,KAAK,CAAC,KAAa,EAAE,WAAmB,CAAC,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC;KACxF;;AAGD,IAAA,OAAO,KAAK,CAAC,CAAS,EAAE,GAAW,EAAE,GAAW,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;KAC1C;AAED,IAAA,OAAO,GAAG,CAAC,GAAG,MAAgB,EAAA;AAC1B,QAAA,OAAQ,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QAAA,CAAC;KACtD;AACJ;;MCXY,WAAW,CAAA;IACpB,OAAO,GAAG,CAAC,cAAyC,EAAE,UAAwC,GAAA,CAAC,EAAE,QAAA,GAAsC,EAAE,EAAA;AACrI,QAAA,IAAI,CAAC,cAAc;YAAE,cAAc,GAAG,CAAC,CAAC;AACxC,QAAA,IAAI,CAAC,UAAU;YAAE,UAAU,GAAG,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,QAAQ;YAAE,QAAQ,GAAG,EAAE,CAAC;;QAG7B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,CAAC;QACvD,IAAI,SAAiB,EAAE,OAAe,CAAC;AACvC,QAAA,IAAI,SAAS,IAAI,EAAE,EAAE;;YAEjB,SAAS,GAAG,CAAC,CAAC;YACd,OAAO,GAAG,SAAS,CAAC;SACvB;aAAM;;AAEH,YAAA,IAAI,UAAU,IAAI,CAAC,EAAE;gBACjB,SAAS,GAAG,CAAC,CAAC;gBACd,OAAO,GAAG,EAAE,CAAC;aAChB;AAAM,iBAAA,IAAI,UAAU,GAAG,CAAC,IAAI,SAAS,EAAE;AACpC,gBAAA,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC;gBAC1B,OAAO,GAAG,SAAS,CAAC;aACvB;iBAAM;AACH,gBAAA,SAAS,GAAG,UAAU,GAAG,CAAC,CAAC;AAC3B,gBAAA,OAAO,GAAG,UAAU,GAAG,CAAC,CAAC;aAC5B;SACJ;;QAGD,MAAM,eAAe,GAAG,CAAC,UAAU,GAAG,CAAC,IAAI,QAAQ,GAAG,CAAC,CAAC;AACxD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,QAAQ,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;AAEhF,QAAA,MAAM,eAAe,GAAG,UAAU,GAAG,CAAC,CAAC;AACvC,QAAA,MAAM,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;AAC3C,QAAA,MAAM,WAAW,GAAG,UAAU,IAAI,CAAC,CAAC;AACpC,QAAA,MAAM,UAAU,GAAG,UAAU,IAAI,SAAS,CAAC;;;QAI3C,MAAM,KAAK,GAAa,EAAE,CAAC;AAC3B,QAAA,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE;AACvC,YAAA,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;;QAGD,OAAO;YACH,SAAS;YACT,cAAc;YACd,UAAU;YACV,QAAQ;YACR,eAAe;YACf,WAAW;YACX,WAAW;YACX,UAAU;YACV,eAAe;YACf,cAAc;;;YAGd,KAAK;SACC,CAAC;KACd;AACJ;;MC9DY,YAAY,CAAA;AACrB,IAAA,OAAO,SAAS,CAAC,KAAA,GAAgB,CAAC,EAAA;QAC9B,IAAI,GAAG,GAAW,EAAE,CAAC;AACrB,QAAA,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;;YAEpC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,OAAO,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SAC1E;AACD,QAAA,OAAO,GAAG,CAAC;KACd;AAED,IAAA,OAAO,SAAS,CAAC,GAAW,EAAE,GAAW,EAAA;AACrC,QAAA,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrB,QAAA,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAEtB,QAAA,OAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;KAC7D;AACJ;;MChBY,aAAa,CAAA;AACtB,IAAA,OAAO,GAAG,CAAC,GAAW,EAAE,KAAU,EAAA;QAC9B,IAAI,CAAC,GAAG,EAAE;YAAE,OAAO;SAAE;QAErB,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC7B,OAAO;SACV;AAED,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC3B,YAAA,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SACjC;AACD,QAAA,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;KACpC;IAGD,OAAO,GAAG,CAAC,GAAW,EAAA;QAClB,IAAI,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAEpC,IAAI,CAAC,GAAG,EAAE;AAAE,YAAA,OAAO,IAAI,CAAC;SAAE;;AAG1B,QAAA,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAChB,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxB,YAAA,OAAO,CAAC,CAAC;SACZ;AAED,QAAA,OAAO,GAAG,CAAC;KACd;AACJ;;MC7BY,YAAY,CAAA;IACrB,OAAO,UAAU,CAAC,CAAiB,EAAA;AAC/B,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;AAClB,YAAA,OAAO,CAAC,CAAC;AAEb,QAAA,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KACjD;IAED,OAAO,aAAa,CAAC,KAAqB,EAAA;QACtC,OAAO,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,QAAQ,KAAK,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;KAC/G;IACD,OAAO,kBAAkB,CAAC,KAAqB,EAAA;QAC3C,OAAO,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,QAAQ,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;KACtH;IACD,OAAO,OAAO,CAAC,GAA8B,EAAA;AACzC,QAAA,IAAI,CAAC,GAAG;AACJ,YAAA,OAAO,GAAG,CAAC;AACf,QAAA,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;KACrB;IACD,OAAO,WAAW,CAAC,KAAqB,EAAA;AACpC,QAAA,OAAO,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,KAAK,CAAC;KACrE;AACD,IAAA,OAAO,IAAI,CAAC,GAA8B,EAAE,SAAiB,EAAE,IAA+B,EAAA;AAC1F,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;AACzB,YAAA,OAAO,IAAI,CAAC;SACf;AACD,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE;AAC1B,YAAA,OAAO,GAAG,CAAC;SACd;AAED,QAAA,OAAO,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC;KACjC;AACD,IAAA,OAAO,IAAI,CAAC,GAAkB,EAAE,EAAU,EAAA;AACtC,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE;AACX,YAAA,OAAO,GAAG,CAAC;QAEf,IAAI,KAAK,GAAG,CAAC,EACT,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;QAErB,OAAO,KAAK,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE;AACnC,YAAA,EAAE,KAAK,CAAC;QAEZ,OAAO,GAAG,GAAG,KAAK,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE;AACrC,YAAA,EAAE,GAAG,CAAC;QAEV,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;KAC5E;AACD,IAAA,OAAO,OAAO,CAAC,GAAkB,EAAE,KAAa,EAAA;AAC5C,QAAA,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK;AACd,YAAA,OAAO,GAAG,CAAC;QAEf,IAAI,KAAK,GAAG,CAAC,EACT,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;AAErB,QAAA,OAAO,KAAK,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AAChD,YAAA,EAAE,KAAK,CAAC;AAEZ,QAAA,OAAO,GAAG,GAAG,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,YAAA,EAAE,GAAG,CAAC;QAEV,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;KAC5E;AAEJ;;AC/DM,IAAI,OAAO,GAAG,CAAC,YAAA;IAElB,SAAS,QAAQ,CAAC,CAAM,EAAA,EAAE,OAAO,CAAC,CAAC,EAAC;IAEpC,SAAS,UAAU,CAAC,CAAM,EAAE,EAAA,OAAO,QAAO,CAAC,CAAC,KAAG,QAAQ,GAAG,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,EAAC;AAE/E,IAAA,SAAS,mBAAmB,CAAC,CAAM,EAAE,GAAQ,EAAA;QACzC,GAAG,GAAG,QAAO,GAAG,CAAC,KAAG,QAAQ,GAAG,EAAC,SAAS,EAAC,GAAG,EAAC,GAAG,GAAG,IAAE,EAAE,CAAC;AACzD,QAAA,IAAG,QAAO,CAAC,CAAC,IAAE,UAAU,EAAC;YACrB,IAAI,IAAI,GAAG,CAAC,CAAC;;YAEb,CAAC,GAAG,UAAS,EAAO,EAAE,EAAA,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAC,CAAA;SAC5D;AACD,QAAA,IAAG,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;;YAEf,IAAI,EAAE,GAAG,CAAC,CAAC;AACX,YAAA,IAAI,UAAU,GAAG,GAAG,CAAC,UAAU,GAAC,UAAU,GAAC,QAAQ,CAAC;AACpD,YAAA,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,UAAS,EAAO,EAAC,EAAO,IAAG,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAC,CAAA;AACvF,YAAA,CAAC,GAAG,UAAS,EAAO,EAAC,EAAO,EAAA,EAAG,OAAO,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAC,CAAA;SACtF;AACD,QAAA,IAAG,GAAG,CAAC,SAAS,KAAK,CAAC,CAAC;AAAE,YAAA,OAAO,UAAS,EAAO,EAAC,EAAO,EAAA,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,EAAC,EAAE,CAAC,CAAA,EAAC,CAAC;AAC5E,QAAA,OAAO,CAAC,CAAC;KACZ;AAED;;AAEyE;AACzE,IAAA,SAAS,EAAE,CAAY,IAAS,EAAE,GAAQ,EAAA;AACtC;;AAEE;QACF,IAAI,CAAC,GAAG,CAAC,QAAO,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC;QACrE,IAAI,CAAC,GAAG,mBAAmB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,CAAC,GAAG,UAAS,CAAM,EAAE,CAAM,EAAA;AACnB,YAAA,OAAO,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;SAC3B;cACD,CAAC,CAAC;AACd,QAAA,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;AACd,QAAA,OAAO,CAAC,CAAC;KACZ;AACD,IAAA,EAAE,CAAC,OAAO,GAAG,EAAE,CAAC;AAChB,IAAA,OAAO,EAAE,CAAC;AACd,CAAC;;MC1CY,SAAS,CAAA;aACH,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC,EAAA;IAE9B,OAAO,GAAG,CAAC,GAAW,EAAA;AAClB,QAAA,IAAI,CAAC,GAAG;YAAE,OAAO;AACjB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACzB;AAED,IAAA,OAAO,GAAG,CAAC,GAAW,EAAE,KAAU,EAAA;AAC9B,QAAA,IAAI,CAAC,GAAG;YAAE,OAAO;AACjB,QAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;KAC1B;AAED,IAAA,OAAO,KAAK,GAAA;AACR,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;KAClB;IACD,OAAO,MAAM,CAAC,GAAW,EAAA;AACrB,QAAA,IAAI,CAAC,GAAG;YAAE,OAAO;AACjB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;KACxB;;;MCnBQ,SAAS,CAAA;IAClB,OAAO,aAAa,CAAC,GAAW,EAAA;AAC5B,QAAA,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KACrD;IACD,OAAO,SAAS,CAAC,GAAW,EAAA;AACxB,QAAA,IAAI,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5B,QAAA,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACrD;IACD,OAAO,UAAU,CAAC,GAAW,EAAA;QACzB,IAAI,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,IAAI,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC1B,QAAA,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE;AACX,YAAA,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE;AACX,gBAAA,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;gBAC5B,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;aAC/B;YACD,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;SAC9B;AACD,QAAA,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE;YACX,OAAO,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;SAC9B;AACD,QAAA,OAAO,GAAG,CAAC;KACd;AACJ;;MCxBY,gBAAgB,CAAA;aACT,IAAW,CAAA,WAAA,GAAG,oMAAoM,CAAC,EAAA;IAEnO,OAAO,YAAY,CAAC,KAAqB,EAAA;QACrC,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,QAAQ,KAAK,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;AACtG,YAAA,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACvC;;;MCFQ,WAAW,CAAA;AADxB,IAAA,WAAA,GAAA;QAEY,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAChC,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAC3B,IAAK,CAAA,KAAA,GAAqB,IAAI,CAAC;AA+O1C,KAAA;AA7OG,IAAA,IAAI,IAAI,GAAA;AACJ,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACtB,IAAI,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,IAAI,EAAE;AACN,gBAAA,IAAI,CAAC,EAAE,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;AACnF,gBAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;AACxG,gBAAA,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC;gBAE5I,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC3B,oBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAM,EAAA,EAAI,OAAO,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;iBACtF;aACJ;AACD,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,sBAAsB,EAAE,CAAC;SACjC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IAIO,sBAAsB,GAAA;QAC1B,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAE9B,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;AACtB,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,gBAAgB,EAAE;AAC/B,YAAA,IAAI,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAE3D,YAAA,IAAI,OAAO,GAAG,CAAC,EAAE;gBACb,IAAI,CAAC,iBAAiB,EAAE,CAAC;aAC5B;AAED,YAAA,MAAM,cAAc,GAAG,KAAM,CAAA;AAC7B,YAAA,IAAI,OAAO,GAAG,cAAc,EAAE;gBAC1B,OAAO,GAAG,cAAc,CAAC;aAC5B;AAED,YAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,MAAK;gBAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;aAC5B,EAAE,OAAO,CAAC,CAAC;SACf;KACJ;IACO,sBAAsB,GAAA;AAC1B,QAAA,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACnC,YAAA,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAChC;KACJ;IACO,iBAAiB,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,sBAAsB,EAAE;AAC7B,YAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC;SACtC;KACJ;IAGD,eAAe,GAAA;AACX,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;AAE/C,QAAA,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,GAAG,OAAO,CAAC;AACtC,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;YAE1B,IAAI,CAAC,cAAc,EAAE,CAAC;;;;;YAMtB,IAAI,CAAC,QAAQ,EAAE;gBACX,IAAI,CAAC,MAAM,EAAE,CAAC;aACjB;AACD,YAAA,OAAO,QAAQ,CAAC;SACnB;AACD,QAAA,OAAO,QAAQ,CAAC;KACnB;IACD,cAAc,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAChD;KACJ;AAID,IAAA,IAAI,UAAU,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC1B,IAAI,CAAC,kBAAkB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;YAC9D,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;SACvE;QAED,IAAI,CAAC,IAAI,CAAC,qBAAqB;AAC3B,YAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAEzD,OAAO,IAAI,CAAC,qBAAqB,CAAC;KACrC;AAKD,IAAA,IAAI,cAAc,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAC9B,YAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,OAAO,EAAQ,CAAC;YAClD,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,sBAAsB,CAAC,YAAY,EAAE,CAAC;SAC/E;QAED,IAAI,CAAC,IAAI,CAAC,yBAAyB;AAC/B,YAAA,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC,yBAAyB,CAAC;KACzC;AAID,IAAA,KAAK,CAAC,IAAmC,EAAA;;;;;;;;;;AAWrC,QAAA,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,eAAe,EAAE,CAAC;KAC1B;IACD,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACpB;IAIS,UAAU,GAAA;AAChB,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,IAAI,IAAI,EAAE;YACN,OAAO,IAAI,CAAC,OAAO,CAAC;SACvB;AAED,QAAA,OAAO,IAAI,CAAC;KACf;IAES,sBAAsB,GAAA;AAC5B,QAAA,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,IAAI,IAAI,EAAE;YACN,OAAO,IAAI,CAAC,gBAAgB,CAAC;SAChC;AAED,QAAA,OAAO,IAAI,CAAC;KACf;;;;;;;;;;;;;AAmBD,IAAA,aAAa,CAAC,UAAoD,EAAA;QAC9D,IAAI,CAAC,UAAU,EAAE;AACb,YAAA,OAAO,IAAI,CAAC;SACf;QAED,IAAI,GAAG,GAAG,CAAC,CAAC;AACZ,QAAA,IAAI,KAAgC,CAAC;QACrC,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;YAClE,GAAG,GAAG,CAAC,UAAU,CAAC;AACtB,SAAC;;AAEI,aAAA,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE;YACrC,IAAI,CAAC,UAAU,CAAC,GAAG;AACf,gBAAA,OAAO,IAAI,CAAC;AAEhB,YAAA,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC;AACrB,YAAA,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;SAC5B;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;KAC5C;IAGD,cAAc,CAAC,WAA2B,EAAE,KAAqB,EAAA;QAC7D,IAAI,CAAC,WAAW,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1C,YAAA,OAAO,IAAI,CAAC;SACf;AAED,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACvB,QAAA,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACvD,IAAI,CAAC,eAAe,EAAE;AAClB,YAAA,OAAO,KAAK,CAAC;SAChB;QAED,IAAI,KAAK,EAAE;AACP,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,gBAAA,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACzB,gBAAA,IAAI,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;gBAC/B,IAAI,KAAK,EAAE;oBACP,IAAI,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AACxD,oBAAA,IAAI,aAAa;AACb,wBAAA,OAAO,IAAI,CAAC;iBACnB;aACJ;SACJ;aAAM;AACH,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,gBAAA,MAAM,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AACzB,gBAAA,IAAI,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;AAC/B,gBAAA,IAAI,KAAK;AACL,oBAAA,OAAO,IAAI,CAAC;aACnB;SACJ;AAED,QAAA,OAAO,KAAK,CAAC;KAChB;AAGD,IAAA,iBAAiB,CAAC,IAAS,EAAA;;;;AAKvB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAEnC,IAAI,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;;AAGnD,QAAA,OAAO,aAAa,CAAC;KACxB;8GAjPQ,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAX,WAAW,EAAA,CAAA,CAAA,EAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;;;MCCE,gBAAgB,CAAA;IACzB,WAA+B,CAAA,WAAwB,EAAqB,MAAc,EAAA;QAA3D,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAAqB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KAAK;IAE/F,WAAW,CAAC,KAA6B,EAAE,KAA0B,EAAA;QACjE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AAC5E,YAAA,OAAO,KAAK,CAAC;SAChB;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;;;;;;KASzD;8GAlBQ,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAhB,gBAAgB,EAAA,CAAA,CAAA,EAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;;;MCHE,WAAW,CAAA;AAEpB,IAAA,WAAA,CACuB,UAAkB,EAClB,GAAiB,EACpC,gBAAkC,EAAA;QAFf,IAAU,CAAA,UAAA,GAAV,UAAU,CAAQ;QAClB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAc;AAEpC,QAAA,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KAChF;AACJ;;ACWK,MAAO,WAAY,SAAQ,WAAW,CAAA;AACxC,IAAA,WAAA,CACI,UAAkB,EAClB,GAAiB,EACjB,gBAAkC,EAAA;AAClC,QAAA,KAAK,CAAC,UAAU,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;KAC5C;AAED,IAAA,GAAG,CAAC,EAAU,EAAA;AACV,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,UAAU,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;KAC/G;IACD,IAAI,CAAC,EAAU,EAAE,GAAW,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,UAAU,CAAI,CAAA,EAAA,EAAE,CAAI,CAAA,EAAA,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;KACvH;AAED,IAAA,MAAM,CAAC,MAAY,EAAA;AACf,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAO,IAAA,EAAA,IAAI,CAAC,UAAU,CAAE,CAAA,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC9G;AACD,IAAA,GAAG,CAAC,MAAY,EAAA;AACZ,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAO,IAAA,EAAA,IAAI,CAAC,UAAU,CAAM,IAAA,CAAA,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC/G;AAED,IAAA,IAAI,CAAC,KAAU,EAAA;QACX,OAAO,CAAC,KAAK,CAAC,EAAE;AACZ,cAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAM,CAAO,IAAA,EAAA,IAAI,CAAC,UAAU,CAAE,CAAA,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9G,cAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAM,CAAA,IAAA,EAAO,IAAI,CAAC,UAAU,CAAI,CAAA,EAAA,KAAK,CAAC,EAAE,CAAA,CAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;KACjI;AAED,IAAA,MAAM,CAAC,EAAO,EAAA;AACV,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,UAAU,CAAA,CAAA,EAAI,EAAE,CAAA,CAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;KACrH;IACD,OAAO,CAAC,EAAO,EAAE,GAAQ,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,UAAU,CAAI,CAAA,EAAA,EAAE,CAAI,CAAA,EAAA,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;KAC7H;AAED,IAAA,OAAO,CAAC,EAAO,EAAA;AACX,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,UAAU,CAAA,CAAA,EAAI,EAAE,CAAA,QAAA,CAAU,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;KAC7H;AAED,IAAA,OAAO,CAAC,KAAU,EAAA;AACd,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,UAAU,CAAA,QAAA,CAAU,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;KAC9H;AACD,IAAA,UAAU,CAAC,KAAU,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,UAAU,CAAA,WAAA,CAAa,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;KACpI;AAED,IAAA,KAAK,CAAC,KAAU,EAAA;AACZ,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA,IAAA,EAAO,IAAI,CAAC,UAAU,CAAA,MAAA,CAAQ,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;KACzH;IAGD,MAAM,CAAC,KAAU,EAAE,UAAe,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAO,IAAA,EAAA,IAAI,CAAC,UAAU,CAAW,QAAA,EAAA,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;KACpI;AACJ;;MCtEY,SAAS,CAAA;AAMrB,CAAA;AAEK,MAAO,KAAM,SAAQ,SAAS,CAAA;AAEnC,CAAA;AAEK,MAAO,KAAM,SAAQ,SAAS,CAAA;AAEnC,CAAA;MAGY,YAAY,CAAA;;AAMrB,IAAA,WAAA,CAAY,MAAc,EAAA;AALlB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAO,CAAC;AAClC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAO,CAAC;QAClC,IAAoB,CAAA,oBAAA,GAAG,KAAK,CAAC;;AAKjC,QAAA,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,IAAG;AAC5B,YAAA,IAAI,KAAK,YAAY,eAAe,EAAE;AAClC,gBAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;;AAE3B,oBAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;iBACrC;qBAAM;;oBAEH,IAAI,CAAC,KAAK,EAAE,CAAC;iBAChB;aACJ;AACL,SAAC,CAAC,CAAC;KACN;AAED,IAAA,GAAG,CAAC,SAAoB,EAAE,OAAe,EAAE,oBAAoB,GAAG,KAAK,EAAA;QACnE,IAAI,QAAQ,GAAG,EAAE,CAAC;AAClB,QAAA,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;KAC5D;AACD,IAAA,QAAQ,CAAC,SAAoB,EAAE,QAAkB,EAAE,oBAAoB,GAAG,KAAK,EAAA;AAC3E,QAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;AACjD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC1E;IACD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC;IAGD,QAAQ,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;KAC3C;IACD,QAAQ,GAAA;AACJ,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;KAC3C;AAGD,IAAA,OAAO,CAAC,OAAe,EAAE,KAAqB,EAAE,IAAoB,EAAA;QAChE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;KAC9C;AACD,IAAA,KAAK,CAAC,OAAe,EAAE,KAAqB,EAAE,IAAoB,EAAA;QAC9D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;KAC7C;AACD,IAAA,OAAO,CAAC,OAAe,EAAE,KAAqB,EAAE,IAAoB,EAAA;QAChE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;KAC9C;AACD,IAAA,IAAI,CAAC,OAAe,EAAE,KAAqB,EAAE,IAAoB,EAAA;QAC7D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;KAC3C;AACO,IAAA,IAAI,CAAC,OAAe,EAAE,KAAqB,EAAE,SAA4B,EAAE,IAAoB,EAAA;QACnG,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,IAAI,GAAG,eAAe,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;SACjD;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;KAC5E;8GA7DQ,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAZ,YAAY,EAAA,CAAA,CAAA,EAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;;;ACTX;MAEa,gBAAgB,CAAA;AACzB,IAAA,WAAA,CACqB,KAAmB,EACnB,SAA2B,EAC3B,MAAc,EAAA;QAFd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAc;QACnB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QAC3B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;;AAGnC,QAAA,IAAA,CAAA,iBAAiB,GAAG,CAAC,WAAW,GAAG,EAAE,KAAK,CAAI,SAAS,GAAG,WAAW,EAAE,MAAA,GAAS,EAAO,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AAChK,QAAA,IAAA,CAAA,uBAAuB,GAAG,CAAC,WAAW,GAAG,EAAE,KAAK,CAAI,SAAS,GAAG,WAAW,EAAE,MAAA,GAAS,EAAO,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;KAJpI;AAMxC;;;;;;;AAOG;AACH,IAAA,WAAW,CAAI,WAAW,GAAG,EAAE,EAAE,SAAS,GAAG,WAAW,EAAE,MAAA,GAAS,EAAO,EAAE,IAAc,EAAA;QACtF,OAAO,CAAC,QAA2B,KAAmB;AAClD,YAAA,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAExB,IAAI,IAAI,EAAE;gBACN,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;aACnD;AAED,YAAA,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;AACtB,SAAC,CAAC;KACL;AAID;;;;;;AAMG;AACH,IAAA,iBAAiB,CAAI,WAAW,GAAG,EAAE,EAAE,SAAS,GAAG,WAAW,EAAE,MAAA,GAAS,EAAO,EAAE,IAAc,EAAA;QAC5F,OAAO,CAAC,QAA2B,KAAqB;AACpD,YAAA,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAExB,IAAI,IAAI,EAAE;gBACN,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;aACnD;AAGD,YAAA,IAAI,KAAU,CAAC;AACf,YAAA,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;gBACjE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACtC;iBAAM;AACH,gBAAA,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;aAC1B;AAED,YAAA,IAAI,KAAK,YAAY,UAAU,EAAE;AAC7B,gBAAA,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;aAClC;YAED,OAAO,YAAY,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;AAClE,SAAC,CAAC;KACL;AAGO,IAAA,SAAS,CAAC,WAAmB,EAAE,SAAiB,EAAE,QAA2B,EAAA;AACjF,QAAA,QAAQ,QAAQ,CAAC,MAAM;YACnB,KAAK,CAAC;AACF,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA,4BAAA,CAA8B,CAAC,CAAC;gBACjD,MAAM;YAEV,KAAK,GAAG;AACJ,gBAAA,IAAI,KAAU,CAAC;AACf,gBAAA,IAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;oBACjE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;iBACtC;qBAAM;AACH,oBAAA,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;iBAC1B;AAED,gBAAA,IAAI,KAAK,YAAY,UAAU,EAAE;AAC7B,oBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAA,EAAA,EAAK,SAAS,CAAA,SAAA,EAAY,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAA,CAAE,CAAC,CAAC;iBACtF;AAAC,gBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBAC7B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAe,CAAC,CAAC;iBAC9C;AAAM,qBAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;oBAClC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK;0BACjD,KAAK,CAAC,MAAM;0BACZ,KAAK,CAAC;oBAEZ,MAAM,aAAa,GAAa,EAAE,CAAC;oBACnC,MAAM,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAEtD,oBAAA,KAAK,IAAI,QAAQ,IAAI,UAAU,EAAE;AAC7B,wBAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AAClC,wBAAA,IAAI,QAAQ,YAAY,KAAK,EAAE;AAC3B,4BAAA,KAAK,IAAI,OAAO,IAAI,QAAQ,EAAE;AAC1B,gCAAA,MAAM,UAAU,GAAG,CAAc,WAAA,EAAA,OAAO,EAAE,CAAC;gCAC3C,IAAI,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;;AAE3D,gCAAA,IAAI,UAAU,IAAI,iBAAiB,EAAE;oCACjC,iBAAiB,GAAG,OAAO,CAAC;iCAC/B;gCAED,IAAI,QAAQ,EAAE;AACV,oCAAA,MAAM,WAAW,GAAG,CAAU,OAAA,EAAA,QAAQ,EAAE,CAAC;AACzC,oCAAA,IAAI,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAU,OAAA,EAAA,QAAQ,CAAE,CAAA,CAAC,CAAC;;AAEtE,oCAAA,IAAI,WAAW,IAAI,kBAAkB,EAAE;wCACnC,kBAAkB,GAAG,QAAQ,CAAA;qCAChC;oCACD,aAAa,CAAC,IAAI,CAAC,kBAAkB,GAAG,KAAK,GAAG,iBAAiB,CAAC,CAAC;iCACtE;qCACI;AACD,oCAAA,aAAa,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;iCACzC;6BACJ;yBACJ;qBACJ;oBACD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;iBAChD;gBACD,MAAM;YAEV,KAAK,GAAG;AACJ,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACjC,MAAM;YAEV,KAAK,GAAG;AACJ,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAC9B,MAAM;YAEV,KAAK,GAAG;AACJ,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBAC9B,MAAM;YAEV,KAAK,GAAG;AACJ,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;gBAC7C,MAAM;YAEV,KAAK,GAAG;AACJ,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBAC1C,MAAM;AAEV,YAAA;gBACI,MAAM;SACb;KACJ;8GAhJQ,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAD,IAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAhB,gBAAgB,EAAA,CAAA,CAAA,EAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;;;MCZE,YAAY,GAAG,IAAI,cAAc,CAAS,cAAc,EAAE;MAC1D,WAAW,GAAG,IAAI,cAAc,CAAS,aAAa,EAAE;MACxD,QAAQ,GAAG,IAAI,cAAc,CAAS,UAAU,EAAE;MAClD,kBAAkB,GAAG,IAAI,cAAc,CAAS,oBAAoB,EAAE;MACtE,gBAAgB,GAAG,IAAI,cAAc,CAAS,kBAAkB;;MCWhE,YAAY,CAAA;AACrB,IAAA,WAAA,CACuB,IAAgB,EAChB,IAAiB,EACG,OAAe,EAAA;QAFnC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAa;QACG,IAAO,CAAA,OAAA,GAAP,OAAO,CAAQ;KACzD;IAED,GAAG,CAAU,GAAW,EAAE,MAAY,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC/G;;;;;;;;;AASF;KACD;IAED,SAAS,CAAC,GAAW,EAAE,MAAe,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KACrI;IACD,QAAQ,CAAC,GAAW,EAAE,MAAY,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KAC5I;IACD,OAAO,CAAC,GAAW,EAAE,MAAY,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;KACrI;IACD,QAAQ,CAAC,GAAW,EAAE,IAAS,EAAA;QAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;KACzG;AAGS,IAAA,YAAY,CAAC,GAAQ,EAAA;AAC3B,QAAA,IAAI,CAAC,GAAG;AACJ,YAAA,OAAO,SAAS,CAAC;AAErB,QAAA,IAAI,MAAM,GAAG,IAAI,UAAU,CAAC,EAAE,OAAO,EAAE,IAAI,sBAAsB,EAAE,EAAE,CAAC,CAAC;QACvE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;AAChC,YAAA,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;AAEvB,YAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,KAAK,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;gBAC1F,SAAS;YAEb,IAAI,KAAK,GAAG,KAAK,CAAC;;;;YAKlB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;;;;;;;;SAQtC;AACD,QAAA,OAAO,MAAM,CAAC;;;;;;KAQjB;;;;;;;;;;;;;IAeD,IAAI,CAAU,GAAW,EAAE,IAAiB,EAAA;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAI,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;;;;KAItF;IACD,GAAG,CAAU,GAAW,EAAE,IAAiB,EAAA;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;;;;KAIrF;IACD,MAAM,CAAC,GAAW,EAAE,IAAiB,EAAA;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;;;;;KAKhG;IACD,KAAK,CAAU,GAAW,EAAE,IAAiB,EAAA;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAI,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;KACvF;IAGS,UAAU,GAAA;AAChB,QAAA,IAAI,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QACpC,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;AAClE,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC3B,QAAA,MAAM,KAAK,GAAG,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,SAAS,CAAC;AAC1C,QAAA,IAAI,KAAK;YACL,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;AAC1D,QAAA,OAAO,WAAW,CAAC;KACtB;AAnHQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,sEAIT,YAAY,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAJf,YAAY,EAAA,CAAA,CAAA,EAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;;0BAKF,MAAM;2BAAC,YAAY,CAAA;;MAmIf,sBAAsB,CAAA;AAC/B,IAAA,SAAS,CAAC,GAAW,EAAA;AACjB,QAAA,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;KAClC;AACD,IAAA,WAAW,CAAC,KAAa,EAAA;AACrB,QAAA,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;KACpC;AACD,IAAA,SAAS,CAAC,GAAW,EAAA;AACjB,QAAA,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;KAClC;AACD,IAAA,WAAW,CAAC,KAAa,EAAA;AACrB,QAAA,OAAO,kBAAkB,CAAC,KAAK,CAAC,CAAC;KACpC;AACJ;;MC/JY,aAAa,CAAA;AAD1B,IAAA,WAAA,GAAA;QAEI,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;AAiCnB,KAAA;IA/BG,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE,CAAC;KACf;IACD,WAAW,GAAA;QACP,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;AAED,IAAA,MAAM,IAAI,GAAA;AACN,QAAA,IAAI;YACA,IAAI,IAAI,CAAC,OAAO;gBAAE,OAAO;AAEzB,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,YAAA,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;AAClB,YAAA,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;AACvB,YAAA,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;AAC5B,YAAA,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;SACnC;gBACO;AACJ,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACxB;AAED,QAAA,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;KAChC;AACD,IAAA,IAAI,MAAM;AACV,IAAA,SAAS,MAAM;AACf,IAAA,cAAc,MAAM;AACpB,IAAA,kBAAkB,MAAM;AACxB,IAAA,eAAe,MAAM;AAErB,IAAA,MAAM,OAAO,GAAA;KACZ;8GAjCQ,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAb,aAAa,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,SAAS;;;ACKJ,MAAO,aAA4B,SAAQ,aAAa,CAAA;IAC1D,WACuB,CAAA,KAAqB,EACrB,MAAc,EAAA;AAEjC,QAAA,KAAK,EAAE,CAAC;QAHW,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAM7B,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;QASlB,IAAI,CAAA,IAAA,GAAkB,IAAI,CAAC;KAZlC;AAID,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAI,QAAQ,CAAC,CAAe,EAAA;QACxB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACjD;AAGD,IAAA,IAAc,GAAG,GAAA;QACb,IAAI,CAAC,IAAI,CAAC,IAAI;AACV,YAAA,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,IAAI,CAAC;KACpB;AAMS,IAAA,QAAQ,CAAC,IAAY,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACjD;AACS,IAAA,aAAa,CAAC,IAAY,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACtD;IAGS,iBAAiB,GAAA;AACvB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAChF,IAAI,SAAS,EAAE;AACX,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;;;;YAIrC,OAAO;SACV;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1F;IAGD,MAAM,GAAA;QACF,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC5B;AAED,IAAA,YAAY,CAAC,IAAiB,EAAE,QAAgB,EAAE,IAAoB,EAAA;AAClE,QAAA,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;KACvC;IACD,KAAK,CAAC,EAAkB,EAAE,SAAqB,EAAA;QAC3C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClC,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAClB,OAAO;SACV;AACD,QAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1B,QAAA,IAAI,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;AAE/B,QAAA,IAAI,UAAkB,CAAC;QAEvB,QAAQ,SAAS;YACb,KAAK,SAAS,CAAC,GAAG;gBACd,UAAU,GAAG,gBAAgB,CAAC;gBAC9B,MAAM;AAEV,YAAA;gBACI,UAAU,GAAG,YAAY,CAAA;gBACzB,MAAM;SACb;AACD,QAAA,GAAG,CAAC,SAAS,CAAC,eAAe,UAAU,CAAA,CAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;YACzE,IAAI,GAAG,EAAE;AACL,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;aAC9B;AACL,SAAC,CAAC,CAAC;KACN;8GAlFQ,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAb,aAAa,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,SAAS;wGAYF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAeG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;AC5BV,IAAIC,UAAQ,GAAG,CAAC,CAAC;AAGX,MAAO,eAAgB,SAAQ,aAAa,CAAA;IAE9C,WACc,CAAA,SAAoB,EACpB,WAAuB;;;AAGjC,QAAA,KAAK,EAAE,CAAC;QAJE,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACpB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;;AAOrC,QAAA,IAAA,CAAA,SAAS,GAAyB,MAAK,GAAI,CAAC;AAE5C;;;AAGG;AACH,QAAA,IAAA,CAAA,UAAU,GAAc,MAAK,GAAI,CAAC;AAYf,QAAA,IAAA,CAAA,MAAM,GAAsB,IAAI,YAAY,EAAO,CAAC;AACpD,QAAA,IAAA,CAAA,QAAQ,GAA6B,IAAI,YAAY,EAAc,CAAC;AAE/E,QAAA,IAAA,CAAA,KAAK,GAAW,CAAA,IAAA,EAAO,EAAEA,UAAQ,EAAE,CAAC;QAcpC,IAAc,CAAA,cAAA,GAAY,KAAK,CAAC;QAK9B,IAAM,CAAA,MAAA,GAAQ,IAAI,CAAC;QAwCrB,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAgB3B,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAgB3B,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;KAnHlC;AAYD;;;;AAIC;IACS,WAAW,CAAC,GAAW,EAAE,KAAU,EAAA;AACzC,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;KAC1E;AAMD,IAAA,IAAI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IACD,IACI,IAAI,CAAC,KAAa,EAAA;AAClB,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB;KACJ;AACD,IAAA,aAAa,MAAM;AAInB,IAAA,IAAI,aAAa,GAAA;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;AAGD,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IACD,IACI,KAAK,CAAC,QAAa,EAAA;AACnB,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;AAC1B,YAAA,IAAI,eAAe,GAAe;gBAC9B,QAAQ,EAAE,IAAI,CAAC,MAAM;AACrB,gBAAA,QAAQ,EAAE,QAAQ;aACrB,CAAC;AAEF,YAAA,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;AACtC,YAAA,IAAI,eAAe,CAAC,MAAM,KAAK,IAAI;gBAC/B,OAAO;;AAGX,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;YACvB,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;KACJ;AACD,IAAA,eAAe,CAAC,CAAa,EAAA;AACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACzB;AACD,IAAA,cAAc,MAAM;AAEpB;;;AAGG;AACH,IAAA,UAAU,CAAC,QAAa,EAAA;AACpB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE;AAC1B,gBAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;gBACtB,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACxB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC/B;SACJ;KACJ;;AAID,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IACI,QAAQ,CAAC,KAAmB,EAAA;QAC5B,IAAI,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACzC,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;AACtB,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;KACJ;AACD,IAAA,iBAAiB,MAAM;;AAKvB,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IACI,QAAQ,CAAC,KAAmB,EAAA;QAC5B,IAAI,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACzC,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;AACtB,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;KACJ;AACD,IAAA,iBAAiB,MAAM;;AAKvB,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IACI,QAAQ,CAAC,KAAmB,EAAA;QAC5B,IAAI,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACzC,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,EAAE;AACtB,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;SAC5B;KACJ;AACD,IAAA,iBAAiB,MAAM;AAGvB,IAAA,mBAAmB,CAAC,KAAY,EAAA;;;;QAI5B,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,IAAI,CAAC,UAAU,CAAE,KAAK,CAAC,MAAc,CAAC,KAAK,CAAC,CAAC;KAChD;;IAGD,gBAAgB,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACjC;KACJ;IAGD,kBAAkB,GAAA;;;;AAId,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC9B;AAGD;;;;AAIG;AACH,IAAA,UAAU,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;;;KAGtB;AAED;;;;AAIG;AACH,IAAA,gBAAgB,CAAC,EAAoB,EAAA;AACjC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;AAED;;;;AAIG;AACH,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACrB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;KACxB;AAGD;;;AAGG;AACH,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;;;KAG9B;8GAzMQ,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAf,eAAe,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,SAAS;uGA8Ba,MAAM,EAAA,CAAA;sBAAxB,MAAM;gBACY,QAAQ,EAAA,CAAA;sBAA1B,MAAM;gBAOH,IAAI,EAAA,CAAA;sBADP,KAAK;gBAoBF,KAAK,EAAA,CAAA;sBADR,KAAK;gBA0CF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAiBF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAiBF,QAAQ,EAAA,CAAA;sBADX,KAAK;;;AC/HV;AACA;AACA;AACA;AACA;AACA;AACA;AAGM,MAAO,iBAAgC,SAAQ,aAAqB,CAAA;AAD1E,IAAA,WAAA,GAAA;;QAQI,IAAY,CAAA,YAAA,GAAiB,EAAE,CAAC;AA2FnC,KAAA;;IAtFY,IAAI,GAAA;QACT,KAAK,CAAC,IAAI,EAAE,CAAC;AACb,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAChE,QAAA,IAAI,OAAO;AACP,YAAA,IAAI,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;AAEvB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACnE,QAAA,IAAI,QAAQ;AACR,YAAA,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC;KAC5B;AAEQ,IAAA,MAAM,SAAS,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;SACtC;aACI;YACD,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB;KACJ;IAES,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAY,CAAC;KAC7B;IAES,QAAQ,GAAA;AACd,QAAA,MAAM,0BAA0B,CAAC;KACpC;AAED,IAAA,QAAQ,CAAC,CAAS,EAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAChB;IACD,MAAM,IAAI,CAAC,CAAU,EAAA;AACjB,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;AACf,YAAA,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;SACxC;AAED,QAAA,OAAO,KAAK,CAAC;KAChB;AACS,IAAA,YAAY,CAAC,mBAA6B,EAAA;AAChD,QAAA,MAAM,8BAA8B,CAAC;KACxC;IAGD,gBAAgB,GAAA;AACZ,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;SAC5B;aACI;AACD,YAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;SACxD;KACJ;AACD,IAAA,MAAM,OAAO,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClC,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7D,IAAI,QAAQ,EAAE;gBACV,IAAI,CAAC,IAAI,EAAE,CAAC;aACf;SACJ;KACJ;AACS,IAAA,eAAe,CAAC,KAAW,EAAA;AACjC,QAAA,MAAM,iCAAiC,CAAC;KAC3C;IAED,mBAAmB,GAAA;AACf,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;SAC/B;aACI;AACD,YAAA,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;SAC3D;KACJ;AACD,IAAA,MAAM,UAAU,GAAA;AACZ,QAAA,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClC,IAAI,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACnE,IAAI,WAAW,EAAE;gBACb,IAAI,CAAC,IAAI,EAAE,CAAC;aACf;SACJ;KACJ;AACS,IAAA,kBAAkB,CAAC,KAAW,EAAA;AACpC,QAAA,MAAM,oCAAoC,CAAC;KAC9C;8GAjGQ,iBAAiB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAjB,iBAAiB,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,MAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,GAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,SAAS;8BAK6B,IAAI,EAAA,CAAA;sBAAtC,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,GAAG,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAIgC,YAAY,EAAA,CAAA;sBAA5E,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBACwB,eAAe,EAAA,CAAA;sBAAlF,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;;AA4F7C,MAAO,iBAAgC,SAAQ,iBAAyB,CAAA;IAE1E,WACa,CAAA,OAAiB,EACjB,SAA2B,EAC3B,KAAmB,EAC5B,KAAqB,EACrB,MAAc,EAAA;AACd,QAAA,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QALZ,IAAO,CAAA,OAAA,GAAP,OAAO,CAAU;QACjB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QAC3B,IAAK,CAAA,KAAA,GAAL,KAAK,CAAc;KAI/B;IAEkB,MAAM,YAAY,CAAC,mBAAoC,EAAA;AACtE,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AACnB,QAAA,IAAI,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/D,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,GAAG,CAAC,EAAE;YACtC,OAAO,GAAG,IAAI,CAAC;AACf,YAAA,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC;SAClB;aAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,EAAE,OAAO,EAAE;YAClD,OAAO,GAAG,IAAI,CAAC;SAClB;QAED,IAAI,OAAO,EAAE;AACT,YAAA,IAAI,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC5E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,yBAAyB,CAAC,CAAC;AAE7D,YAAA,IAAI,mBAAmB,KAAK,IAAI,EAAE;gBAC9B,IAAI,CAAC,iBAAiB,EAAE,CAAC;aAC5B;AAED,YAAA,OAAO,IAAI,CAAC;;;;;;SAMf;aAAM;AACH,YAAA,IAAI,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC1E,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,yBAAyB,CAAC,CAAC;AAC3D,YAAA,OAAO,KAAK,CAAC;SAChB;KACJ;IAEkB,MAAM,eAAe,CAAC,KAAW,EAAA;AAChD,QAAA,IAAI,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,YAAA,IAAI,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACzE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,yBAAyB,CAAC,CAAC;AAC7D,YAAA,OAAO,IAAI,CAAC;SACf;aAAM;AACH,YAAA,IAAI,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC;YAC7E,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,yBAAyB,CAAC,CAAC;AAC3D,YAAA,OAAO,KAAK,CAAC;SAChB;KACJ;IAEkB,MAAM,kBAAkB,CAAC,KAAW,EAAA;AACnD,QAAA,IAAI,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,YAAA,IAAI,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC5E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,yBAAyB,CAAC,CAAC;AAC7D,YAAA,OAAO,IAAI,CAAC;SACf;aAAM;AACH,YAAA,IAAI,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC;YAChF,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,yBAAyB,CAAC,CAAC;AAC3D,YAAA,OAAO,KAAK,CAAC;SAChB;KACJ;IAES,MAAM,cAAc,CAAC,KAAW,EAAA;AACtC,QAAA,IAAI,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7D,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,YAAA,IAAI,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;YAC1E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,yBAAyB,CAAC,CAAC;AAC7D,YAAA,OAAO,IAAI,CAAC;SACf;aAAM;AACH,YAAA,IAAI,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAC5E,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,yBAAyB,CAAC,CAAC;AAC3D,YAAA,OAAO,KAAK,CAAC;SAChB;KACJ;AAKkB,IAAA,MAAM,QAAQ,GAAA;QAC7B,IAAI,IAAI,CAAC,GAAG;AACR,YAAA,OAAO,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;;AAElE,YAAA,OAAO,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;KAC9D;IACkB,UAAU,GAAA;AACzB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAY,CAAC;KAC7B;AAEQ,IAAA,KAAK,CAAC,SAAqB,EAAA;QAChC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;KACnC;AAED,IAAA,MAAM,OAAO,GAAA;AACT,QAAA,IAAI,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;AAC9D,QAAA,IAAI,IAAI,EAAE,OAAO,EAAE;AACf,YAAA,IAAI,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACzE,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC5B,IAAI,CAAC,IAAI,EAAE,CAAC;SACf;KACJ;AACD,IAAA,MAAM,CAAC,UAAkB,EAAA;QACrB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC,SAAS,CAAC,IAAI,IAAG;YAC9D,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,mEAAmE,CAAC,CAAC;AAChH,SAAC,CAAC,CAAC;KACN;8GA/GQ,iBAAiB,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAjB,iBAAiB,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,SAAS;;AAoHJ,MAAO,aAAsB,SAAQ,iBAAyB,CAAA;IAEhE,WACqB,CAAA,SAAqC,EACtD,OAAiB,EACjB,SAA2B,EAC3B,KAAmB,EACnB,KAAqB,EACrB,MAAc,EAAA;QACd,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAN/B,IAAS,CAAA,SAAA,GAAT,SAAS,CAA4B;KAOzD;IAEkB,UAAU,GAAA;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;KACrC;8GAdQ,aAAa,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAb,aAAa,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,SAAS;;;MC3OG,QAAQ,CAAA;AAKpB;;MCLY,QAAQ,CAAA;AAOpB,CAAA;AACK,MAAO,UAAW,SAAQ,QAAQ,CAAA;AAGpC,IAAA,WAAA,CAAY,IAA0B,EAAA;AAClC,QAAA,KAAK,EAAE,CAAC;QACR,IAAI,IAAI,EAAE;AACN,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC7B;KACJ;AACJ,CAAA;AACK,MAAO,SAAU,SAAQ,QAAQ,CAAA;;AAGnC,IAAA,WAAA,CAAY,IAA0B,EAAA;AAClC,QAAA,KAAK,EAAE,CAAC;QACR,IAAI,IAAI,EAAE;AACN,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC7B;KACJ;AACJ;;MC3BY,UAAU,CAAA;AAAvB,IAAA,WAAA,GAAA;QACI,IAAE,CAAA,EAAA,GAAmB,IAAI,CAAC;QAC1B,IAAS,CAAA,SAAA,GAAmB,IAAI,CAAC;QACjC,IAAW,CAAA,WAAA,GAAkB,IAAI,CAAC;QAElC,IAAI,CAAA,IAAA,GAAW,CAAC,CAAC;QACjB,IAAQ,CAAA,QAAA,GAAW,EAAE,CAAC;QAEtB,IAAI,CAAA,IAAA,GAAkB,IAAI,CAAC;QAC3B,IAAG,CAAA,GAAA,GAAY,KAAK,CAAC;KACxB;AAAA;;ICVW,OAGX;AAHD,CAAA,UAAY,MAAM,EAAA;AACd,IAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,MAAA,CAAA,MAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACd,CAAC,EAHW,MAAM,KAAN,MAAM,GAGjB,EAAA,CAAA,CAAA;;MCHY,OAAO,CAAA;AAIhB,IAAA,WAAA,CAAY,IAAuB,EAAA;QAC/B,IAAI,IAAI,EAAE;AACN,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SAC7B;KACJ;AACJ,CAAA;AAEK,MAAO,SAAoC,SAAQ,OAAqB,CAAA;AAE7E,CAAA;AAEK,MAAO,cAAyC,SAAQ,OAAqB,CAAA;AAGlF,CAAA;AAEK,MAAO,eAA0C,SAAQ,OAAqB,CAAA;AAEnF;;MCtBY,QAAQ,CAAA;AAGpB;;ICHW,MAcX;AAdD,CAAA,UAAY,KAAK,EAAA;AAEb,IAAA,KAAA,CAAA,KAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACX,IAAA,KAAA,CAAA,KAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACZ,IAAA,KAAA,CAAA,KAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,KAAA,CAAA,KAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,KAAA,CAAA,KAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAO,CAAA;AACP,IAAA,KAAA,CAAA,KAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,KAAA,CAAA,KAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,KAAA,CAAA,KAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACV,IAAA,KAAA,CAAA,KAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;AACb,IAAA,KAAA,CAAA,KAAA,CAAA,SAAA,CAAA,GAAA,EAAA,CAAA,GAAA,SAAY,CAAA;AACZ,IAAA,KAAA,CAAA,KAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAa,CAAA;AACb,IAAA,KAAA,CAAA,KAAA,CAAA,UAAA,CAAA,GAAA,EAAA,CAAA,GAAA,UAAa,CAAA;AACjB,CAAC,EAdW,KAAK,KAAL,KAAK,GAchB,EAAA,CAAA,CAAA;;MCdY,SAAS,CAAA;AAAtB,IAAA,WAAA,GAAA;QACI,IAAc,CAAA,cAAA,GAAW,CAAC,CAAC;KAC9B;AAAA,CAAA;AAEK,MAAO,KAAM,SAAQ,SAAS,CAAA;AAApC,IAAA,WAAA,GAAA;;QACI,IAAS,CAAA,SAAA,GAAG,CAAC,CAAC;QACd,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;QACf,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QACd,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QACxB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;QACpB,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;QAEnB,IAAK,CAAA,KAAA,GAAa,EAAE,CAAC;KACxB;AAAA,CAAA;MAEY,aAAa,CAAA;AAA1B,IAAA,WAAA,GAAA;QACI,IAAI,CAAA,IAAA,GAAQ,EAAE,CAAC;AAEf,QAAA,IAAA,CAAA,KAAK,GAAU,IAAI,KAAK,EAAE,CAAC;QAE3B,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;QACnB,IAAU,CAAA,UAAA,GAAG,CAAC,CAAC;QACf,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QACd,IAAK,CAAA,KAAA,GAAG,CAAC,CAAC;KACb;AAAA,CAAA;AACK,MAAO,SAAmB,SAAQ,aAAgB,CAAA;AAAxD,IAAA,WAAA,GAAA;;QAEI,IAAS,CAAA,SAAA,GAAG,CAAC,CAAC;QACd,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QACxB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QACpB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QACnB,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;QACpB,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;KACtB;AAAA;;ACnCK,MAAO,IAAK,SAAQ,OAAuB,CAAA;AAMhD;;MCRY,cAAc,CAAA;AAA3B,IAAA,WAAA,GAAA;QACI,IAAK,CAAA,KAAA,GAAY,IAAI,CAAC;KACzB;AAAA;;ACkBD;;ACTA;AAGM,MAAO,iBAA8E,SAAQ,aAAwC,CAAA;IAoBvI,WACuB,CAAA,OAAiB,EAC3B,SAA2B,EAC3B,KAAmB,EAC5B,KAAqB,EACrB,MAAc,EAAA;AACd,QAAA,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QALF,IAAO,CAAA,OAAA,GAAP,OAAO,CAAU;QAC3B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QAC3B,IAAK,CAAA,KAAA,GAAL,KAAK,CAAc;AAtBhC,QAAA,IAAA,CAAA,MAAM,GAAQ,IAAI,UAAU,EAAE,CAAC;QAC/B,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;AAER,QAAA,IAAA,CAAA,cAAc,GAAQ,IAAI,UAAU,EAAE,CAAC;QACjD,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;AACxB,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAMpB,IAAY,CAAA,YAAA,GAAiB,EAAE,CAAC;QAEtB,IAAc,CAAA,cAAA,GAAG,gBAAgB,CAAC;QAGlC,IAAiB,CAAA,iBAAA,GAAG,mBAAmB,CAAC;KASjD;IAEQ,IAAI,GAAA;QACT,KAAK,CAAC,IAAI,EAAE,CAAC;QAEb,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,IAAI,CAAC,YAAY,EAAE,CAAC;;;KAIvB;AACQ,IAAA,MAAM,SAAS,GAAA;AACpB,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;AAC5E,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACZ,YAAA,IAAI,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;YAC3C,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;gBACjC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,CAAC;aAC9E;YACD,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;SAEpG;;AAEG,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;;KAEhC;IAGS,iBAAiB,GAAA;KAC1B;IACO,gBAAgB,GAAA;AACpB,QAAA,IAAI,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAE1E,IAAI,WAAW,EAAE;YACb,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACxC,YAAA,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE;AACtD,gBAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;;aAE/C;iBAAM;AACH,gBAAA,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;aACrC;SACJ;aAAM;AACH,YAAA,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;SACrC;KACJ;AACD,IAAA,UAAU,CAAC,IAAY,EAAA;AACnB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC;AAChC,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;AACD,IAAA,cAAc,CAAC,QAAgB,EAAA;AAC3B,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACxC,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KACtB;IACD,UAAU,GAAA;AACN,QAAA,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;KAC5B;IACD,MAAM,GAAA;;QAEF,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;;KAEtB;IACS,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACrD,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KAChE;IACO,cAAc,GAAA;QAClB,IAAI,IAAI,CAAC,UAAU;YACf,IAAI,CAAC,kBAAkB,EAAE,CAAA;KAChC;IACO,kBAAkB,GAAA;AACtB,QAAA,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE;YACxB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,MAAM,EAAE,IAAI,CAAC,cAAc;AAC9B,SAAA,CAAC,CAAC;KACN;IACD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;QACxC,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IACD,OAAO,GAAA;QACH,IAAI,CAAC,SAAS,EAAE,CAAC;KACpB;IAGD,MAAM,GAAA;AACF,QAAA,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;;QAElD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,EAChC,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,GAAG,GAAG,WAAW,EAAE,EAAE,CACpD,CAAC;KACL;IACD,MAAM,MAAM,CAAC,EAAU,EAAA;AACnB,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AACnB,QAAA,IAAI,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AACzD,QAAA,IAAI,IAAI,EAAE,OAAO,EAAE;AACf,YAAA,IAAI,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAA;YACpD,IAAI,CAAC,OAAO,EAAE,CAAC;SAClB;KACJ;AACD,IAAA,MAAM,OAAO,CAAC,EAAU,EAAE,GAAW,EAAA;AACjC,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AACnB,QAAA,IAAI,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAA;AAC9D,QAAA,IAAI,IAAI,EAAE,OAAO,EAAE;AACf,YAAA,IAAI,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;YACxE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAA;YACpD,IAAI,CAAC,OAAO,EAAE,CAAC;SAClB;KACJ;AAED,IAAA,IAAI,CAAC,EAAU,EAAA;;;;QAKX,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,EAC/B,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,GAAG,WAAW,EAAE,EAAE,CACzD,CAAC;KACL;IACD,KAAK,CAAC,EAAU,EAAE,GAAW,EAAA;;AAEzB,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EACpC,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,GAAG,WAAW,EAAE,EAAE,CACzD,CAAC;KACL;AACD,IAAA,MAAM,CAAC,IAAS,EAAA;AACZ,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC/B,QAAA,IAAI,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;QACjB,IAAI,EAAE,EAAE;AACJ,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aAC7B;iBAAM;AACH,gBAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,KAAK,EAAE,CAAC,CAAC;aACnE;SACJ;KACJ;AAID,IAAA,gBAAgB,CAAC,EAAU,EAAA;AACvB,QAAA,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;QAEtC,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC/B;IACD,wBAAwB,GAAA;QACpB,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;AAEnE,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC/B;IACD,MAAM,OAAO,CAAC,CAAM,EAAA;AAChB,QAAA,IAAI,CAAC,CAAC;YAAE,OAAO;AAEf,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AACnB,QAAA,IAAI,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAC1B,OAAO;AAEX,QAAA,IAAI,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,uBAAuB,CAAC,CAAA;QAC1D,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;AAGD,IAAA,mBAAmB,CAAC,EAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;QAEzC,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAClC;IACD,2BAA2B,GAAA;QACvB,IAAI,GAAG,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe;YAAE,OAAO;AAEtE,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAClC;IACD,MAAM,UAAU,CAAC,CAAM,EAAA;AACnB,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY;YAAE,OAAO;AAErC,QAAA,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;YACvB,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;AACpC,YAAA,CAAC,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAC5D,IAAI,CAAC,CAAC,CAAC,OAAO;gBAAE,OAAO,CAAC,CAAC,OAAO,CAAC;SACpC;AAED,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AACnB,QAAA,IAAI,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAC1B,OAAO;AAEX,QAAA,IAAI,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC/E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,yBAAyB,CAAC,CAAA;QAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;IAED,cAAc,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;;;;;;;;KAU3B;AAED,IAAA,OAAO,MAAM;AACb,IAAA,MAAM,GAAG,GAAA;AACL,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACrB,QAAA,IAAI,IAAI,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;QACvE,IAAI,IAAI,EAAE;AACN,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;YACrB,IAAI,CAAC,OAAO,EAAE,CAAC;SAClB;aAAM;AACH,YAAA,IAAI,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACzE,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SAC7B;KACJ;AAED,IAAA,MAAM,CAAC,UAAkB,EAAA;AACrB,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC,SAAS,CAAC,IAAI,IAAG;YAClE,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,EAAE,mEAAmE,CAAC,CAAC;AAChH,SAAC,CAAC,CAAC;KACN;AAGQ,IAAA,KAAK,CAAC,SAAqB,EAAA;QAChC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,OAAO;AAE5C,QAAA,IAAI,GAAG,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AAChC,QAAA,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE;AAClB,YAAA,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;SAC9B;KACJ;8GAjRQ,iBAAiB,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAjB,iBAAiB,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,SAAS;sLAY0D,WAAW,EAAA,CAAA;sBAA1E,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAGsB,YAAY,EAAA,CAAA;sBAA5E,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAGwB,eAAe,EAAA,CAAA;sBAAlF,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;;;MCxBtC,OAAO,CAAA;IAChB,SAAS,CAAC,KAAU,EAAE,GAAS,EAAA;AAC3B,QAAA,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,KAAK;AAAE,YAAA,OAAO,IAAI,CAAC;QAEnG,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAEtC,QAAA,IAAI,QAAQ,GAAG,CAAC,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;AACtF,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC;KAC/D;8GARQ,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAP,OAAO,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;2FAAP,OAAO,EAAA,UAAA,EAAA,CAAA;kBAJnB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,KAAK;AACd,iBAAA,CAAA;;;ACQK,MAAO,QAAS,SAAQ,aAAa,CAAA;AAP3C,IAAA,WAAA,GAAA;;QAQY,IAAK,CAAA,KAAA,GAAiC,MAAM,CAAC;QAYrD,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;QAiB3B,IAAQ,CAAA,QAAA,GAAG,EAAE,CAAC;QACd,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;AAChB,KAAA;AA9BG,IAAA,IACI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IACD,IAAI,IAAI,CAAC,CAA+B,EAAA;AACpC,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;AAClB,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;YACd,IAAI,CAAC,IAAI,EAAE,CAAC;SACf;KACJ;AAGD,IAAA,IACI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;IACD,IAAI,SAAS,CAAC,CAAe,EAAA;QACzB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAClD;IAKQ,IAAI,GAAA;QACT,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3D;8GA5BQ,QAAQ,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdrB,0nBAaM,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDDQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAEb,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAPpB,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,WAAW,EAGZ,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,0nBAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA;8BAKnB,IAAI,EAAA,CAAA;sBADP,KAAK;gBAaF,SAAS,EAAA,CAAA;sBADZ,KAAK;gBAQG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;AE3BV,SAASC,OAAK,CAAC,CAAS,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,OAAO,EAAA;AAC7C,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC;MASY,QAAQ,CAAA;AACjB,IAAA,IACI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IACD,IAAI,KAAK,CAAC,CAAc,EAAA;AACpB,QAAA,IAAI,GAAG,GAAGA,OAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE;AACrB,YAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;SACrB;KACJ;AAUD,IAAA,WAAA,CAA6B,YAA0B,EAAA;QAA1B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QATvD,IAAM,CAAA,MAAA,GAAW,IAAI,CAAC;QAGb,IAAI,CAAA,IAAA,GAAG,IAAI,CAAC;QAErB,IAAM,CAAA,MAAA,GAAU,EAAE,CAAC;KAIyC;IAE5D,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,KAAY,KAAI;YACzE,IAAI,CAAC,KAAK,EAAE;;AAER,gBAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gBACjB,OAAO;aACV;;AAGD,YAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACpB,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAE3B,YAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAK;AAC5B,gBAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;;;;AAIvB,aAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;;;;;;;;AAUpB,SAAC,CAAC,CAAC;KAIN;IAGD,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;SACpC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAGD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;KAC7B;AACD,IAAA,MAAM,CAAC,KAAY,EAAA;AACf,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;KACtD;IAED,YAAY,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC5B,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACxB;KACJ;AAGD,IAAA,OAAO,CAAC,KAAY,EAAA;AAChB,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,OAAO;QAGX,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAC1B,KAAK,CAAC,IAAI,GAAG,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACzD;QAED,IAAI,CAAC,GAAG,KAAY,CAAC;AACrB,QAAA,QAAQ,KAAK,CAAC,IAAI;AACd,YAAA,KAAK,SAAS;AACV,gBAAA,CAAC,CAAC,GAAG,GAAG,uBAAuB,CAAC;gBAChC,MAAM;AACV,YAAA,KAAK,SAAS;AACV,gBAAA,CAAC,CAAC,GAAG,GAAG,uBAAuB,CAAC;;;gBAGhC,MAAM;AACV,YAAA,KAAK,QAAQ;AACT,gBAAA,CAAC,CAAC,GAAG,GAAG,sBAAsB,CAAC;;;gBAG/B,MAAM;AACV,YAAA,KAAK,SAAS;AACV,gBAAA,CAAC,CAAC,GAAG,GAAG,sBAAsB,CAAC;;;gBAG/B,MAAM;AACV,YAAA,KAAK,MAAM;AACP,gBAAA,CAAC,CAAC,GAAG,GAAG,oBAAoB,CAAC;;;gBAG7B,MAAM;AACV,YAAA,KAAK,OAAO;AACR,gBAAA,CAAC,CAAC,GAAG,GAAG,oBAAoB,CAAC;gBAC7B,MAAM;AACV,YAAA,KAAK,MAAM;AACP,gBAAA,CAAC,CAAC,GAAG,GAAG,oBAAoB,CAAC;gBAC7B,MAAM;AAGV,YAAA;AACI,gBAAA,CAAC,CAAC,GAAG,GAAG,yBAAyB,CAAC;gBAClC,MAAM;SACb;KACJ;8GA7HQ,QAAQ,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAJ,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAR,QAAQ,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpBrB,qtDA2BM,EAAA,MAAA,EAAA,CAAA,qDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDTQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAEb,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAPpB,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,WAAW,EAGZ,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,qtDAAA,EAAA,MAAA,EAAA,CAAA,qDAAA,CAAA,EAAA,CAAA;8EAInB,KAAK,EAAA,CAAA;sBADR,KAAK;gBAaG,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;MErBG,aAAa,CAAA;AAItB,IAAA,WAAA,CAA6B,YAA0B,EAAA;QAA1B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAHvD,IAAM,CAAA,MAAA,GAAY,EAAE,CAAC;KAGuC;IAE5D,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,KAAY,KAAI;YACxE,IAAI,CAAC,KAAK,EAAE;;AAER,gBAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;gBACjB,OAAO;aACV;;AAED,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5B,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC;KACpC;IAGD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;KAC7B;AACD,IAAA,MAAM,CAAC,KAAY,EAAA;AACf,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;KACtD;AAED,IAAA,OAAO,CAAC,KAAY,EAAA;QAChB,IAAI,CAAC,KAAK,EAAE;YACR,OAAO;SACV;QAED,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YACnC,OAAO,KAAK,CAAC,IAAI,CAAC;AAGtB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YACb,OAAO;SACV;QAED,OAAO,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KACnD;AAED,IAAA,QAAQ,CAAC,KAAY,EAAA;QACjB,IAAI,CAAC,KAAK,EAAE;YACR,OAAO;SACV;QAED,OAAO,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC/C;8GApDQ,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECb1B,ybAOM,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDIQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAEb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPzB,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,gBAAgB,EAGjB,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,ybAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA;;;MEHd,eAAe,CAAA;IACxB,WAA6B,CAAA,EAAc,EAAmB,MAAc,EAAA;QAA/C,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QAAmB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;KAE3E;IACD,eAAe,GAAA;QACX,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,QAAQ,EAAE;YAC9B,OAAO;SACV;QAED,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;KAC7D;8GAVQ,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACAD,IAAIG,UAAQ,GAAG,CAAC,CAAC;AAEjB;;;;AAIG;AACH,MAAM,6BAA6B,GAAQ;AACvC,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;AAC9C,IAAA,KAAK,EAAE,IAAI;CACd,CAAC;AAOI,MAAO,eAAgB,SAAQ,eAAe,CAAA;AALpD,IAAA,WAAA,GAAA;;AAYY,QAAA,IAAA,CAAA,SAAS,GAAW,CAAA,OAAA,EAAU,EAAEA,UAAQ,EAAE,CAAC;;AAE1C,QAAA,IAAA,CAAA,EAAE,GAAW,IAAI,CAAC,SAAS,CAAC;QAIrC,IAAM,CAAA,MAAA,GAAQ,EAAE,CAAC;AACjB,QAAA,IAAA,CAAA,IAAI,GAAc,IAAI,SAAS,EAAE,CAAC;QAe1B,IAAK,CAAA,KAAA,GAAkB,IAAI,CAAC;QAiB5B,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAW3B,IAAK,CAAA,KAAA,GAAY,KAAK,CAAC;QASvB,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;QAS3B,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAUnB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;AACjC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;AACjC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAW,CAAC;AAC9C,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;QAe1C,IAAI,CAAA,IAAA,GAA4C,IAAI,CAAC;AAqExD,KAAA;IA3KY,OAAO,GAAA;AACZ,QAAA,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AACnB,QAAA,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;KAC1B;AAKD,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,CAAA,EAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,CAAA,MAAA,CAAQ,CAAC;KAC/C;AAMD,IAAA,IACI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IACD,IAAI,IAAI,CAAC,CAA4B,EAAA;AACjC,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;AAClB,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACf,YAAA,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;KACJ;AAGD,IAAA,IACI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IACD,IAAI,IAAI,CAAC,CAAgB,EAAA;AACrB,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;AAClB,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAA;YACd,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB;KACJ;IACD,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAa,CAAC,CAAA;KAChF;AAKD,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAI,QAAQ,CAAC,CAAe,EAAA;QACxB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACjD;AAKD,IAAA,IACI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IACD,IAAI,IAAI,CAAC,CAAe,EAAA;QACpB,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAC7C;AAGD,IAAA,IACI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;IACD,IAAI,SAAS,CAAC,CAAe,EAAA;QACzB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAClD;AAGD,IAAA,IACI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;KAC5B;IACD,IAAI,WAAW,CAAC,CAAe,EAAA;QAC3B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACpD;AASD,IAAA,IAAI,KAAK,GAAA;AACL,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACd,IAAI,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;SACnE;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IACD,IAAI,KAAK,CAAC,CAAM,EAAA;AACZ,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;KACnB;AAID,IAAA,IAAI,QAAQ,GAAA;AACR,QAAA,QAAQ,IAAI,CAAC,IAAI;AACb,YAAA,KAAK,IAAI;AACL,gBAAA,OAAO,UAAU,CAAC;AACtB,YAAA,KAAK,IAAI;AACL,gBAAA,OAAO,UAAU,CAAC;AACtB,YAAA,KAAK,IAAI;AACL,gBAAA,OAAO,UAAU,CAAC;AACtB,YAAA,KAAK,KAAK;AACN,gBAAA,OAAO,WAAW,CAAC;AACvB,YAAA;AACI,gBAAA,OAAO,EAAE,CAAC;SACjB;KACJ;IAGD,SAAS,GAAA;QACL,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAEnC,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,KAAK;AACV,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SACzB;KACJ;IACD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;KACvB;AAID,IAAA,MAAM,CAAC,KAAU,EAAA;QACb,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClC,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACvB,IAAI,CAAC,KAAK,EAAE,CAAC;SAChB;KACJ;AACD,IAAA,SAAS,CAAC,MAAW,EAAA;AACjB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;KAChB;IAED,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChB,YAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;SAC9B;KACJ;AAED,IAAA,MAAM,CAAC,KAAoB,EAAA;AACvB,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YACxB,IAAI,CAAC,MAAM,EAAE,CAAC;SACjB;KACJ;IAKQ,cAAc,GAAA;QACnB,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,WAAW,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;AAC1D,YAAA,OAAO,IAAI,CAAC,KAAK,KAAK,WAAW,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;YAC1D,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnB;aAAM;AACH,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACpB;KACJ;IACD,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;KAC1B;8GA3KQ,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAFb,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,SAAA,EAAA,CAAC,6BAA6B,CAAC,iDCvB9C,yqDAwBM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDCO,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACI,QAAQ,EAAA,SAAA,EAEP,CAAC,6BAA6B,CAAC,EAAA,QAAA,EAAA,yqDAAA,EAAA,CAAA;8BAWjC,EAAE,EAAA,CAAA;sBAAV,KAAK;gBAUF,IAAI,EAAA,CAAA;sBADP,KAAK;gBAaF,IAAI,EAAA,CAAA;sBADP,KAAK;gBAkBF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAYF,IAAI,EAAA,CAAA;sBADP,KAAK;gBAUF,SAAS,EAAA,CAAA;sBADZ,KAAK;gBAUF,WAAW,EAAA,CAAA;sBADd,KAAK;gBASI,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;;;MEzGE,2BAA2B,CAAA;AAJxC,IAAA,WAAA,GAAA;AAMc,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;AAK9B,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;QAK/B,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAQnB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;AAW9C,KAAA;IA5BG,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACxB;IAGD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACvB;AAGD,IAAA,IAAc,WAAW,GAAA;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC;KAC5B;IACD,IAAI,WAAW,CAAC,CAAe,EAAA;QAC3B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACpD;IAGD,SAAS,GAAA;QACL,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;AAC9B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KAC3B;8GAxBQ,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA3B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,uLCRxC,opBAUyB,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDFZ,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,SAAS;+BACI,sBAAsB,EAAA,QAAA,EAAA,opBAAA,EAAA,CAAA;8BAKtB,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAKG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBAMO,WAAW,EAAA,CAAA;sBAAxB,KAAK;gBAOI,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MELE,kBAAkB,CAAA;8GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,iBARvB,eAAe;AACf,YAAA,2BAA2B,aAN3B,YAAY;YACZ,WAAW;AACX,YAAA,eAAe,aAOf,eAAe;YACf,2BAA2B,CAAA,EAAA,CAAA,CAAA,EAAA;AAGtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAbvB,YAAY;YACZ,WAAW;YACX,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAWV,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAf9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,WAAW;wBACX,eAAe;AAClB,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACV,eAAe;wBACf,2BAA2B;AAC9B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,eAAe;wBACf,2BAA2B;AAC9B,qBAAA;AACJ,iBAAA,CAAA;;;AChBK,MAAO,8BAA+B,SAAQ,aAAa,CAAA;AADjE,IAAA,WAAA,GAAA;;QAGa,IAAM,CAAA,MAAA,GAAQ,EAAE,CAAC;QAGlB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAUnB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;AAK9B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE,CAAC;AAsC9C,KAAA;AApDG,IAAA,IAAc,WAAW,GAAA;QACrB,OAAO,IAAI,CAAC,YAAY,CAAC;KAC5B;IACD,IAAI,WAAW,CAAC,CAAe,EAAA;QAC3B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACpD;AAKD,IAAA,MAAM,CAAC,KAAU,EAAA;AACb,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC7B;IAGD,SAAS,GAAA;QACL,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACtC;AAED,IAAA,SAAS,CAAC,CAAQ,EAAA;QACd,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,EAAE,CAAC;KACjB;AAED,IAAA,QAAQ,MAAM;AACd,IAAA,MAAM,OAAO,GAAA;AACT,QAAA,IAAI;AACA,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,YAAA,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;SACzB;gBACO;AACJ,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;SACxB;KAEJ;AACD,IAAA,YAAY,CAAC,IAAY,EAAA;AACrB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;AACD,IAAA,gBAAgB,CAAC,QAAgB,EAAA;AAC7B,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;AAChC,QAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;KACxB;IAED,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;KACxB;IAED,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;KACpB;8GAzDQ,8BAA8B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA9B,8BAA8B,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA9B,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAD1C,SAAS;8BAEG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAGQ,WAAW,EAAA,CAAA;sBAAxB,KAAK;gBAOG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEI,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAKG,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MChBE,OAAO,CAAA;AAChB;;AAEG;AACH,IAAA,WAAA,CAA6B,KAAwB,EAAA;QAAxB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAmB;QAQ7C,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;QAQlB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;QAClB,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;;QAGhB,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;KAnBjB;AAQD,IAAA,IACI,GAAG,GAAA;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;KACpB;IACD,IAAI,GAAG,CAAC,KAAgC,EAAA;AACpC,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;KAC3B;IAOD,eAAe,GAAA;QACX,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC;QACtG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC;;QAEtF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC;AAE9F,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;KAC9B;8GAjCQ,OAAO,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAP,OAAO,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,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,ECVpB,8eAWM,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDHQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAEb,OAAO,EAAA,UAAA,EAAA,CAAA;kBAPnB,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,UAAU,EAGX,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,8eAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA;sFASS,aAAa,EAAA,CAAA;sBAA5C,SAAS;uBAAC,WAAW,CAAA;gBACQ,OAAO,EAAA,CAAA;sBAApC,SAAS;uBAAC,SAAS,CAAA;gBAEY,SAAS,EAAA,CAAA;sBAAxC,SAAS;uBAAC,WAAW,CAAA;gBAIlB,GAAG,EAAA,CAAA;sBADN,KAAK;;;MEhBG,eAAe,CAAA;AACxB,IAAA,SAAS,CAAC,KAAY,EAAE,QAA8C,EAAE,MAAY,EAAA;AAChF,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE;AACrB,YAAA,OAAO,KAAK,CAAC;SAChB;AAED,QAAA,OAAO,MAAM;AACT,cAAE,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9C,cAAE,KAAK,CAAC,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;KAC9C;8GATQ,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAC,IAAI;AACf,oBAAA,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,KAAK;AACd,iBAAA,CAAA;;;MCEY,WAAW,CAAA;IAEpB,SAAS,CAAC,KAAU,EAAE,IAAU,EAAA;AAC5B,QAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,KAAK;AAAE,YAAA,OAAO,IAAI,CAAC;QAE1F,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,IAAI,EAAE;YACN,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;AACnE,YAAA,IAAI,OAAO,GAAG,EAAE;AACZ,gBAAA,OAAO,UAAU,CAAC;AACtB,YAAA,MAAM,SAAS,GAA6B;AACxC,gBAAA,MAAM,EAAE,QAAQ;AAChB,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,MAAM,EAAE,MAAM;AACd,gBAAA,KAAK,EAAE,KAAK;AACZ,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,QAAQ,EAAE,CAAC;aACd,CAAC;AACF,YAAA,IAAI,OAAO,CAAC;AACZ,YAAA,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE;AACvB,gBAAA,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7C,IAAI,OAAO,GAAG,CAAC;AACX,oBAAA,IAAI,OAAO,KAAK,CAAC,EAAE;wBACf,OAAO,OAAO,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC;qBACrC;yBAAM;wBACH,OAAO,OAAO,GAAG,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC;qBACtC;aACR;SACJ;AACD,QAAA,OAAO,IAAI,CAAC;KACf;8GA/BQ,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBALvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,IAAI,EAAE,IAAI;AACb,iBAAA,CAAA;;;ACAD,MAAM,mBAAmB,GAAG;AACxB,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AAChD,IAAA,KAAK,EAAE,IAAI;CACd,CAAC;MAYW,iBAAiB,CAAA;AAK1B,IAAA,WAAA,CAAoB,EAAc,EACT,MAAc,EACjB,QAAgB,EACnB,GAAgB,EAAA;QAHf,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QAF1B,IAAQ,CAAA,QAAA,GAAiB,IAAI,CAAC;AAwKtC;;;;;;AAMG;;;AAMH,QAAA,IAAA,CAAA,QAAQ,GAAqB,MAAK,GAAI,CAAC;;AAMvC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAK,GAAI,CAAC;QAnLlB,IAAI,GAAG,EAAE;AACL,YAAA,IAAI,GAAG,CAAC,gBAAgB,EAAE;AACtB,gBAAA,MAAM,GAAG,GAAG,CAAC,gBAAgB,CAAC;aACjC;AACD,YAAA,IAAI,GAAG,CAAC,IAAI,EAAE;AACV,gBAAA,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC;aACvB;SACJ;QAED,IAAI,EAAE,CAAC,aAAa,CAAC,IAAI,KAAK,MAAM,EAAE;YAClC,EAAE,CAAC,aAAa,CAAC,IAAI,GAAG,MAAM,CAAA;SACjC;QACD,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QAE1D,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,aAAa,EAAE;AAC/C,YAAA,QAAQ,EAAE,IAAI;;AAEd,YAAA,WAAW,EAAE,KAAK;;;AAIlB,YAAA,qBAAqB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7B,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,QAAQ;;;;AAKlB,YAAA,QAAQ,EAAE,IAAI;;AAEd,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,YAAY,EAAE,IAAI;YAClB,SAAS,EAAE,CAAC;AACf,SAAA,CAAC,CAAC;QAEH,EAAE,CAAC,aAAa,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAc,KAAI;AAC/D,YAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACzB,SAAC,CAAC,CAAC;QAEH,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACpD,YAAA,IAAI,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAEpD,YAAA,IAAI,OAAO,GAAG,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAClD,YAAA,IAAI,OAAO,GAAG,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAClD,YAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;gBACvB,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,OAAO;AACnB,aAAA,CAAC,CAAC;SACN,EAAE,CAAC,CAAC,CAAC;KACT;;;;;;;;;;;;;;;;IAoBD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AAE3E,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,KAAK,UAAU,EAAE;AAClE,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAA;SAC5B;KACJ;AAED;;;AAGG;AACH,IAAA,YAAY,CAAC,CAAc,EAAA;QACvB,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAC/B;;;;;;;;;;;;;;;;;AAqBD,IAAA,OAAO,CAAC,QAAsB,EAAA;;AAG1B,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;;AAEnB,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;AAC7C,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,oBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC3D;qBAAM;AACH,oBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC5C;aACJ;YACD,OAAO;SACV;AAED,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,IAAI,QAAQ,EAAE;YACV,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;SACvD;aAAM;AACH,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;SACvB;KACJ;IAIO,UAAU,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC;KAC3E;;AAKD,IAAA,UAAU,CAAC,KAAU,EAAA;QACjB,IAAI,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,IAAI,IAAI,EAAE;AACN,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;SAClD;aAAM;YACH,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;SAC5C;;;;;;;;;KAcJ;AAcD,IAAA,gBAAgB,CAAC,EAAoB,EAAA;AACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACtB;AAID,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;AAhMQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAMd,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,WAAW,EACX,EAAA,EAAA,KAAA,EAAA,QAAQ,aACR,KAAK,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGARR,iBAAiB,EAAA,QAAA,EAAA,sGAAA,EAAA,SAAA,EANf,CAAC,mBAAmB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAMvB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;oBACP,QAAQ,EAAE,sGAAsG;oBAChH,SAAS,EAAE,CAAC,mBAAmB,CAAC;AAChC,oBAAA,IAAI,EAAE;;;AAGL,qBAAA;AACJ,iBAAA,CAAA;;0BAOQ,MAAM;2BAAC,WAAW,CAAA;;0BAClB,MAAM;2BAAC,QAAQ,CAAA;;0BACf,MAAM;2BAAC,KAAK,CAAA;;;MClBR,gBAAgB,CAAA;AACpB,IAAA,OAAO,OAAO,CAAC,MAAwB,EAAE,WAAwB,EAAA;QAEtE,OAAO;AACL,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,SAAS,EAAE;gBACT,iBAAiB;gBACjB,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE;gBACrD,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE;AAChD,gBAAA,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE;AAC1C,aAAA;SACF,CAAC;KACH;AAEM,IAAA,OAAO,QAAQ,CAAC,MAAwB,EAAE,WAAwB,EAAA;QACvE,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;KAC1C;8GAhBU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAhB,gBAAgB,EAAA,YAAA,EAAA,CAHZ,iBAAiB,CAAA,EAAA,OAAA,EAAA,CACtB,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;+GAEhB,gBAAgB,EAAA,CAAA,CAAA,EAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,iBAAiB,CAAC;oBACjC,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC7B,iBAAA,CAAA;;;MCCY,cAAc,CAAA;AAN3B,IAAA,WAAA,GAAA;QAQY,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QASjB,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;QAU3B,IAAS,CAAA,SAAA,GAAG,SAAS,CAAC;QAEd,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAUpB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QASnB,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAShB,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;;;;AAK5B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;;;;;;AAW9B,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAa,CAAC;AAMxC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAU,CAAC;AAInD,KAAA;AA1EG,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAI,QAAQ,CAAC,CAAe,EAAA;QACxB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACjD;AAGD,IAAA,IACI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IACD,IAAI,UAAU,CAAC,CAAe,EAAA;QAC1B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACnD;AAMD,IAAA,IACI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IACD,IAAI,UAAU,CAAC,CAAe,EAAA;QAC1B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACnD;AAID,IAAA,IACI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;IACD,IAAI,SAAS,CAAC,CAAe,EAAA;QACzB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAClD;AAGD,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAI,QAAQ,CAAC,CAAe,EAAA;QACxB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACjD;IAQD,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACxB;AASD,IAAA,KAAK,CAAC,SAAqB,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAChC;IAID,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACzB;8GA5EQ,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,ECb3B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,86EA6BM,EDlBQ,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,oIAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAE9B,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,kBAAkB,EAAA,OAAA,EAEnB,CAAC,YAAY,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,86EAAA,EAAA,CAAA;8BAMpC,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAUF,UAAU,EAAA,CAAA;sBADb,KAAK;gBAaF,UAAU,EAAA,CAAA;sBADb,KAAK;gBAWF,SAAS,EAAA,CAAA;sBADZ,KAAK;gBAUF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAQI,MAAM,EAAA,CAAA;sBAAf,MAAM;gBAKG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAWG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBAMG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;;;AEpFX;;;;;;;;AAQE;MAKW,eAAe,CAAA;AAJ5B,IAAA,WAAA,GAAA;AAMY,QAAA,IAAA,CAAA,KAAK,GAAG;YACZ,OAAO;YACP,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;YACJ,IAAI;SACP,CAAC;AAmBL,KAAA;AAjBG,IAAA,SAAS,CAAC,KAAA,GAAmC,CAAC,EAAE,YAAuC,CAAC,EAAA;AACpF,QAAA,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,IAAI,IAAI;YAC7C,KAAK,GAAG,CAAC,CAAC;AACd,QAAA,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,IAAI,IAAI;YACrD,SAAS,GAAG,CAAC,CAAC;AAElB,QAAA,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,GAAG,CAAC;QAErE,IAAI,IAAI,GAAG,CAAC,CAAC;AAEb,QAAA,OAAO,KAAK,IAAI,IAAI,EAAE;YAClB,KAAK,IAAI,IAAI,CAAC;AACd,YAAA,IAAI,EAAE,CAAC;SACV;AAED,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,CAAE,SAAS,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC9D;8GA9BQ,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,UAAU;AACnB,iBAAA,CAAA;;;ACPD;AAMM,MAAO,QAAS,SAAQ,aAAa,CAAA;AACvC,IAAA,WAAA,CAA6B,SAA2B,EAAA;AACpD,QAAA,KAAK,EAAE,CAAC;QADiB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QA+ChD,IAAO,CAAA,OAAA,GAAY,IAAI,CAAC;QASxB,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAS7B,IAAW,CAAA,WAAA,GAAY,IAAI,CAAC;QAU5B,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;AAkBxB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAO,CAAC;AAElC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAO,CAAC;AAEnC,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,YAAY,EAAO,CAAC;AAEhC,QAAA,IAAA,CAAA,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC;QAKvC,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QASxB,IAAG,CAAA,GAAA,GAAY,KAAK,CAAC;QAUrB,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAS7B,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAS7B,IAAW,CAAA,WAAA,GAAY,IAAI,CAAC;QAS5B,IAAW,CAAA,WAAA,GAAY,IAAI,CAAC;AAY1B,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,CAAiB,KAAK,CAAC,CAAC;AAhK7D,QAAA,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC;KAC7C;AACQ,IAAA,MAAM,OAAO,GAAA;AAClB,QAAA,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAEnB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACpB,YAAA,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAC9C;AACD,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACnB,YAAA,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC7C;KACJ;IACQ,IAAI,GAAA;QACT,KAAK,CAAC,IAAI,EAAE,CAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACpB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,SAAS,CAAC,IAAI,IAAG;AAC7C,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAC7B,aAAC,CAAC,CAAC;SACN;QAED,UAAU,CAAC,MAAK;AACZ,YAAA,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;YACrC,IAAI,OAAO,EAAE;AACT,gBAAA,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAK;AACpE,oBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACxB,iBAAC,CAAC,CAAC;AAEH,gBAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,iBAAiB,EAAE,MAAK;AACtE,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,iBAAC,CAAC,CAAC;aACN;SACJ,EAAE,CAAC,CAAC,CAAC;KACT;AAYD,IAAA,IACI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;IACD,IAAI,MAAM,CAAC,CAAe,EAAA;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAC/C;AAGD,IAAA,IACI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IACD,IAAI,UAAU,CAAC,CAAe,EAAA;QAC1B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACnD;AAGD,IAAA,IACI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IACD,IAAI,UAAU,CAAC,CAAe,EAAA;QAC1B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACnD;AAID,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAI,QAAQ,CAAC,CAAe,EAAA;QACxB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACjD;AAuBD,IAAA,IACI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IACD,IAAI,KAAK,CAAC,CAAe,EAAA;QACrB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAC9C;AAGD,IAAA,IACI,EAAE,GAAA;QACF,OAAO,IAAI,CAAC,GAAG,CAAC;KACnB;IACD,IAAI,EAAE,CAAC,CAAe,EAAA;QAClB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAC3C;AAID,IAAA,IACI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IACD,IAAI,UAAU,CAAC,CAAe,EAAA;QAC1B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACnD;AAGD,IAAA,IACI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IACD,IAAI,UAAU,CAAC,CAAe,EAAA;QAC1B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACnD;AAGD,IAAA,IACI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IACD,IAAI,UAAU,CAAC,CAAe,EAAA;QAC1B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACnD;AAGD,IAAA,IACI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IACD,IAAI,UAAU,CAAC,CAAe,EAAA;QAC1B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACnD;;;;;;;;;;IAmBS,eAAe,GAAA;QACrB,OAAO,QAAQ,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;KAC7D;IACS,QAAQ,GAAA;AACd,QAAA,IAAI,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;AACrC,QAAA,OAAO,IAAI,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;KAC/D;IAKD,SAAS,GAAA;QACL,OAAO,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACxD;;AAGD,IAAA,IAAI,CAAC,KAAW,EAAA;AACZ,QAAA,IAAI,CAAC,KAAK;YAAE,KAAK,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;;AAKnB,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACd,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SACjC;AACD,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;;SAEtB;KACJ;IAED,IAAI,GAAA;;;;;;;;;AAYA,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACb,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;SACtB;aACI;AACD,YAAA,IAAI,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,sBAAsB,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3E,IAAI,GAAG,EAAE;gBACL,GAAG,CAAC,KAAK,EAAE,CAAC;aACf;SACJ;KACJ;IAED,EAAE,GAAA;AACE,QAAA,IAAI,KAAK,GAAG,IAAI,cAAc,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,KAAK;YAAE,OAAO;QAEzB,IAAI,IAAI,CAAC,QAAQ;YACb,IAAI,CAAC,IAAI,EAAE,CAAC;QAEhB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;AAED,IAAA,OAAO,CAAC,CAAQ,EAAA;QACZ,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,EAAE,EAAE,CAAC;KACb;8GAtPQ,QAAQ,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAI,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,+gBCbrB,8lDAmBM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDNO,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAJpB,SAAS;+BACI,WAAW,EAAA,QAAA,EAAA,8lDAAA,EAAA,CAAA;uFA+CZ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAMF,MAAM,EAAA,CAAA;sBADT,KAAK;gBAUF,UAAU,EAAA,CAAA;sBADb,KAAK;gBAUF,UAAU,EAAA,CAAA;sBADb,KAAK;gBAWF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBASG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAEG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEI,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBAEG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAEG,IAAI,EAAA,CAAA;sBAAb,MAAM;gBAEE,aAAa,EAAA,CAAA;sBAArB,KAAK;gBAOF,KAAK,EAAA,CAAA;sBADR,KAAK;gBAUF,EAAE,EAAA,CAAA;sBADL,KAAK;gBAWF,UAAU,EAAA,CAAA;sBADb,KAAK;gBAUF,UAAU,EAAA,CAAA;sBADb,KAAK;gBAUF,UAAU,EAAA,CAAA;sBADb,KAAK;gBAUF,UAAU,EAAA,CAAA;sBADb,KAAK;gBAWI,YAAY,EAAA,CAAA;sBAArB,MAAM;;AA0FL,MAAO,cAAe,SAAQ,QAAQ,CAAA;AACxC,IAAA,WAAA,CAAY,SAA2B,EAAA;QACnC,KAAK,CAAC,SAAS,CAAC,CAAC;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;AAChC,QAAA,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,GAAW,KAAK,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;AAC5E,QAAA,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,GAAW,KAAK,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AAClF,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC;KAC7C;8GAPQ,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,+EC1Q3B,8lDAmBM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDuPO,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;+BACI,kBAAkB,EAAA,QAAA,EAAA,8lDAAA,EAAA,CAAA;;AAiB1B,MAAO,eAAgB,SAAQ,QAAQ,CAAA;AACzC,IAAA,WAAA,CAAY,SAA2B,EAAA;QACnC,KAAK,CAAC,SAAS,CAAC,CAAC;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;AACpC,QAAA,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,GAAW,KAAK,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;AAC7E,QAAA,SAAS,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,SAAS,CAAC,CAAC,GAAW,KAAK,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AACnF,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC;KAC9C;8GAPQ,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,gFCxR5B,8lDAmBM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDqQO,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;+BACI,mBAAmB,EAAA,QAAA,EAAA,8lDAAA,EAAA,CAAA;;AAgB3B,MAAO,cAAe,SAAQ,QAAQ,CAAA;AACxC,IAAA,WAAA,CAAY,SAA2B,EAAA;QACnC,KAAK,CAAC,SAAS,CAAC,CAAC;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;AACpC,QAAA,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,SAAS,CAAC,CAAC,GAAW,KAAK,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;AAC5E,QAAA,SAAS,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC,SAAS,CAAC,CAAC,GAAW,KAAK,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AAClF,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC;KAC9C;8GAPQ,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,+ECrS3B,8lDAmBM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDkRO,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;+BACI,kBAAkB,EAAA,QAAA,EAAA,8lDAAA,EAAA,CAAA;;AAgB1B,MAAO,kBAAmB,SAAQ,QAAQ,CAAA;AAC5C,IAAA,WAAA,CAAY,SAA2B,EAAA;QACnC,KAAK,CAAC,SAAS,CAAC,CAAC;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;AACtC,QAAA,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAAC,GAAW,KAAK,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;AAChF,QAAA,SAAS,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,SAAS,CAAC,CAAC,GAAW,KAAK,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AACtF,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC;KAC7C;8GAPQ,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,mFClT/B,8lDAmBM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD+RO,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,SAAS;+BACI,sBAAsB,EAAA,QAAA,EAAA,8lDAAA,EAAA,CAAA;;AAiB9B,MAAO,eAAgB,SAAQ,QAAQ,CAAA;AACzC,IAAA,WAAA,CAAY,SAA2B,EAAA;QACnC,KAAK,CAAC,SAAS,CAAC,CAAC;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;AACvC,QAAA,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,GAAW,KAAK,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC;AAC7E,QAAA,SAAS,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,SAAS,CAAC,CAAC,GAAW,KAAK,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC;AACpF,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC;KAC9C;8GAPQ,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,gFChU5B,8lDAmBM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD6SO,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;+BACI,mBAAmB,EAAA,QAAA,EAAA,8lDAAA,EAAA,CAAA;;;AEtT3B,MAAO,cAAe,SAAQ,QAAQ,CAAA;AAJ5C,IAAA,WAAA,GAAA;;AAKc,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;AAS1C,KAAA;IAPG,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACvB;IAEkB,eAAe,GAAA;AAC9B,QAAA,OAAO,QAAQ,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;KAClD;8GATQ,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,gHCP3B,04CAiBM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDVO,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;+BACI,kBAAkB,EAAA,QAAA,EAAA,04CAAA,EAAA,CAAA;8BAIlB,OAAO,EAAA,CAAA;sBAAhB,MAAM;;;MEDE,WAAW,CAAA;IAOpB,GAAG,GAAA;AACC,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACZ,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SACrB;aACI;AACD,YAAA,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;SACpD;KACJ;8GAdQ,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,oLCPxB,8mBAYY,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,cAAA,EAAA,eAAA,EAAA,OAAA,EAAA,IAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDLC,WAAW,EAAA,UAAA,EAAA,CAAA;kBAJvB,SAAS;+BACI,eAAe,EAAA,QAAA,EAAA,8mBAAA,EAAA,CAAA;8BAKhB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAE4C,KAAK,EAAA,CAAA;sBAAtD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;;;MEgC/B,cAAc,CAAA;8GAAd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,iBApBnB,QAAQ;YACR,cAAc;YACd,eAAe;YACf,cAAc;YACd,kBAAkB;YAClB,eAAe;YACf,cAAc;AACd,YAAA,WAAW,aAZX,YAAY;YACZ,YAAY;AACZ,YAAA,eAAe,aAaf,QAAQ;YACR,cAAc;YACd,eAAe;YACf,cAAc;YACd,kBAAkB;YAClB,eAAe;YACf,cAAc;YACd,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;AAGN,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,YAzBnB,YAAY;YACZ,YAAY;YACZ,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAuBV,cAAc,EAAA,UAAA,EAAA,CAAA;kBA3B1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,YAAY;wBACZ,eAAe;AAClB,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACV,QAAQ;wBACR,cAAc;wBACd,eAAe;wBACf,cAAc;wBACd,kBAAkB;wBAClB,eAAe;wBACf,cAAc;wBACd,WAAW;AACd,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,QAAQ;wBACR,cAAc;wBACd,eAAe;wBACf,cAAc;wBACd,kBAAkB;wBAClB,eAAe;wBACf,cAAc;wBACd,WAAW;AACd,qBAAA;AACJ,iBAAA,CAAA;;;MCnCY,WAAW,CAAA;AACtB,IAAA,WAAA,CAAoB,SAAuB,EAAA;QAAvB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAc;KAC1C;AAED;;;;;AAKG;IACH,SAAS,CAAC,KAAa,EAAE,IAAsE,EAAA;QAC7F,QAAQ,IAAI;AACV,YAAA,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACvD,YAAA,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;AACxD,YAAA,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;AACzD,YAAA,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACtD,YAAA,KAAK,aAAa;gBAChB,OAAO,IAAI,CAAC,SAAS,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;AAC9D,YAAA;gBACE,OAAO,IAAI,CAAC,SAAS,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;SACxD;KACF;8GAzBU,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,IAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAJvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE,MAAM;AACb,iBAAA,CAAA;;;ACSK,MAAO,aAAkD,SAAQ,aAAa,CAAA;IAMhF,IAAI,CAAC,GAAW,EAAE,SAAyB,EAAA;QAEvC,IAAI,GAAG,GAAG,SAAS,IAAI,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACpD,QAAQ,GAAG;AACP,YAAA,KAAK,OAAO,CAAC;AACb,YAAA,KAAK,MAAM;gBACP,IAAI,CAAC,GAAG,GAAG,+CAA+C,GAAG,GAAG,GAAG,gBAAgB,CAAC;gBACpF,MAAM;AAEV,YAAA,KAAK,OAAO,CAAC;AACb,YAAA,KAAK,MAAM;AAEP,gBAAA,IAAI,CAAC,GAAG,GAAG,mDAAmD,GAAG,GAAG,CAAC;gBACrE,MAAM;;;;;AAMV,YAAA;AACI,gBAAA,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;gBACf,MAAM;SACb;;;;;;;;;;AAgBD,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;SACzB;KACJ;8GA/CQ,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,SAAA,EAFX,EAAE,ECbjB,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,yZAMY,2CDME,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,cAAA,EAAA,eAAA,EAAA,OAAA,EAAA,IAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,WAAW,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAG1C,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPzB,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,iBAAiB,EAAA,OAAA,EAElB,CAAC,YAAY,EAAE,cAAc,EAAE,WAAW,CAAC,EAAA,SAAA,EACzC,EAAE,EAAA,QAAA,EAAA,yZAAA,EAAA,CAAA;8BAI6B,SAAS,EAAA,CAAA;sBAAlD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;AEN5C,SAASC,YAAU,CACf,QAA+B,EAC/B,GAAY,EACZ,KAAc,EAAA;AAEd,IAAA,MAAM,CAAC,mBAAmB,GAAG,MAAK;QAC9B,QAAQ,CAAC,MAAM,CAAC,CAAC;AACrB,KAAC,CAAC;AAEF,IAAA,MAAM,GAAG,GAAG,GAAG,IAAI,wCAAwC,CAAC;IAC5D,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AAEM,MAAMC,QAAM,GAAG,cAAED,YAAU,EAAE;;ACjBpC,IAAIJ,UAAQ,GAAG,CAAC,CAAC;AAeX,MAAO,oBAAqB,SAAQ,aAAa,CAAA;AACnD,IAAA,WAAA,CAAuD,SAAiB,EAAA;AACpE,QAAA,KAAK,EAAE,CAAC;QAD2C,IAAS,CAAA,SAAA,GAAT,SAAS,CAAQ;AAIhE,QAAA,IAAA,CAAA,SAAS,GAAW,CAAA,4BAAA,EAA+B,EAAEA,UAAQ,EAAE,CAAC;AAC/D,QAAA,IAAA,CAAA,EAAE,GAAW,IAAI,CAAC,SAAS,CAAC;QAE7B,IAAO,CAAA,OAAA,GAAY,IAAI,CAAC;QAQxB,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;QAS7B,IAAmB,CAAA,mBAAA,GAAY,IAAI,CAAC;AA4BlC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAE,CAAC;AACrC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;AAiC/B,QAAA,IAAA,CAAA,cAAc,GAAG,CAAC,MAAW,KAAI;AACrC,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,SAAC,CAAA;KAvFA;AAMD,IAAA,IAAa,MAAM,GAAA;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;IACD,IAAI,MAAM,CAAC,CAAe,EAAA;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAC/C;AAGD,IAAA,IAAa,UAAU,GAAA;QACnB,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IACD,IAAI,UAAU,CAAC,CAAe,EAAA;QAC1B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACnD;AAID,IAAA,IAAa,kBAAkB,GAAA;QAC3B,OAAO,IAAI,CAAC,mBAAmB,CAAC;KACnC;IACD,IAAI,kBAAkB,CAAC,CAAe,EAAA;QAClC,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAC3D;AAID,IAAA,IAAa,KAAK,GAAA;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IACD,IAAI,KAAK,CAAC,CAAc,EAAA;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;KACnB;AAID,IAAA,IAAa,IAAI,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IACD,IAAI,IAAI,CAAC,CAA6B,EAAA;AAClC,QAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;KAClB;AA2BQ,IAAA,MAAM,IAAI,GAAA;QACf,KAAK,CAAC,IAAI,EAAE,CAAC;;AAGb,QAAA,IAAI,QAAQ,IAAI,MAAM,EAAE;AACpB,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB;aAAM;AACH,YAAAK,QAAM,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;SAC1C;KACJ;IAMD,UAAU,GAAA;QACN,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC;YAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;AACzB,YAAA,QAAQ,EAAE,CAAC,QAAa,KAAI;AACxB,gBAAA,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,CAAC;aAC3C;YACD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,qBAAqB,EAAE,IAAI,CAAC,mBAAmB;AAClD,SAAA,CAAC,CAAC;QAEH,UAAU,CAAC,MAAK;YACZ,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,UAAU,EAAE,CAAC;AACtB,SAAC,CAAE,CAAC;KACP;IACD,YAAY,GAAA;QACR,IAAI,OAAO,GAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QACvD,IAAI,IAAI,CAAC,MAAM;AACX,YAAA,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;QAChC,IAAI,IAAI,CAAC,KAAK;AACV,YAAA,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;AAE7B,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,YAAY,CAChC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;;AAEhC,QAAA,OAAO;SACV,CAAC;KACL;IACD,UAAU,GAAA;QACN,IAAI,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;KACxC;AAGD,IAAA,wBAAwB,CAAC,QAAa,EAAA;AAClC,QAAA,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;;;;;;;;KAS3C;AAzIQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,kBACT,gBAAgB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAD3B,oBAAoB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,IAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,IAAI,EAAE;AACF,wBAAA,WAAW,EAAE,IAAI;AACpB,qBAAA;AACJ,iBAAA,CAAA;;0BAEgB,MAAM;2BAAC,gBAAgB,CAAA;yCAK3B,EAAE,EAAA,CAAA;sBAAV,KAAK;gBAGO,MAAM,EAAA,CAAA;sBAAlB,KAAK;gBAQO,UAAU,EAAA,CAAA;sBAAtB,KAAK;gBASO,kBAAkB,EAAA,CAAA;sBAA9B,KAAK;gBASO,KAAK,EAAA,CAAA;sBAAjB,KAAK;gBASO,IAAI,EAAA,CAAA;sBAAhB,KAAK;gBASI,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;;;MC3DE,oBAAoB,CAAA;IACtB,OAAO,OAAO,CAAC,MAAyB,EAAA;QAC3C,OAAO;AACL,YAAA,QAAQ,EAAE,oBAAoB;AAC9B,YAAA,SAAS,EAAE;gBACT,oBAAoB;AACpB,gBAAA;AACE,oBAAA,OAAO,EAAE,gBAAgB;oBACzB,QAAQ,EAAE,MAAM,CAAC,SAAS;AAC3B,iBAAA;AACF,aAAA;SACF,CAAC;KACH;IAGI,OAAO,QAAQ,CAAC,MAAyB,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;KAC/B;8GAjBQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EANzB,YAAA,EAAA,CAAA,oBAAoB,CAHpB,EAAA,OAAA,EAAA,CAAA,YAAY,aAMZ,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAGf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YATzB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FASP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAXhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;AACf,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACV,oBAAoB;AACvB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,oBAAoB;AACvB,qBAAA;AACJ,iBAAA,CAAA;;;MCJY,cAAc,CAAA;AAN3B,IAAA,WAAA,GAAA;QAiBY,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAS1B,IAAY,CAAA,YAAA,GAAY,IAAI,CAAC;QAS7B,IAAW,CAAA,WAAA,GAAY,IAAI,CAAC;QAS5B,IAAc,CAAA,cAAA,GAAY,IAAI,CAAC;QAS/B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAS9B,IAAe,CAAA,eAAA,GAAY,IAAI,CAAC;QAU/B,IAAW,CAAA,WAAA,GAAG,gBAAgB,CAAC;QAChC,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAS9B,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QAShC,IAAc,CAAA,cAAA,GAAG,mBAAmB,CAAC;QACtC,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;QAUjC,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;AASlC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAO,CAAC;AAMjC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAO,CAAC;AAKnC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAO,CAAC;AAKpC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAO,CAAC;AAKvC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAO,CAAC;AAIjD,KAAA;AAtHG,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAI,QAAQ,CAAC,CAAe,EAAA;QACxB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACjD;AAGD,IAAA,IACI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;KAC5B;IACD,IAAI,WAAW,CAAC,CAAe,EAAA;QAC3B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACpD;AAGD,IAAA,IACI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IACD,IAAI,UAAU,CAAC,CAAe,EAAA;QAC1B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACnD;AAGD,IAAA,IACI,aAAa,GAAA;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;IACD,IAAI,aAAa,CAAC,CAAe,EAAA;QAC7B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACtD;AAGD,IAAA,IACI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;KAC5B;IACD,IAAI,WAAW,CAAC,CAAe,EAAA;QAC3B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACpD;AAGD,IAAA,IACI,cAAc,GAAA;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;KAC/B;IACD,IAAI,cAAc,CAAC,CAAe,EAAA;QAC9B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACvD;AAKD,IAAA,IACI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;KAC5B;IACD,IAAI,WAAW,CAAC,CAAe,EAAA;QAC3B,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACpD;AAGD,IAAA,IACI,cAAc,GAAA;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;KAC/B;IACD,IAAI,cAAc,CAAC,CAAe,EAAA;QAC9B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACvD;AAID,IAAA,IACI,cAAc,GAAA;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;KAC/B;IACD,IAAI,cAAc,CAAC,CAAe,EAAA;QAC9B,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACvD;AAID,IAAA,IACI,iBAAiB,GAAA;QACjB,OAAO,IAAI,CAAC,kBAAkB,CAAC;KAClC;IACD,IAAI,iBAAiB,CAAC,CAAe,EAAA;QACjC,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAC1D;IAGD,IAAI,GAAA;;QAEA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChC;IAGD,MAAM,GAAA;QACF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACjC;IAGD,OAAO,GAAA;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAClC;IAGD,UAAU,GAAA;QACN,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KACrC;IAGD,OAAO,GAAA;QACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;KAClC;8GAjIQ,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,ECZ3B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,u0CAiBM,EDPQ,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,oIAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAR,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAE9B,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,kBAAkB,EAAA,OAAA,EAEnB,CAAC,YAAY,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,u0CAAA,EAAA,CAAA;8BAW/B,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAIF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAUF,WAAW,EAAA,CAAA;sBADd,KAAK;gBAUF,UAAU,EAAA,CAAA;sBADb,KAAK;gBAUF,aAAa,EAAA,CAAA;sBADhB,KAAK;gBAUF,WAAW,EAAA,CAAA;sBADd,KAAK;gBAUF,cAAc,EAAA,CAAA;sBADjB,KAAK;gBASG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAGF,WAAW,EAAA,CAAA;sBADd,KAAK;gBAUF,cAAc,EAAA,CAAA;sBADjB,KAAK;gBAQG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBAGF,cAAc,EAAA,CAAA;sBADjB,KAAK;gBAWF,iBAAiB,EAAA,CAAA;sBADpB,KAAK;gBAQI,MAAM,EAAA,CAAA;sBAAf,MAAM;gBAMG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAKG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAKG,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAKG,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;AE/HL,MAAO,iBAAkB,SAAQ,cAAc,CAAA;8GAAxC,iBAAiB,EAAA,IAAA,EAAA,IAAA,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,QAAA,EAAA,IAAA,EAAA,iBAAiB,ECX9B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,84CAoBK,EDXS,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,oIAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAE9B,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,sBAAsB,EAAA,OAAA,EAEvB,CAAC,YAAY,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,84CAAA,EAAA,CAAA;;;MEM/B,cAAc,CAAA;AACvB,IAAA,WAAA,CAA6B,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAG3C,IAAS,CAAA,SAAA,GAAG,SAAS,CAAC;QAEd,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;QAUpB,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;QAYnB,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;QAUnB,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;QAYnB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QAUjB,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;AAU3B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAE,CAAC;AAE/B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;AAoBxC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAa,CAAC;AAMxC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;AAO3B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAU,CAAC;KAvGrC;AAKD,IAAA,IACI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IACD,IAAI,UAAU,CAAC,CAAe,EAAA;QAC1B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACnD;AAID,IAAA,IACI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IACD,IAAI,UAAU,CAAC,CAAe,EAAA;QAC1B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACnD;AAMD,IAAA,IACI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IACD,IAAI,UAAU,CAAC,CAAe,EAAA;QAC1B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACnD;AAID,IAAA,IACI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;IACD,IAAI,SAAS,CAAC,CAAe,EAAA;QACzB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAClD;AAMD,IAAA,IACI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IACD,IAAI,OAAO,CAAC,CAAe,EAAA;QACvB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAChD;AAID,IAAA,IACI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IACD,IAAI,UAAU,CAAC,CAAe,EAAA;QAC1B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACnD;IAOD,OAAO,GAAA;AACH,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACzB;IAED,MAAM,GAAA;AACF,QAAA,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;;QAElD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,EAChC,EAAE,WAAW,EAAE,EAAE,SAAS,EAAE,GAAG,GAAG,WAAW,EAAE,EAAE,CACpD,CAAC;KACL;IAGD,MAAM,GAAA;AACF,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACxB;AAID,IAAA,KAAK,CAAC,SAAqB,EAAA;AACvB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAChC;IAID,GAAG,GAAA;AACC,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACrB;IAKD,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACzB;8GA5GQ,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,cAAc,ECf3B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,w9FAgCM,EDnBQ,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,oOAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAE9B,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,kBAAkB,EAAA,OAAA,EAEnB,CAAC,YAAY,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,w9FAAA,EAAA,CAAA;2EAUpC,UAAU,EAAA,CAAA;sBADb,KAAK;gBAWF,UAAU,EAAA,CAAA;sBADb,KAAK;gBAaF,UAAU,EAAA,CAAA;sBADb,KAAK;gBAWF,SAAS,EAAA,CAAA;sBADZ,KAAK;gBAaF,OAAO,EAAA,CAAA;sBADV,KAAK;gBAWF,UAAU,EAAA,CAAA;sBADb,KAAK;gBASI,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAEG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAoBP,OAAO,EAAA,CAAA;sBADN,MAAM;gBAOP,KAAK,EAAA,CAAA;sBADJ,MAAM;gBAQP,QAAQ,EAAA,CAAA;sBADP,MAAM;;;MEjHE,iBAAiB,CAAA;AAD9B,IAAA,WAAA,GAAA;QAEY,IAAgB,CAAA,gBAAA,GAAG,CAAC,CAAC;AA6BhC,KAAA;IAzBG,KAAK,GAAA;QACD,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;KACrC;IACD,GAAG,GAAA;QACC,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAA,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC;AACzB,YAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAE9B,QAAA,IAAI,CAAC,KAAK,IAAI,CAAC,gBAAgB,EAAE;AAC7B,YAAA,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;SACtC;KACJ;AAED,IAAA,IAAI,SAAS,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACxB,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;YAC5D,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;SACpE;QAED,IAAI,CAAC,IAAI,CAAC,oBAAoB;AAC1B,YAAA,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAEzD,OAAO,IAAI,CAAC,oBAAoB,CAAC;KACpC;8GA7BQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cADN,MAAM,EAAA,CAAA,CAAA,EAAA;;2FACjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;mBAAC,EAAC,UAAU,EAAC,MAAM,EAAC,CAAA;;MAkClB,qBAAqB,CAAA;AAC9B,IAAA,WAAA,CAA6B,QAA2B,EAAA;QAA3B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAmB;KACvD;IAED,SAAS,CAAC,OAAyB,EAAE,IAAiB,EAAA;AAClD,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;AAEtB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAC5B,QAAQ,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;SACvB,CAAC,CACL,CAAC;KACL;8GAZQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAArB,qBAAqB,EAAA,CAAA,CAAA,EAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;;AAgBJ,MAAM,6BAA6B,GAAG,CAAC;AAC1C,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,QAAQ,EAAE,qBAAqB;AAC/B,QAAA,KAAK,EAAE,IAAI;AACd,KAAA,CAAC;;MC7CW,UAAU,CAAA;AAGnB,IAAA,WAAA,CAA6B,QAA2B,EAAA;QAA3B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAmB;QAFxD,IAAI,CAAA,IAAA,GAAY,KAAK,CAAC;KAGrB;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAG;AACtD,YAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAA;AACjB,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC;KACpC;8GAdQ,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAO,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,EANT,QAAA,EAAA,aAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;AAIb,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,qSAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAEY,UAAU,EAAA,UAAA,EAAA,CAAA;kBATtB,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,aAAa,EAEb,QAAA,EAAA,CAAA;;;;AAIb,CAAA,EAAA,MAAA,EAAA,CAAA,qSAAA,CAAA,EAAA,CAAA;;;MCUY,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EAVrB,YAAA,EAAA,CAAA,UAAU,CAHV,EAAA,OAAA,EAAA,CAAA,YAAY,aAUZ,UAAU,CAAA,EAAA,CAAA,CAAA,EAAA;AAGL,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,EARd,SAAA,EAAA;YACP,qBAAqB;YACrB,6BAA6B;AAChC,SAAA,EAAA,OAAA,EAAA,CARG,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAaP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAf5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;AACf,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACV,UAAU;AACb,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACP,qBAAqB;wBACrB,6BAA6B;AAChC,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,UAAU;AACb,qBAAA;AACJ,iBAAA,CAAA;;;AClBD;;MCMa,gBAAgB,CAAA;AAEzB,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;IACD,IACI,MAAM,CAAC,CAAc,EAAA;AACrB,QAAA,IAAI,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;KACtB;AAGD,IAAA,IAAI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAa,QAAQ,CAAC,CAAe,EAAA;QACjC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACjD;AAEO,IAAA,kBAAkB,CAAC,KAAa,EAAA;AACpC,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE;AACnB,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;SACrD;aAAM;YACH,IAAI,YAAY,GACZ,yBAAyB;AACzB,gBAAA,IAAI,CAAC,OAAO;gBACZ,uBAAuB;AACvB,gBAAA,IAAI,CAAC,OAAO;AACZ,gBAAA,YAAY,CAAC;AACjB,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;SACxD;KACJ;AAEO,IAAA,KAAK,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,CAAC,EAAE;AACnB,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;SACnD;aAAM;YACH,IAAI,YAAY,GACZ,uBAAuB;AACvB,gBAAA,IAAI,CAAC,OAAO;gBACZ,uBAAuB;AACvB,gBAAA,IAAI,CAAC,OAAO;AACZ,gBAAA,YAAY,CAAC;AACjB,YAAA,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;SACxD;KACJ;AAEO,IAAA,GAAG,CAAC,QAAa,EAAA;QACrB,UAAU,CAAC,MAAK;YACZ,IAAI,YAAY,GAAW,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC;AACvD,YAAA,IAAI,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;YAEnC,IAAI,aAAa,EAAE;gBACf,IACI,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;AACjC,oBAAA,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,EACxC;oBACE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,GAAG,QAAQ,CAAC;iBAC1C;aACJ;iBAAM;AACH,gBAAA,IAAI,YAAY,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;oBAClD,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,GAAG,QAAQ,CAAC;iBAC1C;aACJ;AACL,SAAC,CAAC,CAAC;KACN;AAGD,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QAnE1B,IAAO,CAAA,OAAA,GAAG,CAAC,CAAC;QAUZ,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;KAyDI;AAGvC,IAAA,SAAS,CAAC,KAAoB,EAAA;QAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KACzC;AAGD,IAAA,OAAO,CAAC,KAAqB,EAAA;QACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KACzC;8GA9EQ,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAJ5B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,WAAW;AACxB,iBAAA,CAAA;+EAOO,MAAM,EAAA,CAAA;sBADT,KAAK;gBAUO,QAAQ,EAAA,CAAA;sBAApB,KAAK;gBAwDN,SAAS,EAAA,CAAA;sBADR,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;gBAMnC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCvExB,YAAY,CAAA;AANzB,IAAA,WAAA,GAAA;QAYY,IAAW,CAAA,WAAA,GAAY,KAAK,CAAC;AAWxC,KAAA;AAVG,IAAA,IACI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IACD,IAAI,UAAU,CAAC,CAAe,EAAA;QAC1B,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACnD;8GAbQ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAY,ECZzB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,ujBAOK,EDGS,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,oIAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAE9B,YAAY,EAAA,UAAA,EAAA,CAAA;kBANxB,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,gBAAgB,EAAA,OAAA,EAEjB,CAAC,YAAY,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,ujBAAA,EAAA,CAAA;8BAG/B,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAKF,UAAU,EAAA,CAAA;sBADb,KAAK;gBAQG,OAAO,EAAA,CAAA;sBAAf,KAAK;;;MEbG,QAAQ,CAAA;AAPrB,IAAA,WAAA,GAAA;AAQa,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAErB,IAAa,CAAA,aAAA,GAAY,IAAI,CAAC;QAS7B,IAAU,CAAA,UAAA,GAAG,OAAO,CAAC;AAkBpB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAU,CAAC;AAE1C,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAU,CAAC;AAC3D,KAAA;AA7BG,IAAA,IACI,YAAY,GAAA;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;KAC7B;IACD,IAAI,YAAY,CAAC,CAAe,EAAA;QAC5B,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACrD;AAKD,IAAA,OAAO,CAAC,IAAY,EAAA;;AAGhB,QAAA,IAAI,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU;YAC9B,OAAO;AACX,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChC;AACD,IAAA,WAAW,CAAC,QAAgB,EAAA;;AAGxB,QAAA,IAAI,QAAQ,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ;YAChC,OAAO;AACX,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACxC;8GA5BQ,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,ECdrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,YAAA,EAAA,cAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,swHAgDM,EDpCQ,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,mWAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAE9B,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAPpB,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,WAAW,EAAA,OAAA,EAGZ,CAAC,YAAY,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,swHAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA;8BAG/B,KAAK,EAAA,CAAA;sBAAb,KAAK;gBAIF,YAAY,EAAA,CAAA;sBADf,KAAK;gBAQG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAkBI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBAEG,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MEnCE,iBAAiB,CAAA;;AAI1B,IAAA,WAAA,GAAA;QACI,IAAI,IAAI,CAAC,KAAK;YACV,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACtC;8GAPQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,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,QAAA,EAAA,IAAA,EAAA,iBAAiB,ECX9B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,isCAYe,EDHD,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,oIAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAE9B,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAP7B,SAAS;AACK,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACL,QAAA,EAAA,4CAA4C,EAChD,IAAA,EAAA,EAAE,SAAS,EAAE,mBAAmB,EAAE,EAE/B,OAAA,EAAA,CAAC,YAAY,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,isCAAA,EAAA,CAAA;wDAG/B,KAAK,EAAA,CAAA;sBAAb,KAAK;;;MEAG,WAAW,CAAA;AANxB,IAAA,WAAA,GAAA;QAOa,IAAI,CAAA,IAAA,GAAG,UAAU,CAAC;QAEnB,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAS1B,IAAS,CAAA,SAAA,GAA2B,IAAI,CAAC;QACzC,IAAS,CAAA,SAAA,GAA2B,IAAI,CAAC;AAG3B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAE7C,IAAK,CAAA,KAAA,GAAG,UAAU,CAAC;AAQ9B,KAAA;AAtBG,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAI,QAAQ,CAAC,CAAe,EAAA;QACxB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACjD;AASD,IAAA,IAAI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IAED,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;KAChE;8GAzBQ,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,ECZxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,4kBAQM,EDEQ,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,8pCAAE,iBAAiB,EAAA,QAAA,EAAA,4CAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAE/B,WAAW,EAAA,UAAA,EAAA,CAAA;kBANvB,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,cAAc,EAAA,OAAA,EAEf,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAA,QAAA,EAAA,4kBAAA,EAAA,CAAA;8BAGhC,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAIF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAQG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACiB,QAAQ,EAAA,CAAA;sBAA9B,MAAM;uBAAC,aAAa,CAAA;;;AEvBzB,SAAS,KAAK,CAAC,CAAS,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,EAAA;AACxC,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AAC3C,CAAC;MAaY,WAAW,CAAA;AATxB,IAAA,WAAA,GAAA;QAoBY,IAAM,CAAA,MAAA,GAAW,CAAC,CAAC;QAUnB,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAS5B,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;QAc3B,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAU1B,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;QAS3B,IAAM,CAAA,MAAA,GAAkB,IAAI,CAAC;QAY7B,IAAO,CAAA,OAAA,GAAkB,IAAI,CAAC;QAU9B,IAAW,CAAA,WAAA,GAAe,SAAS,CAAC;AAC/C,KAAA;AArFG,IAAA,IACI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IACD,IAAI,KAAK,CAAC,CAAc,EAAA;AACpB,QAAA,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1C,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE;AACrB,YAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;SACrB;KACJ;AAID,IAAA,IACI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;IACD,IAAI,SAAS,CAAC,CAAe,EAAA;QACzB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAClD;AAGD,IAAA,IACI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;IACD,IAAI,SAAS,CAAC,CAAe,EAAA;QACzB,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAClD;AAGD,IAAA,IAAI,MAAM,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,UAAU,GAAG,CAAA,EAAG,IAAI,CAAC,MAAM,CAAI,EAAA,CAAA,GAAG,IAAI,CAAC;KACtD;AAGD,IAAA,IACI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IACD,IAAI,OAAO,CAAC,CAAe,EAAA;QACvB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KAChD;AAID,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAI,QAAQ,CAAC,CAAe,EAAA;QACxB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACjD;AAGD,IAAA,IACI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IACD,IAAI,KAAK,CAAC,CAA4B,EAAA;AAClC,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;KAC9B;AAKD,IAAA,IACI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;IACD,IAAI,MAAM,CAAC,CAAc,EAAA;QACrB,IAAI,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;KACvC;AAID,IAAA,IACI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IACD,IAAI,UAAU,CAAC,CAAa,EAAA;AACxB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;KACxB;8GApFQ,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpBxB,+hBAWM,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDME,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAGP,WAAW,EAAA,UAAA,EAAA,CAAA;kBATvB,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,cAAc,EAGf,OAAA,EAAA;wBACL,YAAY;AACf,qBAAA,EAAA,QAAA,EAAA,+hBAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,CAAA;8BAIG,KAAK,EAAA,CAAA;sBADR,KAAK;gBAcF,SAAS,EAAA,CAAA;sBADZ,KAAK;gBAUF,SAAS,EAAA,CAAA;sBADZ,KAAK;gBAeF,OAAO,EAAA,CAAA;sBADV,KAAK;gBAWF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAUF,KAAK,EAAA,CAAA;sBADR,KAAK;gBAYF,MAAM,EAAA,CAAA;sBADT,KAAK;gBAYF,UAAU,EAAA,CAAA;sBADb,KAAK;;;AE5FV,IAAID,UAAQ,GAAG,CAAC,CAAC;AAEjB;;;;AAIG;AACH,MAAM,gCAAgC,GAAQ;AAC1C,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,QAAQ,CAAC;AACvC,IAAA,KAAK,EAAE,IAAI;CACd,CAAC;AAuBI,MAAO,QAAS,SAAQ,eAAe,CAAA;AAEzC,IAAA,WAAA,CACY,eAAkC,EAC1C,SAAoB,EACpB,WAAuB,EAAA;AACvB,QAAA,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAHtB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAmB;AAOtC,QAAA,IAAA,CAAA,SAAS,GAAW,CAAA,UAAA,EAAa,EAAEA,UAAQ,EAAE,CAAC;;AAG7C,QAAA,IAAA,CAAA,EAAE,GAAW,IAAI,CAAC,SAAS,CAAC;QAgB7B,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QAuBzB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;KA7CjC;AAuBD,IAAA,IAAI,MAAM,GAAA;QACN,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;IACD,IACI,MAAM,CAAC,CAAe,EAAA;QACtB,IAAI,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;AAC5C,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE;AAC3B,YAAA,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;YACxB,IAAI,CAAC,eAAe,EAAE,CAAC;SAC1B;KACJ;AACD,IAAA,eAAe,MAAM;AAErB,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,CAAA,EAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,SAAS,CAAA,MAAA,CAAQ,CAAC;KAC/C;AAQD,IAAA,IACI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IACD,IAAI,OAAO,CAAC,KAAmB,EAAA;QAC3B,MAAM,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;AACzD,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,eAAe,EAAE;AACnC,YAAA,IAAI,CAAC,QAAQ,GAAG,eAAe,CAAC;YAChC,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB;KACJ;AAGQ,IAAA,UAAU,CAAC,KAAU,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,EAAE;AAC3B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,CAAC;SAClD;KAEJ;IACQ,cAAc,GAAA;AACnB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;;YAEf,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,CAAC;SAClD;KACJ;IAGQ,iBAAiB,GAAA;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;KACxB;IACQ,iBAAiB,GAAA;QACtB,IAAI,CAAC,aAAa,EAAE,CAAC;KACxB;AAGD;;;;AAIG;IACK,aAAa,GAAA;;;AAGjB,QAAA,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;KACvC;IAGQ,IAAI,GAAA;;QAET,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,MAAM,CAAC;KAClD;;AAIQ,IAAA,mBAAmB,CAAC,KAAY,EAAA;;;;QAIrC,KAAK,CAAC,eAAe,EAAE,CAAC;QAExB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACjC,MAAM,iBAAiB,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC;AACzD,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;YAC9B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAExB,IAAI,iBAAiB,EAAE;AACnB,gBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC/B;SACJ;KACJ;8GA5HQ,QAAQ,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,QAAQ,EAFN,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,EAAA,WAAA,CAAA,EAAA,cAAA,EAAA,CAAA,iBAAA,EAAA,gBAAA,CAAA,EAAA,eAAA,EAAA,CAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,qCAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,SAAA,EAAA,CAAC,gCAAgC,CAAC,yJCtCjD,ykBAeM,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FDyBO,QAAQ,EAAA,UAAA,EAAA,CAAA;kBApBpB,SAAS;iCACM,IAAI,EAAA,QAAA,EACN,WAAW,EAEf,IAAA,EAAA;AACF,wBAAA,WAAW,EAAE,IAAI;AACjB,wBAAA,iBAAiB,EAAE,MAAM;AACzB,wBAAA,mBAAmB,EAAE,MAAM;AAC3B,wBAAA,wBAAwB,EAAE,MAAM;AAChC,wBAAA,yBAAyB,EAAE,MAAM;;;;AAIjC,wBAAA,SAAS,EAAE,qCAAqC;qBAEnD,EACc,aAAA,EAAA,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC,CAAC,gCAAgC,CAAC,EAAA,QAAA,EAAA,ykBAAA,EAAA,CAAA;uIAepC,EAAE,EAAA,CAAA;sBAAV,KAAK;gBAGe,SAAS,EAAA,CAAA;sBAA7B,KAAK;uBAAC,YAAY,CAAA;gBAGO,cAAc,EAAA,CAAA;sBAAvC,KAAK;uBAAC,iBAAiB,CAAA;gBAGG,eAAe,EAAA,CAAA;sBAAzC,KAAK;uBAAC,kBAAkB,CAAA;gBAGL,aAAa,EAAA,CAAA;sBAAhC,SAAS;uBAAC,OAAO,CAAA;gBASd,MAAM,EAAA,CAAA;sBADT,KAAK;gBAqBF,OAAO,EAAA,CAAA;sBADV,KAAK;;;MElFG,oBAAoB,CAAA;AAPjC,IAAA,WAAA,GAAA;QAQI,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAIrB,KAAA;AAHY,IAAA,QAAQ,CAAC,CAAe,EAAA;QAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;KACjD;8GAJQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,IAAI,EAAE;AACF,wBAAA,iBAAiB,EAAE,uBAAuB;AAC7C,qBAAA;AACJ,iBAAA,CAAA;8BAGY,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;ACDV,SAAS,UAAU,CACf,OAA4B,EAC5B,QAAqD;AACrD,SAAkB,EAClB,GAAY,EACZ,KAAc,EAAA;AAEd,IAAA,MAAM,CAAC,eAAe,GAAG,MAAK;QAC1B,QAAQ,CAAC,UAAU,CAAC,CAAC;AACzB,KAAC,CAAC;AAEF,IAAA,MAAM,OAAO,GAAG,GAAG,IAAI,yCAAyC,CAAC;AACjE,IAAA,IAAI,MAAM,GAAG,SAAS,IAAI,EAAE,CAAC;IAC7B,IAAI,GAAG,GAAG,CAAG,EAAA,OAAO,WAAW,OAAO,CAAA,uBAAA,EAA0B,MAAM,CAAA,CAAE,CAAC;IAEzE,UAAU,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AAEM,MAAM,MAAM,GAAG,EAAE,UAAU,EAAE;;MCcvB,gBAAgB,CAAA;IAYzB,WACI,CAAA,IAAY,EAC4B,OAAe,EAAA;QAb1C,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;;AAqHnC,QAAA,IAAA,CAAA,cAAc,GAAG,CAAC,UAAiC,KAAI;AAC3D,YAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AAC7B,YAAA,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;gBACrD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAClG,gBAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;aAClC;AACL,SAAC,CAAA;AA5GG,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,IAAI,EAAE,CAAC;KACf;AAED,IAAA,IAAW,SAAS,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACxB,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,OAAO,EAAiB,CAAC;YACrD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;SACnE;QAED,IAAI,CAAC,IAAI,CAAC,mBAAmB;AACzB,YAAA,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAExD,OAAO,IAAI,CAAC,mBAAmB,CAAC;KACnC;AAED,IAAA,IAAW,cAAc,GAAA;AACrB,QAAA,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;AAC7B,YAAA,IAAI,CAAC,qBAAqB,GAAG,IAAI,OAAO,EAAsB,CAAC;YAC/D,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC;SAC7E;QAED,IAAI,CAAC,IAAI,CAAC,wBAAwB;AAC9B,YAAA,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAE7D,OAAO,IAAI,CAAC,wBAAwB,CAAC;KACxC;AAED;;;;;;;;;;AAUG;AACI,IAAA,OAAO,CAAC,MAAc,EAAA;AACzB,QAAA,MAAM,OAAO,GAAG,IAAI,OAAO,EAAU,CAAC;AACtC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;;AAElB,gBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACrB,oBAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;iBAC3B;gBAED,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;aAC9C;iBAAM;AACH,gBAAA,IAAI,CAAC,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;aAClD;SACJ;AAED,QAAA,OAAO,OAAO,CAAC,YAAY,EAAE,CAAC;KACjC;;IAGO,wBAAwB,CAAC,MAAc,EAAE,OAAwB,EAAA;;AAErE,QAAA,MAAM,OAAO,GAAG,CAAC,KAAU,KAAI;AAC3B,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;AACf,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACrB,gBAAA,IAAI,IAAI,CAAC,qBAAqB,EAAE;;;oBAG5B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;iBACtD;AACL,aAAC,CAAC,CAAC;AACP,SAAC,CAAC;AAEF,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAK;AAC7B,YAAA,IAAI;gBACA,IAAI,IAAI,CAAC,UAAU;AACf,oBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAa,KAAI;AACrE,wBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;AACf,4BAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BACpB,OAAO,CAAC,QAAQ,EAAE,CAAC;AACnB,4BAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;gCACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;6BACjD;AACL,yBAAC,CAAC,CAAC;qBACN,EAAE,OAAO,CAAC,CAAC;aACnB;YAAC,OAAO,CAAC,EAAE;gBACR,OAAO,CAAC,CAAC,CAAC,CAAC;aACd;AACL,SAAC,CAAC,CAAC;KACN;;IAGO,IAAI,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,YAAY,IAAI,MAAM,EAAE;AACxB,gBAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;aAChC;iBAAM;gBACH,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;aACxD;SACJ;KACJ;AAnHQ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,wCAcD,kBAAkB,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAdjC,gBAAgB,EAAA,CAAA,CAAA,EAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;;0BAeF,QAAQ;;0BAAI,MAAM;2BAAC,kBAAkB,CAAA;;;ACrD9C;MAIa,eAAe,CAAA;IACjB,OAAO,OAAO,CAAC,MAAuB,EAAA;QACzC,OAAO;AACH,YAAA,QAAQ,EAAE,eAAe;AACzB,YAAA,SAAS,EAAE;gBACP,gBAAgB;AAChB,gBAAA;AACI,oBAAA,OAAO,EAAE,kBAAkB;oBAC3B,QAAQ,EAAE,MAAM,CAAC,OAAO;AAC3B,iBAAA;AACJ,aAAA;SACJ,CAAC;KACL;IAEM,OAAO,QAAQ,CAAC,MAAuB,EAAA;AAC1C,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;KAC/B;8GAhBQ,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAf,eAAe,EAAA,CAAA,CAAA,EAAA;+GAAf,eAAe,EAAA,SAAA,EAFb,CAAC,gBAAgB,CAAC,EAAA,CAAA,CAAA,EAAA;;2FAEpB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,SAAS,EAAE,CAAC,gBAAgB,CAAC;AAChC,iBAAA,CAAA;;;ACDD,IAAI,QAAQ,GAAG,CAAC,CAAC;AAGjB,MAAM,0CAA0C,GAAQ;AACpD,IAAA,OAAO,EAAE,iBAAiB;AAC1B,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB,CAAC;AAChD,IAAA,KAAK,EAAE,IAAI;CACd,CAAC;AAQI,MAAO,iBAAkB,SAAQ,eAAe,CAAA;IAClD,WAAY,CAAA,QAAmB,EAAE,UAAsB,EAAA;AACnD,QAAA,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;AAGxB,QAAA,IAAA,CAAA,SAAS,GAAW,CAAA,WAAA,EAAc,EAAE,QAAQ,EAAE,CAAC;;AAE9C,QAAA,IAAA,CAAA,EAAE,GAAW,IAAI,CAAC,SAAS,CAAC;QAM5B,IAAG,CAAA,GAAA,GAA4F,SAAS,CAAC;QAa1G,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;QAYlB,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;QAWZ,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QAGjB,IAAS,CAAA,SAAA,GAAU,EAAE,CAAC;QAYtB,IAAK,CAAA,KAAA,GAAkB,EAAE,CAAC;QAClC,IAAU,CAAA,UAAA,GAAoB,EAAE,CAAC;QAQjC,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;KAtEV;AAaD,IAAA,IACI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,YAAY,CAAC;KAC5B;IACD,IAAI,WAAW,CAAC,KAAgC,EAAA;AAC5C,QAAA,IAAI,KAAK;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;;AAE1B,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;KAC9B;AAGD,IAAA,IACI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IACD,IAAI,KAAK,CAAC,KAAgC,EAAA;AACtC,QAAA,IAAI,KAAK;AACL,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;;AAEpB,YAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;KACxB;AAKD,IAAA,IACI,QAAQ,GAAA;QACR,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAI,QAAQ,CAAC,KAAmB,EAAA;QAC5B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;KACrD;AAMD,IAAA,IACI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IACD,IAAI,IAAI,CAAC,KAA+B,EAAA;AACpC,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB;KACJ;IAGD,aAAa,GAAA;AACT,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvC,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;KACJ;IAMQ,cAAc,GAAA;QACnB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC3B,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC1C;KACJ;IAGQ,IAAI,GAAA;QACT,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;IAGO,cAAc,GAAA;AAClB,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QACrB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC3B,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,EAAE;AACnC,gBAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AAC3B,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;iBACzI;aACJ;iBAAM;AACH,gBAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;AAC3B,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;iBAClG;aACJ;SACJ;KACJ;AAED;;;AAGG;AACK,IAAA,oBAAoB,CAAC,KAAkB,EAAA;AAC3C,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AAEpB,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,EAAE;YACxB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACvB,gBAAA,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;aACzC;YAED,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC3B,IAAI,SAAS,GAAU,EAAE,CAAC;AAC1B,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,oBAAA,KAAK,MAAM,YAAY,IAAI,KAAK,EAAE;AAC9B,wBAAA,IAAI,KAAK,GAAG,WAAW,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/E,wBAAA,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;qBACvC;iBACJ;qBAAM;AACH,oBAAA,KAAK,MAAM,YAAY,IAAI,KAAK,EAAE;AAC9B,wBAAA,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,YAAY,CAAC,CAAC;AACvD,wBAAA,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;qBACvC;iBACJ;gBAED,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;aACpD;SACJ;aAAM;YACH,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC3B,gBAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACjB,oBAAA,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;iBAChF;qBAAM;AACH,oBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;iBACxD;aACJ;SACJ;AAED,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AAChC,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrD;QACD,IAAI,CAAC,SAAS,EAAE,CAAC;KACpB;AAKD,IAAA,aAAa,CAAC,CAAM,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACvC,YAAA,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE;AACZ,gBAAA,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;AAEjB,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACf,IAAI,GAAG,GAAG,EAAE,CAAC;AACb,oBAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE;AAChC,wBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AACd,4BAAA,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;yBACtB;qBACJ;AAED,oBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;;iBAExB;qBACI;;AAED,oBAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;iBAC1B;aACJ;iBAAM;AACH,gBAAA,CAAC,CAAC,OAAO,GAAG,KAAK,CAAC;AAClB,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;oBACf,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;wBAC5B,IAAI,CAAC,UAAU,CAAE,IAAI,CAAC,MAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;qBACpE;iBACJ;qBAAM;AACH,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;iBACzB;aACJ;SACJ;KACJ;IAGO,SAAS,GAAA;QACb,IAAI,KAAK,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;QAC1D,IAAI,KAAK,EAAE;AACP,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACxG;aAAM;YACH,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1C;KACJ;8GAhMQ,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EAHf,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,GAAA,EAAA,KAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,CAAC,0CAA0C,CAAC,iDCnB3D,6zBAaM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDSO,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAN7B,SAAS;+BACI,yBAAyB,EAAA,SAAA,EAExB,CAAC,0CAA0C,CAAC,EAAA,QAAA,EAAA,6zBAAA,EAAA,CAAA;uGAU9C,EAAE,EAAA,CAAA;sBAAV,KAAK;gBAEG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAEG,GAAG,EAAA,CAAA;sBAAX,KAAK;gBAIF,WAAW,EAAA,CAAA;sBADd,KAAK;gBAaF,KAAK,EAAA,CAAA;sBADR,KAAK;gBAeF,QAAQ,EAAA,CAAA;sBADX,KAAK;gBAaF,IAAI,EAAA,CAAA;sBADP,KAAK;;;MEzDG,eAAe,CAAA;8GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAf,eAAe,EAAA,YAAA,EAAA,CAPxB,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAJjB,YAAY;AACZ,YAAA,WAAW,aAMX,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA;AAIR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAXxB,YAAY;YACZ,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAUF,eAAe,EAAA,UAAA,EAAA,CAAA;kBAb3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;AACZ,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACZ,iBAAiB;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,iBAAiB;AAClB,qBAAA;AACF,iBAAA,CAAA;;;MCRY,UAAU,CAAA;AANvB,IAAA,WAAA,GAAA;AAUa,QAAA,IAAA,CAAA,SAAS,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC;QAEtC,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;QAY/B,IAAY,CAAA,YAAA,GAAe,EAAE,CAAC;QAIrB,IAAW,CAAA,WAAA,GAAW,EAAE,CAAA;AAEvB,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAO,CAAC;AAM7C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO,CAAC;AAkJnD,KAAA;AAzKG,IAAA,IACI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IACD,IAAI,IAAI,CAAC,KAAiB,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB;KACJ;AASD,IAAA,IAAI,YAAY,GAAA;QACZ,OAAO,IAAI,CAAC,aAAa,CAAC;KAC7B;AAID,IAAA,IACI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IACD,IAAI,KAAK,CAAC,CAAM,EAAA;AACZ,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACnB,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,IAAI,CAAC,cAAc,EAAE,CAAC;SACzB;KACJ;IAEO,cAAc,GAAA;QAClB,IAAI,SAAS,GAAG,IAAI,CAAC;AACrB,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;SAEpE;AAAM,aAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;AAC5F,YAAA,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;SACtD;aAAM;YACH,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;SACvE;AAED,QAAA,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;;;;;;;;;;;;IAiBD,WAAW,GAAA;;;KAGV;AAGD,IAAA,YAAY,CAAC,IAAY,EAAA;QACrB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IAEO,UAAU,GAAA;QACd,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE;AACnC,YAAA,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,YAAA,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;AACzD,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC/G;iBAAM;AACH,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC/H;SACJ;;SAED;AACI,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;SACjC;KACJ;AAED,IAAA,OAAO,CAAC,CAAa,EAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAmCpB;IACD,cAAc,GAAA;;KAEb;IAEO,OAAO,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE;AACjE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;SACpB;AACI,aAAA,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;AAC9D,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC;SAClC;aAAM;YACH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAClD;KACJ;AAED,IAAA,UAAU,CAAC,IAAS,EAAA;AAEhB,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE;AAC7B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,YAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEnC,IAAI,CAAC,OAAO,EAAE,CAAC;;AAGf,YAAA,IAAI,CAAC,CAAC;AACN,YAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;;gBAErF,CAAC,GAAG,IAAI,CAAC;aACZ;iBAAM;;AAEH,gBAAA,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAC7B;;AAGD,YAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACnB,gBAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAChB,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC5B;SACJ;KACJ;8GA7KQ,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAU,4QCTvB,w7CAyByB,EAAA,MAAA,EAAA,CAAA,sDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,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,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,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDhBZ,UAAU,EAAA,UAAA,EAAA,CAAA;kBANtB,SAAS;+BACI,2BAA2B,EAAA,QAAA,EAAA,w7CAAA,EAAA,MAAA,EAAA,CAAA,sDAAA,CAAA,EAAA,CAAA;8BAajC,IAAI,EAAA,CAAA;sBADP,KAAK;gBAaG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEI,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBAMG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAGH,KAAK,EAAA,CAAA;sBADR,KAAK;;;MEtBG,aAAa,CAAA;8GAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAb,aAAa,EAAA,YAAA,EAAA,CAPtB,UAAU,CAAA,EAAA,OAAA,EAAA,CAJV,YAAY;AACZ,YAAA,WAAW,aAMX,UAAU,CAAA,EAAA,CAAA,CAAA,EAAA;AAID,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAXtB,YAAY;YACZ,WAAW,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAUF,aAAa,EAAA,UAAA,EAAA,CAAA;kBAbzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;AACZ,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACZ,UAAU;AACX,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,UAAU;AACX,qBAAA;AACF,iBAAA,CAAA;;;ACbD;MAUa,kBAAkB,CAAA;AAP/B,IAAA,WAAA,GAAA;AAWa,QAAA,IAAA,CAAA,SAAS,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC;QAEtC,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;QAY/B,IAAY,CAAA,YAAA,GAAe,EAAE,CAAC;QAIrB,IAAW,CAAA,WAAA,GAAW,EAAE,CAAA;AAEvB,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAO,CAAC;QAC/C,IAAc,CAAA,cAAA,GAAe,EAAE,CAAC;AAK9B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAO,CAAC;AA8FnD,KAAA;AArHG,IAAA,IACI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IACD,IAAI,IAAI,CAAC,KAAiB,EAAA;AACtB,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB;KACJ;AASD,IAAA,IAAI,aAAa,GAAA;QACb,OAAO,IAAI,CAAC,cAAc,CAAC;KAC9B;AAID,IAAA,IACI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IACD,IAAI,KAAK,CAAC,CAAM,EAAA;AACZ,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACnB,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,IAAI,CAAC,eAAe,EAAE,CAAC;SAC1B;KACJ;IAEO,eAAe,GAAA;AACnB,QAAA,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC;AAC7C,QAAA,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,UAAU,GAAe,EAAE,CAAC;AAChC,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;SAEpE;AAAM,aAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;YAC5F,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;SAChE;aAAM;YACH,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;SACjF;AAED,QAAA,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,YAAA,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;AAC3C,YAAA,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC;SACpC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;AAID,IAAA,YAAY,CAAC,IAAY,EAAA;QACrB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IAEO,UAAU,GAAA;QACd,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,EAAE,EAAE;AACnC,YAAA,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC;AAC/B,YAAA,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;AACzD,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC/G;iBAAM;AACH,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aAC/H;SACJ;aACI;AACD,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC;SACjC;KACJ;AAED,IAAA,OAAO,CAAC,CAAa,EAAA;AACjB,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IACD,cAAc,GAAA;QACV,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;IAEO,OAAO,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;YACzD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC9C;aAAM;YACH,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC1E;KACJ;AAED,IAAA,UAAU,CAAC,IAAS,EAAA;AAChB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AAE/B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClC;aAAM;AACH,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;SACrE;AAED,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,EAAE,CAAC;AAEf,QAAA,IAAI,CAAoB,CAAC;AACzB,QAAA,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE;AACrF,YAAA,CAAC,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SACxD;aAAM;AACH,YAAA,CAAC,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC;SACrF;AAED,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAChB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KAC5B;8GAzHQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,ECd/B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6CAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,ilDAuBM,EDZQ,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,mQAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,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,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,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAG1B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAP9B,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,6CAA6C,EAAA,OAAA,EAE9C,CAAC,YAAY,EAAE,WAAW,CAAC,EAAA,QAAA,EAAA,ilDAAA,EAAA,CAAA;8BAWhC,IAAI,EAAA,CAAA;sBADP,KAAK;gBAaG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAEI,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;gBAMG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBAGH,KAAK,EAAA,CAAA;sBADR,KAAK;;;MExCG,OAAO,CAAA;IAwBhB,WAAoB,CAAA,EAAc,4GAAyG;QAAvH,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;QAvB1B,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;AAE/B;;AAEG;QACM,IAAM,CAAA,MAAA,GAAkB,IAAI,CAAC;AAEtC;;AAEG;AACO,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAiB,CAAC;AAEzD;;AAEG;AACO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAW,CAAC;AAElD;;AAEG;AACO,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAmEhC,IAAK,CAAA,KAAA,GAAkB,IAAI,CAAC;QAa5B,IAAI,CAAA,IAAA,GAAY,KAAK,CAAC;KA5E7B;;;;;;;;;;IAaD,eAAe,GAAA;;;QAIX,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC;QACjD,IAAI,CAAC,QAAQ,EAAE,CAAC;KACnB;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAE5B,IAAI,MAAM,GAAG,CAAC,CAAC;AACf,QAAA,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,EAAE;YAC3C,MAAM,GAAG,CAAC,CAAC;SACd;AAAM,aAAA,IAAI,IAAI,CAAC,GAAG,EAAE;YACjB,MAAM,GAAG,CAAC,CAAC;SACd;aAAM;YACH,MAAM,GAAG,CAAC,CAAC;SACd;AAED,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE;AACjD,cAAA,wBAAwB,IAAI,MAAM,KAAK,CAAC,GAAG,aAAa,GAAG,EAAE,CAAC,GAAG,IAAI;eACpE,MAAM,KAAK,CAAC,GAAG,kCAAkC,GAAG,EAAE,CAAC;eACvD,MAAM,KAAK,CAAC,GAAG,qCAAqC,GAAG,EAAE,CAAC;eAC1D,MAAM,KAAK,CAAC,GAAG,uCAAuC,GAAG,EAAE,CAAC;AAC7D,cAAA,SAAS,CAAC;KACnB;;;;IAKsB,OAAO,GAAA;QAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,EAAE;AAC3B,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAEjC;aAAM;AACH,YAAA,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;YACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACjC;AAED,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACxB;AAOD,IAAA,IAAI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IACD,IACI,IAAI,CAAC,KAAoB,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnB;KACJ;AAID,IAAA,IAAI,GAAG,GAAA;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;KACpB;IACD,IACI,GAAG,CAAC,KAAc,EAAA;AAClB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;AACrB,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;SACnB;KACJ;8GA/GQ,OAAO,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAP,OAAO,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,GAAA,EAAA,KAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAP,OAAO,EAAA,UAAA,EAAA,CAAA;kBAJnB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,YAAY;AACzB,iBAAA,CAAA;+EAOY,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAKI,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAKG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAKG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAgDgB,OAAO,EAAA,CAAA;sBAA7B,YAAY;uBAAC,OAAO,CAAA;gBAwBjB,IAAI,EAAA,CAAA;sBADP,KAAK;gBAcF,GAAG,EAAA,CAAA;sBADN,KAAK;;;MCnGG,kBAAkB,CAAA;AAoB3B,IAAA,IAAI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IACD,IACI,IAAI,CAAC,KAAoB,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;AACtB,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB;KACJ;AAID,IAAA,IAAI,GAAG,GAAA;QACH,OAAO,IAAI,CAAC,IAAI,CAAC;KACpB;IACD,IACI,GAAG,CAAC,KAAc,EAAA;AAClB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE;AACrB,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SACrB;KACJ;AAID;;AAEG;AACH,IAAA,WAAA,GAAA;QA9CA,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AAEzB;;AAEG;AACO,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAiB,CAAC;AAEzD;;AAEG;AACO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAW,CAAC;AAElD;;AAEG;AACO,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;QAGhC,IAAK,CAAA,KAAA,GAAkB,IAAI,CAAC;QAY5B,IAAI,CAAA,IAAA,GAAY,KAAK,CAAC;QAWrB,IAAU,CAAA,UAAA,GAAqB,IAAI,CAAC;QAMzC,IAAI,CAAC,WAAW,GAAG,oBAAoB,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC;KACtE;AAED,IAAA,cAAc,CAAC,IAAS,EAAA;AACpB,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO;AAE/B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE;AACxB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;YACrB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACxB;KACJ;IAED,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;KACxB;8GAlEQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,ECZ/B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,GAAA,EAAA,KAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,2sCAasB,EDHR,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,mQAAE,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAE9B,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,uBAAuB,EAAA,OAAA,EAExB,CAAC,YAAY,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,2sCAAA,EAAA,CAAA;wDAQ9B,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAKG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBAKG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBAQH,IAAI,EAAA,CAAA;sBADP,KAAK;gBAaF,GAAG,EAAA,CAAA;sBADN,KAAK;gBAOG,UAAU,EAAA,CAAA;sBAAlB,KAAK;;;AEpDV;MAKa,QAAQ,CAAA;AACjB,IAAA,WAAA,CAA6B,QAAkB,EAAA;QAAlB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;KAC9C;IAED,SAAS,CAAC,KAAgD,EAAE,MAAe,EAAA;AACvE,QAAA,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,KAAK;AAAE,YAAA,OAAO,IAAI,CAAC;AAE1F,QAAA,MAAM,QAAQ,GAAS,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,QAAA,IAAI,cAAsB,CAAC;AAC3B,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;AAC5B,YAAA,cAAc,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC;SACxC;aAAM;AACH,YAAA,cAAc,GAAG,CAAA,WAAA,EAAc,KAAK,CAAA,CAAE,CAAC;SAC1C;;QAGD,cAAc,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACnD,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE;AAC7C,YAAA,OAAO,IAAI,CAAC;SACf;AAED,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;AACtE,QAAA,OAAO,aAAa,CAAC;KACxB;AAGO,IAAA,WAAW,CAAC,CAAM,EAAA;AACtB,QAAA,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;KACnD;8GA5BQ,QAAQ,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAI,IAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAR,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAAR,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAHpB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,MAAM;AACf,iBAAA,CAAA;;;MCWY,UAAU,CAAA;8GAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,EAPf,YAAA,EAAA,CAAA,QAAQ,CAHR,EAAA,OAAA,EAAA,CAAA,YAAY,aAQN,QAAQ,CAAA,EAAA,CAAA,CAAA,EAAA;AAET,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,EALR,SAAA,EAAA;YACP,QAAQ;AACX,SAAA,EAAA,OAAA,EAAA,CAPG,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAUP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAZtB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;AACf,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACV,QAAQ;AACX,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACP,QAAQ;AACX,qBAAA;oBACD,OAAO,EAAE,CAAC,QAAQ,CAAC;AACtB,iBAAA,CAAA;;;MCVY,YAAY,CAAA;AAMrB,IAAA,IAAW,KAAK,GAAA;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;AAGD,IAAA,IAAW,IAAI,GAAA;QACX,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;;;;AAYD,IAAA,WAAA,GAAA;QAxBS,IAAO,CAAA,OAAA,GAAW,CAAC,CAAC;;QAIrB,IAAM,CAAA,MAAA,GAAY,CAAC,CAAC;QAKpB,IAAK,CAAA,KAAA,GAAY,CAAC,CAAC;QAK3B,IAAU,CAAA,UAAA,GAAgB,IAAI,CAAC;QACvB,IAAY,CAAA,YAAA,GAAwB,IAAI,CAAC;;AAGjD,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,OAAO,EAAU,CAAC;AAC7B,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,OAAO,EAAO,CAAC;KAKd;AAGjB,IAAA,SAAS,CAAC,KAAa,EAAE,OAAe,EAAE,OAAe,EAAA;AACrD,QAAA,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,OAAO,GAAG,OAAO,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;KACtF;IACD,WAAW,CAAC,OAAe,EAAE,OAAe,EAAA;AACxC,QAAA,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,OAAO,GAAG,EAAE,GAAG,CAAC,IAAI,OAAO,CAAC,CAAC;KACtD;AACD,IAAA,KAAK,CAAC,OAAe,EAAA;QACjB,IAAI,CAAC,KAAK,EAAE,CAAC;AAEb,QAAA,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;AACrB,QAAA,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;AACtB,QAAA,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,CAAC;;QAG7D,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI;;;QAG9B,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,EACvB,SAAS,CAAC,EAAE,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;;SAElC,CAAC;QAEF,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,MAAK;YACtC,IAAI,CAAC,YAAY,EAAE,CAAC;AACxB,SAAC,CAAC,CAAC;KACN;IACD,KAAK,GAAA;AACD,QAAA,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC;AACjC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;KAC1B;IAGD,YAAY,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;QAED,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;AAClC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC7B;AACD;;;;;;;;;;;;;;;;;;AAkBE;KACL;8GAxFQ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAZ,YAAY,EAAA,CAAA,CAAA,EAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;wDAEE,OAAO,EAAA,CAAA;sBAAf,KAAK;;;ACEJ,MAAO,UAAW,SAAQ,aAAa,CAAA;AAEzC,IAAA,WAAA,CAAoB,EAAc,EAAA;AAC9B,QAAA,KAAK,EAAE,CAAC;QADQ,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;KAEjC;IAEQ,OAAO,GAAA;AACZ,QAAA,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;AAC1B,QAAA,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;KAC1B;IAED,eAAe,GAAA;AACX,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;KAChE;8GAdQ,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBAJtB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,cAAc;AAC3B,iBAAA,CAAA;;;ACLD;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA,SAAS,iBAAiB,CAAC,KAAU,EAAA;AACjC;;;;AAIG;AACH,IAAA,OAAO,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;AACxI,CAAC;AAED;;AAEG;AACG,SAAU,aAAa,CAAC,OAAwB,EAAA;AAClD,IAAA,OAAO,IAAI,CAAC;AAChB,CAAC;MAGY,UAAU,CAAA;AAEnB;;;;;;;;;;;;;;;;;;;AAmBE;AACF,IAAA,OAAO,KAAK,CAAC,GAAW,EAAE,GAAW,EAAA;QACjC,OAAO,cAAc,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;KACrC;AAGD;;;;;;;;;;;;;;;;;;;AAmBF;IACE,OAAO,KAAK,CAAC,KAAa,EAAA;AACtB,QAAA,OAAO,cAAc,CAAC,KAAK,CAAC,CAAC;KAChC;AACJ,CAAA;AAGD;;;AAGG;AACG,SAAU,cAAc,CAAC,KAAoB,EAAA;IAC/C,OAAO,CAAC,OAAwB,KAA6B;AACzD,QAAA,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAClF,OAAO,IAAI,CAAC;SACf;QACD,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACxC,QAAA,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACnB,QAAA,IAAI,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACnB,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,GAAG,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,EAAE;AAC/C,YAAA,OAAO,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SAC3E;AAED,QAAA,OAAO,IAAI,CAAC;AAChB,KAAC,CAAC;AACN,CAAC;AAGK,SAAU,cAAc,CAAC,KAAa,EAAA;IACxC,OAAO,CAAC,OAAwB,KAA6B;AACzD,QAAA,IAAI,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAClC,OAAO,IAAI,CAAC;SACf;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtC,QAAA,IAAI,WAAgB,CAAC;QACrB,IAAI,CAAC,UAAU,EAAE;YACb,IAAI,EAAE,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAQ,CAAC;YAC/C,IAAI,EAAE,EAAE;AACJ,gBAAA,WAAW,GAAG,EAAE,CAAC,KAAK,CAAC;aAC1B;iBAAM;AACH,gBAAA,OAAO,IAAI,CAAC;aACf;SACJ;aAAM;AACH,YAAA,WAAW,GAAG,UAAU,CAAC,KAAK,CAAC;SAClC;AAED,QAAA,IAAI,WAAW,KAAK,OAAO,CAAC,KAAK,EAAE;AAC/B,YAAA,OAAO,EAAE,UAAU,EAAE,EAAE,eAAe,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;SACpF;AACD,QAAA,OAAO,IAAI,CAAC;AAChB,KAAC,CAAC;AACN;;AClIA,SAAS,OAAO,CAAC,KAAsB,EAAA;AACnC,IAAA,OAAO,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;AACjE,CAAC;AAOD,MACe,0BAA0B,CAAA;AADzC,IAAA,WAAA,GAAA;QAEY,IAAU,CAAA,UAAA,GAAgB,aAAa,CAAC;AAuEnD,KAAA;;AA/BG,IAAA,WAAW,CAAC,OAAsB,EAAA;AAC9B,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,OAAO,EAAE;AAC3B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC;YACxE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACpC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC;AAC9E,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,IAAI,CAAC,SAAS,EAAE,CAAC;aACpB;SACJ;KACJ;;AAGD,IAAA,QAAQ,CAAC,OAAwB,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;KACnC;;AAGD,IAAA,yBAAyB,CAAC,EAAc,EAAA;AACpC,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACvB;AAED;;;;;;AAMG;AACH,IAAA,OAAO,CAAC,KAAc,EAAA;AAClB,QAAA,OAAO,KAAK,IAAI,IAAI,mCAAmC;KAC1D;8GAvEU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA1B,0BAA0B,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADxC,SAAS;;AA8EG,MAAA,eAAe,GAAQ;AAChC,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,cAAc,CAAC;AAC7C,IAAA,KAAK,EAAE,IAAI;EACb;AAOI,MAAO,cAAe,SAAQ,0BAA0B,CAAA;AAL9D,IAAA,WAAA,GAAA;;;QASa,IAAS,CAAA,SAAA,GAAG,OAAO,CAAC;;QAEpB,IAAc,CAAA,cAAA,GAAG,CAAC,KAAsB,KAAa,OAAO,CAAC,KAAK,CAAC,CAAC;;QAEpE,IAAe,CAAA,eAAA,GAAG,CAAC,KAAe,KAAkB,cAAc,CAAC,KAAK,CAAC,CAAC;AACtF,KAAA;8GATY,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAd,cAAc,EAAA,QAAA,EAAA,sHAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,SAAA,EAHZ,CAAC,eAAe,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAGnB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sHAAsH;oBAChI,SAAS,EAAE,CAAC,eAAe,CAAC;AAC5B,oBAAA,IAAI,EAAE,EAAE,cAAc,EAAE,yBAAyB,EAAE;AACtD,iBAAA,CAAA;8BAEY,KAAK,EAAA,CAAA;sBAAb,KAAK;;AAmBV;;;AAGG;AACU,MAAA,eAAe,GAAQ;AAChC,IAAA,OAAO,EAAE,aAAa;AACtB,IAAA,WAAW,EAAE,UAAU,CAAC,MAAM,cAAc,CAAC;AAC7C,IAAA,KAAK,EAAE,IAAI;EACb;AAOI,MAAO,cAAe,SAAQ,0BAA0B,CAAA;AAL9D,IAAA,WAAA,GAAA;;;QASa,IAAS,CAAA,SAAA,GAAG,OAAO,CAAC;;AAEpB,QAAA,IAAA,CAAA,cAAc,GAAG,CAAC,KAAa,KAAa,KAAK,CAAC;;QAElD,IAAe,CAAA,eAAA,GAAG,CAAC,KAAa,KAAkB,cAAc,CAAC,KAAK,CAAC,CAAC;AACpF,KAAA;8GATY,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAd,cAAc,EAAA,QAAA,EAAA,+DAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,YAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,SAAA,EAHZ,CAAC,eAAe,CAAC,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAGnB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,+DAA+D;oBACzE,SAAS,EAAE,CAAC,eAAe,CAAC;AAC5B,oBAAA,IAAI,EAAE,EAAE,cAAc,EAAE,yBAAyB,EAAE;AACtD,iBAAA,CAAA;8BAEY,KAAK,EAAA,CAAA;sBAAb,KAAK;;;MC1HG,gBAAgB,CAAA;8GAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,iBARrB,cAAc;YACd,cAAc,CAAA,EAAA,OAAA,EAAA,CAJd,YAAY,CAAA,EAAA,OAAA,EAAA,CAOZ,cAAc;YACd,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;AAGT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,YAXrB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAWP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAb5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,YAAY;AACf,qBAAA;AACD,oBAAA,YAAY,EAAE;wBACV,cAAc;wBACd,cAAc;AACjB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,cAAc;wBACd,cAAc;AACjB,qBAAA;AACJ,iBAAA,CAAA;;;MCNY,SAAS,CAAA;AANtB,IAAA,WAAA,GAAA;QAQI,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;AACb,QAAA,IAAA,CAAA,UAAU,GAAyC;AAC/C,YAAA,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;SAC3B,CAAC;QAEM,IAAM,CAAA,MAAA,GAAW,CAAC,CAAC;QAenB,IAAK,CAAA,KAAA,GAAW,CAAC,CAAC;AAmC7B,KAAA;AAjDG,IAAA,IACI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;IACD,IAAI,KAAK,CAAC,CAAS,EAAA;QACf,IAAI,CAAC,GAAG,CAAC;YAAE,CAAC,GAAG,CAAC,CAAC;AAEjB,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;AACnB,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;YAChB,IAAI,CAAC,IAAI,EAAE,CAAC;SACf;KACJ;AAID,IAAA,IACI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IACD,IAAI,IAAI,CAAC,CAAS,EAAA;QACd,IAAI,CAAC,GAAG,CAAC;YAAE,CAAC,GAAG,CAAC,CAAC;AACZ,aAAA,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK;AAAE,YAAA,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;AAExC,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE;AAClB,YAAA,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;YAEf,IAAI,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7D,IAAI,KAAK,EAAE;AACP,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;aAClC;SACJ;KACJ;IAGO,IAAI,GAAA;AACR,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;AAE/C,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;AACjC,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;SAC3F;KACJ;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,IAAI,EAAE,CAAC;KACf;IACD,IAAI,GAAA;QACA,IAAI,CAAC,IAAI,EAAE,CAAC;KACf;8GAxDQ,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,ECVtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,6nBAOM,EDCQ,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,yJAAE,WAAW,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAE1B,SAAS,EAAA,UAAA,EAAA,CAAA;kBANrB,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,YAAY,EAAA,OAAA,EAEb,CAAC,YAAY,EAAE,WAAW,CAAC,EAAA,QAAA,EAAA,6nBAAA,EAAA,CAAA;8BAWhC,KAAK,EAAA,CAAA;sBADR,KAAK;gBAgBF,IAAI,EAAA,CAAA;sBADP,KAAK;;;AEvBJ,MAAO,UAAW,SAAQ,SAAS,CAAA;8GAA5B,UAAU,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVvB,gQAMM,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDEQ,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAEb,UAAU,EAAA,UAAA,EAAA,CAAA;kBANtB,SAAS;AACM,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,EACN,QAAA,EAAA,aAAa,EAEd,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,gQAAA,EAAA,CAAA;;;AE2B3B;;MC9Ba,YAAY,CAAA;IAChB,OAAO,OAAO,CAAC,MAAoB,EAAA;QACxC,OAAO;AACL,YAAA,QAAQ,EAAE,YAAY;AACtB,YAAA,SAAS,EAAE;gBACT,YAAY;AACZ,gBAAA;AACE,oBAAA,OAAO,EAAE,YAAY;oBACrB,QAAQ,EAAE,MAAM,CAAC,OAAO;AACzB,iBAAA;AACF,aAAA;SACF,CAAC;KACH;IAEM,OAAO,QAAQ,CAAC,MAAoB,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;KAC7B;8GAhBU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAZ,YAAY,EAAA,CAAA,CAAA,EAAA;+GAAZ,YAAY,EAAA,CAAA,CAAA,EAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,QAAQ;;;ACJT;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"zek.mjs","sources":["../../../projects/zek/src/lib/models/print.model.ts","../../../projects/zek/src/lib/utils/array-helper.ts","../../../projects/zek/src/lib/utils/base64-helper.ts","../../../projects/zek/src/lib/utils/bitwise-helper.ts","../../../projects/zek/src/lib/utils/bootstrap.helper.ts","../../../projects/zek/src/lib/utils/convert.ts","../../../projects/zek/src/lib/utils/css-helper.ts","../../../projects/zek/src/lib/utils/overlap-helper.ts","../../../projects/zek/src/lib/utils/time-helper.ts","../../../projects/zek/src/lib/utils/date-helper.ts","../../../projects/zek/src/lib/utils/error-helper.ts","../../../projects/zek/src/lib/utils/file.helper.ts","../../../projects/zek/src/lib/utils/object-helper.ts","../../../projects/zek/src/lib/utils/filter-helper.ts","../../../projects/zek/src/lib/utils/handler.ts","../../../projects/zek/src/lib/utils/html-helper.ts","../../../projects/zek/src/lib/utils/jwt-helper.ts","../../../projects/zek/src/lib/utils/math-helper.ts","../../../projects/zek/src/lib/utils/pager-helper.ts","../../../projects/zek/src/lib/utils/random-helper.ts","../../../projects/zek/src/lib/utils/storage-helper.ts","../../../projects/zek/src/lib/utils/string-helper.ts","../../../projects/zek/src/lib/utils/thenBy.ts","../../../projects/zek/src/lib/utils/tmp-helper.ts","../../../projects/zek/src/lib/utils/url-helper.ts","../../../projects/zek/src/lib/utils/validation-helper.ts","../../../projects/zek/src/lib/services/auth.service.ts","../../../projects/zek/src/lib/services/auth-guard.service.ts","../../../projects/zek/src/lib/services/base.service.ts","../../../projects/zek/src/lib/services/crud.service.ts","../../../projects/zek/src/lib/services/alert.service.ts","../../../projects/zek/src/lib/services/http-error-handler.service.ts","../../../projects/zek/src/lib/tokens.ts","../../../projects/zek/src/lib/services/web.api.ts","../../../projects/zek/src/lib/components/core.component.ts","../../../projects/zek/src/lib/components/base.component.ts","../../../projects/zek/src/lib/components/core-ui.component.ts","../../../projects/zek/src/lib/components/edit-base.component.ts","../../../projects/zek/src/lib/models/edit-base.model.ts","../../../projects/zek/src/lib/models/file.model.ts","../../../projects/zek/src/lib/models/filter.model.ts","../../../projects/zek/src/lib/models/gender.model.ts","../../../projects/zek/src/lib/models/key-pair.model.ts","../../../projects/zek/src/lib/models/list-base.model.ts","../../../projects/zek/src/lib/models/month.model.ts","../../../projects/zek/src/lib/models/pager.model.ts","../../../projects/zek/src/lib/models/tree.model.ts","../../../projects/zek/src/lib/models/valid-event-args.model.ts","../../../projects/zek/src/lib/models/index.ts","../../../projects/zek/src/lib/components/list-base.component.ts","../../../projects/zek/src/lib/modules/age/age.pipe.ts","../../../projects/zek/src/lib/modules/alert/alert/alert.ts","../../../projects/zek/src/lib/modules/alert/alert/alert.html","../../../projects/zek/src/lib/modules/alert/toast/toast.ts","../../../projects/zek/src/lib/modules/alert/toast/toast.html","../../../projects/zek/src/lib/modules/alert/validation/validation.ts","../../../projects/zek/src/lib/modules/alert/validation/validation.html","../../../projects/zek/src/lib/modules/autocomplete/autocomplete.directive.ts","../../../projects/zek/src/lib/modules/bb/bb.component.ts","../../../projects/zek/src/lib/modules/bb/bb.component.html","../../../projects/zek/src/lib/modules/bb/bb-modal-toolbar.ts","../../../projects/zek/src/lib/modules/bb/bb-modal-toolbar.html","../../../projects/zek/src/lib/modules/bb/bb.module.ts","../../../projects/zek/src/lib/modules/bb/bb-modal-base.component.ts","../../../projects/zek/src/lib/modules/card/card/card.ts","../../../projects/zek/src/lib/modules/card/card/card.html","../../../projects/zek/src/lib/modules/callback/callback.pipe.ts","../../../projects/zek/src/lib/modules/date-ago/date-ago.pipe.ts","../../../projects/zek/src/lib/modules/datepicker/date-value-accessor.ts","../../../projects/zek/src/lib/modules/datepicker/datepicker.module.ts","../../../projects/zek/src/lib/modules/edit-toolbar/edit-toolbar.ts","../../../projects/zek/src/lib/modules/edit-toolbar/edit-toolbar.html","../../../projects/zek/src/lib/modules/file/file-size.pipe.ts","../../../projects/zek/src/lib/modules/modal/modal/modal.component.ts","../../../projects/zek/src/lib/modules/modal/modal/modal.component.html","../../../projects/zek/src/lib/modules/modal/filter-modal/filter-modal.component.ts","../../../projects/zek/src/lib/modules/modal/filter-modal/filter-modal.component.html","../../../projects/zek/src/lib/modules/modal/sum-modal/sum-modal.component.ts","../../../projects/zek/src/lib/modules/modal/sum-modal/sum-modal.component.html","../../../projects/zek/src/lib/modules/modal/modal.module.ts","../../../projects/zek/src/lib/modules/safe/safe.pipe.ts","../../../projects/zek/src/lib/modules/file-viewer/file-viewer.ts","../../../projects/zek/src/lib/modules/file-viewer/file-viewer.html","../../../projects/zek/src/lib/modules/google-login-button/loader.ts","../../../projects/zek/src/lib/modules/google-login-button/google-login-button.ts","../../../projects/zek/src/lib/modules/google-login-button/module.ts","../../../projects/zek/src/lib/modules/grid-toolbar/grid-toolbar/grid-toolbar.ts","../../../projects/zek/src/lib/modules/grid-toolbar/grid-toolbar/grid-toolbar.html","../../../projects/zek/src/lib/modules/grid-toolbar/grid-toolbar-bar/grid-toolbar-bar.ts","../../../projects/zek/src/lib/modules/grid-toolbar/grid-toolbar-bar/grid-toolbar-bar.html","../../../projects/zek/src/lib/modules/list-toolbar/list-toolbar.ts","../../../projects/zek/src/lib/modules/list-toolbar/list-toolbar.html","../../../projects/zek/src/lib/modules/loading/loading-interceptor.ts","../../../projects/zek/src/lib/modules/loading/loading.ts","../../../projects/zek/src/lib/modules/loading/loading.module.ts","../../../projects/zek/src/lib/modules/loading/index.ts","../../../projects/zek/src/lib/modules/numeric/numeric.directive.ts","../../../projects/zek/src/lib/modules/page-title/page-title.component.ts","../../../projects/zek/src/lib/modules/page-title/page-title.component.html","../../../projects/zek/src/lib/modules/pager/pager/pager.ts","../../../projects/zek/src/lib/modules/pager/pager/pager.html","../../../projects/zek/src/lib/modules/validator/field-validator.ts","../../../projects/zek/src/lib/modules/validator/field-validator.html","../../../projects/zek/src/lib/modules/password/password.ts","../../../projects/zek/src/lib/modules/password/password.html","../../../projects/zek/src/lib/modules/progress/progress.ts","../../../projects/zek/src/lib/modules/progress/progress.html","../../../projects/zek/src/lib/modules/radio/radio.ts","../../../projects/zek/src/lib/modules/radio/radio.html","../../../projects/zek/src/lib/modules/readonly/readonly.directive.ts","../../../projects/zek/src/lib/modules/recaptcha/loader.ts","../../../projects/zek/src/lib/modules/recaptcha/recaptcha.service.ts","../../../projects/zek/src/lib/modules/recaptcha/recaptcha.module.ts","../../../projects/zek/src/lib/modules/select/select.ts","../../../projects/zek/src/lib/modules/select/select.html","../../../projects/zek/src/lib/modules/select/module.ts","../../../projects/zek/src/lib/modules/select2/select2.ts","../../../projects/zek/src/lib/modules/select2/select2.html","../../../projects/zek/src/lib/modules/select2/select2.module.ts","../../../projects/zek/src/lib/modules/select2-multiple/select2-multiple.ts","../../../projects/zek/src/lib/modules/select2-multiple/select2-multiple.html","../../../projects/zek/src/lib/modules/sort/sort.ts","../../../projects/zek/src/lib/modules/sort/sort-button-group/sort-button-group.ts","../../../projects/zek/src/lib/modules/sort/sort-button-group/sort-button-group.html","../../../projects/zek/src/lib/modules/time/time.pipe.ts","../../../projects/zek/src/lib/modules/time/time.module.ts","../../../projects/zek/src/lib/modules/time/timer-service.ts","../../../projects/zek/src/lib/modules/tooltip/tooltip.ts","../../../projects/zek/src/lib/modules/utc-to-local/utc-to-local.pipe.ts","../../../projects/zek/src/lib/modules/validators/validator.ts","../../../projects/zek/src/lib/modules/validators/directive.ts","../../../projects/zek/src/lib/modules/validators/module.ts","../../../projects/zek/src/lib/modules/wizard/wizard/wizard.ts","../../../projects/zek/src/lib/modules/wizard/wizard/wizard.html","../../../projects/zek/src/lib/modules/wizard/wizard2/wizard2.ts","../../../projects/zek/src/lib/modules/wizard/wizard2/wizard2.html","../../../projects/zek/src/lib/modules/index.ts","../../../projects/zek/src/lib/zek.module.ts","../../../projects/zek/src/public-api.ts","../../../projects/zek/src/zek.ts"],"sourcesContent":["export enum PrintType {\r\n Show = 1,\r\n Pdf = 2\r\n}","// import { KeyPair } from \"../models/key-pair.model\";\r\n// import { Tree } from \"../models/tree.model\";\r\n\r\nimport { KeyPair, KeyPairEx, Tree } from \"../models\";\r\n\r\n\r\nexport class ArrayHelper {\r\n static insert(value: any[], index: number, v: any) {\r\n value.splice(index, 0, v);\r\n };\r\n\r\n static contains(value: any[], v: any) {\r\n for (var i = 0; i < value.length; i++) {\r\n if (value[i] === v) return true;\r\n }\r\n return false;\r\n };\r\n\r\n\r\n static isArray(arg: any) {\r\n return Array.isArray(arg) && arg.length > 0;\r\n }\r\n // static distinct(value: any[]) {\r\n // var arr: any[] = [];\r\n // for (var i = 0; i < value.length; i++) {\r\n // let val = value[i];\r\n // if (!this.contains(arr, val)) {\r\n // arr.push(val);\r\n // }\r\n // }\r\n // return arr;\r\n // }\r\n\r\n static distinct(source: any[]) {\r\n let length = source.length, result = [], seen = new Set();\r\n\r\n for (let index = 0; index < length; index++) {\r\n let value = source[index];\r\n if (seen.has(value)) continue;\r\n\r\n seen.add(value);\r\n result.push(value);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n static filterByKey(filterValue: any, key: string, array: any[]) {\r\n if (typeof filterValue === 'undefined' || filterValue == null || (typeof key === 'string' && key.length === 0))\r\n return array;\r\n\r\n return array.filter(x => x !== undefined && x !== null && x[key] === filterValue);\r\n }\r\n\r\n static flattenArray(value: any[]): any[] {\r\n let result: any[] = [];\r\n if (value) {\r\n value.forEach(tree => {\r\n tree.indent = 0;\r\n result.push(tree);\r\n result = result.concat(this.getChildren(tree));\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n private static getChildren(tree: Tree, indent: number = 1): any[] {\r\n let result: any[] = [];\r\n if (tree.children) {\r\n tree.childrenCount = tree.children.length;\r\n tree.children.forEach(child => {\r\n child.indent = indent;\r\n result.push(child);\r\n result = result.concat(this.getChildren(child, indent + 1));\r\n });\r\n } else {\r\n tree.childrenCount = 0;\r\n }\r\n\r\n delete tree.children;\r\n delete tree.childrenIds;\r\n //delete tree.childrenCount;\r\n //delete tree.indent;\r\n return result;\r\n }\r\n\r\n\r\n\r\n static treeToKeyPairArray(value: Tree[]) {\r\n let result: KeyPair[] = [];\r\n if (value) {\r\n value.forEach(tree => {\r\n result.push({ key: tree.key, value: tree.value });\r\n result = result.concat(this.getIndentChildren(tree));\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n\r\n\r\n private static getIndentChildren(tree: Tree, indent: number = 1): KeyPair[] {\r\n let result: KeyPair[] = [];\r\n if (tree.children) {\r\n tree.children.forEach(child => {\r\n //result.push({ key: child.key, value: '└' + '─'.repeat(indent) + child.value });\r\n result.push({ key: child.key, value: '&emsp;'.repeat(indent) + child.value });\r\n result = result.concat(this.getChildren(child, indent + 1));\r\n });\r\n }\r\n return result;\r\n }\r\n\r\n\r\n\r\n private static enumToKeyPairBaseArray<T extends KeyPair<number, string>>(value: any): T[] {\r\n const keys = Object.keys(value);\r\n const slice = keys.length / 2;\r\n let result: T[] = [];\r\n // for (let i = 0; i < slice; i++) {\r\n // result.push({ key: +keys[i], value: keys[i + slice] } as T);\r\n // }\r\n for (let i = slice; i < keys.length; i++) {\r\n let name = keys[i];\r\n result.push({ key: + value[name], value: name } as T);\r\n }\r\n return result;\r\n //return Array.from(keys.slice(keys.length / 2), x => { key:x, value:'aaa' } as Object);\r\n }\r\n static enumToKeyPairArray(value: any): KeyPair<number, string>[] {\r\n return this.enumToKeyPairBaseArray<KeyPair<number, string>>(value);\r\n }\r\n static enumToKeyPairExArray(value: any): KeyPairEx<number, string>[] {\r\n return this.enumToKeyPairBaseArray<KeyPairEx<number, string>>(value);\r\n }\r\n}","export class Base64Helper {\r\n public static utf8ToBase64String(str: string) {\r\n return btoa(unescape(encodeURIComponent(str)));\r\n }\r\n\r\n public static base64StringToUtf8(str: string) {\r\n return decodeURIComponent(escape(atob(str)));\r\n }\r\n\r\n public static base64StringToBlob(str: string, type?: string) {\r\n const byteString = atob(str);\r\n const int8Array = new Uint8Array(byteString.length);\r\n for (let i = 0; i < byteString.length; i++) {\r\n int8Array[i] = byteString.charCodeAt(i);\r\n }\r\n const blob = new Blob([int8Array], { type: type });\r\n return blob;\r\n }\r\n}\r\n","export class BitwiseHelper {\r\n static hasFlag(flags: number, flagToCheck: any): boolean {\r\n return (flags & flagToCheck) === flagToCheck;\r\n }\r\n\r\n static addFlags(flags: number, ...flagsToAdd: any[]): number {\r\n if (!flagsToAdd) return flags;\r\n\r\n flagsToAdd.forEach(flag => {\r\n flags |= flag;\r\n });\r\n\r\n return flags;\r\n }\r\n}","import { AlertType } from '../models/alert-type';\r\nimport { StringHelper } from './string-helper';\r\n\r\nexport enum ComponentType {\r\n Primary = 1,\r\n // Secondary,\r\n Success,\r\n Delete,\r\n //Danger,\r\n Warning,\r\n Info,\r\n // Light,\r\n // Dark,\r\n}\r\n\r\nexport enum Color {\r\n Primary = 1,\r\n Secondary = 2,\r\n Success = 3,\r\n Danger = 4,\r\n Warning = 5,\r\n Info = 6,\r\n Dark = 8,\r\n}\r\n\r\nexport class BootstrapHelper {\r\n static cssColor(color?: Color | null) {\r\n switch (color) {\r\n case Color.Primary:\r\n return 'bg-primary text-white'\r\n case Color.Secondary:\r\n return 'bg-secondary text-white';\r\n case Color.Success:\r\n return 'bg-success text-white';\r\n case Color.Danger:\r\n return 'bg-danger text-white';\r\n case Color.Warning:\r\n return 'bg-warning text-dark';\r\n case Color.Info:\r\n return 'bg-info text-dark';\r\n case Color.Dark:\r\n return 'bg-dark text-white';\r\n default:\r\n return '';\r\n }\r\n }\r\n static cssIcon(type: ComponentType): string | null {\r\n if (!type) {\r\n return null;\r\n }\r\n\r\n switch (type) {\r\n case ComponentType.Delete:\r\n return 'fa-solid fa-trash';\r\n\r\n // case ComponentType.Danger:\r\n case ComponentType.Warning:\r\n return 'fa-solid fa-triangle-exclamation';\r\n\r\n case ComponentType.Info:\r\n return 'fa-solid fa-circle-info';\r\n\r\n default:\r\n return 'fa-solid fa-check';\r\n }\r\n }\r\n\r\n static cssButton(type: ComponentType): string {\r\n switch (type) {\r\n case ComponentType.Primary:\r\n // case ComponentType.Secondary:\r\n case ComponentType.Success:\r\n // case ComponentType.Danger:\r\n case ComponentType.Warning:\r\n case ComponentType.Info:\r\n // case ComponentType.Light:\r\n // case ComponentType.Dark:\r\n return `btn-${ComponentType[type].toLowerCase()}`;\r\n\r\n case ComponentType.Delete:\r\n return 'btn-danger';\r\n default:\r\n return 'btn-secondary';\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n // static getAlertType(type?: string | null): AlertType | null {\r\n // if (!type) return null;\r\n\r\n // let v = StringHelper.firstUpper(type);\r\n // if (!v)\r\n // return null;\r\n\r\n // var enumValue = (<any>AlertType)[v];\r\n // if (!enumValue)\r\n // return null;\r\n\r\n\r\n // return enumValue;\r\n // }\r\n static cssAlert(type?: AlertType | null): string {\r\n switch (type) {\r\n case 'primary':\r\n return 'alert-primary';\r\n case 'secondary':\r\n return 'alert-secondary';\r\n case 'success':\r\n return 'alert-success';\r\n case 'danger':\r\n return 'alert-danger';\r\n case 'warning':\r\n return 'alert-warning';\r\n case 'info':\r\n return 'alert-info';\r\n case 'light':\r\n return 'alert-light';\r\n case 'dark':\r\n return 'alert-dark';\r\n default:\r\n return 'alert-secondary';\r\n }\r\n }\r\n static cssAlertIcon(type?: AlertType | null): string {\r\n switch (type) {\r\n case 'success':\r\n return 'fa-solid fa-circle-check';\r\n case 'danger':\r\n return 'fa-solid fa-circle-xmark';\r\n case 'warning':\r\n return 'fa-solid fa-circle-exclamation';\r\n case 'info':\r\n return 'fa-solid fa-circle-info';\r\n default:\r\n return '';\r\n }\r\n }\r\n}","export class Convert {\r\n static toBoolean(value: any) {\r\n if (typeof value !== 'undefined' && value !== null && value !== '') {\r\n switch (`${value}`.toUpperCase()) {\r\n case \"TRUE\":\r\n case \"YES\":\r\n case \"1\":\r\n case \"ON\":\r\n return true;\r\n\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n static toBooleanProperty(value: any): boolean {\r\n return value != null && `${value}` !== 'false';\r\n }\r\n\r\n static parseNumber(value: any) {\r\n if (typeof value === 'undefined' || value == null || (typeof value === 'string' && value.length === 0)) return null;\r\n let n = Number(value);\r\n return !isNaN(n) ? n : null;\r\n }\r\n static toNumber(value: any, defaultValue = 0) {\r\n return this.isNumber(value) ? Number(value) : defaultValue;\r\n }\r\n\r\n static isNumber(value: any): boolean {\r\n // parseFloat(value) handles most of the cases we're interested in (it treats null, empty string,\r\n // and other non-number values as NaN, where Number just uses 0) but it considers the string\r\n // '123hello' to be a valid number. Therefore we also check if Number(value) is NaN.\r\n return !isNaN(parseFloat(value as any)) && !isNaN(Number(value));\r\n }\r\n\r\n // static toNumber(value: any){\r\n // if (typeof value !== 'undefined' && value !== null && value !== '') {\r\n // return +value;\r\n // }\r\n\r\n // return 0;\r\n // }\r\n}","import { ArrayHelper } from './array-helper';\r\n\r\nexport class CssHelper {\r\n static addClass<T extends string | string[] | null | undefined>(clazz: T, addClasses?: string | string[] | null): T {\r\n if (!clazz || clazz === '' || clazz.length == 0) {\r\n return addClasses as T;\r\n }\r\n\r\n if (!addClasses || addClasses === '') {\r\n return clazz;\r\n }\r\n\r\n\r\n let arr = ArrayHelper.distinct(this.parseClassNames(clazz).concat(this.parseClassNames(addClasses)));\r\n\r\n return Array.isArray(clazz) ? arr as T : arr.join(' ') as T;\r\n }\r\n\r\n\r\n static removeClass<T extends string | string[] | null | undefined>(clazz: T, removeClasses?: string | string[] | null): T {\r\n if (!clazz || clazz === '') {\r\n return clazz;\r\n }\r\n\r\n if (!removeClasses || removeClasses === '' || removeClasses.length === 0) {\r\n return clazz;\r\n }\r\n\r\n let arrClasses = this.parseClassNames(clazz);\r\n let arrRemove = this.parseClassNames(removeClasses);\r\n\r\n var arr: any[] = [];\r\n for (var i = 0; i < arrClasses.length; i++) {\r\n let val = arrClasses[i];\r\n if (!ArrayHelper.contains(arrRemove, val)) {\r\n arr.push(val);\r\n }\r\n }\r\n return Array.isArray(clazz) ? arr as T : arr.join(' ') as T;\r\n }\r\n\r\n\r\n static parseClassNames(raw?: string | string[] | null) {\r\n if (Array.isArray(raw)) {\r\n return raw\r\n }\r\n\r\n if (typeof raw === 'string') {\r\n return raw.split(/\\s+/)\r\n }\r\n\r\n return []\r\n }\r\n}","export enum PeriodRelation {\r\n After,\r\n StartTouching,\r\n StartInside,\r\n InsideStartTouching,\r\n EnclosingStartTouching,\r\n Enclosing,\r\n EnclosingEndTouching,\r\n ExactMatch,\r\n Inside,\r\n InsideEndTouching,\r\n EndInside,\r\n EndTouching,\r\n Before,\r\n}\r\n\r\nexport class OverlapHelper {\r\n\r\n\r\n static getRelation(start1: Date, end1: Date, start2: Date, end2: Date): PeriodRelation {\r\n if (end2 < start1) {\r\n return PeriodRelation.After;\r\n }\r\n if (start2 > end1) {\r\n return PeriodRelation.Before;\r\n }\r\n if (start2 == start1 && end2 == end1) {\r\n return PeriodRelation.ExactMatch;\r\n }\r\n if (end2 == start1) {\r\n return PeriodRelation.StartTouching;\r\n }\r\n if (start2 == end1) {\r\n return PeriodRelation.EndTouching;\r\n }\r\n if (this.hasInside2(start1, end1, start2, end2)) {\r\n if (start2 == start1) {\r\n return PeriodRelation.EnclosingStartTouching;\r\n }\r\n return end2 == end1 ? PeriodRelation.EnclosingEndTouching : PeriodRelation.Enclosing;\r\n }\r\n let periodContainsMyStart = this.hasInside(start2, end2, start1);\r\n let periodContainsMyEnd = this.hasInside(start2, end2, end1);\r\n if (periodContainsMyStart && periodContainsMyEnd) {\r\n if (start2 == start1) {\r\n return PeriodRelation.InsideStartTouching;\r\n }\r\n return end2 == end1 ? PeriodRelation.InsideEndTouching : PeriodRelation.Inside;\r\n }\r\n if (periodContainsMyStart) {\r\n return PeriodRelation.StartInside;\r\n }\r\n if (periodContainsMyEnd) {\r\n return PeriodRelation.EndInside;\r\n }\r\n\r\n throw new Error(\"invalid period relation of '\" + start1 + \"-\" + end1 + \"' and '\" + start2 + \"-\" + end2 + \"'\");\r\n }\r\n\r\n static hasInside(start: Date, end: Date, date: Date): boolean {\r\n return date >= start && date <= end;\r\n }\r\n\r\n static hasInside2(start1: Date, end1: Date, start2: Date, end2: Date): boolean {\r\n return this.hasInside(start1, end1, start2) && this.hasInside(start1, end1, end2);\r\n }\r\n\r\n static intersects(start1: Date, end1: Date, start2: Date, end2: Date): boolean {\r\n return this.hasInside(start1, end1, start2) || this.hasInside(start1, end1, end2) || (start2 < start1 && end2 > end1);\r\n }\r\n\r\n static overlaps(start1: Date, end1: Date, start2: Date, end2: Date): boolean {\r\n var relation = this.getRelation(start1, end1, start2, end2);\r\n return relation != PeriodRelation.After &&\r\n relation != PeriodRelation.StartTouching &&\r\n relation != PeriodRelation.EndTouching &&\r\n relation != PeriodRelation.Before;\r\n }\r\n\r\n\r\n}","import { OverlapHelper } from \"./overlap-helper\";\r\n\r\nexport class TimeHelper {\r\n static parseTime(value: any): string | null {\r\n if (typeof value === 'undefined' || value == null || value === '') return null;\r\n return this.toTime(value);\r\n }\r\n static toTime(value: string): string {\r\n if (typeof value === 'string') {\r\n value = value.trim();\r\n\r\n if (/^(\\d{1,2}:\\d{1,2})$/.test(value)) {\r\n const [h, m] = value.split(':').map((val: string) => +val);\r\n return `${h < 10 ? '0' : ''}${h}:${m < 10 ? '0' : ''}${m}:00`;\r\n } else if (/^(\\d{1,2}:\\d{1,2}:\\d{1,2})$/.test(value)) {\r\n const [h, m, s] = value.split(':').map((val: string) => +val);\r\n return `${h < 10 ? '0' : ''}${h}:${m < 10 ? '0' : ''}${m}:${s < 10 ? '0' : ''}${s}`;\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n\r\n static toDate(time: string | undefined | null): Date {\r\n let date = new Date(0);\r\n\r\n let tmp = this.parseTime(time);\r\n if (!tmp) return date;\r\n\r\n let timeDate = new Date('1970-01-01T' + time + 'Z');\r\n date.setTime(date.getTime() + timeDate.getTime());\r\n return date;\r\n };\r\n\r\n\r\n static intersects(start1: string, end1: string, start2: string, end2: string): boolean {\r\n let startDate1 = this.toDate(start1);\r\n let endDate1 = this.toDate(end1);\r\n let startDate2 = this.toDate(start2);\r\n let endDate2 = this.toDate(end2);\r\n\r\n return OverlapHelper.intersects(startDate1, endDate1, startDate2, endDate2);\r\n }\r\n\r\n static overlaps(start1: string, end1: string, start2: string, end2: string): boolean {\r\n let startDate1 = this.toDate(start1);\r\n let endDate1 = this.toDate(end1);\r\n let startDate2 = this.toDate(start2);\r\n let endDate2 = this.toDate(end2);\r\n\r\n return OverlapHelper.overlaps(startDate1, endDate1, startDate2, endDate2);\r\n }\r\n}","import { TimeHelper } from \"./time-helper\";\r\n\r\nexport class DateHelper {\r\n\r\n static minDate() {\r\n return new Date(0);\r\n };\r\n\r\n static equals(value1?: Date | null, value2?: Date | null) {\r\n let val1 = (value1 === undefined || value1 === null) ? null : value1;\r\n let val2 = (value2 === undefined || value2 === null) ? null : value2;\r\n\r\n\r\n if (val1 === val2) {\r\n return true;\r\n }\r\n\r\n if (!val1 || !val2) {\r\n return false;\r\n }\r\n\r\n return val1.getTime() === val2.getTime();\r\n }\r\n\r\n static getDates(start: Date, end: Date) {\r\n var dates = new Array<Date>();\r\n var date = new Date(start.valueOf());\r\n while (date <= end) {\r\n dates.push(new Date(date));\r\n date = this.addDays(date, 1);\r\n }\r\n return dates;\r\n }\r\n\r\n static dateOnly(value: Date) {\r\n let year = value.getFullYear();\r\n let month = value.getMonth();\r\n let day = value.getDate();\r\n let date = new Date(Date.UTC(year, month, day));\r\n\r\n return date;\r\n }\r\n\r\n static toISODateString(value: Date | string) {\r\n let date = this.parseDate(value);\r\n\r\n if (!date)\r\n return null;\r\n\r\n let year = date.getFullYear();\r\n // Add +1 to month since 0 is January\r\n let month = date.getMonth() + 1;\r\n let day = date.getDate();\r\n\r\n let str = `${year}-${month < 10 ? '0' : ''}${month}-${day < 10 ? '0' : ''}${day}`;\r\n //str = year.toString() + \"-\" + (month + 1).toString().padStart(2, \"0\") + \"-\" + day.toString().padStart(2, \"0\");\r\n return str;\r\n }\r\n\r\n //** Offes seconds ( offsetmin * 60sec * 1000ms) */\r\n private static readonly _utcDiff = -new Date().getTimezoneOffset() * 60000;\r\n static utcToLocal(utc: Date) {\r\n return new Date(utc.getTime() + this._utcDiff);\r\n }\r\n\r\n static addTime(value: Date, time: string | undefined | null) {\r\n let tmp = TimeHelper.parseTime(time);\r\n if (!tmp) return value;\r\n\r\n let timeDate = new Date('1970-01-01T' + time + 'Z');\r\n let date = value;\r\n date.setTime(date.getTime() + timeDate.getTime());\r\n return date;\r\n };\r\n static addYears(v: Date, years: number): Date {\r\n if (!years) return v;\r\n\r\n let date = v;\r\n date.setFullYear(v.getFullYear() + years);\r\n return date;\r\n }\r\n static addMonths(v: Date, months: number) {\r\n if (!months) return v;\r\n\r\n let date = v;\r\n date.setMonth(date.getMonth() + months);\r\n return date;\r\n };\r\n static addDays(v: Date, days: number) {\r\n if (!days) return v;\r\n\r\n let date = v;\r\n date.setDate(date.getDate() + days);\r\n return date;\r\n };\r\n static addHours(v: Date, hours: number) {\r\n if (!hours) return v;\r\n\r\n let date = new Date(v);\r\n //todo need to check if this line needs --> date = new Date(date.getTime());\r\n date.setHours(date.getHours() + hours);\r\n return date;\r\n }\r\n static addMinutes(v: Date, minutes: number) {\r\n if (!minutes) return v;\r\n\r\n let date = new Date(v);\r\n //todo need to check if this line needs --> date = new Date(date.getTime());\r\n date.setMinutes(date.getMinutes() + minutes);\r\n return date;\r\n }\r\n static addSeconds(v: Date, seconds: number) {\r\n if (!seconds) return v;\r\n\r\n let date = v;\r\n date.setSeconds(date.getSeconds() + seconds);\r\n\r\n return date;\r\n };\r\n static isToday(date: Date) {\r\n let today = new Date();\r\n return this.isSameDate(date, today);\r\n };\r\n static clone(date: Date) {\r\n return new Date(+date);\r\n };\r\n static isAnotherMonth(a: Date, b: Date) {\r\n return b && a.getMonth() !== b.getMonth();\r\n };\r\n static isWeekend(v: Date,): boolean {\r\n return v.getDay() === 0 || v.getDay() === 6;\r\n };\r\n static isSameDate(a: Date, b: Date) {\r\n return b && a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\r\n };\r\n\r\n\r\n static getAge(value?: Date | string | null, now?: Date | null) {\r\n if (value === undefined || value === null || value === '' || value !== value) return null;\r\n\r\n const date = this.toDate(value);\r\n\r\n let nowTime = now ? now.getTime() : Date.now();\r\n let timeDiff = nowTime - date.getTime();\r\n\r\n return Math.floor((timeDiff / 86400000) / 365.25);//86400000 = (1000 * 60 * 60 * 24) = 1000 millisecond * 60second * 60minute * 24hour\r\n };\r\n static subtractMonths(endDate: Date, starDate: Date) {\r\n let start = starDate <= endDate ? starDate : endDate;\r\n let end = starDate <= endDate ? endDate : starDate;\r\n let plus = starDate <= endDate ? 1 : -1;\r\n\r\n let months = (end.getFullYear() - start.getFullYear()) * 12;\r\n months -= start.getMonth();\r\n months += end.getMonth();\r\n return months * plus;\r\n };\r\n\r\n static subtractDays(value: Date, date: Date) {\r\n if (!date)\r\n return null;\r\n\r\n date = this.toDate(date);\r\n let timeDiff = date.getTime() - value.getTime();\r\n return Math.floor(timeDiff / 86400000);//86400000 = (1000 * 60 * 60 * 24) = 1000 millisecond * 60second * 60minute * 24hour\r\n };\r\n static subtractHours(value: Date, date?: Date | null) {\r\n if (!date)\r\n return null;\r\n\r\n date = this.toDate(date);\r\n let timeDiff = date.getTime() - value.getTime();\r\n return Math.floor((timeDiff % 86400000) / 3600000);\r\n };\r\n static subtractMinutes(value: Date, date?: Date | null) {\r\n if (!date)\r\n return null;\r\n\r\n date = this.toDate(date);\r\n let timeDiff = date.getTime() - value.getTime();\r\n //\r\n return Math.floor(((timeDiff % 86400000) % 3600000) / 60000);\r\n };\r\n\r\n\r\n\r\n\r\n static ISO8601_DATE_REGEX =\r\n /^(\\d{4})-?(\\d\\d)-?(\\d\\d)(?:T(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:\\.(\\d+))?)?)?(Z|([+-])(\\d\\d):?(\\d\\d))?)?$/;\r\n // 1 2 3 4 5 6 7 8 9 10 11\r\n\r\n\r\n static parseDate(value: any): Date | null {\r\n if (typeof value === 'undefined' || value == null || value === '') return null;\r\n return this.toDate(value);\r\n }\r\n\r\n // export function toDate(value: string|number|Date): Date this function is imported from date pipe \r\n // packages/common/src/i18n/format_date.ts\r\n\r\n /***\r\n * Converts a value to date.\r\n *\r\n * Supported input formats:\r\n * - `Date`\r\n * - number: timestamp\r\n * - string: numeric (e.g. \"1234\"), ISO and date strings in a format supported by\r\n * [Date.parse()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse).\r\n * Note: ISO strings without time return a date without timeoffset.\r\n *\r\n * Throws if unable to convert to a date.\r\n */\r\n static toDate(value: string | number | Date): Date {\r\n if (this.isDate(value)) {\r\n return value;\r\n }\r\n\r\n if (typeof value === 'number' && !isNaN(value)) {\r\n return new Date(value);\r\n }\r\n\r\n if (typeof value === 'string') {\r\n value = value.trim();\r\n\r\n const parsedNb = parseFloat(value);\r\n\r\n // any string that only contains numbers, like \"1234\" but not like \"1234hello\"\r\n if (!isNaN(value as any - parsedNb)) {\r\n return new Date(parsedNb);\r\n }\r\n\r\n if (/^(\\d{4}-\\d{1,2}-\\d{1,2})$/.test(value)) {\r\n /* For ISO Strings without time the day, month and year must be extracted from the ISO String\r\n before Date creation to avoid time offset and errors in the new Date.\r\n If we only replace '-' with ',' in the ISO String (\"2015,01,01\"), and try to create a new\r\n date, some browsers (e.g. IE 9) will throw an invalid Date error.\r\n If we leave the '-' (\"2015-01-01\") and try to create a new Date(\"2015-01-01\") the timeoffset\r\n is applied.\r\n Note: ISO months are 0 for January, 1 for February, ... */\r\n const [y, m, d] = value.split('-').map((val: string) => +val);\r\n return new Date(y, m - 1, d);\r\n }\r\n\r\n let match: RegExpMatchArray | null;\r\n if (match = value.match(this.ISO8601_DATE_REGEX)) {\r\n return this.isoStringToDate(match);\r\n }\r\n }\r\n\r\n const date = new Date(value as any);\r\n if (!this.isDate(date)) {\r\n throw new Error(`Unable to convert \"${value}\" into a date`);\r\n }\r\n return date;\r\n }\r\n\r\n /**\r\n * Converts a date in ISO8601 to a Date.\r\n * Used instead of `Date.parse` because of browser discrepancies.\r\n */\r\n static isoStringToDate(match: RegExpMatchArray): Date {\r\n const date = new Date(0);\r\n let tzHour = 0;\r\n let tzMin = 0;\r\n\r\n // match[8] means that the string contains \"Z\" (UTC) or a timezone like \"+01:00\" or \"+0100\"\r\n const dateSetter = match[8] ? date.setUTCFullYear : date.setFullYear;\r\n const timeSetter = match[8] ? date.setUTCHours : date.setHours;\r\n\r\n // if there is a timezone defined like \"+01:00\" or \"+0100\"\r\n if (match[9]) {\r\n tzHour = Number(match[9] + match[10]);\r\n tzMin = Number(match[9] + match[11]);\r\n }\r\n dateSetter.call(date, Number(match[1]), Number(match[2]) - 1, Number(match[3]));\r\n const h = Number(match[4] || 0) - tzHour;\r\n const m = Number(match[5] || 0) - tzMin;\r\n const s = Number(match[6] || 0);\r\n const ms = Math.round(parseFloat('0.' + (match[7] || 0)) * 1000);\r\n timeSetter.call(date, h, m, s, ms);\r\n return date;\r\n }\r\n\r\n static isDate(value: any): value is Date {\r\n return value instanceof Date && !isNaN(value.valueOf());\r\n }\r\n}","import { KeyPair } from \"../models\";\r\n\r\nexport class ErrorHelper {\r\n static responseToKeyPairArray(response: any) {\r\n let error: any;\r\n if (typeof response.error === 'string' && response.error[0] === '{') {\r\n error = JSON.parse(response.error);\r\n } else {\r\n error = response.error;\r\n }\r\n\r\n return this.toKeyPairArray(error);\r\n }\r\n\r\n static toKeyPairArray(error: any) {\r\n if (typeof error === 'object') {\r\n const errors = error.traceId || error.success === false\r\n ? error.errors\r\n : error;\r\n\r\n const result: KeyPair<string | null | undefined, string | null | undefined>[] = [];\r\n const properties = Object.keys(errors);\r\n\r\n for (let property of properties) {\r\n const messages = errors[property];\r\n if (messages instanceof Array) {\r\n for (let message of messages) {\r\n result.push({ key: property, value: message });\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n return null;\r\n }\r\n}","export class FileHelper {\r\n static getExtension(path?: string | null) {\r\n if (path === undefined || path == null)\r\n return path;\r\n\r\n if (typeof path !== 'string') {\r\n throw new Error(\"path parameter is not string\");\r\n }\r\n\r\n const directorySeparatorChar = '\\\\';\r\n const altDirectorySeparatorChar = '/';\r\n const volumeSeparatorChar = ':';\r\n\r\n let length = path.length;\r\n for (let i = length; --i >= 0;) {\r\n let ch = path[i];\r\n if (ch === '.') {\r\n if (i !== length - 1)\r\n return path.substring(i, length);\r\n else\r\n return '';\r\n }\r\n if (ch == directorySeparatorChar || ch == altDirectorySeparatorChar || ch == volumeSeparatorChar)\r\n break;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n\r\n static download(blob: Blob | null, fileName: string) {\r\n if (!blob) return;\r\n\r\n const nav = (window.navigator as any);\r\n if (nav && nav.msSaveOrOpenBlob) {\r\n nav.msSaveOrOpenBlob(blob, fileName);\r\n } else {\r\n let a = document.createElement('a');\r\n a.href = URL.createObjectURL(blob);\r\n a.download = fileName;\r\n a.target = '_blank';\r\n document.body.appendChild(a);\r\n a.click();\r\n document.body.removeChild(a);\r\n }\r\n }\r\n}","\r\nexport class ObjectHelper {\r\n static isDefined(value: any) {\r\n return typeof value !== 'undefined' && value !== null;\r\n }\r\n\r\n static isObject(value: any) {\r\n return this.isDefined(value) && typeof value === 'object';\r\n }\r\n\r\n\r\n /**\r\n * Check if the object is a string or array before evaluating the length attribute.\r\n * This avoids falsely rejecting objects that contain a custom length attribute.\r\n * For example, the object {id: 1, length: 0, width: 0} should not be returned as empty.\r\n */\r\n static isEmptyValue(value: any): boolean {\r\n return !this.isDefined(value) || ((typeof value === 'string' || Array.isArray(value)) && value.length === 0);\r\n }\r\n\r\n\r\n static isEmpty(obj: any) {\r\n if (!this.isDefined(obj))\r\n return true;\r\n // if (typeof obj === 'undefined' || obj === null)\r\n // return true;\r\n for (let prop in obj) {\r\n let v = obj[prop];\r\n if (!this.isEmptyValue(v))\r\n return false;\r\n // if (typeof (obj[prop]) !== undefined && obj[prop] !== null && obj[prop] !== '') {\r\n // return false;\r\n // }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n\r\n /**\r\n * @deprecated The method should not be used. please use deleteNullFields\r\n */\r\n static deleteNullKeys(val: any) {\r\n this.deleteNullFields(val);\r\n };\r\n\r\n static deleteNullFields<T extends {}>(val: T) {\r\n if (!val) return;\r\n for (let key in val) {\r\n let tmp = val[key];\r\n if (tmp === undefined || tmp === null) {\r\n delete val[key];\r\n }\r\n }\r\n return val\r\n };\r\n\r\n static assignFields<T extends {}, U extends {}>(target: T, source: U): T {\r\n let t: any = target;\r\n let s: any = source;\r\n for (const key of Object.keys(target)) {\r\n let v = s[key];\r\n if (typeof v !== 'undefined') {\r\n t[key] = v;\r\n }\r\n }\r\n return target;\r\n }\r\n\r\n\r\n\r\n static deepCopy<T = any>(value: any): T {\r\n if (!this.isObject(value))\r\n return value;\r\n\r\n let output: any = {};\r\n if (Array.isArray(value)) {\r\n output = value.map(x => this.deepCopy(x));\r\n }\r\n else {\r\n Object.keys(value).forEach((key: any) => {\r\n const v = value[key];\r\n\r\n if (this.isObject(v)) {\r\n output[key] = this.deepCopy(v);\r\n\r\n } else {\r\n Object.assign(output, { [key]: v });\r\n }\r\n });\r\n }\r\n\r\n return output as T;\r\n }\r\n\r\n}","import { ObjectHelper } from \"./object-helper\";\r\n\r\nexport class FilterHelper {\r\n static isEmpty(obj: any) {\r\n if (typeof obj === 'undefined' || obj === null)\r\n return true;\r\n\r\n let tmp = Object.assign({}, obj);\r\n delete tmp.page;\r\n delete tmp.pageSize;\r\n delete tmp.sort;\r\n\r\n return ObjectHelper.isEmpty(tmp);\r\n }\r\n}","export var handler = (function () {\r\n var i = 1;\r\n var listeners: any = {};\r\n\r\n return {\r\n addListener: function (element: HTMLElement, event: string, handler: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) {\r\n element.addEventListener(event, handler, options); \r\n listeners[i] = {\r\n element: element,\r\n event: event,\r\n handler: handler,\r\n options: options,\r\n };\r\n return i++;\r\n },\r\n removeListener: function (id: number) {\r\n if (id in listeners) {\r\n var h = listeners[id];\r\n h.element.removeEventListener(h.event, h.handler, h.options);\r\n delete listeners[id];\r\n }\r\n }\r\n };\r\n}());","export class HtmlHelper {\r\n static escapeHtml(source: string) {\r\n if (source == null) {\r\n source = '';\r\n }\r\n\r\n return source\r\n .replace(/&/g, '&amp;')\r\n .replace(/\"/g, '&quot;')\r\n .replace(/'/g, '&#39;')\r\n .replace(/</g, '&lt;')\r\n .replace(/>/g, '&gt;');\r\n }\r\n\r\n\r\n static addInput(type: string, name: string, id: string = name, force = false) {\r\n let node = document.createElement('input');\r\n node.type = type;\r\n node.name = name;\r\n node.id = id;\r\n\r\n document.getElementsByTagName('body')[0].appendChild(node);\r\n return node;\r\n }\r\n\r\n\r\n static loadScript(url: string, nonce?: string, async = true, defer = true) {\r\n const script = document.createElement('script');\r\n script.innerHTML = '';\r\n script.src = url;\r\n script.type = 'text/javascript';\r\n\r\n if (nonce) {\r\n script.nonce = nonce;\r\n }\r\n\r\n if (async) {\r\n script.async = true;\r\n }\r\n if (defer) {\r\n script.defer = true;\r\n }\r\n\r\n document.head.appendChild(script);\r\n //2022-02-24 document.getElementsByTagName('head')[0].appendChild(script);\r\n }\r\n static loadScripts(...scripts: string[]) {\r\n var promises: any[] = [];\r\n scripts.forEach((script) => promises.push(this.internalLoadScript(script)));\r\n return Promise.all(promises);\r\n }\r\n private static internalLoadScript(src: string) {\r\n return new Promise((resolve, reject) => {\r\n let script = document.createElement('script') as any;\r\n script.src = src;\r\n script.type = 'text/javascript';\r\n if (script.readyState) { //IE\r\n script.onreadystatechange = () => {\r\n if (script.readyState === \"loaded\" || script.readyState === \"complete\") {\r\n script.onreadystatechange = null;\r\n resolve({ script: src, loaded: true });\r\n }\r\n };\r\n } else { //Others\r\n script.onload = () => {\r\n resolve({ script: src, loaded: true });\r\n };\r\n }\r\n script.onerror = (error: any) => resolve({ script: src, loaded: false });\r\n document.getElementsByTagName('head')[0].appendChild(script);\r\n });\r\n }\r\n\r\n}","export class JwtHelper {\r\n\r\n static decode(token: any) {\r\n let base64Url = token.split('.')[1]\r\n let base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\r\n let jsonPayload = decodeURIComponent(atob(base64).split('').map(function (c) {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n }).join(''));\r\n return JSON.parse(jsonPayload)\r\n }\r\n}","export class MathHelper {\r\n static round(value: number, decimals: number = 0): number {\r\n return Math.round(Number(value) * Math.pow(10, decimals)) / (Math.pow(10, decimals));\r\n };\r\n\r\n\r\n static clamp(v: number, min: number, max: number) {\r\n return Math.max(min, Math.min(max, v));\r\n }\r\n\r\n static sum(...values: number[]) {\r\n return values.reduce((acc, cur) => acc + cur, 0);;\r\n }\r\n}","import { Pager } from \"../models\";\r\n\r\nexport class PagerHelper {\r\n static get(totalItemCount: number | null | undefined, pageNumber: number | null | undefined = 1, pageSize: number | null | undefined = 10) {\r\n if (!totalItemCount) totalItemCount = 0;\r\n if (!pageNumber) pageNumber = 1;\r\n if (!pageSize) pageSize = 10;\r\n\r\n // calculate total pages\r\n const pageCount = Math.ceil(totalItemCount / pageSize);\r\n let startPage: number, endPage: number;\r\n if (pageCount <= 10) {\r\n // less than 10 total pages so show all\r\n startPage = 1;\r\n endPage = pageCount;\r\n } else {\r\n // more than 10 total pages so calculate start and end pages\r\n if (pageNumber <= 6) {\r\n startPage = 1;\r\n endPage = 10;\r\n } else if (pageNumber + 4 >= pageCount) {\r\n startPage = pageCount - 9;\r\n endPage = pageCount;\r\n } else {\r\n startPage = pageNumber - 5;\r\n endPage = pageNumber + 4;\r\n }\r\n }\r\n\r\n // calculate start and end item indexes\r\n const firstItemOnPage = (pageNumber - 1) * pageSize + 1;\r\n const lastItemOnPage = Math.min(firstItemOnPage + pageSize - 1, totalItemCount);\r\n\r\n const hasPreviousPage = pageNumber > 1;\r\n const hasNextPage = pageNumber < pageCount;\r\n const isFirstPage = pageNumber <= 1;\r\n const isLastPage = pageNumber >= pageCount;\r\n\r\n // create an array of pages to ng-repeat in the pager control\r\n //let pages = _.range(startPage, endPage + 1);\r\n const pages: number[] = [];\r\n for (let i = startPage; i <= endPage; i++) {\r\n pages.push(i);\r\n }\r\n\r\n // return object with all pager properties required by the view\r\n return {\r\n pageCount,\r\n totalItemCount,\r\n pageNumber,\r\n pageSize,\r\n hasPreviousPage,\r\n hasNextPage,\r\n isFirstPage,\r\n isLastPage,\r\n firstItemOnPage,\r\n lastItemOnPage,\r\n //startPage: startPage,\r\n //endPage: endPage,\r\n pages\r\n } as Pager;\r\n }\r\n}","export class RandomHelper {\r\n static randomHex(count: number = 2) {\r\n let out: string = '';\r\n for (let i: number = 0; i < count; i++) {\r\n // tslint:disable-next-line:no-bitwise\r\n out += (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);\r\n }\r\n return out;\r\n }\r\n\r\n static randomInt(min: number, max: number) {\r\n min = Math.ceil(min);\r\n max = Math.floor(max);\r\n\r\n return Math.floor(Math.random() * (max - min + 1)) + min;\r\n }\r\n}","export class StorageHelper {\r\n static set(key: string, value: any) {\r\n if (!key) { return; }\r\n\r\n if (!value) {\r\n localStorage.removeItem(key);\r\n return;\r\n }\r\n\r\n if (typeof value === \"object\") {\r\n value = JSON.stringify(value);\r\n }\r\n localStorage.setItem(key, value);\r\n }\r\n\r\n\r\n static get(key: string) {\r\n let str = localStorage.getItem(key);\r\n \r\n if (!str) { return null; }\r\n \r\n // assume it is an object that has been stringified\r\n if (str[0] === '{') {\r\n let v = JSON.parse(str);\r\n return v;\r\n }\r\n \r\n return str;\r\n }\r\n}","export class StringHelper {\r\n static firstUpper(v?: string | null) {\r\n if (!v || v.length < 1)\r\n return v;\r\n\r\n return v.charAt(0).toUpperCase() + v.slice(1);\r\n }\r\n\r\n static isNullOrEmpty(value?: string | null) {\r\n return typeof value === 'undefined' || value == null || ((typeof value === 'string') && value.length === 0);\r\n }\r\n static isNullOrWhiteSpace(value?: string | null) {\r\n return typeof value === 'undefined' || value == null || ((typeof value === 'string') && value.trim().length === 0);\r\n }\r\n static tryTrim(val: string | undefined | null) {\r\n if (!val)\r\n return val;\r\n return val.trim();\r\n }\r\n static ifNullEmpty(value?: string | null) {\r\n return typeof value === 'undefined' || value == null ? '' : value;\r\n }\r\n static join(val: string | undefined | null, separator: string, part: string | undefined | null) {\r\n if (this.isNullOrEmpty(val)) {\r\n return part;\r\n }\r\n if (this.isNullOrEmpty(part)) {\r\n return val;\r\n }\r\n\r\n return val + separator + part;\r\n }\r\n static trim(val: string | null, ch: string) {\r\n if (!val || !ch)\r\n return val;\r\n\r\n var start = 0,\r\n end = val.length;\r\n\r\n while (start < end && val[start] === ch)\r\n ++start;\r\n\r\n while (end > start && val[end - 1] === ch)\r\n --end;\r\n\r\n return (start > 0 || end < val.length) ? val.substring(start, end) : val;\r\n }\r\n static trimAny(val: string | null, chars: string) {\r\n if (!val || !chars)\r\n return val;\r\n\r\n var start = 0,\r\n end = val.length;\r\n\r\n while (start < end && chars.indexOf(val[start]) >= 0)\r\n ++start;\r\n\r\n while (end > start && chars.indexOf(val[end - 1]) >= 0)\r\n --end;\r\n\r\n return (start > 0 || end < val.length) ? val.substring(start, end) : val;\r\n }\r\n\r\n}","export var firstBy = (function() {\r\n\r\n function identity(v: any){return v;}\r\n\r\n function ignoreCase(v: any){return typeof(v)===\"string\" ? v.toLowerCase() : v;}\r\n\r\n function makeCompareFunction(f: any, opt: any){\r\n opt = typeof(opt)===\"number\" ? {direction:opt} : opt||{};\r\n if(typeof(f)!=\"function\"){\r\n var prop = f;\r\n // make unary function\r\n f = function(v1: any){return !!v1[prop] ? v1[prop] : \"\";}\r\n }\r\n if(f.length === 1) {\r\n // f is a unary function mapping a single item to its sort score\r\n var uf = f;\r\n var preprocess = opt.ignoreCase?ignoreCase:identity;\r\n var cmp = opt.cmp || function(v1: any,v2: any) {return v1 < v2 ? -1 : v1 > v2 ? 1 : 0;}\r\n f = function(v1: any,v2: any) {return cmp(preprocess(uf(v1)), preprocess(uf(v2)));}\r\n }\r\n if(opt.direction === -1) return function(v1: any,v2: any){return -f(v1,v2)};\r\n return f;\r\n }\r\n\r\n /* adds a secondary compare function to the target function (`this` context)\r\n which is applied in case the first one returns 0 (equal)\r\n returns a new compare function, which has a `thenBy` method as well */\r\n function tb(this: any, func: any, opt: any) {\r\n /* should get value false for the first call. This can be done by calling the \r\n exported function, or the firstBy property on it (for es6 module compatibility)\r\n */\r\n var x = (typeof(this) == \"function\" && !this.firstBy) ? this : false;\r\n var y = makeCompareFunction(func, opt);\r\n var f = x ? function(a: any, b: any) {\r\n return x(a,b) || y(a,b);\r\n }\r\n : y;\r\n f.thenBy = tb;\r\n return f;\r\n }\r\n tb.firstBy = tb;\r\n return tb;\r\n})();","export class TmpHelper {\r\n private static _obj: any = {};\r\n\r\n static get(key: string, remove = true): any {\r\n if (!key) return;\r\n let v = this._obj[key];\r\n if (remove)\r\n this.remove(key);\r\n return v;\r\n }\r\n \r\n static set(key: string, value: any) {\r\n if (!key) return;\r\n this._obj[key] = value;\r\n }\r\n \r\n static clear() {\r\n this._obj = {};\r\n }\r\n static remove(key: string) {\r\n if (!key) return;\r\n delete this._obj[key]\r\n }\r\n}","export class UrlHelper {\r\n static getController(url: string) {\r\n return url.substring(0, url.lastIndexOf('/') + 1);\r\n }\r\n static getAction(url: string) {\r\n let action = url.substring(url.lastIndexOf('/') + 1);\r\n let i = action.indexOf(';');\r\n return i === -1 ? action : action.substring(0, i);\r\n }\r\n static getNoParam(url: string) {\r\n let i1 = url.indexOf('?');\r\n let i2 = url.indexOf(';');\r\n if (i1 !== -1) {\r\n if (i2 !== -1) {\r\n let min = i1 < i2 ? i1 : i2;\r\n return url.substring(0, min)\r\n }\r\n return url.substring(0, i1)\r\n }\r\n if (i2 !== -1) {\r\n return url.substring(0, i2)\r\n }\r\n return url;\r\n }\r\n}","export class ValidationHelper {\r\n static readonly emailRegExp = /^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\r\n\r\n static isValidEmail(email?: string | null) {\r\n if (typeof email === 'undefined' || email == null || ((typeof email === 'string') && email.length === 0)) {\r\n return false;\r\n }\r\n\r\n return this.emailRegExp.test(email);\r\n }\r\n}","import { Injectable, } from '@angular/core';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\nimport { KeyPair, LoginToken, LoginUser } from '../models';\r\nimport { Convert, DateHelper, ObjectHelper, StorageHelper } from '../utils';\r\nimport { BitwiseHelper } from '../utils/bitwise-helper';\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n private _isInitialized: boolean = false;\r\n private _oldValue: boolean = false;\r\n private _user: LoginUser | null = null;\r\n\r\n get user(): LoginUser | null {\r\n if (!this._isInitialized) {\r\n let user = StorageHelper.get('login');\r\n if (user) {\r\n user.id = ObjectHelper.isDefined(user.id) ? Convert.parseNumber(user.id) : user.id;\r\n user.expired = ObjectHelper.isDefined(user.expired) ? DateHelper.parseDate(user.expired) : user.expired;\r\n user.refreshTokenTime = ObjectHelper.isDefined(user.refreshTokenTime) ? DateHelper.parseDate(user.refreshTokenTime) : user.refreshTokenTime;\r\n\r\n if (Array.isArray(user.roles)) {\r\n user.roles = user.roles.map(function (e: any) { return e ? e.toUpperCase() : e; });\r\n }\r\n }\r\n this._user = user;\r\n this._isInitialized = true;\r\n this._starRefreshTokenTimer();\r\n }\r\n return this._user;\r\n }\r\n\r\n\r\n private _timerId: any;\r\n private _starRefreshTokenTimer() {\r\n this._stopRefreshTokenTimer();\r\n\r\n let user = this._user;\r\n if (user && user.refreshTokenTime) {\r\n let timeout = user.refreshTokenTime.getTime() - Date.now();// - (60 * 1000);\r\n\r\n if (timeout < 0) {\r\n this._emitRefreshToken();\r\n }\r\n\r\n const minRefreshTime = 60_000//1 min;\r\n if (timeout < minRefreshTime) {\r\n timeout = minRefreshTime;\r\n }\r\n\r\n this._timerId = setInterval(() => {\r\n this._emitRefreshToken();\r\n }, timeout);\r\n }\r\n }\r\n private _stopRefreshTokenTimer() {\r\n if (typeof this._timerId === 'number') {\r\n clearInterval(this._timerId);\r\n }\r\n }\r\n private _emitRefreshToken() {\r\n if (this._onRefreshTokenSubject) {\r\n this._onRefreshTokenSubject.next();\r\n }\r\n }\r\n\r\n\r\n isAuthenticated(): boolean {\r\n let expired = this.getExpired() || new Date(0);// if getExpired is null return min JS date\r\n\r\n const newValue = new Date() < expired;\r\n if (this._oldValue !== newValue) {\r\n this._oldValue = newValue;\r\n\r\n this.emitOnSignedIn();\r\n // if (this._onSignedInSubject) {\r\n // this._onSignedInSubject.next(newValue);\r\n // }\r\n\r\n //if user is signed in and expired we need to logout (remove from localStorage)\r\n if (!newValue) {\r\n this.logout();\r\n }\r\n return newValue;\r\n }\r\n return newValue;\r\n }\r\n emitOnSignedIn() {\r\n if (this._onSignedInSubject) {\r\n this._onSignedInSubject.next(this._oldValue);\r\n }\r\n }\r\n\r\n private _onSignedInSubject?: BehaviorSubject<boolean>;//BehaviorSubject is for initial firt value = false\r\n private _onSignedInObservable?: Observable<boolean>;\r\n get onSignedIn(): Observable<boolean> {\r\n if (!this._onSignedInSubject) {\r\n this._onSignedInSubject = new BehaviorSubject<boolean>(false);\r\n this._onSignedInObservable = this._onSignedInSubject.asObservable();\r\n }\r\n\r\n if (!this._onSignedInObservable)\r\n throw new Error(\"_onExecuteObservable is undefined\");\r\n\r\n return this._onSignedInObservable;\r\n }\r\n\r\n\r\n private _onRefreshTokenSubject?: Subject<void>;\r\n private _onRefreshTokenObservable?: Observable<void>;\r\n get onRefreshToken(): Observable<void> {\r\n if (!this._onRefreshTokenSubject) {\r\n this._onRefreshTokenSubject = new Subject<void>();\r\n this._onRefreshTokenObservable = this._onRefreshTokenSubject.asObservable();\r\n }\r\n\r\n if (!this._onRefreshTokenObservable)\r\n throw new Error(\"onRefreshTokenObservable is undefined\");\r\n\r\n return this._onRefreshTokenObservable;\r\n }\r\n\r\n\r\n\r\n login(user: LoginToken | LoginUser | null) {\r\n // if (user) {\r\n // // I think we don't need this\r\n // user.id = ObjectHelper.isDefined(user.id) ? Convert.parseNumber(user.id) : user.id;\r\n // user.expired = ObjectHelper.isDefined(user.expired) ? DateHelper.parseDate(user.expired) : user.expired;\r\n // user.refreshTokenTime = ObjectHelper.isDefined(user.refreshTokenTime) ? DateHelper.parseDate(user.refreshTokenTime) : user.refreshTokenTime;\r\n // if (Array.isArray(user.roles)) {\r\n // user.roles = user.roles.map(function (e) { return e.toUpperCase(); });\r\n // }\r\n // }\r\n\r\n StorageHelper.set('login', user);\r\n this._user = null;\r\n this._isInitialized = false;//user get method will init user\r\n this.isAuthenticated();//this method need to execute subject.next(); \r\n }\r\n logout() {\r\n this.login(null);\r\n }\r\n\r\n\r\n\r\n protected getExpired(): Date | null | undefined {\r\n let user = this.user;\r\n if (user) {\r\n return user.expired;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n protected getRefreshTokenExpired(): Date | null | undefined {\r\n let user = this.user;\r\n if (user) {\r\n return user.refreshTokenTime;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n\r\n // isInRole(allowedRoles: string[]): boolean {\r\n // if (!allowedRoles || allowedRoles.length === 0) {\r\n // return true;\r\n // }\r\n\r\n // const tmp = this.getUser();\r\n // const roles = tmp ? tmp.roles : null;\r\n // if (!roles || roles.length === 0) {\r\n // return false;\r\n // }\r\n\r\n // let isInRole = allowedRoles.some(role => roles.indexOf(role) !== -1);\r\n // return isInRole;\r\n // }\r\n\r\n\r\n hasPermission(permission?: KeyPair<number, number> | number | null): boolean {\r\n if (!permission) {\r\n return true;\r\n }\r\n\r\n let key = 0;\r\n let value: number | null | undefined;\r\n if (typeof permission === 'number' || typeof permission === 'string') {\r\n key = +permission;\r\n }// else if (Array.isArray(permission)) {\r\n // }\r\n else if (typeof permission === 'object') {\r\n if (!permission.key)\r\n return true;\r\n\r\n key = permission.key;\r\n value = permission.value;\r\n }\r\n\r\n return this.hasPermissions([key], value);\r\n }\r\n\r\n\r\n hasPermissions(permissions?: Array<number>, value?: number | null): boolean {\r\n if (!permissions || permissions.length === 0) {\r\n return true;\r\n }\r\n\r\n const user = this.user;\r\n const userPermissions = user ? user.permissions : null;\r\n if (!userPermissions) {\r\n return false;\r\n }\r\n\r\n if (value) {\r\n for (let i = 0; i < permissions.length; i++) {\r\n const p = permissions[i];\r\n let found = userPermissions[p];\r\n if (found) {\r\n let hasPermission = BitwiseHelper.hasFlag(found, value);\r\n if (hasPermission)\r\n return true;\r\n }\r\n }\r\n } else {\r\n for (let i = 0; i < permissions.length; i++) {\r\n const p = permissions[i];\r\n let found = userPermissions[p];\r\n if (found)\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n\r\n hasDataPermission(data: any) {\r\n //if (data === undefined || data === null) return true;\r\n // const allowedRoles = data.roles;\r\n // let isInRole = this.isInRole(allowedRoles);\r\n\r\n const permission = data.permission;\r\n\r\n let hasPermission = this.hasPermission(permission);\r\n\r\n // return isInRole && hasPermission;\r\n return hasPermission;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable()\r\nexport class AuthGuardService implements CanActivate {\r\n constructor(protected readonly authService: AuthService, protected readonly router: Router) { }\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | Observable<boolean> | Promise<boolean> {\r\n if (!this.authService.isAuthenticated()) {\r\n this.router.navigate(['/login'], { queryParams: { returnUrl: state.url } });\r\n return false;\r\n }\r\n\r\n return this.authService.hasDataPermission(route.data);\r\n\r\n // const allowedRoles = route.data.roles;\r\n // let isInRole = this.authService.isInRole(allowedRoles);\r\n\r\n // const permission = route.data.permission;\r\n // let hasPermission = this.authService.hasPermission(permission);\r\n\r\n // return isInRole && hasPermission;\r\n }\r\n}","import { WebApiClient } from \"./web.api\";\r\nimport { HttpErrorHandler, HandleError } from \"./http-error-handler.service\";\r\n\r\nexport class BaseService {\r\n protected readonly handleError: HandleError;\r\n constructor(\r\n protected readonly controller: string,\r\n protected readonly api: WebApiClient,\r\n httpErrorHandler: HttpErrorHandler) {\r\n this.handleError = httpErrorHandler.createHandleError(this.constructor.name);\r\n }\r\n}","import { catchError, Observable } from \"rxjs\";\r\n\r\nimport { HttpErrorHandler } from \"./http-error-handler.service\";\r\nimport { PagedList } from \"../models\";\r\nimport { BaseService } from \"./base.service\";\r\nimport { WebApiClient } from \"./web.api\";\r\n\r\nexport interface IService {\r\n getAll(filter: any): Observable<PagedList>;\r\n delete(id: any): Observable<any>;\r\n delete2(id: any, id2: any): Observable<any>;\r\n export(filter: any, fileTypeId: any): Observable<Blob | null>;\r\n sum(filter: any): Observable<any>;\r\n\r\n get(id: any): Observable<any>;\r\n get2(id: any, id2: any): Observable<any>;\r\n save(model: any): Observable<any>;\r\n restore(id: any): Observable<any>;\r\n approve(model: any): Observable<any>;\r\n disapprove(model: any): Observable<any>;\r\n batch(model: any): Observable<any>;\r\n}\r\nexport class CrudService extends BaseService implements IService {\r\n constructor(\r\n controller: string,\r\n api: WebApiClient,\r\n httpErrorHandler: HttpErrorHandler) {\r\n super(controller, api, httpErrorHandler);\r\n }\r\n\r\n get(id: number) {\r\n return this.api.get(`api/${this.controller}/${id}`).pipe(catchError(this.handleError(this.get.name, null)));\r\n }\r\n get2(id: number, id2: number) {\r\n return this.api.get(`api/${this.controller}/${id}/${id2}`).pipe(catchError(this.handleError(this.get2.name, null)));\r\n }\r\n\r\n getAll(filter?: any): Observable<PagedList> {\r\n return this.api.get(`api/${this.controller}`, filter).pipe(catchError(this.handleError(this.getAll.name)));\r\n }\r\n sum(filter?: any) {\r\n return this.api.get(`api/${this.controller}/Sum`, filter).pipe(catchError(this.handleError(this.sum.name)));\r\n }\r\n\r\n save(model: any) {\r\n return !model.id\r\n ? this.api.post<any>(`api/${this.controller}`, model).pipe(catchError(this.handleError(this.save.name, null)))\r\n : this.api.put<any>(`api/${this.controller}/${model.id}`, model).pipe(catchError(this.handleError(this.save.name, null)));\r\n }\r\n\r\n delete(id: any) {\r\n return this.api.delete(`api/${this.controller}/${id}`).pipe(catchError(this.handleError(this.delete.name, null)));\r\n }\r\n delete2(id: any, id2: any) {\r\n return this.api.delete(`api/${this.controller}/${id}/${id2}`).pipe(catchError(this.handleError(this.delete2.name, null)));\r\n }\r\n\r\n restore(id: any) {\r\n return this.api.patch(`api/${this.controller}/${id}/Restore`).pipe(catchError(this.handleError(this.restore.name, null)));\r\n }\r\n\r\n approve(model: any) {\r\n return this.api.patch(`api/${this.controller}/Approve`, model).pipe(catchError(this.handleError(this.approve.name, null)));\r\n }\r\n disapprove(model: any) {\r\n return this.api.patch(`api/${this.controller}/Disapprove`, model).pipe(catchError(this.handleError(this.disapprove.name, null)));\r\n }\r\n\r\n batch(model: any) {\r\n return this.api.post(`api/${this.controller}/Batch`, model).pipe(catchError(this.handleError(this.batch.name, null)));\r\n }\r\n\r\n\r\n export(model: any, fileTypeId: any): Observable<Blob | null> {\r\n return this.api.getBlob(`api/${this.controller}/Export/${fileTypeId}`, model).pipe(catchError(this.handleError('export', null)));\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Router, NavigationStart } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { AlertType } from '../models';\r\nimport { BootstrapHelper } from '../utils/bootstrap.helper';\r\n\r\nexport class BaseAlert {\r\n type?: AlertType | null;\r\n icon?: string | null;\r\n title?: string | null;\r\n css?: string | null;\r\n // id?: string;\r\n}\r\n\r\nexport class Alert extends BaseAlert {\r\n messages?: string[];\r\n}\r\n\r\nexport class Toast extends BaseAlert {\r\n message?: string | null;\r\n}\r\n\r\n@Injectable()\r\nexport class AlertService {\r\n private alertSubject = new Subject<any>();\r\n private toastSubject = new Subject<any>();\r\n private keepAfterRouteChange = false;\r\n // private id = 0;\r\n\r\n constructor(router: Router) {\r\n // clear alert messages on route change unless 'keepAfterRouteChange' flag is true\r\n router.events.subscribe(event => {\r\n if (event instanceof NavigationStart) {\r\n if (this.keepAfterRouteChange) {\r\n // only keep for a single route change\r\n this.keepAfterRouteChange = false;\r\n } else {\r\n // clear alert messages\r\n this.clear();\r\n }\r\n }\r\n });\r\n }\r\n\r\n add(alertType: AlertType, message: String, keepAfterRouteChange = false) {\r\n let messages = [];\r\n messages.push(message);\r\n this.addRange(alertType, messages, keepAfterRouteChange);\r\n }\r\n addRange(alertType: AlertType, messages: String[], keepAfterRouteChange = false) {\r\n this.keepAfterRouteChange = keepAfterRouteChange;\r\n this.alertSubject.next(<Alert>{ type: alertType, messages: messages });\r\n }\r\n clear() {\r\n this.alertSubject.next(null);\r\n }\r\n\r\n\r\n getAlert() {\r\n return this.alertSubject.asObservable();\r\n }\r\n getToast() {\r\n return this.toastSubject.asObservable();\r\n }\r\n\r\n\r\n success(message: string, title?: string | null, icon?: string | null) {\r\n this.show(message, title, 'success', icon);\r\n }\r\n error(message: string, title?: string | null, icon?: string | null) {\r\n this.show(message, title, 'danger', icon);\r\n }\r\n warning(message: string, title?: string | null, icon?: string | null) {\r\n this.show(message, title, 'warning', icon);\r\n }\r\n info(message: string, title?: string | null, icon?: string | null) {\r\n this.show(message, title, 'info', icon);\r\n }\r\n private show(message: string, title?: string | null, alertType?: AlertType | null, icon?: string | null) {\r\n if (!icon) {\r\n icon = BootstrapHelper.cssAlertIcon(alertType)\r\n }\r\n\r\n this.toastSubject.next(<Toast>{ message, title, type: alertType, icon });//, id: `${this.id++}`\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { AlertService } from './alert.service';\r\nimport { AlertType } from '../models';\r\nimport { ObjectHelper } from '../utils/object-helper';\r\n\r\n/** Type of the handleError function returned by HttpErrorHandler.createHandleError */\r\nexport type HandleError = <T = any>(operation?: string, result?: T, show?: boolean) => (error: HttpErrorResponse) => Observable<T>;\r\nexport type HandleErrorResult = <T = any>(operation?: string, result?: T, show?: boolean) => (error: HttpErrorResponse) => Observable<T>;\r\n\r\n/** Handles HttpClient errors */\r\n@Injectable()\r\nexport class HttpErrorHandler {\r\n constructor(\r\n private readonly alert: AlertService,\r\n private readonly translate: TranslateService,\r\n private readonly router: Router) { }\r\n\r\n /** Create curried handleError function that already knows the service name */\r\n createHandleError = (serviceName = '') => <T>(operation = 'operation', result = {} as T, show = true) => this.handleError(serviceName, operation, result, show);\r\n createHandleErrorResult = (serviceName = '') => <T>(operation = 'operation', result = {} as T, show = true) => this.handleErrorResult(serviceName, operation, result, show);\r\n\r\n /**\r\n * Returns a function that handles Http operation failures.\r\n * This error handler lets the app continue to run as if no error occurred.\r\n * @param serviceName = name of the data service that attempted the operation\r\n * @param operation - name of the operation that failed\r\n * @param result - optional value to return as the observable result\r\n * @param show - optional value to show error\r\n */\r\n handleError<T>(serviceName = '', operation = 'operation', result = {} as T, show?: boolean) {\r\n return (response: HttpErrorResponse): Observable<T> => {\r\n console.error(response);\r\n\r\n if (show) {\r\n this.showError(serviceName, operation, response)\r\n }\r\n\r\n return of(result);\r\n };\r\n }\r\n\r\n\r\n\r\n /**\r\n * Returns a function that handles Http operation failures.\r\n * This error handler lets the app continue to run as if no error occurred.\r\n * @param serviceName = name of the data service that attempted the operation\r\n * @param operation - name of the operation that failed\r\n * @param show - optional value to show error\r\n */\r\n handleErrorResult<T>(serviceName = '', operation = 'operation', result = {} as T, show?: boolean) {\r\n return (response: HttpErrorResponse): Observable<any> => {\r\n console.error(response);\r\n\r\n if (show) {\r\n this.showError(serviceName, operation, response)\r\n }\r\n\r\n\r\n let error: any; \r\n if (typeof response.error === 'string' && response.error[0] === '{') {\r\n error = JSON.parse(response.error);\r\n } else {\r\n error = response.error;\r\n }\r\n\r\n if (error instanceof ErrorEvent) {\r\n error = response.error.message;\r\n }\r\n\r\n return ObjectHelper.isDefined(error) ? of(error) : of(result);\r\n };\r\n }\r\n\r\n\r\n private showError(serviceName: string, operation: string, response: HttpErrorResponse) {\r\n switch (response.status) {\r\n case 0://No Connection\r\n this.alert.error(`Can't connect to api server.`);\r\n break;\r\n\r\n case 400://Bad Request\r\n let error: any;\r\n if (typeof response.error === 'string' && response.error[0] === '{') {\r\n error = JSON.parse(response.error);\r\n } else {\r\n error = response.error;\r\n }\r\n\r\n if (error instanceof ErrorEvent) {\r\n this.alert.error(`${serviceName}: ${operation} failed: ${response.error.message}`);\r\n } if (typeof error === 'string') {\r\n this.alert.error(response.error as string);\r\n } else if (typeof error === 'object') {\r\n const errors = error.traceId || error.success === false\r\n ? error.errors\r\n : error;\r\n\r\n const errorMessages: string[] = [];\r\n const properties = Object.getOwnPropertyNames(errors);\r\n\r\n for (let property of properties) {\r\n const messages = errors[property];\r\n if (messages instanceof Array) {\r\n for (let message of messages) {\r\n const messageKey = `Validation.${message}`;\r\n let translatedMessage = this.translate.instant(messageKey);\r\n // if translation not found then use message\r\n if (messageKey == translatedMessage) {\r\n translatedMessage = message;\r\n }\r\n\r\n if (property) {\r\n const propertyKey = `Fields.${property}`;\r\n let translatedProperty = this.translate.instant(`Fields.${property}`);\r\n // if translation not found then use property\r\n if (propertyKey == translatedProperty) {\r\n translatedProperty = property\r\n }\r\n errorMessages.push(translatedProperty + ' - ' + translatedMessage);\r\n }\r\n else {\r\n errorMessages.push(translatedMessage);\r\n }\r\n }\r\n }\r\n }\r\n this.alert.addRange('danger', errorMessages);\r\n }\r\n break;\r\n\r\n case 401://Unauthorized\r\n this.alert.error('Unauthorized');\r\n this.router.navigate(['/login']);\r\n break;\r\n\r\n case 403://Forbidden\r\n this.alert.error('Forbidden');\r\n break;\r\n\r\n case 404://Not Found\r\n this.alert.error('Not Found');\r\n break;\r\n\r\n case 402://Payment Required\r\n this.alert.error('License Payment Required');\r\n break;\r\n\r\n case 500://Internal Server Error\r\n this.alert.error('Internal Server Error');\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n}","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport const API_BASE_URL = new InjectionToken<string>('API_BASE_URL');\r\nexport const DATE_FORMAT = new InjectionToken<string>('DATE_FORMAT');\r\nexport const LANGUAGE = new InjectionToken<string>('LANGUAGE');\r\nexport const RECAPTCHA_SITE_KEY = new InjectionToken<string>('RECAPTCHA_SITE_KEY');\r\nexport const GOOGLE_CLIENT_ID = new InjectionToken<string>('GOOGLE_CLIENT_ID');","import { Injectable, Inject } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams/*, HttpErrorResponse*/ } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n//import { of } from 'rxjs/observable/of';\r\n//import { catchError } from 'rxjs/operators';\r\n\r\nimport { AuthService } from './auth.service';\r\n//import { deleteNullProperties } from '../utils';\r\n//import { HttpErrorHandler, HandleError } from './http-error-handler.service';\r\nimport { HttpParameterCodec } from '@angular/common/http';\r\nimport { API_BASE_URL } from '../tokens';\r\n\r\nexport interface WebApiConfig {\r\n baseUrl: string;\r\n}\r\n\r\n@Injectable()\r\nexport class WebApiClient {\r\n constructor(\r\n protected readonly http: HttpClient,\r\n protected readonly auth: AuthService,\r\n @Inject(API_BASE_URL) private readonly baseUrl: string) {\r\n }\r\n\r\n get<T = any>(url: string, params?: any): Observable<T> {\r\n return this.http.get<T>(this.baseUrl + url, { headers: this.getHeaders(), params: this.toHttpParams(params) });\r\n /*.catch(catchError(this.handleError(url)))\r\n .do((res: Response) => {\r\n // Handle success, maybe display notification\r\n }, (error: any) => {\r\n // Handle errors\r\n })\r\n .finally(() => {\r\n // Request completed\r\n });\r\n */\r\n }\r\n\r\n getString(url: string, params?: object): Observable<string | null> {\r\n return this.http.get(this.baseUrl + url, { headers: this.getHeaders(), responseType: 'text', params: this.toHttpParams(params) });\r\n }\r\n getBytes(url: string, params?: any): Observable<ArrayBuffer> {\r\n return this.http.get(this.baseUrl + url, { headers: this.getHeaders(), responseType: 'arraybuffer', params: this.toHttpParams(params) });\r\n }\r\n getBlob(url: string, params?: any): Observable<Blob> {\r\n return this.http.get(this.baseUrl + url, { headers: this.getHeaders(), responseType: 'blob', params: this.toHttpParams(params) });\r\n }\r\n postBlob(url: string, body: any): Observable<Blob> {\r\n return this.http.post(this.baseUrl + url, body, { headers: this.getHeaders(), responseType: 'blob' });\r\n }\r\n\r\n\r\n protected toHttpParams(obj: any) {\r\n if (!obj)\r\n return undefined;\r\n\r\n let params = new HttpParams({ encoder: new CustomHttpParamEncoder() });\r\n for (const key of Object.keys(obj)) {\r\n const field = obj[key];\r\n\r\n if (field === undefined || field === null || (typeof field === 'string' && field.length === 0))\r\n continue;\r\n\r\n let value = field;\r\n // if (typeof field === 'string' && field.length > 0) {\r\n // value = field.replace(/\\+/gi, '%2B');\r\n // }\r\n\r\n params = params.append(key, value);\r\n // if (field instanceof Array) {\r\n // field.forEach((item: any) => {\r\n // params = params.append(`${key}[]`, item);\r\n // });\r\n // } else {\r\n // params = params.append(key, field);\r\n // }\r\n }\r\n return params;\r\n\r\n\r\n //deleteNullProperties(obj);\r\n //comment because int[] not sending in c# it send \"1,2,3,4\"\r\n // return obj\r\n // ? Object.getOwnPropertyNames(obj).reduce((p, key) => p.set(key, obj[key]), new HttpParams())\r\n // : undefined;\r\n }\r\n\r\n //toKeyPairs(obj: any): KeyPair[] | undefined {\r\n // if (obj instanceof Object) {\r\n // const properties = Object.getOwnPropertyNames(obj);\r\n // const result = new Array<KeyPair>();\r\n // for (let property of properties) {\r\n // const value = obj[property];\r\n // result.push({ key: property, value: value });\r\n // }\r\n // return result;\r\n // }\r\n // return undefined;\r\n //}\r\n\r\n post<T = any>(url: string, body?: any | null): Observable<T> {\r\n return this.http.post<T>(this.baseUrl + url, body, { headers: this.getHeaders() });\r\n //.pipe(\r\n //catchError(this.handleError(url))\r\n //);\r\n }\r\n put<T = any>(url: string, body?: any | null): Observable<T> {\r\n return this.http.put<T>(this.baseUrl + url, body, { headers: this.getHeaders() });\r\n //.pipe(\r\n //catchError(this.handleError(url))\r\n //);\r\n }\r\n delete(url: string, body?: any | null): Observable<any> {\r\n return this.http.request('delete', this.baseUrl + url, { body, headers: this.getHeaders() });\r\n //return this.http.delete(environment.url + url, { headers: this.getHeaders() });\r\n //.pipe(\r\n //catchError(this.handleError(url))\r\n //);\r\n }\r\n patch<T = any>(url: string, body?: any | null): Observable<T> {\r\n return this.http.patch<T>(this.baseUrl + url, body, { headers: this.getHeaders() });\r\n }\r\n\r\n\r\n protected getHeaders(): HttpHeaders {\r\n let httpHeaders = new HttpHeaders();\r\n httpHeaders = httpHeaders.set('Content-Type', 'application/json');\r\n const tmp = this.auth.user;\r\n const token = tmp ? tmp.token : undefined;\r\n if (token)\r\n httpHeaders = httpHeaders.set('Authorization', token);\r\n return httpHeaders;\r\n }\r\n\r\n\r\n\r\n //private getParams(params?: KeyPair[] | null) {\r\n // if (!params || params.length === 0) {\r\n // return undefined;\r\n // }\r\n // let httpParams = new HttpParams();\r\n // if (params) {\r\n // for (let param of params) {\r\n // httpParams = httpParams.set(param.key, param.value);\r\n // }\r\n // }\r\n // return httpParams;\r\n //}\r\n}\r\n\r\n\r\n\r\nexport class CustomHttpParamEncoder implements HttpParameterCodec {\r\n encodeKey(key: string): string {\r\n return encodeURIComponent(key);\r\n }\r\n encodeValue(value: string): string {\r\n return encodeURIComponent(value);\r\n }\r\n decodeKey(key: string): string {\r\n return decodeURIComponent(key);\r\n }\r\n decodeValue(value: string): string {\r\n return decodeURIComponent(value);\r\n }\r\n}","import { OnInit, Directive, OnDestroy } from '@angular/core';\r\nimport { Convert } from '../utils';\r\n\r\n\r\n\r\n@Directive()\r\nexport class CoreComponent implements OnInit, OnDestroy {\r\n loading = false;\r\n\r\n ngOnInit() {\r\n this.load();\r\n }\r\n ngOnDestroy() {\r\n this.destroy();\r\n }\r\n\r\n async load() {\r\n try {\r\n if (this.loading) return;\r\n\r\n this.loading = true;\r\n await this.init();\r\n await this.bindModel();\r\n await this.bindDictionary();\r\n await this.onBindingCompleted();\r\n }\r\n finally {\r\n this.loading = false;\r\n }\r\n\r\n await this.onLoadCompleted();\r\n }\r\n init() { }\r\n bindModel() { }\r\n bindDictionary() { }\r\n onBindingCompleted() { }\r\n onLoadCompleted() { }\r\n\r\n async destroy() {\r\n }\r\n}","import { Input, Directive, Type, inject } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\nimport { PrintType } from '../models/print.model';\r\nimport { WebApiClient } from '../services';\r\nimport { CoreComponent } from './core.component';\r\nimport { BooleanInput } from './types';\r\nimport { Convert, FileHelper, UrlHelper } from '../utils';\r\n\r\n@Directive()\r\nexport class BaseComponent<TModel = any> extends CoreComponent {\r\n constructor(\r\n protected readonly route: ActivatedRoute,\r\n protected readonly router: Router\r\n ) {\r\n super();\r\n }\r\n\r\n\r\n private _readOnly = false;\r\n @Input()\r\n get readOnly() {\r\n return this._readOnly;\r\n }\r\n set readOnly(v: BooleanInput) {\r\n this._readOnly = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _url: string | null = null;\r\n protected get url(): string {\r\n if (!this._url)\r\n this._url = UrlHelper.getNoParam(this.router.url);\r\n return this._url;\r\n }\r\n\r\n @Input() model?: TModel | null;\r\n\r\n\r\n\r\n protected getParam(name: string) {\r\n return this.route.snapshot.paramMap.get(name);\r\n }\r\n protected getQueryParam(name: string) {\r\n return this.route.snapshot.queryParamMap.get(name);\r\n }\r\n\r\n\r\n protected navigateReturnUrl() {\r\n const returnUrl = this.getQueryParam('returnUrl') || this.getParam('returnUrl');\r\n if (returnUrl) {\r\n this.router.navigateByUrl(returnUrl);\r\n // let urlTree = this.router.parseUrl(returnUrl);\r\n // const urlWithoutParams = urlTree.root.children[PRIMARY_OUTLET].segments.map(it => it.path).join('/')\r\n // this.router.navigate([urlWithoutParams, urlTree.root.children[PRIMARY_OUTLET].segments[urlTree.root.children[PRIMARY_OUTLET].segments.length - 1].parameters]);\r\n return;\r\n }\r\n\r\n this.router.navigate([this.router.url.substring(0, this.router.url.lastIndexOf('/'))]);\r\n }\r\n\r\n\r\n cancel() {\r\n this.navigateReturnUrl();\r\n }\r\n\r\n downloadFile(blob: Blob | null, fileName: string, type?: string | null) {\r\n FileHelper.download(blob, fileName);\r\n }\r\n print(id?: number | null, printType?: PrintType) {\r\n const split = this.url.split('/');\r\n if (split.length < 2) {\r\n return;\r\n }\r\n const template = split[1];\r\n let api = inject(WebApiClient);\r\n\r\n let actionName: string;\r\n\r\n switch (printType) {\r\n case PrintType.Pdf:\r\n actionName = 'PrintPdfIdLink';\r\n break;\r\n\r\n default:\r\n actionName = 'ShowIdLink'\r\n break;\r\n }\r\n api.getString(`api/Reports/${actionName}`, { template, id }).subscribe(url => {\r\n if (url) {\r\n window.open(url, '_blank');\r\n }\r\n });\r\n }\r\n}\r\n","import { AfterContentInit, ChangeDetectorRef, Directive, ElementRef, EventEmitter, Input, Output, Renderer2 } from \"@angular/core\";\r\nimport { ControlValueAccessor } from \"@angular/forms\";\r\nimport { Convert } from \"../utils\";\r\nimport { CancelArgs } from \"./args\";\r\nimport { CoreComponent } from \"./core.component\";\r\nimport { BooleanInput } from \"./types\";\r\n\r\nlet uniqueId = 0;\r\n\r\n@Directive()\r\nexport class CoreUiComponent extends CoreComponent\r\n implements AfterContentInit, ControlValueAccessor {\r\n constructor(\r\n protected _renderer: Renderer2,\r\n protected _elementRef: ElementRef\r\n //private _changeDetector: ChangeDetectorRef\r\n ) {\r\n super();\r\n }\r\n\r\n /** The method to be called in order to update ngModel */\r\n _onChange: (value: any) => void = () => { };\r\n\r\n /**\r\n * onTouch function registered via registerOnTouch (ControlValueAccessor).\r\n * @docs-private\r\n */\r\n _onTouched: () => any = () => { };\r\n\r\n\r\n /**\r\n * Helper method that sets a property on a target element using the current Renderer\r\n * implementation.\r\n * @nodoc\r\n */\r\n protected setProperty(key: string, value: any): void {\r\n this._renderer.setProperty(this._elementRef.nativeElement, key, value);\r\n }\r\n\r\n @Output() readonly change: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() readonly changing: EventEmitter<CancelArgs> = new EventEmitter<CancelArgs>();\r\n\r\n private _name: string = `zek-${++uniqueId}`;\r\n get name(): string {\r\n return this._name;\r\n }\r\n @Input()\r\n set name(value: string) {\r\n if (this._name !== value) {\r\n this._name = value;\r\n this.onNameChanged();\r\n }\r\n }\r\n onNameChanged() { }\r\n\r\n\r\n private _isInitialized: boolean = false;\r\n get isInitialized(): boolean {\r\n return this._isInitialized;\r\n }\r\n\r\n protected _value: any = null;\r\n get value(): any {\r\n return this._value;\r\n }\r\n @Input()\r\n set value(newValue: any) {\r\n if (this._value !== newValue) {\r\n let cancelEventArgs: CancelArgs = {\r\n oldValue: this._value,\r\n newValue: newValue\r\n };\r\n\r\n this.onValueChanging(cancelEventArgs);\r\n if (cancelEventArgs.cancel === true)\r\n return;\r\n\r\n // Set this before proceeding to ensure no circular loop occurs with selection.\r\n this._value = newValue;\r\n this.onValueChanged();\r\n }\r\n }\r\n onValueChanging(e: CancelArgs) {\r\n this.changing.emit(e);\r\n }\r\n onValueChanged() { }\r\n\r\n /**\r\n * Use this method for client side change\r\n * @param newValue \r\n */\r\n setNgModel(newValue: any) {\r\n if (!this.disabled) {\r\n if (this._value !== newValue) {\r\n this.value = newValue;\r\n this._emitChangeEvent();\r\n this._onChange(this._value);//write value to NgModel\r\n }\r\n }\r\n }\r\n\r\n private _readonly: boolean = false;\r\n /** Whether the component is disabled */\r\n get readonly(): boolean {\r\n return this._readonly;\r\n }\r\n @Input()\r\n set readonly(value: BooleanInput) {\r\n let v = Convert.toBooleanProperty(value);\r\n if (this._readonly !== v) {\r\n this._readonly = v;\r\n this.onReadOnlyChanged();\r\n }\r\n }\r\n onReadOnlyChanged() { }\r\n\r\n\r\n private _disabled: boolean = false;\r\n /** Whether the component is disabled */\r\n get disabled(): boolean {\r\n return this._disabled;\r\n }\r\n @Input()\r\n set disabled(value: BooleanInput) {\r\n let v = Convert.toBooleanProperty(value);\r\n if (this._disabled !== v) {\r\n this._disabled = v;\r\n this.onDisabledChanged();\r\n }\r\n }\r\n onDisabledChanged() { }\r\n\r\n\r\n private _required: boolean = false;\r\n /** Whether the component is required */\r\n get required(): boolean {\r\n return this._required;\r\n }\r\n @Input()\r\n set required(value: BooleanInput) {\r\n let v = Convert.toBooleanProperty(value);\r\n if (this._required !== v) {\r\n this._required = v;\r\n this.onRequiredChanged();\r\n }\r\n }\r\n onRequiredChanged() { }\r\n\r\n\r\n _onInputInteraction(event: Event) {\r\n // We always have to stop propagation on the change event.\r\n // Otherwise the change event, from the input element, will bubble up and\r\n // emit its event object to the `change` output.\r\n event.stopPropagation();\r\n this.setNgModel((event.target as any).value);\r\n }\r\n\r\n /** Dispatch change event with current value. */\r\n _emitChangeEvent(): void {\r\n if (this._isInitialized) {\r\n this.change.emit(this._value);\r\n }\r\n }\r\n\r\n\r\n ngAfterContentInit() {\r\n // Mark this component as initialized in AfterContentInit because the initial value can\r\n // possibly be set by NgModel on component, and it is possible that the OnInit of the\r\n // NgModel occurs *after* the OnInit of the component.\r\n this._isInitialized = true;\r\n }\r\n\r\n\r\n /**\r\n * Sets the model value. Implemented as part of ControlValueAccessor.\r\n * (write from model to el.nativeElement)\r\n * @param value\r\n */\r\n writeValue(value: any) {\r\n this.value = value;\r\n //this._changeDetector.markForCheck();\r\n //this._renderer.setProperty(this._elementRef.nativeElement, 'value', value);\r\n }\r\n\r\n /**\r\n * Registers a callback to be triggered when the model value changes.\r\n * Implemented as part of ControlValueAccessor.\r\n * @param fn Callback to be registered.\r\n */\r\n registerOnChange(fn: (_: any) => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n /**\r\n * Registers a callback to be triggered when the control is touched.\r\n * Implemented as part of ControlValueAccessor.\r\n * @param fn Callback to be registered.\r\n */\r\n registerOnTouched(fn: any) {\r\n this._onTouched = fn;\r\n }\r\n\r\n\r\n /**\r\n * Sets the disabled state of the control. Implemented as a part of ControlValueAccessor.\r\n * @param isDisabled Whether the control should be disabled.\r\n */\r\n setDisabledState(isDisabled: boolean) {\r\n this.disabled = isDisabled;\r\n //this._changeDetector.markForCheck();\r\n //this._renderer.setProperty(this._elementRef.nativeElement, 'disabled', isDisabled);\r\n }\r\n}","import { ViewChild, Directive } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { NgForm } from '@angular/forms';\r\n\r\nimport { BaseComponent } from './base.component';\r\nimport { ApproveModel, IObjectConstructor, PrintType } from '../models';\r\nimport { ZekModal } from '../modules/modal/modal/modal.component';\r\nimport { AlertService } from '../services/alert.service';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { IService } from '../services';\r\nimport { firstValueFrom } from 'rxjs';\r\n// import { IObjectConstructor } from '../models/ctor';\r\n// import { IService } from '../services/base.service';\r\n// import { AlertService } from '../modules/alert/shared/alert.service';\r\n// import { Area } from '../models/area.model';\r\n// import { PrintType } from '../models/print.model';\r\n// import { TranslateService } from '@ngx-translate/core';\r\n// import { ModalComponent } from '../modules/modal/modal.component';\r\n\r\n@Directive()\r\nexport class EditFormComponent<TModel = any> extends BaseComponent<TModel> {\r\n id?: number | null;\r\n id2?: number | null;\r\n // area = Area;\r\n @ViewChild('f', { static: false }) form?: NgForm;\r\n\r\n\r\n approveModel: ApproveModel = {};\r\n @ViewChild('approveModal', { static: false }) protected readonly approveModal?: ZekModal;\r\n @ViewChild('disapproveModal', { static: false }) protected readonly disapproveModal?: ZekModal;\r\n // @ViewChild('submitModal', { static: false }) protected readonly submitModal?: ModalComponent;\r\n\r\n override init() {\r\n super.init();\r\n const idParam = this.getParam('id') || this.getQueryParam('id');\r\n if (idParam)\r\n this.id = +idParam;\r\n\r\n const id2Param = this.getParam('id2') || this.getQueryParam('id2');\r\n if (id2Param)\r\n this.id2 = +id2Param;\r\n }\r\n\r\n override async bindModel() {\r\n if (this.id) {\r\n this.model = await this.getModel();\r\n }\r\n else {\r\n this.initCreate();\r\n }\r\n }\r\n\r\n protected initCreate() {\r\n this.model = {} as TModel;\r\n }\r\n\r\n protected getModel(): Promise<any> {\r\n throw 'Not implemented getModel';\r\n }\r\n\r\n onSubmit(f: NgForm) {\r\n this.save(f);\r\n }\r\n async save(f?: NgForm) {\r\n if (!f || f.valid) {\r\n return await this.internalSave(true);\r\n }\r\n\r\n return false;\r\n }\r\n protected internalSave(navigateToReturnUrl?: boolean): Promise<boolean> {\r\n throw 'Not implemented internalSave';\r\n }\r\n\r\n\r\n showApproveModal() {\r\n this.approveModel = {};\r\n if (this.approveModal) {\r\n this.approveModal.show();\r\n }\r\n else {\r\n throw new Error('approveModal is null or undefined');\r\n }\r\n }\r\n async approve() {\r\n if (this.id) {\r\n this.approveModel.ids = [this.id];\r\n let approved = await this.internalApprove(this.approveModel);\r\n if (approved) {\r\n this.load();\r\n }\r\n }\r\n }\r\n protected internalApprove(model?: any): Promise<boolean> {\r\n throw 'Not implemented internalApprove';\r\n }\r\n\r\n showDisapproveModal() {\r\n this.approveModel = {};\r\n if (this.disapproveModal) {\r\n this.disapproveModal.show();\r\n }\r\n else {\r\n throw new Error('disapproveModal is null or undefined');\r\n }\r\n }\r\n async disapprove() {\r\n if (this.id) {\r\n this.approveModel.ids = [this.id];\r\n let disapproved = await this.internalDisapprove(this.approveModel);\r\n if (disapproved) {\r\n this.load();\r\n }\r\n }\r\n }\r\n protected internalDisapprove(model?: any): Promise<boolean> {\r\n throw 'Not implemented internalDisapprove';\r\n }\r\n}\r\n\r\n@Directive()\r\nexport class EditBaseComponent<TModel = any> extends EditFormComponent<TModel> {\r\n\r\n constructor(\r\n readonly service: IService,\r\n readonly translate: TranslateService,\r\n readonly alert: AlertService,\r\n route: ActivatedRoute,\r\n router: Router) {\r\n super(route, router);\r\n }\r\n\r\n protected override async internalSave(navigateToReturnUrl?: boolean | null): Promise<boolean> {\r\n this.alert.clear();\r\n let data = await firstValueFrom(this.service.save(this.model));\r\n let success = false;\r\n if (typeof data === 'number' && data > 0) {\r\n success = true;\r\n this.id = data;\r\n } else if (typeof data === 'object' && data?.success) {\r\n success = true;\r\n }\r\n\r\n if (success) {\r\n let message = await firstValueFrom(this.translate.get('Alert.SaveSuccess'));\r\n this.alert.success(message, null, 'fa-solid fa-floppy-disk');\r\n\r\n if (navigateToReturnUrl === true) {\r\n this.navigateReturnUrl();\r\n }\r\n\r\n return true;\r\n // if (navigateToReturnUrl) {\r\n // this.navigateReturnUrl();\r\n // } else if (!this.id) {//if insert\r\n // this.router.navigate([this.router.url.substring(0, this.router.url.length - 6), id]);\r\n // }\r\n } else {\r\n let message = await firstValueFrom(this.translate.get('Alert.SaveError'));\r\n this.alert.error(message, null, 'fa-solid fa-floppy-disk');\r\n return false;\r\n }\r\n }\r\n\r\n protected override async internalApprove(model?: any): Promise<boolean> {\r\n let data = await firstValueFrom(this.service.approve(model));\r\n if (data && data.length > 0) {\r\n let message = await firstValueFrom(this.translate.get('Alert.Approved'));\r\n this.alert.success(message, null, 'fa-solid fa-floppy-disk');\r\n return true;\r\n } else {\r\n let message = await firstValueFrom(this.translate.get('Alert.ApproveError'));\r\n this.alert.error(message, null, 'fa-solid fa-floppy-disk');\r\n return false;\r\n }\r\n }\r\n\r\n protected override async internalDisapprove(model?: any): Promise<boolean> {\r\n let data = await firstValueFrom(this.service.disapprove(model));\r\n if (data && data.length > 0) {\r\n let message = await firstValueFrom(this.translate.get('Alert.Disapproved'));\r\n this.alert.success(message, null, 'fa-solid fa-floppy-disk');\r\n return true;\r\n } else {\r\n let message = await firstValueFrom(this.translate.get('Alert.DisapproveError'));\r\n this.alert.error(message, null, 'fa-solid fa-floppy-disk');\r\n return false;\r\n }\r\n }\r\n\r\n protected async internalSubmit(model?: any): Promise<boolean> {\r\n let data = await firstValueFrom(this.service.approve(model));\r\n if (data && data.length > 0) {\r\n let message = await firstValueFrom(this.translate.get('Alert.Submitted'));\r\n this.alert.success(message, null, 'fa-solid fa-floppy-disk');\r\n return true;\r\n } else {\r\n let message = await firstValueFrom(this.translate.get('Alert.SubmitError'));\r\n this.alert.error(message, null, 'fa-solid fa-floppy-disk');\r\n return false;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n protected override async getModel() {\r\n if (this.id2)\r\n return await firstValueFrom(this.service.get2(this.id, this.id2));\r\n else\r\n return await firstValueFrom(this.service.get(this.id));\r\n }\r\n protected override initCreate() {\r\n this.model = {} as TModel;\r\n }\r\n\r\n override print(printType?: PrintType) {\r\n super.print(this.id, printType);\r\n }\r\n\r\n async restore() {\r\n let data = await firstValueFrom(this.service.restore(this.id))\r\n if (data?.success) {\r\n let message = await firstValueFrom(this.translate.get('Alert.Restored'));\r\n this.alert.success(message);\r\n this.load();\r\n }\r\n }\r\n export(fileTypeId: number) {\r\n this.service.export({ id: this.id }, fileTypeId).subscribe(data => {\r\n this.downloadFile(data, 'export.xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');\r\n });\r\n }\r\n}\r\n\r\n@Directive()\r\nexport class EditComponent<TModel> extends EditBaseComponent<TModel> {\r\n\r\n constructor(\r\n private readonly ctorModel: IObjectConstructor<TModel>,\r\n service: IService,\r\n translate: TranslateService,\r\n alert: AlertService,\r\n route: ActivatedRoute,\r\n router: Router) {\r\n super(service, translate, alert, route, router);\r\n }\r\n\r\n protected override initCreate() {\r\n this.model = new this.ctorModel();\r\n }\r\n}","export class EditBase {\r\n id?: number | null;\r\n\r\n isDeleted?: boolean | null;\r\n readOnly?: boolean | null;\r\n}","export class FileBase {\r\n id?: number | null;\r\n //mimeType: string;\r\n fileName?: string | null;\r\n fileType?: string | null;\r\n fileSize?: number | null;\r\n isDeleted?: boolean | null;\r\n}\r\nexport class FileString extends FileBase {\r\n data?: string | null;\r\n\r\n constructor(init?: Partial<FileString>) {\r\n super();\r\n if (init) {\r\n Object.assign(this, init);\r\n }\r\n }\r\n}\r\nexport class FileBytes extends FileBase {\r\n //data: byte[];\r\n\r\n constructor(init?: Partial<FileString>) {\r\n super();\r\n if (init) {\r\n Object.assign(this, init);\r\n }\r\n }\r\n}","export class FilterBase {\r\n id?: number | null = null;\r\n isDeleted: boolean | null = null;\r\n quickSearch: string | null = null;\r\n\r\n page: number = 1;\r\n pageSize: number = 10;\r\n\r\n sort: string | null = null;\r\n asc: boolean = false;\r\n}","export enum Gender {\r\n Male = 1,\r\n Female = 2,\r\n}","export class KeyPair<TKey = any, TValue = any> {\r\n key?: TKey | null;\r\n value?: TValue | null;\r\n\r\n constructor(init?: Partial<KeyPair>) {\r\n if (init) {\r\n Object.assign(this, init);\r\n }\r\n }\r\n}\r\n\r\nexport class KeyPairEx<TKey = any, TValue = any> extends KeyPair<TKey, TValue> {\r\n [key: string]: any\r\n}\r\n\r\nexport class KeyPairChecked<TKey = any, TValue = any> extends KeyPair<TKey, TValue> {\r\n checked?: boolean | null;\r\n\r\n}\r\n\r\nexport class KeyPairRequired<TKey = any, TValue = any> extends KeyPair<TKey, TValue> {\r\n required?: boolean | null;\r\n}","export class ListBase {\r\n id?: number | null;\r\n isDeleted?: boolean | null;\r\n}","export enum Month\r\n{\r\n January = 1,\r\n February = 2,\r\n March = 3,\r\n April = 4,\r\n May = 5,\r\n June = 6,\r\n July = 7,\r\n August = 8,\r\n September = 9,\r\n October = 10,\r\n November = 11,\r\n December = 12\r\n}","export class PagerBase {\r\n totalItemCount: number = 0;\r\n}\r\n\r\nexport class Pager extends PagerBase {\r\n pageCount = 1;\r\n pageNumber = 1;\r\n pageSize = 25;\r\n hasPreviousPage = false;\r\n hasNextPage = false;\r\n isFirstPage = false;\r\n isLastPage = false;\r\n firstItemOnPage = 0;\r\n lastItemOnPage = 0;\r\n\r\n pages: number[] = [];\r\n}\r\n\r\nexport class PagedListBase<T = any> {\r\n data: T[] = [];\r\n\r\n pager: Pager = new Pager();\r\n\r\n totalItemCount = 0;\r\n pageNumber = 1;\r\n pageSize = 25;\r\n count = 0;\r\n}\r\nexport class PagedList<T = any> extends PagedListBase<T>\r\n{\r\n pageCount = 1;\r\n hasPreviousPage = false;\r\n hasNextPage = false;\r\n isFirstPage = false;\r\n isLastPage = false;\r\n firstItemOnPage = 0;\r\n lastItemOnPage = 0;\r\n}","import { KeyPair } from './key-pair.model';\r\n\r\nexport class Tree extends KeyPair<number, string> {\r\n parentId?: number | null;\r\n children?: Tree[] | null;\r\n childrenCount?: number | null;\r\n indent?: number | null;\r\n childrenIds?: number[] | null;\r\n}","export class ValidEventArgs {\r\n valid: boolean = true;\r\n}","export * from './alert-type';\r\nexport * from './approve.moodel';\r\nexport * from './batch.model';\r\nexport * from './captcha.model';\r\nexport * from './ctor';\r\nexport * from './edit-base.model';\r\nexport * from './file.model';\r\nexport * from './filter.model';\r\nexport * from './gender.model';\r\nexport * from './key-pair.model';\r\nexport * from './list-base.model';\r\nexport * from './login.model';\r\nexport * from './month.model';\r\nexport * from './nav.model';\r\nexport * from './pager.model';\r\nexport * from './print.model';\r\nexport * from './tree.model';\r\nexport * from './valid-event-args.model';\r\n\r\n\r\n//export * from './';","import { Router, ActivatedRoute } from '@angular/router';\r\nimport { ViewChild, Directive, Input } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\nimport { IService } from '../services';\r\nimport { BaseComponent } from './base.component';\r\nimport { ApproveModel, FilterBase, PagedList, Pager, PrintType } from '../models';\r\nimport { ZekModal } from '../modules/modal/modal/modal.component';\r\nimport { AlertService } from '../services/alert.service';\r\nimport { FilterHelper, PagerHelper, StorageHelper, StringHelper, UrlHelper } from '../utils';\r\nimport { firstValueFrom } from 'rxjs';\r\n// declare let bootstrap: any;\r\n\r\n@Directive()\r\nexport class ListBaseComponent<TService extends IService = IService, TPagedListData = any> extends BaseComponent<PagedList<TPagedListData>> {\r\n filter: any = new FilterBase();\r\n saveFilter = true;\r\n sortFields: any;\r\n protected internalFilter: any = new FilterBase();\r\n isFiltered: boolean = false;\r\n selectedIds: any[] = [];\r\n pager = new Pager();\r\n sumModel: any;\r\n\r\n\r\n @ViewChild('filterModal', { static: false }) protected readonly filterModal?: ZekModal | null;\r\n\r\n approveModel: ApproveModel = {};\r\n @ViewChild('approveModal', { static: false }) protected readonly approveModal?: ZekModal | null;\r\n protected approvedMesage = 'Alert.Approved';\r\n\r\n @ViewChild('disapproveModal', { static: false }) protected readonly disapproveModal?: ZekModal | null;\r\n protected disapprovedMesage = 'Alert.Disapproved';\r\n\r\n constructor(\r\n protected readonly service: TService,\r\n readonly translate: TranslateService,\r\n readonly alert: AlertService,\r\n route: ActivatedRoute,\r\n router: Router) {\r\n super(route, router);\r\n }\r\n\r\n override init() {\r\n super.init();\r\n\r\n this.reset();\r\n this.initDefaultFilter();\r\n this.initStoredFilter();\r\n this.assignFilter();\r\n\r\n //this.selectedIds = [];\r\n //this.pagedList = new PagedList();\r\n }\r\n override async bindModel(): Promise<void> {\r\n this.selectedIds = [];\r\n this.model = await firstValueFrom(this.service.getAll(this.internalFilter));\r\n if (this.model) {\r\n let totalCount = this.model.totalItemCount;\r\n if (!totalCount && this.model.pager) {\r\n totalCount = this.model.pager ? (this.model.pager.totalItemCount || 0) : 0;\r\n }\r\n this.pager = PagerHelper.get(totalCount, this.internalFilter.page, this.internalFilter.pageSize);\r\n\r\n }\r\n else\r\n this.pager = new Pager();\r\n //this.pagedList.pager = this.pager;\r\n }\r\n\r\n\r\n protected initDefaultFilter() {\r\n }\r\n private initStoredFilter() {\r\n let filterParam = this.getQueryParam('filter') || this.getParam('filter');\r\n\r\n if (filterParam) {\r\n const tmp = StorageHelper.get('filter');\r\n if (tmp && tmp.url && tmp.url === this.url && tmp.filter) {\r\n this.filter = Object.assign({}, tmp.filter);\r\n //we dont need this.assignFilter(); because after initStoredFilter(); will be assigned.\r\n } else {\r\n localStorage.removeItem('filter');\r\n }\r\n } else {\r\n localStorage.removeItem('filter');\r\n }\r\n }\r\n changePage(page: number) {\r\n this.internalFilter.page = page;\r\n this.filter.page = page;\r\n this.refresh();\r\n this.autoSaveFilter();\r\n }\r\n changePageSize(pageSize: number) {\r\n this.internalFilter.pageSize = pageSize;\r\n this.filter.pageSize = pageSize;\r\n this.changePage(1);\r\n }\r\n showFilter() {\r\n this.filterModal?.show();\r\n }\r\n search() {\r\n //this.filterModal?.hide();\r\n this.assignFilter();\r\n this.changePage(1);\r\n //this.internalAutoSaveFilter();\r\n }\r\n protected assignFilter() {\r\n this.internalFilter = Object.assign({}, this.filter);\r\n this.isFiltered = !FilterHelper.isEmpty(this.internalFilter);\r\n }\r\n private autoSaveFilter() {\r\n if (this.saveFilter)\r\n this.internalSaveFilter()\r\n }\r\n private internalSaveFilter() {\r\n StorageHelper.set('filter', {\r\n url: this.url,\r\n filter: this.internalFilter\r\n });\r\n }\r\n reset() {\r\n this.filter = { page: 1, pageSize: 25 };\r\n this.assignFilter();\r\n }\r\n refresh() {\r\n this.bindModel();\r\n }\r\n\r\n\r\n create() {\r\n const url = UrlHelper.getNoParam(this.router.url);\r\n // this.router.navigate([url, 'create', { returnUrl: url + ';filter=1' }]);\r\n this.router.navigate([url, 'create'],\r\n { queryParams: { returnUrl: url + '?filter=1' } }\r\n );\r\n }\r\n async delete(id: number) {\r\n this.alert.clear();\r\n let data = await firstValueFrom(this.service.delete(id));\r\n if (data?.success) {\r\n let message = await firstValueFrom(this.translate.get('Alert.Deleted'));\r\n this.alert.error(message, null, 'fa-solid fa-trash')\r\n this.refresh();\r\n }\r\n }\r\n async delete2(id: number, id2: number) {\r\n this.alert.clear();\r\n let data = await firstValueFrom(this.service.delete2(id, id2))\r\n if (data?.success) {\r\n let message = await firstValueFrom(this.translate.get('Alert.Deleted'));\r\n this.alert.error(message, null, 'fa-solid fa-trash')\r\n this.refresh();\r\n }\r\n }\r\n\r\n edit(id: number) {\r\n // this.router.navigate([this.url, id],\r\n // { queryParams: { returnUrl: this.url + ';filter=1' } }\r\n // );\r\n\r\n this.router.navigate([this.url, id],\r\n { queryParams: { returnUrl: this.url + '?filter=1' } }\r\n );\r\n }\r\n edit2(id: number, id2: number) {\r\n // this.router.navigate([this.url, id, id2, { returnUrl: this.url + ';filter=1' }]);\r\n this.router.navigate([this.url, id, id2],\r\n { queryParams: { returnUrl: this.url + '?filter=1' } }\r\n );\r\n }\r\n select(item: any) {\r\n item.selected = !item.selected;\r\n let id = item.id;\r\n if (id) {\r\n if (item.selected) {\r\n this.selectedIds.push(id);\r\n } else {\r\n this.selectedIds = this.selectedIds.filter(item => item !== id);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n showApproveModal(id: number) {\r\n if (!id || !this.approveModal) return;\r\n\r\n let tmp = { ids: [id] };\r\n this.approveModel = {};\r\n this.approveModal.show(tmp);\r\n }\r\n showApproveSelectedModal() {\r\n let tmp = { ids: this.getSelectedIds() };\r\n if (!tmp.ids || tmp.ids.length === 0 || !this.approveModal) return;\r\n\r\n this.approveModel = {};\r\n this.approveModal.show(tmp);\r\n }\r\n async approve(m: any) {\r\n if (!m) return;\r\n\r\n this.alert.clear();\r\n let data = await firstValueFrom(this.service.approve(m));\r\n if (!data || data.length === 0)\r\n return;\r\n\r\n let message = await firstValueFrom(this.translate.get(this.approvedMesage));\r\n this.alert.success(message, null, 'fa-solid fa-thumbs-up')\r\n this.refresh();\r\n }\r\n\r\n\r\n showDisapproveModal(id: number) {\r\n if (!id || !this.disapproveModal) return;\r\n\r\n let tmp = { ids: [id] };\r\n this.approveModel = {};\r\n this.disapproveModal.show(tmp);\r\n }\r\n showDisapproveSelectedModal() {\r\n let tmp = { ids: this.getSelectedIds() };\r\n if (!tmp.ids || tmp.ids.length === 0 || !this.disapproveModal) return;\r\n\r\n this.approveModel = {};\r\n this.disapproveModal.show(tmp);\r\n }\r\n async disapprove(m: any) {\r\n if (!m || !this.approveModel) return;\r\n\r\n if (typeof m === 'object') {\r\n m.status = this.approveModel.status;\r\n m.comment = StringHelper.tryTrim(this.approveModel.comment);\r\n if (!m.comment) delete m.comment;\r\n }\r\n\r\n this.alert.clear();\r\n let data = await firstValueFrom(this.service.disapprove(m));\r\n if (!data || data.length === 0)\r\n return;\r\n\r\n let message = await firstValueFrom(this.translate.get(this.disapprovedMesage));\r\n this.alert.success(message, null, 'fa-solid fa-thumbs-down')\r\n this.refresh();\r\n }\r\n\r\n getSelectedIds() {\r\n return this.selectedIds;\r\n // if (!this.pagedList || !this.pagedList.data) return [];\r\n\r\n // let ids = [];\r\n // for (const item of this.pagedList.data) {\r\n // if (!item.selected || !item.id) continue;\r\n\r\n // ids.push(item.id);\r\n // }\r\n // return ids;\r\n }\r\n\r\n showSum() { }\r\n async sum() {\r\n this.sumModel = null;\r\n let data = await firstValueFrom(this.service.sum(this.internalFilter));\r\n if (data) {\r\n this.sumModel = data;\r\n this.showSum();\r\n } else {\r\n let message = await firstValueFrom(this.translate.get('Alert.SumError'));\r\n this.alert.error(message);\r\n }\r\n }\r\n\r\n export(fileTypeId: number) {\r\n this.service.export(this.internalFilter, fileTypeId).subscribe(data => {\r\n this.downloadFile(data, 'export.xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');\r\n });\r\n }\r\n\r\n\r\n override print(printType?: PrintType) {\r\n if (!this.model || !this.model.data) return;\r\n\r\n let ids = this.getSelectedIds();\r\n for (const id of ids) {\r\n super.print(id, printType);\r\n }\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DateHelper } from '../../utils';\r\n\r\n@Pipe({\r\n standalone: true,\r\n name: 'age'\r\n})\r\nexport class AgePipe implements PipeTransform {\r\n transform(value: any, now?: any): number | null {\r\n if (typeof value === 'undefined' || value === null || value === '' || value !== value) return null;\r\n \r\n const date = DateHelper.toDate(value);\r\n\r\n let timeDiff = (now ? DateHelper.toDate(now).getTime() : Date.now()) - date.getTime();\r\n return Math.floor((timeDiff / (1000 * 3600 * 24)) / 365.25);\r\n }\r\n}","import { Component, Input } from '@angular/core';\r\nimport { BooleanInput, CoreComponent } from '../../../components';\r\nimport { AlertType } from '../../../models';\r\nimport { Convert } from '../../../utils';\r\nimport { BootstrapHelper } from '../../../utils/bootstrap.helper';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-alert',\r\n templateUrl: './alert.html',\r\n styles: [':host { display: block; }'],\r\n imports: [CommonModule]\r\n})\r\nexport class ZekAlert extends CoreComponent {\r\n private _type: AlertType | null | undefined = 'info';\r\n @Input()\r\n get type(): AlertType | null | undefined {\r\n return this._type;\r\n }\r\n set type(v: AlertType | null | undefined) {\r\n if (v !== this._type) {\r\n this._type = v\r\n this.init();\r\n }\r\n }\r\n\r\n _showClose: boolean = true;\r\n @Input()\r\n get showClose(): boolean {\r\n return this._showClose;\r\n }\r\n set showClose(v: BooleanInput) {\r\n this._showClose = Convert.toBooleanProperty(v);\r\n }\r\n\r\n @Input() title?: string | null;\r\n\r\n\r\n override init() {\r\n this.cssAlert = BootstrapHelper.cssAlert(this._type);\r\n this.cssIcon = BootstrapHelper.cssAlertIcon(this._type);\r\n }\r\n\r\n cssAlert = '';\r\n cssIcon = '';\r\n}\r\n\r\n","<div class=\"alert {{cssAlert}} alert-dismissible fade show\" role=\"alert\">\r\n <button *ngIf=\"_showClose\" type=\"button\" class=\"btn-close\" data-bs-dismiss=\"alert\" aria-label=\"Close\"></button>\r\n <div class=\"row\">\r\n <div class=\"col-auto pe-1\" *ngIf=\"cssIcon\">\r\n <span class=\"flex-shrink-0\"><i class=\"{{cssIcon}}\"></i></span>\r\n </div>\r\n <div class=\"col-auto\">\r\n <div *ngIf=\"title\">\r\n <h5 class=\"alert-heading\">{{title}}</h5>\r\n </div>\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n</div>","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { BootstrapHelper, Convert } from '../../../utils';\r\n//declare let bootstrap: any;\r\n\r\nimport { AlertService, Toast } from '../../../services/alert.service';\r\nimport { NumberInput } from '../../../components';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nfunction clamp(v: number, min = 10, max = 3600000) {\r\n return Math.max(min, Math.min(max, v));\r\n}\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-toast',\r\n styleUrls: ['./toast.css'],\r\n templateUrl: './toast.html',\r\n imports: [CommonModule]\r\n})\r\nexport class ZekToast implements OnInit, OnDestroy {\r\n @Input()\r\n get delay(): number {\r\n return this._delay;\r\n }\r\n set delay(v: NumberInput) {\r\n let tmp = clamp(Convert.toNumber(v) || 0);\r\n if (this._delay !== tmp) {\r\n this._delay = tmp;\r\n }\r\n }\r\n _delay: number = 3000;\r\n \r\n \r\n @Input() icon = true;\r\n\r\n toasts: any[] = [];\r\n private _subscription?: Subscription;\r\n private _timeout: any;\r\n\r\n constructor(private readonly alertService: AlertService) { }\r\n\r\n ngOnInit() {\r\n this._subscription = this.alertService.getToast().subscribe((toast: Toast) => {\r\n if (!toast) {\r\n // clear alerts when an empty alert is received\r\n this.toasts = [];\r\n return;\r\n }\r\n\r\n // add toast to array\r\n this.cssInit(toast);\r\n this.toasts.unshift(toast);\r\n\r\n this._timeout = setTimeout(() => {\r\n this.remove(toast);\r\n // let toastEl = document.getElementById(`toast-${toast.id}`);\r\n // let t = new bootstrap.Toast(toastEl);\r\n // t.show();\r\n }, this._delay);\r\n\r\n\r\n // let toastElList = [].slice.call(document.querySelectorAll('.toast'))\r\n // let toastList = toastElList.map(function (toastEl) {\r\n // return new bootstrap.Toast(toastEl)\r\n // })\r\n // toastList.forEach(t => {\r\n // t.show();\r\n // });\r\n });\r\n\r\n\r\n\r\n }\r\n\r\n\r\n ngOnDestroy() {\r\n if (this._subscription) {\r\n this._subscription.unsubscribe();\r\n }\r\n this.clearTimeout();\r\n }\r\n\r\n\r\n clear() {\r\n this.alertService.clear();\r\n }\r\n remove(toast: Toast) {\r\n this.toasts = this.toasts.filter(x => x !== toast);\r\n }\r\n\r\n clearTimeout() {\r\n if (this._timeout) {\r\n clearTimeout(this._timeout);\r\n this._timeout = null;\r\n }\r\n }\r\n\r\n\r\n cssInit(toast: Toast) {\r\n if (!toast || !toast.type)\r\n return;\r\n\r\n\r\n if (this.icon && !toast.icon) {\r\n toast.icon = BootstrapHelper.cssAlertIcon(toast.type);\r\n }\r\n\r\n var v = toast as any;\r\n switch (toast.type) {\r\n case 'primary':\r\n v.css = 'bg-primary text-white';\r\n break;\r\n case 'success':\r\n v.css = 'bg-success text-white';\r\n // v.iconColor = 'text--accent-green';\r\n // v.borderColor = 'border--accent-green';\r\n break;\r\n case 'danger':\r\n v.css = 'bg-danger text-white';\r\n // v.iconColor = 'text--accent-red';\r\n // v.borderColor = 'border--accent-red';\r\n break;\r\n case 'warning':\r\n v.css = 'bg-warning text-dark';\r\n // v.iconColor = 'text--accent-yellow';\r\n // v.borderColor = 'border--accent-yellow';\r\n break;\r\n case 'info':\r\n v.css = 'bg-info text-white';\r\n // v.iconColor = 'text--accent-blue';\r\n // v.borderColor = 'border--accent-blue';\r\n break;\r\n case 'light':\r\n v.css = 'bg-light text-dark';\r\n break;\r\n case 'dark':\r\n v.css = 'bg-dark text-white';\r\n break;\r\n\r\n\r\n default:\r\n v.css = 'bg-secondary text-white';\r\n break;\r\n }\r\n }\r\n}\r\n\r\n","<div class=\"toast-container position-fixed top-0 end-0 p-3\">\r\n <div *ngFor=\"let toast of toasts\" class=\"toast fade show border-0 {{ toast.css }}\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" [attr.data-bs-delay]=\"_delay\">\r\n <div class=\"toast-header\">\r\n <span class=\"me-1\" *ngIf=\"icon && toast.icon\"><i class=\"{{ toast.icon }}\"></i></span>\r\n <strong class=\"me-auto\" *ngIf=\"toast.title\">{{ toast.title }}</strong>\r\n <button type=\"button\" class=\"btn-close ms-auto me-2\" data-bs-dismiss=\"toast\" aria-label=\"Close\" (click)=\"remove(toast)\"></button>\r\n </div>\r\n <div class=\"toast-body\">\r\n {{ toast.message }}\r\n </div>\r\n </div>\r\n <!-- <div *ngFor=\"let toast of toasts\" class=\"toast fade show\" role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\" data-bs-delay=\"3000\">\r\n <div class=\"toast-body\">\r\n <div class=\"row\">\r\n <div class=\"col-auto pe-1 border-start border-8 {{toast.borderColor}}\">\r\n <span *ngIf=\"toast.icon\" class=\"icon flex-shrink-0 {{toast.iconColor}}\"><i class=\"{{toast.icon}}\"></i></span>\r\n </div>\r\n <div class=\"col\">\r\n <div *ngIf=\"toast.title\"><h5>{{toast.title}}</h5></div>\r\n {{ toast.message }}\r\n </div>\r\n <div class=\"col-auto p-0\">\r\n <button type=\"button\" class=\"btn-close ms-auto me-2\" data-bs-dismiss=\"toast\" aria-label=\"Close\" (click)=\"remove(toast)\"></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div> -->\r\n</div>","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { AlertService, Alert } from '../../../services/alert.service';\r\nimport { BootstrapHelper } from '../../../utils';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-validation',\r\n templateUrl: './validation.html',\r\n styles: [':host { display: block; }'],\r\n imports: [CommonModule]\r\n})\r\nexport class ZekValidation implements OnInit, OnDestroy {\r\n alerts: Alert[] = [];\r\n private subscription?: Subscription;\r\n\r\n constructor(private readonly alertService: AlertService) { }\r\n\r\n ngOnInit() {\r\n this.subscription = this.alertService.getAlert().subscribe((alert: Alert) => {\r\n if (!alert) {\r\n // clear alerts when an empty alert is received\r\n this.alerts = [];\r\n return;\r\n }\r\n // add alert to array\r\n this.alerts.push(alert);\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription?.unsubscribe();\r\n }\r\n\r\n\r\n clear() {\r\n this.alertService.clear();\r\n }\r\n remove(alert: Alert) {\r\n this.alerts = this.alerts.filter(x => x !== alert);\r\n }\r\n\r\n cssIcon(alert: Alert) {\r\n if (!alert) {\r\n return;\r\n }\r\n\r\n if (alert.icon && alert.icon.length > 0)\r\n return alert.icon;\r\n\r\n\r\n if (!alert.type) {\r\n return;\r\n }\r\n\r\n return BootstrapHelper.cssAlertIcon(alert.type);\r\n }\r\n\r\n cssAlert(alert: Alert) {\r\n if (!alert) {\r\n return;\r\n }\r\n\r\n return BootstrapHelper.cssAlert(alert.type);\r\n }\r\n}","<div *ngFor=\"let alert of alerts\" class=\"alert {{ cssAlert(alert) }} alert-dismissible fade show mt-3\" role=\"alert\">\r\n <button (click)=\"remove(alert)\" type=\"button\" class=\"btn-close\" aria-label=\"Close\"></button>\r\n <div *ngFor=\"let message of alert.messages\">\r\n <i *ngIf=\"cssIcon(alert)\" class=\"{{ cssIcon(alert) }}\"></i>\r\n {{message}}\r\n </div>\r\n <ng-content></ng-content>\r\n</div>","import { AfterViewInit, ElementRef } from '@angular/core';\r\nimport { Directive } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: 'form'\r\n})\r\nexport class ZekAutoComplete implements AfterViewInit {\r\n constructor(private readonly el: ElementRef, private readonly router: Router) {\r\n\r\n }\r\n ngAfterViewInit() {\r\n if (this.router.url === '/login') {\r\n return;\r\n }\r\n\r\n this.el.nativeElement.setAttribute('autocomplete', 'off');\r\n }\r\n}","import { Component, Input, Output, EventEmitter, OnInit, AfterViewInit, OnDestroy, forwardRef } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { BooleanInput } from '../../components';\r\nimport { CoreUiComponent } from '../../components/core-ui.component';\r\nimport { KeyPair, PagedList } from '../../models';\r\nimport { Convert } from '../../utils';\r\ndeclare let bootstrap: any;\r\nlet uniqueId = 0;\r\n\r\n/**\r\n * Provider Expression that allows bb to register as a ControlValueAccessor. This\r\n * allows it to support [(ngModel)] and ngControl.\r\n * @docs-private\r\n */\r\nconst ZEK_BB_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ZekButtonBrowse),\r\n multi: true,\r\n};\r\n\r\n@Component({\r\n selector: 'zek-bb',\r\n templateUrl: './bb.component.html',\r\n providers: [ZEK_BB_CONTROL_VALUE_ACCESSOR],\r\n})\r\nexport class ZekButtonBrowse extends CoreUiComponent {\r\n override destroy() {\r\n this._modal?.dispose();\r\n this._modal = null;\r\n return super.destroy();\r\n }\r\n\r\n private _uniqueId: string = `zek-bb-${++uniqueId}`;\r\n /** The unique ID for the bb. */\r\n @Input() id: string = this._uniqueId;\r\n get modalId(): string {\r\n return `${this.id || this._uniqueId}-modal`;\r\n }\r\n filter: any = {};\r\n data: PagedList = new PagedList();\r\n\r\n\r\n private _type?: string | null;\r\n @Input()\r\n get type() {\r\n return this._type;\r\n }\r\n set type(v: string | null | undefined) {\r\n if (this._type !== v) {\r\n this._type = v;\r\n this.onValueChanged();//get and set input text\r\n }\r\n }\r\n\r\n private _text: string | null = null;\r\n @Input()\r\n get text(): string | null {\r\n return this._text;\r\n }\r\n set text(v: string | null) {\r\n if (this._text !== v) {\r\n this._text = v\r\n this.onTextChanged();\r\n }\r\n }\r\n onTextChanged() {\r\n this.onKeyPairChange.emit({ key: this._value, value: this._text } as KeyPair)\r\n }\r\n\r\n\r\n\r\n private _readOnly: boolean = false;\r\n @Input()\r\n get readOnly(): boolean {\r\n return this._readOnly;\r\n }\r\n set readOnly(v: BooleanInput) {\r\n this._readOnly = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n\r\n private _hide: boolean = false;\r\n @Input()\r\n get hide(): boolean {\r\n return this._hide;\r\n }\r\n set hide(v: BooleanInput) {\r\n this._hide = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _showInput: boolean = true;\r\n @Input()\r\n get showInput(): boolean {\r\n return this._showInput;\r\n }\r\n set showInput(v: BooleanInput) {\r\n this._showInput = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _multiSelect = false;\r\n @Input()\r\n get multiSelect() {\r\n return this._multiSelect;\r\n }\r\n set multiSelect(v: BooleanInput) {\r\n this._multiSelect = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n @Output() onShowModal = new EventEmitter();\r\n @Output() onChooseAll = new EventEmitter();\r\n @Output() onKeyPairChange = new EventEmitter<KeyPair>();\r\n @Output() onBindText = new EventEmitter();\r\n\r\n private _modal: any;\r\n get modal(): any {\r\n if (!this._modal) {\r\n let modalEl = document.getElementById(this.modalId);\r\n this._modal = new bootstrap.Modal(modalEl, { backdrop: false });\r\n }\r\n return this._modal;\r\n }\r\n set modal(v: any) {\r\n this._modal = v;\r\n }\r\n\r\n\r\n size?: '' | 'sm' | 'lg' | 'xl' | 'xxl' | null = 'lg';\r\n get _sizeCss() {\r\n switch (this.size) {\r\n case 'sm':\r\n return 'modal-sm';\r\n case 'lg':\r\n return 'modal-lg';\r\n case 'xl':\r\n return 'modal-xl';\r\n case 'xxl':\r\n return 'modal-xxl';\r\n default:\r\n return '';\r\n }\r\n }\r\n\r\n\r\n showModal() {\r\n if (!this.disabled && !this.readOnly) {\r\n this.onShowModal.emit(this.filter);\r\n\r\n this.data = new PagedList();\r\n if (this.modal)\r\n this.modal.show();\r\n }\r\n }\r\n close() {\r\n this._modal?.hide();\r\n }\r\n\r\n\r\n\r\n choose(value: any) {\r\n if (!this.disabled && !this.readOnly) {\r\n this.setNgModel(value);\r\n this.close();\r\n }\r\n }\r\n chooseAll(filter: any) {\r\n this.onChooseAll.emit(filter);\r\n this.close();\r\n }\r\n\r\n delete() {\r\n if (!this.readOnly) {//!this.disabled && \r\n this.setNgModel(undefined);\r\n }\r\n }\r\n\r\n _onKey(event: KeyboardEvent) {\r\n if (event.key === 'Delete') {\r\n this.delete();\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n override onValueChanged() {\r\n if (typeof this._value !== 'undefined' && this._value !== null &&\r\n typeof this._type !== 'undefined' && this._type !== null) {\r\n this.bindText();\r\n } else {\r\n this.text = null;\r\n }\r\n }\r\n bindText() {\r\n this.onBindText.emit();\r\n }\r\n}","<div *ngIf=\"!hide && showInput\" class=\"input-group\">\r\n <input type=\"text\" class=\"form-control\" [ngClass]=\"{ 'ng-valid required': !required || value, 'ng-invalid': required && !value }\" (keyup)=\"_onKey($event)\" title=\"ID = {{value}}\" [value]=\"text\" [attr.readonly]=\"true\">\r\n <button type=\"button\" [disabled]=\"disabled || readOnly\" class=\"btn btn-outline-secondary\" (click)=\"showModal()\">\r\n <i class=\"fa-solid fa-ellipsis\"></i>\r\n </button>\r\n <button type=\"button\" [disabled]=\"disabled || readOnly\" class=\"btn btn-outline-secondary dropdown-toggle dropdown-toggle-split\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <span class=\"visually-hidden\">Toggle Dropdown</span>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li><a class=\"dropdown-item\" (click)=\"delete()\" href=\"javascript:void(0)\"> <i class=\"fa-solid fa-trash\"></i> Delete <kbd>delete</kbd> </a></li>\r\n </ul>\r\n</div>\r\n<div *ngIf=\"!hide || disabled || readOnly\" class=\"modal fade\" [id]=\"modalId\" tabindex=\"-1\" aria-labelledby=\"bb-modal-label\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog {{_sizeCss}}\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title\" id=\"{{modalId}}-label\">{{'Action.Choose' | translate }}</h5>\r\n <button type=\"button\" (click)=\"close()\" class=\"btn-close\" data-bs-dismiss2=\"modal\" aria-label=\"Close\"></button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { BooleanInput } from '../../components';\r\nimport { Convert } from '../../utils';\r\n\r\n@Component({\r\n selector: 'zek-bb-modal-toolbar',\r\n templateUrl: './bb-modal-toolbar.html',\r\n})\r\nexport class ZekButtonBrowseModalToolbar {\r\n\r\n @Output() onSearch = new EventEmitter();\r\n search() {\r\n this.onSearch.emit();\r\n }\r\n\r\n @Output() onReset = new EventEmitter();\r\n reset() {\r\n this.onReset.emit();\r\n }\r\n\r\n private _multiSelect = false;\r\n @Input() get multiSelect() {\r\n return this._multiSelect;\r\n }\r\n set multiSelect(v: BooleanInput) {\r\n this._multiSelect = Convert.toBooleanProperty(v);\r\n }\r\n\r\n @Output() onChooseAll = new EventEmitter();\r\n chooseAll() {\r\n if (!this.multiSelect) return;\r\n this.onChooseAll.emit();\r\n }\r\n\r\n // @Output()\r\n // onCreate = new EventEmitter();\r\n // create() {\r\n // this.onCreate.emit();\r\n // }\r\n}","<ng-content select=\"[left]\"></ng-content>\r\n<button type=\"button\" (click)=\"search()\" class=\"btn btn-primary me-2\" id=\"bb-filter-button\" title=\"Filter\">\r\n <i class=\"fa-solid fa-filter\" aria-hidden=\"true\"></i>\r\n</button>\r\n<button type=\"button\" (click)=\"reset()\" class=\"btn btn-secondary me-2\" title=\"Reset\">\r\n <i class=\"fa-solid fa-xmark\" aria-hidden=\"true\"></i>\r\n</button>\r\n<button *ngIf=\"multiSelect\" type=\"button\" (click)=\"chooseAll()\" class=\"btn btn-secondary me-2\" title=\"Choose All\">\r\n <i class=\"fa-solid fa-hand-point-up\" aria-hidden=\"true\"></i>\r\n</button>\r\n<ng-content></ng-content>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\nimport { ZekButtonBrowse } from './bb.component';\r\nimport { ZekButtonBrowseModalToolbar } from './bb-modal-toolbar';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n TranslateModule,\r\n ],\r\n declarations: [\r\n ZekButtonBrowse,\r\n ZekButtonBrowseModalToolbar\r\n ],\r\n exports: [\r\n ZekButtonBrowse,\r\n ZekButtonBrowseModalToolbar\r\n ]\r\n})\r\nexport class ButtonBrowseModule { }","import { Directive, EventEmitter, Input, Output } from \"@angular/core\";\r\nimport { BooleanInput, CoreComponent } from \"../../components\";\r\nimport { PagedList } from \"../../models\";\r\nimport { Convert } from \"../../utils\";\r\n\r\n@Directive()\r\nexport class ButtonBrowseModalBaseComponent extends CoreComponent {\r\n @Input() type?: string | null;\r\n @Input() filter: any = {};\r\n @Input() data?: PagedList | null;\r\n\r\n private _multiSelect = false;\r\n @Input() get multiSelect() {\r\n return this._multiSelect;\r\n }\r\n set multiSelect(v: BooleanInput) {\r\n this._multiSelect = Convert.toBooleanProperty(v);\r\n }\r\n\r\n @Input() value: any;\r\n\r\n @Output() onChoose = new EventEmitter();\r\n choose(value: any) {\r\n this.onChoose.emit(value);\r\n }\r\n\r\n @Output() onChooseAll = new EventEmitter();\r\n chooseAll() {\r\n this.onChooseAll.emit(this.filter);\r\n }\r\n\r\n onKeydown(e: Event) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this.search();\r\n }\r\n\r\n bindData() { }\r\n async refresh() {\r\n try {\r\n this.loading = true;\r\n await this.bindData();\r\n }\r\n finally {\r\n this.loading = false;\r\n }\r\n\r\n }\r\n onPageChange(page: number) {\r\n this.filter.page = page;\r\n this.refresh();\r\n }\r\n onPageSizeChange(pageSize: number) {\r\n this.filter.pageSize = pageSize;\r\n this.onPageChange(1);\r\n }\r\n\r\n search() {\r\n this.onPageChange(1);\r\n }\r\n\r\n reset() {\r\n this.filter = {};\r\n }\r\n}","import { CommonModule } from '@angular/common';\r\nimport { Component, ElementRef, ViewChild, AfterViewInit, ChangeDetectorRef, ContentChild, AfterContentInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-card',\r\n templateUrl: './card.html',\r\n styles: [':host { display: block; }'],\r\n imports: [CommonModule]\r\n})\r\nexport class ZekCard implements AfterViewInit {\r\n /**\r\n *\r\n */\r\n constructor(private readonly cdRef: ChangeDetectorRef) {\r\n }\r\n\r\n @ViewChild('headerRef') private headerWrapper: ElementRef | undefined;\r\n @ViewChild('bodyRef') private bodyRef: ElementRef | undefined;\r\n // @ViewChild('contentRef') private contentRef: ElementRef | undefined;\r\n @ViewChild('footerRef') private footerRef: ElementRef | undefined;\r\n\r\n private _css = '';\r\n @Input()\r\n get css() {\r\n return this._css;\r\n }\r\n set css(value: string | null | undefined) {\r\n this._css = value || '';\r\n }\r\n showHeader = true;\r\n showBody = true;\r\n\r\n // showContent = true;\r\n showFooter = true;\r\n\r\n ngAfterViewInit() {\r\n this.showHeader = this.headerWrapper ? this.headerWrapper.nativeElement.childNodes.length > 0 : false;\r\n this.showBody = this.bodyRef ? this.bodyRef.nativeElement.children.length > 0 : false;\r\n // this.showContent = this.contentRef ? this.contentRef.nativeElement.children.length > 0 : false;\r\n this.showFooter = this.footerRef ? this.footerRef.nativeElement.childNodes.length > 0 : false;\r\n\r\n this.cdRef.detectChanges();\r\n }\r\n}","<div class=\"card {{css}}\">\r\n <div class=\"card-header\" #headerRef *ngIf=\"showHeader\">\r\n <ng-content select=\"[card-header]\"></ng-content>\r\n </div>\r\n <div class=\"card-body\" #bodyRef *ngIf=\"showBody\">\r\n <ng-content select=\"[card-body]\"></ng-content>\r\n </div>\r\n <ng-content></ng-content>\r\n <div class=\"card-footer\" #footerRef *ngIf=\"showFooter\">\r\n <ng-content select=\"[card-footer]\"></ng-content>\r\n </div>\r\n</div>","import { PipeTransform, Pipe } from '@angular/core';\r\n\r\n@Pipe({\r\n standalone:true,\r\n name: 'callback',\r\n pure: false//this pure need because we are changing filter model and pure=false is handling\r\n})\r\nexport class ZekCallbackPipe implements PipeTransform {\r\n transform(items: any[], callback: (item: any, filter?: any) => boolean, filter?: any): any {\r\n if (!items || !callback) {\r\n return items;\r\n }\r\n\r\n return filter\r\n ? items.filter(item => callback(item, filter))\r\n : items.filter(item => callback(item));\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DateHelper } from '../../utils';\r\n\r\n@Pipe({\r\n standalone: true,\r\n name: 'dateAgo',\r\n pure: true\r\n})\r\nexport class DateAgoPipe implements PipeTransform {\r\n\r\n transform(value: any, args?: any): string | Date | null {\r\n if (value === undefined || value === null || value === '' || value !== value) return null;\r\n\r\n const date = DateHelper.toDate(value);\r\n const seconds = Math.floor((+new Date() - +new Date(date)) / 1000);\r\n if (seconds < 29) // less than 30 seconds ago will show as 'Just now'\r\n return 'Just now';\r\n const intervals: { [key: string]: number } = {\r\n 'year': 31536000,\r\n 'month': 2592000,\r\n 'week': 604800,\r\n 'day': 86400,\r\n 'hour': 3600,\r\n 'minute': 60,\r\n 'second': 1\r\n };\r\n let counter;\r\n for (const i in intervals) {\r\n counter = Math.floor(seconds / intervals[i]);\r\n if (counter > 0)\r\n if (counter === 1) {\r\n return counter + ' ' + i + ' ago'; // singular (1 day ago)\r\n } else {\r\n return counter + ' ' + i + 's ago'; // plural (2 days ago)\r\n }\r\n }\r\n return date;\r\n }\r\n\r\n}","import { Directive, ElementRef, OnDestroy, forwardRef, HostListener, OnChanges, SimpleChanges, Inject } from '@angular/core'\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { DATE_FORMAT, LANGUAGE } from '../../tokens';\r\nimport { DateHelper } from '../../utils';\r\n\r\ndeclare let Datepicker: any;\r\n\r\nconst DATE_VALUE_ACCESSOR = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DateValueAccessor),\r\n multi: true,\r\n};\r\n\r\n\r\n\r\n@Directive({\r\n selector: '[zek-date],input[type=date][formControlName],input[type=date][formControl],input[type=date][ngModel]',//,input[type=date][ngModel]\r\n providers: [DATE_VALUE_ACCESSOR],\r\n host: {\r\n //არაა საჭირო ეს ევენტი ისედაც მუშაობს'(change)': 'onChange($event.target.value)',\r\n //აღარ არის საჭირო რადგანაც ახა ვერსიაში updateOnBlur=true აკეთებს მაგას \"(keyup)\": \"onKeyUp($event)\",\r\n }\r\n})\r\nexport class DateValueAccessor implements ControlValueAccessor, OnDestroy {\r\n //@Input() ngModel: any;\r\n private datepicker?: any;\r\n private oldValue?: Date | null = null;\r\n\r\n constructor(private el: ElementRef,\r\n @Inject(DATE_FORMAT) format: string,\r\n @Inject(LANGUAGE) language: string,\r\n @Inject('env') env?: any | null) {\r\n\r\n if (env) {\r\n if (env.datepickerFormat) {\r\n format = env.datepickerFormat;\r\n }\r\n if (env.lang) {\r\n language = env.lang;\r\n }\r\n }\r\n\r\n if (el.nativeElement.type === 'date') {\r\n el.nativeElement.type = 'text'//change input type to text to override browser default date editor\r\n }\r\n this.el.nativeElement.setAttribute('autocomplete', 'off');\r\n\r\n this.datepicker = new Datepicker(el.nativeElement, {\r\n autohide: true,\r\n //beforeShowDay: this.beforeShowDay,\r\n buttonClass: 'btn',\r\n //clearBtn: true,\r\n\r\n //datesDisabled: []\r\n daysOfWeekHighlighted: [0, 6],\r\n format: format,\r\n language: language,\r\n\r\n //prevArrow: '«',\r\n //nextArrow: '»',\r\n //orientation: 'top auto', //left|right|auto for horizontal and top|bottom|auto\r\n todayBtn: true,\r\n //todayBtnMode: 0, //0\tfocus\tMove the focused date to the current date without changing the selection. 1 select\tSelect (or toggle the selection of) the current date\r\n todayHighlight: true,\r\n updateOnBlur: true,\r\n weekStart: 1,//0:Sunday – 6:Saturday\r\n });\r\n\r\n el.nativeElement.addEventListener('changeDate', (e: CustomEvent) => {\r\n this.onChangeDate(e);//execude \r\n });\r\n\r\n setTimeout(() => {\r\n let min = this.el.nativeElement.getAttribute('min');\r\n let max = this.el.nativeElement.getAttribute('max');\r\n\r\n let minDate = min ? DateHelper.toDate(min) : null;\r\n let maxDate = max ? DateHelper.toDate(max) : null;\r\n this.datepicker.setOptions({\r\n minDate: minDate,//String|Date|Number\r\n maxDate: maxDate,//String|Date|Number\r\n });\r\n }, 0);\r\n }\r\n\r\n // onKeyUp(e: any) {\r\n\r\n // if (e && e.target) {\r\n // let v = e.target.value;\r\n // if (v && v.length === 10 && (v.indexOf('.') > 1 || (v.indexOf('/') > 1 || v.indexOf('-') > 1))) {\r\n // var parsed = Datepicker.parseDate(v, environment.datepickerFormat, environment.lang);//parseDate(v);\r\n // var date = parseDate(parsed);\r\n\r\n // if (date) {\r\n // var ev = new KeyboardEvent('keydown', {\r\n // key: \"Enter\",//datepicke listens only by key parameter. other parameter don't need. check after update new version!!!\r\n // });\r\n // console.log(e.target.dispatchEvent(ev));\r\n // }\r\n // }\r\n // }\r\n // }\r\n\r\n ngOnDestroy() {\r\n this.el.nativeElement.removeEventListener('changeDate', this.onChangeDate);\r\n\r\n if (this.datepicker && typeof this.datepicker.destroy === 'function') {\r\n this.datepicker.destroy()\r\n }\r\n }\r\n\r\n /**\r\n * Fires when user choose date in datepicker\r\n * @param e Custom event \r\n */\r\n onChangeDate(e: CustomEvent) {\r\n this.setDate(e.detail.date);\r\n }\r\n\r\n\r\n // private beforeShowDay(date: any) {\r\n // if (date.getMonth() == new Date().getMonth()) {\r\n // switch (date.getDate()) {\r\n // case 4:\r\n // return {\r\n // content: '<span data-bs-toggle=\"tooltip\" title=\"Example tooltip\">4</span>',\r\n // classes: 'bg-info'\r\n // };\r\n // case 8:\r\n // return false;\r\n // case 12:\r\n // return \"text-success\";\r\n // }\r\n // }\r\n // }\r\n\r\n\r\n //set value into ngModel (when choose date in calendar)\r\n setDate(newValue?: Date | null) {\r\n //newValue = parseDate(newValue);\r\n\r\n if (this.isReadOnly()) {\r\n //if values not equals sets old value \r\n if (!DateHelper.equals(newValue, this.oldValue)) {\r\n if (this.oldValue) {\r\n this.datepicker.setDate(this.oldValue, { clear: true });//if read only don't change date (it just changes element value not ngModel)\r\n } else {\r\n this.datepicker.setDate({ clear: true });//if read only don't change date (it just changes element value not ngModel)\r\n }\r\n }\r\n return;\r\n }\r\n\r\n this.oldValue = newValue;\r\n\r\n if (newValue) {\r\n this.onChange(DateHelper.toISODateString(newValue));\r\n } else {\r\n this.onChange(null);\r\n }\r\n }\r\n\r\n\r\n\r\n private isReadOnly() {\r\n return this.el.nativeElement.disabled || this.el.nativeElement.readOnly;\r\n }\r\n\r\n\r\n\r\n //write from model to el.nativeElement\r\n writeValue(value: any) {\r\n let date = DateHelper.parseDate(value);\r\n this.oldValue = date;\r\n\r\n if (date) {\r\n this.datepicker.setDate(date, { clear: true });//to display in input\r\n } else {\r\n this.datepicker.setDate({ clear: true });\r\n }\r\n\r\n\r\n\r\n //this._renderer.setProperty(this._elementRef.nativeElement, 'value', value);\r\n\r\n\r\n // let readOnly = this.isReadOnly();\r\n // if (readOnly) {\r\n // this.el.nativeElement.value = Datepicker.formatDate(date, this.datepicker.config.format);\r\n // }\r\n // else {\r\n // this.datepicker.setDate(date);\r\n // }\r\n }\r\n /*writeValue(date: Date) {\r\n // Create UTC Date, time is set to 00:00 in UTC time\r\n const utcDate: Date | null = date\r\n ? new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()))\r\n : null;\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'valueAsDate', utcDate);\r\n }*/\r\n\r\n //@HostListener('input', ['$event.target.valueAsDate']) onChange = (_: any) => { };\r\n\r\n\r\n //@HostListener('input', [])\r\n onChange: (_: any) => void = () => { };\r\n registerOnChange(fn: (_: any) => void): void {\r\n this.onChange = fn;\r\n }\r\n\r\n //@HostListener('blur', [])\r\n onTouched = () => { };\r\n registerOnTouched(fn: any) {\r\n this.onTouched = fn;\r\n }\r\n}","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { DATE_FORMAT, LANGUAGE } from '../../tokens';\r\nimport { DateValueAccessor } from './date-value-accessor';\r\n\r\nexport interface DatepickerConfig {\r\n dateFormat: string;\r\n language: string;\r\n}\r\n\r\n@NgModule({\r\n declarations: [DateValueAccessor],\r\n exports: [DateValueAccessor]\r\n})\r\nexport class DatepickerModule {\r\n public static forRoot(config: DatepickerConfig, environment?: any | null): ModuleWithProviders<DatepickerModule> {\r\n\r\n return {\r\n ngModule: DatepickerModule,\r\n providers: [\r\n DateValueAccessor,\r\n { provide: DATE_FORMAT, useValue: config.dateFormat },\r\n { provide: LANGUAGE, useValue: config.language },\r\n { provide: 'env', useValue: environment }\r\n ]\r\n };\r\n }\r\n\r\n public static forChild(config: DatepickerConfig, environment?: any | null) {\r\n return this.forRoot(config, environment);\r\n }\r\n}","import { Component, Output, EventEmitter, Input } from '@angular/core';\r\nimport { BooleanInput } from '../../components';\r\nimport { PrintType } from '../../models/print.model';\r\nimport { Convert } from '../../utils';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-edit-toolbar',\r\n templateUrl: './edit-toolbar.html',\r\n imports: [CommonModule, TranslateModule]\r\n})\r\nexport class ZekEditToolbar {\r\n\r\n private _showSave = true;\r\n @Input()\r\n get showSave() {\r\n return this._showSave;\r\n }\r\n set showSave(v: BooleanInput) {\r\n this._showSave = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _showCancel = true;\r\n @Input()\r\n get showCancel() {\r\n return this._showCancel;\r\n }\r\n set showCancel(v: BooleanInput) {\r\n this._showCancel = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n printType = PrintType;\r\n\r\n private _showExport = false;\r\n @Input()\r\n get showExport() {\r\n return this._showExport;\r\n }\r\n set showExport(v: BooleanInput) {\r\n this._showExport = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n private _showPrint = false;\r\n @Input()\r\n get showPrint() {\r\n return this._showPrint;\r\n }\r\n set showPrint(v: BooleanInput) {\r\n this._showPrint = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _readOnly = false;\r\n @Input()\r\n get readOnly() {\r\n return this._readOnly;\r\n }\r\n set readOnly(v: BooleanInput) {\r\n this._readOnly = Convert.toBooleanProperty(v);\r\n }\r\n\r\n @Output() onSave = new EventEmitter();\r\n // save(navigateToReturnUrl: boolean) {\r\n // this.onSave.emit(navigateToReturnUrl);\r\n // }\r\n\r\n @Output() onCancel = new EventEmitter();\r\n cancel() {\r\n this.onCancel.emit();\r\n }\r\n\r\n // @Output()\r\n // onReset = new EventEmitter();\r\n // reset() {\r\n // this.onReset.emit();\r\n // }\r\n\r\n @Output() onPrint = new EventEmitter<PrintType>();\r\n print(printType?: PrintType) {\r\n this.onPrint.emit(printType);\r\n }\r\n\r\n\r\n @Output() onExport = new EventEmitter<number>();\r\n exportExcel() {\r\n this.onExport.emit(1);\r\n }\r\n}","<div class=\"btn-toolbar\" role=\"toolbar\" aria-label=\"Action toolbar\">\r\n <ng-content select=\"[left]\"></ng-content>\r\n <div *ngIf=\"showSave\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Save group\">\r\n <button type=\"submit\" class=\"btn btn-primary\" [disabled]=\"readOnly\"><i class=\"fa-solid fa-floppy-disk\"></i> {{ 'Action.Save' | translate }}</button>\r\n </div>\r\n <div *ngIf=\"showCancel\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Cancel group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"cancel()\"><i class=\"fa-solid fa-ban\"></i> {{ 'Action.Close' | translate }}</button>\r\n </div>\r\n <div *ngIf=\"showPrint\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Print group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button>\r\n <div class=\"btn-group\" role=\"group\">\r\n <button type=\"button\" class=\"btn btn-secondary dropdown-toggle dropdown-toggle-split\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <span class=\"visually-hidden\">Toggle Dropdown</span>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Show)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button></li>\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-file-pdf\"></i> {{ 'Action.Print' | translate }} PDF</button></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showExport\" class=\"btn-group\" role=\"group\" aria-label=\"Filter / Export group\">\r\n <div class=\"btn-group\" role=\"group\">\r\n <button id=\"btnGroupExport\" type=\"button\" class=\"btn btn-secondary dropdown-toggle\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"><i class=\"fa-solid fa-download\"></i> {{ 'Action.Export' | translate }}</button>\r\n <ul class=\"dropdown-menu\" aria-labelledby=\"btnGroupExport\">\r\n <li><a class=\"dropdown-item\" href=\"javascript:void(0)\" (click)=\"exportExcel()\"><i class=\"fa-solid fa-file-excel\"></i> Excel</a></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <ng-content></ng-content>\r\n</div>","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/*\r\n * Convert bytes into largest possible unit.\r\n * Takes an precision argument that defaults to 2.\r\n * Usage:\r\n * bytes | fileSize:precision\r\n * Example:\r\n * {{ 1024 | fileSize}}\r\n * formats to: 1 KB\r\n*/\r\n@Pipe({\r\n standalone: true,\r\n name: 'fileSize'\r\n})\r\nexport class ZekFileSizePipe implements PipeTransform {\r\n\r\n private units = [\r\n 'bytes',\r\n 'kB',\r\n 'MB',\r\n 'GB',\r\n 'TB',\r\n 'PB',\r\n 'EB',\r\n 'ZB',\r\n 'YB'\r\n ];\r\n\r\n transform(bytes: number | null | undefined = 0, precision: number | null | undefined = 0): string {\r\n if (typeof bytes === 'undefined' || bytes == null)\r\n bytes = 0;\r\n if (typeof precision === 'undefined' || precision == null)\r\n precision = 0;\r\n\r\n if (isNaN(parseFloat(String(bytes))) || !isFinite(bytes)) return '?';\r\n\r\n let unit = 0;\r\n\r\n while (bytes >= 1024) {\r\n bytes /= 1024;\r\n unit++;\r\n }\r\n\r\n return bytes.toFixed(+ precision) + ' ' + this.units[unit];\r\n }\r\n}","import { Component, Output, EventEmitter, Input } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { BooleanInput, CoreComponent } from '../../../components';\r\nimport { BootstrapHelper, ComponentType, Convert, handler, RandomHelper } from '../../../utils';\r\nimport { ValidEventArgs } from '../../../models/valid-event-args.model';\r\n\r\ndeclare let bootstrap: any;\r\n// let nextUniqueId = 0;\r\n\r\n@Component({\r\n selector: 'zek-modal',\r\n templateUrl: './modal.component.html'\r\n})\r\nexport class ZekModal extends CoreComponent {\r\n constructor(private readonly translate: TranslateService) {\r\n super();\r\n this.elementId = RandomHelper.randomHex();\r\n }\r\n override async destroy() {\r\n await super.destroy();\r\n this._modal?.dispose();\r\n this._modal = null;\r\n\r\n if (this.hiddenHandler) {\r\n handler.removeListener(this.hiddenHandler);\r\n }\r\n if (this.shownHandler) {\r\n handler.removeListener(this.shownHandler);\r\n }\r\n }\r\n override init() {\r\n super.init()\r\n if (!this.okButtonText) {\r\n this.translate.get('Action.Ok').subscribe(text => {\r\n this.okButtonText = text;\r\n });\r\n }\r\n\r\n setTimeout(() => {\r\n let modalEl = this.getModalElement();\r\n if (modalEl) {\r\n this.shownHandler = handler.addListener(modalEl, 'shown.bs.modal', () => {\r\n this.onShown.emit();\r\n });\r\n\r\n this.hiddenHandler = handler.addListener(modalEl, 'hidden.bs.modal', () => {\r\n this.onHidden.emit();\r\n });\r\n }\r\n }, 1);\r\n }\r\n\r\n\r\n\r\n shownHandler?: number | null;\r\n hiddenHandler?: number | null;\r\n\r\n @Input() model: any;\r\n readonly elementId: string;\r\n\r\n\r\n private _showOk: boolean = true;\r\n @Input()\r\n get showOk(): boolean {\r\n return this._showOk;\r\n }\r\n set showOk(v: BooleanInput) {\r\n this._showOk = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _disabledOk: boolean = false;\r\n @Input()\r\n get disabledOk(): boolean {\r\n return this._disabledOk;\r\n }\r\n set disabledOk(v: BooleanInput) {\r\n this._disabledOk = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _showCancel: boolean = true;\r\n @Input()\r\n get showCancel(): boolean {\r\n return this._showCancel;\r\n }\r\n set showCancel(v: BooleanInput) {\r\n this._showCancel = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n private _autoHide: boolean = true;\r\n @Input()\r\n get autoHide(): boolean {\r\n return this._autoHide;\r\n }\r\n set autoHide(v: BooleanInput) {\r\n this._autoHide = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n @Input() title?: string | null;\r\n\r\n @Input() text?: string | null;\r\n\r\n @Input() icon?: string | null;\r\n\r\n @Input() okButtonText?: string | null;\r\n\r\n @Output() onShown = new EventEmitter<any>();\r\n\r\n @Output() onHidden = new EventEmitter<any>();\r\n\r\n @Output() onOk = new EventEmitter<any>();\r\n\r\n @Input() componentType = ComponentType.Primary;\r\n\r\n\r\n\r\n\r\n private _large: boolean = false;\r\n @Input()\r\n get large(): boolean {\r\n return this._large;\r\n }\r\n set large(v: BooleanInput) {\r\n this._large = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _xl: boolean = false;\r\n @Input()\r\n get xl(): boolean {\r\n return this._xl;\r\n }\r\n set xl(v: BooleanInput) {\r\n this._xl = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n private _scrollable: boolean = false;\r\n @Input()\r\n get scrollable(): boolean {\r\n return this._scrollable;\r\n }\r\n set scrollable(v: BooleanInput) {\r\n this._scrollable = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _fullscreen: boolean = false;\r\n @Input()\r\n get fullscreen(): boolean {\r\n return this._fullscreen;\r\n }\r\n set fullscreen(v: BooleanInput) {\r\n this._fullscreen = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _showHeader: boolean = true;\r\n @Input()\r\n get showHeader(): boolean {\r\n return this._showHeader;\r\n }\r\n set showHeader(v: BooleanInput) {\r\n this._showHeader = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _showFooter: boolean = true;\r\n @Input()\r\n get showFooter(): boolean {\r\n return this._showFooter;\r\n }\r\n set showFooter(v: BooleanInput) {\r\n this._showFooter = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n\r\n\r\n @Output() onValidating = new EventEmitter<ValidEventArgs>(false);\r\n // @Input() xxl: boolean;\r\n\r\n private _modal: any;\r\n // public get modal(): any {\r\n // if (!this._modal) {\r\n // this.getModal();\r\n // }\r\n // return this._modal;\r\n // }\r\n // public set modal(v: any) {\r\n // this._modal = v;\r\n // }\r\n\r\n protected getModalElement() {\r\n return document.getElementById('modal-' + this.elementId);\r\n }\r\n protected getModal() {\r\n let modalEl = this.getModalElement();\r\n return new bootstrap.Modal(modalEl, { backdrop: 'static' });\r\n }\r\n\r\n\r\n\r\n\r\n cssButton(): string {\r\n return BootstrapHelper.cssButton(this.componentType);\r\n }\r\n\r\n // private isShown = false;\r\n show(model?: any) {\r\n if (!model) model = {};\r\n this.model = model;\r\n\r\n // this.modal?.show();\r\n\r\n\r\n if (!this._modal) {\r\n this._modal = this.getModal();\r\n }\r\n if (this._modal) {\r\n this._modal.show();\r\n // this.isShown = true;\r\n }\r\n }\r\n\r\n hide() {\r\n // this.modal?.hide();\r\n\r\n // if (this.isShown) {\r\n // if (this._modal) {\r\n // this._modal.hide();\r\n // this.isShown = false;\r\n // }\r\n // } else {\r\n\r\n // }\r\n\r\n if (this._modal) {\r\n this._modal.hide();\r\n }\r\n else {\r\n let btn = document.getElementById('modal-cancel-button-' + this.elementId);\r\n if (btn) {\r\n btn.click();\r\n }\r\n }\r\n }\r\n\r\n ok() {\r\n let event = new ValidEventArgs();\r\n this.onValidating.emit(event);\r\n if (!event.valid) return;\r\n\r\n if (this.autoHide)\r\n this.hide();\r\n\r\n this.onOk.emit(this.model);\r\n }\r\n\r\n keyDown(e: Event) {\r\n e.preventDefault();\r\n this.ok();\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'zek-delete-modal',\r\n templateUrl: './modal.component.html'\r\n})\r\nexport class ZekDeleteModal extends ZekModal {\r\n constructor(translate: TranslateService) {\r\n super(translate);\r\n this.icon = 'fa-solid fa-trash';\r\n translate.get('Action.Delete').subscribe((res: string) => this.title = res);\r\n translate.get('Alert.DeleteQuestion').subscribe((res: string) => this.text = res);\r\n this.componentType = ComponentType.Delete;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'zek-approve-modal',\r\n templateUrl: './modal.component.html'\r\n})\r\nexport class ZekApproveModal extends ZekModal {\r\n constructor(translate: TranslateService) {\r\n super(translate);\r\n this.icon = 'fa-solid fa-thumbs-up';\r\n translate.get('Action.Approve').subscribe((res: string) => this.title = res);\r\n translate.get('Alert.ApproveQuestion').subscribe((res: string) => this.text = res);\r\n this.componentType = ComponentType.Success;\r\n }\r\n}\r\n@Component({\r\n selector: 'zek-submit-modal',\r\n templateUrl: './modal.component.html'\r\n})\r\nexport class ZekSubmitModal extends ZekModal {\r\n constructor(translate: TranslateService) {\r\n super(translate);\r\n this.icon = 'fa-solid fa-thumbs-up';\r\n translate.get('Action.Submit').subscribe((res: string) => this.title = res);\r\n translate.get('Alert.SubmitQuestion').subscribe((res: string) => this.text = res);\r\n this.componentType = ComponentType.Success;\r\n }\r\n}\r\n@Component({\r\n selector: 'zek-disapprove-modal',\r\n templateUrl: './modal.component.html'\r\n})\r\nexport class ZekDisapproveModal extends ZekModal {\r\n constructor(translate: TranslateService) {\r\n super(translate);\r\n this.icon = 'fa-solid fa-thumbs-down';\r\n translate.get('Action.Disapprove').subscribe((res: string) => this.title = res);\r\n translate.get('Alert.DisapproveQuestion').subscribe((res: string) => this.text = res);\r\n this.componentType = ComponentType.Delete;\r\n }\r\n}\r\n\r\n@Component({\r\n selector: 'zek-restore-modal',\r\n templateUrl: './modal.component.html'\r\n})\r\nexport class ZekRestoreModal extends ZekModal {\r\n constructor(translate: TranslateService) {\r\n super(translate);\r\n this.icon = 'fa-solid fa-rotate-right';\r\n translate.get('Action.Restore').subscribe((res: string) => this.title = res);\r\n translate.get('Action.RestoreQuestion').subscribe((res: string) => this.text = res);\r\n this.componentType = ComponentType.Success;\r\n }\r\n}","<div (keydown.enter)=\"keyDown($event)\" class=\"modal fade\" data-bs-backdrop=\"static\" id=\"modal-{{elementId}}\" tabindex=\"-1\" attr.aria-labelledby=\"modal-lable-{{elementId}}\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog\" [class.modal-lg]=\"large\" [class.modal-xl]=\"xl\" [class.modal-dialog-scrollable]=\"scrollable\" [class.modal-fullscreen]=\"fullscreen\">\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\" *ngIf=\"showHeader\">\r\n <ng-content select=\"header\"></ng-content>\r\n <h5 class=\"modal-title\" id=\"modal-lable-{{elementId}}\">{{title}}</h5>\r\n <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-label=\"Close\"></button>\r\n </div>\r\n <div class=\"modal-body\">\r\n {{text}}\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"modal-footer\" *ngIf=\"showFooter\">\r\n <ng-content select=\"footer\"></ng-content>\r\n <button [class.visually-hidden]=\"!showOk\" [disabled]=\"disabledOk\" type=\"button\" class=\"btn {{cssButton()}}\" id=\"modal-ok-button-{{elementId}}\" (click)=\"ok()\"><i *ngIf=\"icon\" class=\"{{ icon }}\"></i> {{ okButtonText }}</button>\r\n <button [class.visually-hidden]=\"!showCancel\" type=\"button\" class=\"btn btn-secondary\" id=\"modal-cancel-button-{{elementId}}\" data-bs-dismiss=\"modal\"><i class=\"fa-solid fa-ban\"></i> {{ 'Action.Cancel' | translate }}</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, Output, EventEmitter } from '@angular/core';\r\nimport { ZekModal } from '../modal/modal.component';\r\n\r\n@Component({\r\n selector: 'zek-filter-modal',\r\n templateUrl: './filter-modal.component.html'\r\n})\r\nexport class ZekFilterModal extends ZekModal {\r\n @Output() onReset = new EventEmitter();\r\n\r\n reset() {\r\n this.onReset.emit();\r\n }\r\n\r\n protected override getModalElement(){\r\n return document.getElementById('filter-modal');\r\n }\r\n}","<div (keydown.enter)=\"keyDown($event)\" class=\"modal fade\" data-bs-backdrop=\"static\" id=\"filter-modal\" tabindex=\"-1\" attr.aria-labelledby=\"modal-lable-{{elementId}}\" aria-hidden=\"true\">\r\n <div class=\"modal-dialog\" [class.modal-lg]=\"!xl\" [class.modal-xl]=\"xl\" >\r\n <div class=\"modal-content\">\r\n <div class=\"modal-header\">\r\n <h5 class=\"modal-title\" id=\"modal-lable-{{elementId}}\">{{ 'Action.Filter' | translate }}</h5>\r\n <button type=\"button\" class=\"btn-close\" data-bs-dismiss=\"modal\" aria-label=\"Close\"></button>\r\n </div>\r\n <div class=\"modal-body\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div class=\"modal-footer\">\r\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"ok()\"><i class=\"fa-solid fa-filter\"></i> {{ 'Action.Filter' | translate }}</button>\r\n <button *ngIf=\"showCancel\" type=\"button\" class=\"btn btn-secondary\" id=\"modal-cancel-button-{{elementId}}\" data-bs-dismiss=\"modal\"><i class=\"fa-solid fa-ban\"></i> {{ 'Action.Cancel' | translate }}</button>\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"reset()\"><i class=\"fa-solid fa-xmark\"></i> {{ 'Action.Reset' | translate }}</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, Input, ViewChild } from '@angular/core';\r\nimport { ZekModal } from '../modal/modal.component';\r\n\r\n@Component({\r\n selector: 'zek-sum-modal',\r\n templateUrl: './sum-modal.component.html'\r\n})\r\nexport class ZekSumModal {\r\n\r\n @Input() model: any;\r\n\r\n @ViewChild('sumModal', { static: false }) private modal?: ZekModal;\r\n\r\n\r\n sum() {\r\n if (this.modal) {\r\n this.modal.show();\r\n }\r\n else {\r\n throw new Error('sumModal is null or undefined');\r\n }\r\n }\r\n}","<zek-modal #sumModal [showCancel]=\"false\" [title]=\"'Action.Sum' | translate\">\r\n <table class=\"table table-striped table-borderless table-hover\">\r\n <tbody>\r\n <tr *ngFor=\"let item of model\">\r\n <td class=\"w-75\">{{item.key}}</td>\r\n <td class=\"w-25\">\r\n <ng-container *ngIf=\"item.key != 'Count'; else elseBlock\">{{item.value | number:'1.2' }}</ng-container>\r\n <ng-template #elseBlock>{{item.value}}</ng-template>\r\n </td>\r\n <tr>\r\n </tbody>\r\n </table>\r\n</zek-modal>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\nimport { \r\n ZekModal,\r\n ZekDeleteModal,\r\n ZekApproveModal,\r\n ZekDisapproveModal,\r\n ZekRestoreModal,\r\n ZekSubmitModal\r\n} from './modal/modal.component';\r\nimport { ZekFilterModal } from './filter-modal/filter-modal.component';\r\nimport { ZekSumModal } from './sum-modal/sum-modal.component';\r\nimport { RouterModule } from '@angular/router';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n TranslateModule\r\n ],\r\n declarations: [\r\n ZekModal,\r\n ZekDeleteModal,\r\n ZekApproveModal,\r\n ZekSubmitModal,\r\n ZekDisapproveModal,\r\n ZekRestoreModal,\r\n ZekFilterModal,\r\n ZekSumModal\r\n ],\r\n exports: [\r\n ZekModal,\r\n ZekDeleteModal,\r\n ZekApproveModal,\r\n ZekSubmitModal,\r\n ZekDisapproveModal,\r\n ZekRestoreModal,\r\n ZekFilterModal,\r\n ZekSumModal\r\n ]\r\n})\r\nexport class ZekModalModule { }","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml, SafeResourceUrl, SafeScript, SafeStyle, SafeUrl } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n standalone: true,\r\n name: 'safe'\r\n})\r\nexport class ZekSafePipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) {\r\n }\r\n\r\n /**\r\n * Transform\r\n *\r\n * @param value: string\r\n * @param type: string html, style, script, url, resourceUrl\r\n */\r\n transform(value: string, type?: '' | 'html' | 'style' | 'script' | 'url' | 'resourceUrl' | null): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\r\n switch (type) {\r\n case 'html':\r\n return this.sanitizer.bypassSecurityTrustHtml(value);\r\n case 'style':\r\n return this.sanitizer.bypassSecurityTrustStyle(value);\r\n case 'script':\r\n return this.sanitizer.bypassSecurityTrustScript(value);\r\n case 'url':\r\n return this.sanitizer.bypassSecurityTrustUrl(value);\r\n case 'resourceUrl':\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\r\n default:\r\n return this.sanitizer.bypassSecurityTrustHtml(value);\r\n }\r\n }\r\n}","import { Component, ViewChild } from '@angular/core';\r\n\r\nimport { ZekModal, ZekModalModule } from '../modal';\r\nimport { CoreComponent } from '../../components';\r\nimport { FileHelper } from '../../utils';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ZekSafePipe } from '../safe';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-file-viewer',\r\n templateUrl: './file-viewer.html',\r\n imports: [CommonModule, ZekModalModule, ZekSafePipe],\r\n providers: []\r\n})\r\nexport class ZekFileViewer<TModal extends ZekModal = ZekModal> extends CoreComponent {\r\n\r\n @ViewChild('viewModal', { static: true }) viewModal?: TModal | null;\r\n\r\n src?: string | null;\r\n\r\n show(url: string, extension?: string | null) {\r\n\r\n let ext = extension || FileHelper.getExtension(url);\r\n switch (ext) {\r\n case '.docx':\r\n case '.doc':\r\n this.src = 'https://docs.google.com/a/umd.edu/viewer?url=' + url + '&embedded=true';\r\n break;\r\n\r\n case '.xlsx':\r\n case '.xls':\r\n\r\n this.src = 'http://view.officeapps.live.com/op/view.aspx?src=' + url;\r\n break;\r\n\r\n // case '.jpg':\r\n // case '.jpeg':\r\n // case '.png':\r\n // case '.pdf':\r\n default:\r\n this.src = url;\r\n break;\r\n }\r\n\r\n\r\n // <!-- <iframe id=\"office\" width=\"100%\" height=\"99%\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\" allowfullscreen=\"allowfullscreen\"\r\n // src=\"https://docs.google.com/spreadsheets/u/0/d/1Yv92dG0AOki6prNq5RwRSWTpdcidzFkakW9nMf0RaUQ/preview/sheet?gid=0\"></iframe> -->\r\n\r\n // <!-- <iframe id=\"office\" width=\"100%\" height=\"99%\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" \r\n // src=\"https://docs.google.com/a/umd.edu/viewer?url=https://github.com/poychang/blog.poychang.net/raw/master/assets/post-files/THIS-IS-WORD.docx&amp;embedded=true\">\r\n // </iframe> -->\r\n // <!-- <iframe id=\"office\" width=\"100%\" height=\"99%\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\" \r\n // src=\" https://view.officeapps.live.com/op/embed.aspx?src=https://github.com/poychang/blog.poychang.net/raw/master/assets/post-files/THIS-IS-WORD.docx\">\r\n // </iframe> -->\r\n\r\n\r\n // this.src = 'http://view.officeapps.live.com/op/view.aspx?src=https://sample-videos.com/xls/Sample-Spreadsheet-50000-rows.xls';\r\n\r\n if (this.viewModal) {\r\n this.viewModal.show();\r\n }\r\n }\r\n}\r\n","<zek-modal #viewModal [fullscreen]=\"true\" [showHeader]=\"true\" [showFooter]=\"false\">\r\n <ng-container *ngIf=\"src\">\r\n <iframe id=\"office\" width=\"100%\" height=\"99%\" frameborder=\"0\" marginheight=\"0\" marginwidth=\"0\" scrolling=\"no\" allowfullscreen=\"allowfullscreen\"\r\n [src]=\"src | safe:'resourceUrl'\">\r\n </iframe>\r\n </ng-container>\r\n</zek-modal>","import { HtmlHelper } from \"../../utils\";\r\n\r\ndeclare var google: any;\r\n\r\n\r\ndeclare global {\r\n interface Window {\r\n onGoogleLibraryLoad: () => void;\r\n }\r\n}\r\n\r\nfunction loadScript(\r\n onLoaded: (google: any) => void,\r\n url?: string,\r\n nonce?: string\r\n): void {\r\n window.onGoogleLibraryLoad = () => {\r\n onLoaded(google);\r\n };\r\n\r\n const src = url || \"https://accounts.google.com/gsi/client\";\r\n HtmlHelper.loadScript(src, nonce, true, true);\r\n}\r\n\r\nexport const loader = { loadScript };","import { Component, Directive, EventEmitter, Inject, Input, Output } from \"@angular/core\";\r\nimport { loader } from './loader';\r\nimport { GOOGLE_CLIENT_ID } from \"../../tokens\";\r\nimport { CoreComponent, BooleanInput, NumberInput } from \"../../components\";\r\nimport { Convert } from \"../../utils\";\r\n\r\ndeclare let google: any;\r\nlet uniqueId = 0;\r\n\r\nexport interface GoogleLoginConfig {\r\n client_id: string;\r\n}\r\nexport type GoogleLoginButtonTextInput =\r\n 'signin_with' | 'signup_with' | 'continue_with' | 'signin' | null | undefined;\r\n\r\n\r\n@Directive({\r\n selector: 'zek-google-login',\r\n host: {\r\n '[attr.id]': 'id',\r\n }\r\n})\r\nexport class ZekGoogleLoginButton extends CoreComponent {\r\n constructor(@Inject(GOOGLE_CLIENT_ID) private readonly client_id: string) {\r\n super();\r\n }\r\n\r\n private _uniqueId: string = `zek-google-button-container-${++uniqueId}`;\r\n @Input() id: string = this._uniqueId;\r\n\r\n private _prompt: boolean = true;\r\n @Input() get prompt() {\r\n return this._prompt;\r\n }\r\n set prompt(v: BooleanInput) {\r\n this._prompt = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _autoSelect: boolean = false;\r\n @Input() get autoSelect() {\r\n return this._autoSelect;\r\n }\r\n set autoSelect(v: BooleanInput) {\r\n this._autoSelect = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n private _cancelOnTapOutside: boolean = true;\r\n @Input() get cancelOnTapOutside() {\r\n return this._cancelOnTapOutside;\r\n }\r\n set cancelOnTapOutside(v: BooleanInput) {\r\n this._cancelOnTapOutside = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n private _width: NumberInput;\r\n @Input() get width() {\r\n return this._width;\r\n }\r\n set width(v: NumberInput) {\r\n this._width = v;\r\n }\r\n\r\n\r\n private _text: GoogleLoginButtonTextInput;\r\n @Input() get text() {\r\n return this._text;\r\n }\r\n set text(v: GoogleLoginButtonTextInput) {\r\n this._text = v;\r\n }\r\n\r\n\r\n\r\n @Output() onLoginResponse = new EventEmitter();\r\n @Output() onLogin = new EventEmitter();\r\n\r\n // private _type: 'standard' | 'icon';\r\n // public get type(): '' {\r\n // return this._type;\r\n // }\r\n // public set type(v: 'standard' | 'icon') {\r\n // this._type = v;\r\n // }\r\n\r\n\r\n\r\n\r\n // private static _loaded = false;\r\n // static async loadScript() {\r\n // if (this._loaded) return;\r\n // await HtmlHelper.loadScripts('https://accounts.google.com/gsi/client');\r\n // this._loaded = true;\r\n // }\r\n\r\n\r\n private google?: any;\r\n override async init() {\r\n super.init();\r\n // await GoogleLoginButton.loadScript();\r\n\r\n if (\"google\" in window) {\r\n this.google = google;\r\n this.initialize();\r\n } else {\r\n loader.loadScript(this.onLoadComplete);\r\n }\r\n }\r\n private onLoadComplete = (google: any) => {\r\n this.google = google;\r\n this.initialize();\r\n }\r\n\r\n initialize() {\r\n this.google.accounts.id.initialize({\r\n client_id: this.client_id,\r\n callback: (response: any) => {\r\n this.handleCredentialResponse(response);\r\n },\r\n auto_select: this._autoSelect,\r\n cancel_on_tap_outside: this._cancelOnTapOutside,\r\n });\r\n\r\n setTimeout(() => {\r\n this.renderButton();\r\n this.autoPrompt();\r\n },);\r\n }\r\n renderButton() {\r\n let options: any = { theme: \"outline\", size: \"large\" };\r\n if (this._width)\r\n options.width = this._width;\r\n if (this._text)\r\n options.text = this._text\r\n\r\n this.google.accounts.id.renderButton(\r\n document.getElementById(this.id),\r\n // this._elementRef.nativeElement.parentElement,\r\n options // customization attributes\r\n );\r\n }\r\n autoPrompt() {\r\n if (this._prompt)\r\n this.google.accounts.id.prompt(); // also display the One Tap dialog\r\n }\r\n\r\n\r\n handleCredentialResponse(response: any) {\r\n this.onLoginResponse?.emit(response);\r\n this.onLogin?.emit(response.credential);\r\n\r\n // let payload = JwtHelper.decode(response.credential);\r\n // console.log(\"ID: \" + payload.sub);\r\n // console.log('Full Name: ' + payload.name);\r\n // console.log('Given Name: ' + payload.given_name);\r\n // console.log('Family Name: ' + payload.family_name);\r\n // console.log(\"Image URL: \" + payload.picture);\r\n // console.log(\"Email: \" + payload.email);\r\n }\r\n}","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { GoogleLoginConfig, ZekGoogleLoginButton } from './google-login-button';\r\nimport { GOOGLE_CLIENT_ID } from '../../tokens';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n ZekGoogleLoginButton\r\n ],\r\n exports: [\r\n ZekGoogleLoginButton\r\n ]\r\n})\r\nexport class ZekGoogleLoginModule {\r\n public static forRoot(config: GoogleLoginConfig): ModuleWithProviders<ZekGoogleLoginModule> {\r\n return {\r\n ngModule: ZekGoogleLoginModule,\r\n providers: [\r\n ZekGoogleLoginButton,\r\n {\r\n provide: GOOGLE_CLIENT_ID,\r\n useValue: config.client_id\r\n },\r\n ]\r\n };\r\n }\r\n\r\n\r\n public static forChild(config: GoogleLoginConfig) {\r\n return this.forRoot(config);\r\n }\r\n}","import { Component, Output, EventEmitter, Input } from '@angular/core';\r\nimport { BooleanInput } from '../../../components';\r\nimport { Convert } from '../../../utils';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-grid-toolbar',\r\n templateUrl: './grid-toolbar.html',\r\n imports: [CommonModule, TranslateModule]\r\n})\r\nexport class ZekGridToolbar {\r\n // constructor(private readonly router: Router) {\r\n // //private readonly viewContainerRef: ViewContainerRef,\r\n // }\r\n\r\n // getParentComponent(): any {\r\n // return this.viewContainerRef['_data'].componentView.component.viewContainerRef['_view'].component\r\n // }\r\n\r\n @Input() model: any;\r\n\r\n private _showEdit: boolean = true;\r\n @Input()\r\n get showEdit(): boolean {\r\n return this._showEdit;\r\n }\r\n set showEdit(v: BooleanInput) {\r\n this._showEdit = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _editEnabled: boolean = true;\r\n @Input()\r\n get editEnabled(): boolean {\r\n return this._editEnabled;\r\n }\r\n set editEnabled(v: BooleanInput) {\r\n this._editEnabled = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _showDelete: boolean = true;\r\n @Input()\r\n get showDelete(): boolean {\r\n return this._showDelete;\r\n }\r\n set showDelete(v: BooleanInput) {\r\n this._showDelete = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _deleteEnabled: boolean = true;\r\n @Input()\r\n get deleteEnabled(): boolean {\r\n return this._deleteEnabled;\r\n }\r\n set deleteEnabled(v: BooleanInput) {\r\n this._deleteEnabled = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _showRestore: boolean = false;\r\n @Input()\r\n get showRestore(): boolean {\r\n return this._showRestore;\r\n }\r\n set showRestore(v: BooleanInput) {\r\n this._showRestore = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _restoreEnabled: boolean = true;\r\n @Input()\r\n get restoreEnabled(): boolean {\r\n return this._restoreEnabled;\r\n }\r\n set restoreEnabled(v: BooleanInput) {\r\n this._restoreEnabled = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n @Input() approveText = 'Action.Approve';\r\n private _showApprove: boolean = false;\r\n @Input()\r\n get showApprove(): boolean {\r\n return this._showApprove;\r\n }\r\n set showApprove(v: BooleanInput) {\r\n this._showApprove = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private _approveEnabled: boolean = false;\r\n @Input()\r\n get approveEnabled(): boolean {\r\n return this._approveEnabled;\r\n }\r\n set approveEnabled(v: BooleanInput) {\r\n this._approveEnabled = Convert.toBooleanProperty(v);\r\n }\r\n\r\n @Input() disapproveText = 'Action.Disapprove';\r\n private _showDisapprove: boolean = false;\r\n @Input()\r\n get showDisapprove(): boolean {\r\n return this._showDisapprove;\r\n }\r\n set showDisapprove(v: BooleanInput) {\r\n this._showDisapprove = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n private _disapproveEnabled: boolean = false;\r\n @Input()\r\n get disapproveEnabled(): boolean {\r\n return this._disapproveEnabled;\r\n }\r\n set disapproveEnabled(v: BooleanInput) {\r\n this._disapproveEnabled = Convert.toBooleanProperty(v);\r\n }\r\n\r\n @Output() onEdit = new EventEmitter<any>();\r\n edit() {\r\n //this.router.navigate([this.router.url, this.model]);\r\n this.onEdit.emit(this.model);\r\n }\r\n\r\n @Output() onDelete = new EventEmitter<any>();\r\n delete() {\r\n this.onDelete.emit(this.model)\r\n }\r\n\r\n @Output() onApprove = new EventEmitter<any>();\r\n approve() {\r\n this.onApprove.emit(this.model)\r\n }\r\n\r\n @Output() onDisapprove = new EventEmitter<any>();\r\n disapprove() {\r\n this.onDisapprove.emit(this.model)\r\n }\r\n\r\n @Output() onRestore = new EventEmitter<any>();\r\n restore() {\r\n this.onRestore.emit(this.model)\r\n }\r\n}\r\n","<div class=\"btn-group btn-group-sm\" role=\"group\" aria-label=\"Table action group\">\r\n <button *ngIf=\"showEdit\" (click)=\"edit()\" type=\"button\" class=\"btn btn-secondary\" title=\"{{ 'Action.Edit' | translate }}\" [disabled]=\"!editEnabled\">\r\n <i class=\"fa-solid fa-pencil\"></i>\r\n </button>\r\n <button *ngIf=\"showApprove\" (click)=\"approve()\" type=\"button\" class=\"btn btn-success\" title=\"{{ approveText | translate }}\" [disabled]=\"!approveEnabled\">\r\n <i class=\"fa-solid fa-thumbs-up\"></i>\r\n </button>\r\n <button *ngIf=\"showDisapprove\" (click)=\"disapprove()\" type=\"button\" class=\"btn btn-danger\" title=\"{{ disapproveText | translate }}\" [disabled]=\"!disapproveEnabled\">\r\n <i class=\"fa-solid fa-thumbs-down\"></i>\r\n </button>\r\n <button *ngIf=\"showDelete\" (click)=\"delete()\" type=\"button\" class=\"btn btn-danger\" title=\"{{ 'Action.Delete' | translate }}\" [disabled]=\"!deleteEnabled\">\r\n <i class=\"fa-solid fa-trash\"></i>\r\n </button>\r\n <button *ngIf=\"showRestore\" (click)=\"restore()\" type=\"button\" class=\"btn btn-success\" title=\"{{ 'Action.Restore' | translate }}\" [disabled]=\"!restoreEnabled\">\r\n <i class=\"fa-solid fa-clock-rotate-left\"></i>\r\n </button>\r\n <ng-content></ng-content>\r\n</div>","import { Component } from \"@angular/core\";\r\nimport { ZekGridToolbar } from \"../grid-toolbar/grid-toolbar\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { TranslateModule } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-grid-toolbar-bar',\r\n templateUrl: './grid-toolbar-bar.html',\r\n imports: [CommonModule, TranslateModule]\r\n})\r\nexport class ZekGridToolbarBar extends ZekGridToolbar {\r\n\r\n}","<button type=\"button\" class=\"btn btn-light btn-sm\" data-bs-toggle=\"dropdown\">\r\n <i class=\"fa-solid fa-ellipsis\"></i>\r\n</button>\r\n<ul class=\"dropdown-menu\">\r\n <li><button *ngIf=\"showEdit\" (click)=\"edit()\" type=\"button\" class=\"dropdown-item\" [disabled]=\"!editEnabled\">\r\n <i class=\"fa-solid fa-pencil\"></i> {{ 'Action.Edit' | translate }}\r\n </button></li>\r\n <li><button *ngIf=\"showApprove\" (click)=\"approve()\" type=\"button\" class=\"dropdown-item\" [disabled]=\"!approveEnabled\">\r\n <i class=\"fa-solid fa-thumbs-up\"></i> {{ approveText | translate }}\r\n </button></li>\r\n <li><button *ngIf=\"showDisapprove\" (click)=\"disapprove()\" type=\"button\" class=\"dropdown-item\" [disabled]=\"!disapproveEnabled\">\r\n <i class=\"fa-solid fa-thumbs-down\"></i> {{ disapproveText | translate }}\r\n </button></li>\r\n <li><button *ngIf=\"showDelete\" (click)=\"delete()\" type=\"button\" class=\"dropdown-item\" [disabled]=\"!deleteEnabled\">\r\n <i class=\"fa-solid fa-trash\"></i> {{ 'Action.Delete' | translate }}\r\n </button></li>\r\n <li><button *ngIf=\"showRestore\" (click)=\"restore()\" type=\"button\" class=\"dropdown-item\" [disabled]=\"!restoreEnabled\">\r\n <i class=\"fa-solid fa-clock-rotate-left\"></i> {{ 'Action.Restore' | translate }}\r\n </button></li>\r\n <ng-content></ng-content>\r\n</ul>","import { Component, Output, EventEmitter, Input } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { BooleanInput } from '../../components';\r\n\r\nimport { PrintType } from '../../models/print.model';\r\nimport { Convert, UrlHelper } from '../../utils';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-list-toolbar',\r\n templateUrl: './list-toolbar.html',\r\n imports: [CommonModule, TranslateModule],\r\n})\r\nexport class ZekListToolbar {\r\n constructor(private readonly router: Router) {\r\n }\r\n\r\n printType = PrintType;\r\n\r\n private _isFiltered = false;\r\n @Input()\r\n get isFiltered() {\r\n return this._isFiltered;\r\n }\r\n set isFiltered(v: BooleanInput) {\r\n this._isFiltered = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n private _showCreate = true;\r\n @Input()\r\n get showCreate() {\r\n return this._showCreate;\r\n }\r\n set showCreate(v: BooleanInput) {\r\n this._showCreate = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n\r\n\r\n private _showFilter = true;\r\n @Input()\r\n get showFilter() {\r\n return this._showFilter;\r\n }\r\n set showFilter(v: BooleanInput) {\r\n this._showFilter = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n private _showPrint = false;\r\n @Input()\r\n get showPrint() {\r\n return this._showPrint;\r\n }\r\n set showPrint(v: BooleanInput) {\r\n this._showPrint = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n\r\n\r\n private _showSum = false;\r\n @Input()\r\n get showSum() {\r\n return this._showSum;\r\n }\r\n set showSum(v: BooleanInput) {\r\n this._showSum = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n private _showExport: boolean = false;\r\n @Input()\r\n get showExport(): boolean {\r\n return this._showExport;\r\n }\r\n set showExport(v: BooleanInput) {\r\n this._showExport = Convert.toBooleanProperty(v);\r\n }\r\n\r\n\r\n @Output() onRefresh = new EventEmitter();\r\n\r\n @Output() onFilter = new EventEmitter();\r\n\r\n refresh() {\r\n this.onRefresh.emit();\r\n }\r\n\r\n create() {\r\n const url = UrlHelper.getNoParam(this.router.url);\r\n // this.router.navigate([url, 'create', { returnUrl: url + ';filter=1' }]);\r\n this.router.navigate([url, 'create'],\r\n { queryParams: { returnUrl: url + '?filter=1' } }\r\n );\r\n }\r\n\r\n\r\n filter() {\r\n this.onFilter.emit();\r\n }\r\n\r\n @Output()\r\n onPrint = new EventEmitter<PrintType>();\r\n print(printType?: PrintType) {\r\n this.onPrint.emit(printType);\r\n }\r\n\r\n @Output()\r\n onSum = new EventEmitter();\r\n sum() {\r\n this.onSum.emit();\r\n }\r\n\r\n\r\n @Output()\r\n onExport = new EventEmitter<number>();\r\n exportExcel() {\r\n this.onExport.emit(1);\r\n }\r\n}","<div class=\"btn-toolbar\" role=\"toolbar\" aria-label=\"Toolbar\">\r\n <div class=\"btn-group me-2\" role=\"group\" aria-label=\"Action group\">\r\n <button *ngIf=\"showCreate\" type=\"button\" class=\"btn btn-primary\" (click)=\"create()\"><i class=\"fa-solid fa-plus\"></i> {{ 'Action.Create' | translate }}</button>\r\n </div>\r\n <div class=\"btn-group me-2\" role=\"group\" aria-label=\"Filter group\">\r\n <button *ngIf=\"showFilter\" type=\"button\" class=\"btn btn-secondary\" [ngClass]=\"{'btn-outline-success': isFiltered, 'btn-secondary': !isFiltered }\" (click)=\"filter()\" data-bs-toggle0=\"modal\" data-bs-backdrop0=\"static\" data-bs-target0=\"#filter-modal\"><i class=\"fa-solid fa-filter\"></i> {{ 'Action.Filter' | translate }}</button>\r\n <button type=\"button\" class=\"btn btn-secondary\" title=\"{{ 'Action.Refresh' | translate }}\" (click)=\"refresh()\"><i class=\"fa-solid fa-rotate\"></i></button>\r\n </div>\r\n <div *ngIf=\"showPrint\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Print group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button>\r\n <div class=\"btn-group\" role=\"group\">\r\n <button type=\"button\" class=\"btn btn-secondary dropdown-toggle dropdown-toggle-split\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <span class=\"visually-hidden\">Toggle Dropdown</span>\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Show)\"><i class=\"fa-solid fa-print\"></i> {{ 'Action.Print' | translate }}</button></li>\r\n <li><button type=\"button\" class=\"dropdown-item\" (click)=\"print(printType.Pdf)\"><i class=\"fa-solid fa-file-pdf\"></i> {{ 'Action.Print' | translate }} PDF</button></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div *ngIf=\"showSum\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Sum group\">\r\n <button type=\"button\" class=\"btn btn-secondary\" (click)=\"sum()\"><i class=\"fa-solid fa-sigma\"></i> {{ 'Action.Sum' | translate }}</button>\r\n </div>\r\n <div *ngIf=\"showExport\" class=\"btn-group me-2\" role=\"group\" aria-label=\"Export group\">\r\n <div class=\"btn-group\" role=\"group\">\r\n <button id=\"btn-group-export\" type=\"button\" class=\"btn btn-secondary dropdown-toggle\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"><i class=\"fa-solid fa-download\"></i> {{ 'Action.Export' | translate }}</button>\r\n <ul class=\"dropdown-menu\" aria-labelledby=\"btn-group-export\">\r\n <li><a class=\"dropdown-item\" href=\"javascript:void(0)\" (click)=\"exportExcel()\"><i class=\"fa-solid fa-file-excel\"></i> Excel</a></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <ng-content></ng-content>\r\n</div>","import { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { finalize } from 'rxjs/operators';\r\n\r\n@Injectable({providedIn:'root'})\r\nexport class ZekLoadingService {\r\n private _pendingRequests = 0;\r\n private _loadingSubject$?: BehaviorSubject<boolean>\r\n private _onLoadingObservable?: Observable<boolean>;\r\n\r\n start() {\r\n this._pendingRequests++;\r\n this._loadingSubject$?.next(true);\r\n }\r\n end() {\r\n this._pendingRequests--;\r\n if (this._pendingRequests < 0)\r\n this._pendingRequests = 0;\r\n\r\n if (0 === this._pendingRequests) {\r\n this._loadingSubject$?.next(false);\r\n }\r\n }\r\n\r\n get onLoading() {\r\n if (!this._loadingSubject$) {\r\n this._loadingSubject$ = new BehaviorSubject<boolean>(false);\r\n this._onLoadingObservable = this._loadingSubject$.asObservable();\r\n }\r\n\r\n if (!this._onLoadingObservable)\r\n throw new Error(\"_onExecuteObservable is undefined\");\r\n\r\n return this._onLoadingObservable;\r\n }\r\n}\r\n\r\n@Injectable()\r\nexport class ZekLoadingInterceptor implements HttpInterceptor {\r\n constructor(private readonly _loading: ZekLoadingService) {\r\n }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n this._loading.start();\r\n\r\n return next.handle(request).pipe(\r\n finalize(() => {\r\n this._loading.end();\r\n })\r\n );\r\n }\r\n}\r\n\r\nexport const ZekLoadingInterceptorProvider = [{\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: ZekLoadingInterceptor,\r\n multi: true\r\n}];","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { ZekLoadingService } from './loading-interceptor';\r\n\r\n@Component({\r\n selector: 'zek-loading',\r\n styleUrls: ['./loading.css'],\r\n template: `\r\n<div *ngIf=\"show\" id=\"loading\" class=\"progress\">\r\n <div class=\"progress-bar progress-bar-striped progress-bar-animated bg-danger\" role=\"progressbar\" style=\"width:100%\" aria-valuenow=\"100\" aria-valuemin=\"0\" aria-valuemax=\"100\"></div>\r\n</div>\r\n`\r\n})\r\nexport class ZekLoading implements OnInit, OnDestroy {\r\n show: boolean = false;\r\n private subscription?: Subscription;\r\n constructor(private readonly _loading: ZekLoadingService) {\r\n }\r\n\r\n ngOnInit() {\r\n this.subscription = this._loading.onLoading.subscribe(x => {\r\n this.show = x\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.subscription?.unsubscribe();\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { ZekLoadingInterceptor, ZekLoadingInterceptorProvider } from './loading-interceptor';\r\nimport { ZekLoading } from './loading';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ],\r\n declarations: [\r\n ZekLoading\r\n ],\r\n providers: [\r\n ZekLoadingInterceptor,\r\n ZekLoadingInterceptorProvider,\r\n ],\r\n exports: [\r\n ZekLoading,\r\n ]\r\n})\r\nexport class ZekLoadingModule {\r\n}\r\n","export * from './loading.module';\r\nexport * from './loading';\r\n// export * from './loading-interceptor';","import { Directive, ElementRef, HostListener, Input } from \"@angular/core\";\r\nimport { BooleanInput, NumberInput } from \"../../components\";\r\nimport { Convert, MathHelper } from \"../../utils\";\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: \"[numeric]\",\r\n})\r\nexport class NumericDirective {\r\n private _digits = 0;\r\n get digits() {\r\n return this._digits;\r\n }\r\n @Input()\r\n set digits(v: NumberInput) {\r\n let tmp = MathHelper.clamp(Convert.toNumber(v) || 0, 0, 29);\r\n this._digits = tmp;\r\n }\r\n\r\n private _negative: boolean = false;\r\n get negative(): boolean {\r\n return this._negative;\r\n }\r\n @Input() set negative(v: BooleanInput) {\r\n this._negative = Convert.toBooleanProperty(v);\r\n }\r\n\r\n private checkAllowNegative(value: string) {\r\n if (this._digits <= 0) {\r\n return String(value).match(new RegExp(/^-?\\d+$/));\r\n } else {\r\n var regExpString =\r\n \"^-?\\\\s*((\\\\d+(\\\\.\\\\d{0,\" +\r\n this._digits +\r\n \"})?)|((\\\\d*(\\\\.\\\\d{1,\" +\r\n this._digits +\r\n \"}))))\\\\s*$\";\r\n return String(value).match(new RegExp(regExpString));\r\n }\r\n }\r\n\r\n private check(value: string) {\r\n if (this._digits <= 0) {\r\n return String(value).match(new RegExp(/^\\d+$/));\r\n } else {\r\n var regExpString =\r\n \"^\\\\s*((\\\\d+(\\\\.\\\\d{0,\" +\r\n this._digits +\r\n \"})?)|((\\\\d*(\\\\.\\\\d{1,\" +\r\n this._digits +\r\n \"}))))\\\\s*$\";\r\n return String(value).match(new RegExp(regExpString));\r\n }\r\n }\r\n\r\n private run(oldValue: any) {\r\n setTimeout(() => {\r\n let currentValue: string = this.el.nativeElement.value;\r\n let allowNegative = this._negative;\r\n\r\n if (allowNegative) {\r\n if (\r\n ![\"\", \"-\"].includes(currentValue) &&\r\n !this.checkAllowNegative(currentValue)\r\n ) {\r\n this.el.nativeElement.value = oldValue;\r\n }\r\n } else {\r\n if (currentValue !== '' && !this.check(currentValue)) {\r\n this.el.nativeElement.value = oldValue;\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n constructor(private el: ElementRef) { }\r\n\r\n @HostListener(\"keydown\", [\"$event\"])\r\n onKeyDown(event: KeyboardEvent) {\r\n this.run(this.el.nativeElement.value);\r\n }\r\n\r\n @HostListener(\"paste\", [\"$event\"])\r\n onPaste(event: ClipboardEvent) {\r\n this.run(this.el.nativeElement.value);\r\n }\r\n}","import { Component, Input } from '@angular/core';\r\nimport { BooleanInput } from '../../components';\r\nimport { Convert } from '../../utils';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-page-title',\r\n templateUrl: './page-title.component.html',\r\n imports: [CommonModule, TranslateModule]\r\n})\r\nexport class ZekPageTitle {\r\n @Input() icon?: string;\r\n\r\n @Input() title?: string;\r\n\r\n\r\n private _isEditPage: boolean = false;\r\n @Input()\r\n get isEditPage(): boolean {\r\n return this._isEditPage;\r\n }\r\n set isEditPage(v: BooleanInput) {\r\n this._isEditPage = Convert.toBooleanProperty(v);\r\n }\r\n\r\n @Input() modelId?: number | null;\r\n\r\n}","<h1 class=\"h2 pt-3 pb-2 mb-3 border-bottom\">\r\n <i *ngIf=\"icon\" class=\"{{icon}}\"></i><ng-container *ngIf=\"icon\">&nbsp;</ng-container>{{ title }}&nbsp;<ng-container *ngIf=\"isEditPage\">\r\n <small class=\"text-muted\" *ngIf=\"modelId && modelId > 0 else elseBlock\">[<ng-container>{{ 'Action.Edit' | translate }}</ng-container>]</small>\r\n <ng-template #elseBlock>\r\n <small class=\"text-muted\">[<ng-container>{{ 'Action.Create' | translate }}</ng-container>]</small>\r\n </ng-template>\r\n </ng-container>\r\n</h1>","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { BooleanInput } from '../../../components';\r\nimport { Pager } from '../../../models';\r\nimport { Convert } from '../../../utils';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-pager',\r\n templateUrl: './pager.html',\r\n styles: [':host { display: block; }'],\r\n imports: [CommonModule, TranslateModule],\r\n})\r\nexport class ZekPager {\r\n @Input() pager = new Pager();\r\n\r\n private _showPageSize: boolean = true;\r\n @Input()\r\n get showPageSize(): boolean {\r\n return this._showPageSize;\r\n }\r\n set showPageSize(v: BooleanInput) {\r\n this._showPageSize = Convert.toBooleanProperty(v);\r\n }\r\n\r\n @Input() pagerAlign = 'start';\r\n\r\n\r\n setPage(page: number) {\r\n // if (!this.pager) return;\r\n\r\n if (page === this.pager.pageNumber)\r\n return;\r\n this.onPageChange.emit(page);\r\n }\r\n setPageSize(pageSize: number) {\r\n // if (!this.pager) return;\r\n\r\n if (pageSize === this.pager.pageSize)\r\n return;\r\n this.onPageSizeChange.emit(pageSize);\r\n }\r\n\r\n @Output() onPageChange = new EventEmitter<number>();\r\n\r\n @Output() onPageSizeChange = new EventEmitter<number>();\r\n}","<div *ngIf=\"pager\" class=\"row\">\r\n <div [ngClass]=\"{ 'col-sm-8': showPageSize, 'col-sm-12': !showPageSize}\">\r\n <nav aria-label=\"Pagination\">\r\n <ul class=\"pagination\" [ngClass]=\"{ 'justify-content-center': pagerAlign === 'center', 'justify-content-end': pagerAlign === 'end'}\">\r\n <li [class.disabled]=\"pager.isFirstPage\" class=\"page-item\">\r\n <a class=\"page-link\" (click)=\"setPage(1)\" href=\"javascript:void(0)\" [attr.aria-disabled]=\"pager.isFirstPage ? 'true' : null\" aria-label=\"First\">\r\n <span aria-hidden=\"true\">&laquo;&laquo;</span>\r\n </a>\r\n </li>\r\n <li [class.disabled]=\"!pager.hasPreviousPage\" class=\"page-item\">\r\n <a class=\"page-link\" (click)=\"setPage(pager.pageNumber - 1)\" href=\"javascript:void(0)\" [attr.aria-disabled]=\"!pager.hasPreviousPage ? 'true' : null\" aria-label=\"Previous\">\r\n <span aria-hidden=\"true\">&laquo;</span>\r\n </a>\r\n </li>\r\n <li *ngFor=\"let page of pager.pages\" [class.active]=\"page === pager.pageNumber\" class=\"page-item\"><a class=\"page-link\" (click)=\"setPage(page)\" href=\"javascript:void(0)\">{{page}}</a></li>\r\n <li [class.disabled]=\"!pager.hasNextPage\" class=\"page-item\">\r\n <a class=\"page-link\" (click)=\"setPage(pager.pageNumber + 1)\" href=\"javascript:void(0)\" [attr.aria-disabled]=\"!pager.hasNextPage ? 'true' : null\" aria-label=\"Next\">\r\n <span aria-hidden=\"true\">&raquo;</span>\r\n </a>\r\n </li>\r\n <li [class.disabled]=\"pager.isLastPage\" class=\"page-item\">\r\n <a class=\"page-link\" (click)=\"setPage(pager.pageCount)\" href=\"javascript:void(0)\" [attr.aria-disabled]=\"pager.isLastPage ? 'true' : null\" aria-label=\"Last\">\r\n <span aria-hidden=\"true\">&raquo;&raquo;</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </nav>\r\n </div>\r\n <div class=\"col-sm-4\" *ngIf=\"showPageSize\">\r\n <div class=\"float-end\">\r\n <div class=\"dropdown\">\r\n <button class=\"btn btn-secondary dropdown-toggle\" type=\"button\" id=\"page-size-button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n {{pager.pageSize}}\r\n </button>\r\n <ul class=\"dropdown-menu dropdown-menu-end\" aria-labelledby=\"page-size-button\">\r\n <li><h6 class=\"dropdown-header\">{{ 'Pagination.PageSize' | translate }}</h6></li>\r\n <li><a class=\"dropdown-item\" [class.active]=\"pager.pageSize === 10\" (click)=\"setPageSize(10)\" href=\"javascript:void(0)\">10</a></li>\r\n <li><a class=\"dropdown-item\" [class.active]=\"pager.pageSize === 20\" (click)=\"setPageSize(20)\" href=\"javascript:void(0)\">20</a></li>\r\n <li><a class=\"dropdown-item\" [class.active]=\"pager.pageSize === 50\" (click)=\"setPageSize(50)\" href=\"javascript:void(0)\">50</a></li>\r\n <li><a class=\"dropdown-item\" [class.active]=\"pager.pageSize === 100\" (click)=\"setPageSize(100)\" href=\"javascript:void(0)\">100</a></li>\r\n <li><a class=\"dropdown-item\" [class.active]=\"pager.pageSize === 500\" (click)=\"setPageSize(500)\" href=\"javascript:void(0)\">500</a></li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"float-end mt-2\">\r\n {{pager.firstItemOnPage}} - {{pager.lastItemOnPage}} of {{pager.totalItemCount}} &nbsp;\r\n </div>\r\n </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\n\r\n@Component({\r\n standalone:true,\r\n selector: 'zek-field-validator, [zek-field-validator]',\r\n host: { '[class]': '\"invalid-tooltip\"' },\r\n templateUrl: './field-validator.html',\r\n imports: [CommonModule, TranslateModule]\r\n})\r\nexport class ZekFieldValidator {\r\n @Input() field: any;\r\n // @Input() field?: NgModel;\r\n\r\n constructor() {\r\n if (this.field)\r\n console.log(this.field.errors);\r\n }\r\n}","<ng-container *ngIf=\"field\">\r\n <ng-container *ngIf=\"field.invalid && (field.dirty || field.touched || field.formDirective?.submitted)\">\r\n <ng-container *ngIf=\"field.errors\">\r\n <ng-container *ngIf=\"field.errors.required\">{{ 'Validation.Required' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.minlength\">{{ 'Validation.MinLengthFormat' | translate:{ value: field.errors.minlength.requiredLength } }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.maxlength\">{{ 'Validation.MaxLengthFormat' | translate:{ value: field.errors.maxlength.requiredLength } }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.email\">{{ 'Validation.Pattern' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.pattern\">{{ 'Validation.Pattern' | translate }}</ng-container><!-- {{ field.errors.pattern.requiredPattern }} -->\r\n <ng-container *ngIf=\"field.errors.mismatch\">{{ 'Validation.Mismatch' | translate }}</ng-container>\r\n <ng-container *ngIf=\"field.errors.server\">{{field.errors.server}}</ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { BooleanInput } from '../../components';\r\nimport { Convert } from '../../utils';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ZekFieldValidator } from '../validator';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-password',\r\n templateUrl: './password.html',\r\n imports: [FormsModule, ZekFieldValidator]\r\n})\r\nexport class ZekPassword {\r\n @Input() name = 'Password';\r\n\r\n private _required: boolean = false;\r\n @Input()\r\n get required(): boolean {\r\n return this._required;\r\n }\r\n set required(v: BooleanInput) {\r\n this._required = Convert.toBooleanProperty(v);\r\n }\r\n\r\n @Input() minlength: number | string | null = null;\r\n @Input() maxlength: number | string | null = null;\r\n\r\n @Input() model?: string | null;\r\n @Output('modelChange') onChange = new EventEmitter();\r\n\r\n private _type = 'password';\r\n get type() {\r\n return this._type;\r\n }\r\n\r\n showHide() {\r\n this._type = this._type === 'password' ? 'text' : 'password';\r\n }\r\n}","<div class=\"input-group has-validation\">\r\n <input type=\"{{type}}\" class=\"form-control\" name=\"{{name}}\" id=\"{{name}}\" [attr.aria-describedby]=\"name+'-show'\"\r\n [required]=\"required\" [minlength]=\"minlength\" [maxlength]=\"maxlength\"\r\n [ngModel]=\"model\" (ngModelChange)=\"onChange.emit($event)\"\r\n #password=\"ngModel\"\r\n >\r\n <button class=\"btn btn-outline-secondary\" type=\"button\" id=\"{{name}}-show\" (click)=\"showHide()\"><i class=\"fa-solid fa-eye\"></i></button>\r\n <div zek-field-validator [field]=\"password\"></div>\r\n</div>","import { Component, Input } from '@angular/core';\r\nimport { BooleanInput, NumberInput } from '../../components';\r\nimport { Convert } from '../../utils';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nfunction clamp(v: number, min = 0, max = 100) {\r\n return Math.max(min, Math.min(max, v));\r\n}\r\n\r\ntype Background = 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'light' | 'dark' | 'body' | 'white' | 'transparent';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-progress',\r\n templateUrl: './progress.html',\r\n styles: [':host { display: block; }'],\r\n imports: [\r\n CommonModule\r\n ]\r\n})\r\nexport class ZekProgress {\r\n @Input()\r\n get value(): number {\r\n return this._value;\r\n }\r\n set value(v: NumberInput) {\r\n let tmp = clamp(Convert.toNumber(v) || 0);\r\n if (this._value !== tmp) {\r\n this._value = tmp;\r\n }\r\n }\r\n private _value: number = 0;\r\n\r\n\r\n @Input()\r\n get showValue(): boolean {\r\n return this._showValue;\r\n }\r\n set showValue(v: BooleanInput) {\r\n this._showValue = Convert.toBooleanProperty(v);\r\n }\r\n private _showValue: boolean = false;\r\n\r\n @Input()\r\n get showTitle(): boolean {\r\n return this._showTitle;\r\n }\r\n set showTitle(v: BooleanInput) {\r\n this._showTitle = Convert.toBooleanProperty(v);\r\n }\r\n private _showTitle: boolean = true;\r\n\r\n get _title() {\r\n return this._showTitle ? `${this._value} %` : null;\r\n }\r\n\r\n\r\n @Input()\r\n get striped(): boolean {\r\n return this._striped;\r\n }\r\n set striped(v: BooleanInput) {\r\n this._striped = Convert.toBooleanProperty(v);\r\n }\r\n private _striped: boolean = false;\r\n\r\n\r\n @Input()\r\n get animated(): boolean {\r\n return this._animated;\r\n }\r\n set animated(v: BooleanInput) {\r\n this._animated = Convert.toBooleanProperty(v);\r\n }\r\n private _animated: boolean = false;\r\n\r\n @Input()\r\n get label() {\r\n return this._label;\r\n }\r\n set label(v: string | null | undefined) {\r\n this._label = v ? v : null;\r\n }\r\n private _label: string | null = null;\r\n\r\n\r\n\r\n @Input()\r\n get height() {\r\n return this._height;\r\n }\r\n set height(v: NumberInput) {\r\n let tmp = Convert.toNumber(v) || 0;\r\n this._height = tmp > 0 ? tmp : null;\r\n }\r\n private _height: number | null = null;\r\n\r\n\r\n @Input()\r\n get background() {\r\n return this._background;\r\n }\r\n set background(v: Background) {\r\n this._background = v;\r\n }\r\n private _background: Background = 'primary';\r\n}","<div class=\"progress\" [style.height.px]=\"height\" [title]=\"_title\" >\r\n <div class=\"progress-bar bg-{{background}}\" role=\"progressbar\"\r\n [class.progress-bar-striped]=\"striped || animated\"\r\n [class.progress-bar-animated]=\"animated\"\r\n [style.width.%]=\"value\"\r\n [attr.aria-valuenow]=\"value\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\">\r\n <ng-container *ngIf=\"showValue\">{{value}}%</ng-container>\r\n <ng-content></ng-content>\r\n </div>\r\n</div>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, forwardRef, Input, OnInit, Renderer2, ViewChild, ViewEncapsulation } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { BooleanInput } from '../../components';\r\nimport { CoreUiComponent } from '../../components/core-ui.component';\r\nimport { Convert } from '../../utils';\r\n\r\nlet uniqueId = 0;\r\n\r\n/**\r\n * Provider Expression that allows zek-radio to register as a ControlValueAccessor. This\r\n * allows it to support [(ngModel)] and ngControl.\r\n * @docs-private\r\n */\r\nconst ZEK_RADIO_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ZekRadio),\r\n multi: true,\r\n};\r\n\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-radio',\r\n templateUrl: './radio.html',\r\n host: {\r\n '[attr.id]': 'id',\r\n '[attr.tabindex]': 'null',\r\n '[attr.aria-label]': 'null',\r\n '[attr.aria-labelledby]': 'null',\r\n '[attr.aria-describedby]': 'null',\r\n // Note: under normal conditions focus shouldn't land on this element, however it may be\r\n // programmatically set, for example inside of a focus trap, in this case we want to forward\r\n // the focus to the native element.\r\n '(focus)': '_inputElement.nativeElement.focus()',\r\n\r\n },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [ZEK_RADIO_CONTROL_VALUE_ACCESSOR],\r\n})\r\nexport class ZekRadio extends CoreUiComponent\r\n implements OnInit {\r\n constructor(\r\n private _changeDetector: ChangeDetectorRef,\r\n _renderer: Renderer2,\r\n _elementRef: ElementRef) {\r\n super(_renderer, _elementRef);\r\n }\r\n\r\n\r\n private _uniqueId: string = `zek-radio-${++uniqueId}`;\r\n\r\n /** The unique ID for the radio button. */\r\n @Input() id: string = this._uniqueId;\r\n\r\n /** Used to set the 'aria-label' attribute on the underlying input element. */\r\n @Input('aria-label') ariaLabel?: string | null;\r\n\r\n /** The 'aria-labelledby' attribute takes precedence as the element's text alternative. */\r\n @Input('aria-labelledby') ariaLabelledby?: string | null;\r\n\r\n /** The 'aria-describedby' attribute is read after the element's label and field type. */\r\n @Input('aria-describedby') ariaDescribedby?: string | null;\r\n\r\n /** The native `<input type=radio>` element */\r\n @ViewChild('input') _inputElement?: ElementRef<HTMLInputElement> | null;\r\n\r\n\r\n\r\n private _inline: boolean = false;\r\n get inline() {\r\n return this._inline;\r\n }\r\n @Input()\r\n set inline(v: BooleanInput) {\r\n let newValue = Convert.toBooleanProperty(v);\r\n if (this._inline !== newValue) {\r\n this._inline = newValue;\r\n this.onInlineChanged();\r\n }\r\n }\r\n onInlineChanged() { }\r\n\r\n get inputId(): string {\r\n return `${this.id || this._uniqueId}-input`;\r\n }\r\n\r\n\r\n /** The value from ngModel. */\r\n private modelValue: any;\r\n\r\n\r\n private _checked: boolean = false;\r\n @Input()\r\n get checked(): boolean {\r\n return this._checked;\r\n }\r\n set checked(value: BooleanInput) {\r\n const newCheckedState = Convert.toBooleanProperty(value);\r\n if (this._checked !== newCheckedState) {\r\n this._checked = newCheckedState;\r\n this._markForCheck();\r\n }\r\n }\r\n\r\n\r\n override writeValue(value: any): void {\r\n if (this.modelValue !== value) {\r\n this.modelValue = value;\r\n this.checked = this.modelValue === this._value;\r\n }\r\n\r\n }\r\n override onValueChanged() {\r\n if (!this.checked) {\r\n // Update checked when the value changed to match the radio group's value\r\n this.checked = this.modelValue === this._value;\r\n }\r\n }\r\n\r\n\r\n override onRequiredChanged(): void {\r\n this._markForCheck();\r\n }\r\n override onDisabledChanged() {\r\n this._markForCheck();\r\n }\r\n\r\n\r\n /**\r\n * Marks the radio button as needing checking for change detection.\r\n * This method is exposed because the parent radio group will directly\r\n * update bound properties of the radio button.\r\n */\r\n private _markForCheck() {\r\n // When group value changes, the button will not be notified. Use `markForCheck` to explicit\r\n // update radio button's status\r\n this._changeDetector.markForCheck();\r\n }\r\n\r\n\r\n override init(): void {\r\n // Determine if it should be checked\r\n this.checked = this.modelValue === this._value;\r\n }\r\n\r\n\r\n /** Triggered when the radio button receives an interaction from the user. */\r\n override _onInputInteraction(event: Event) {\r\n // We always have to stop propagation on the change event.\r\n // Otherwise the change event, from the input element, will bubble up and\r\n // emit its event object to the `change` output.\r\n event.stopPropagation();\r\n\r\n if (!this.checked && !this.disabled) {\r\n const modelValueChanged = this.value !== this.modelValue;\r\n this.checked = true;\r\n this.modelValue = this._value;\r\n this._emitChangeEvent();\r\n\r\n if (modelValueChanged) {\r\n this._onChange(this._value);\r\n }\r\n }\r\n }\r\n}","<div class=\"form-check\" [class.form-check-inline]=\"inline\">\r\n <input #input class=\"form-check-input\" type=\"radio\"\r\n [id]=\"inputId\"\r\n [checked]=\"checked\"\r\n [disabled]=\"disabled\"\r\n [attr.name]=\"name\"\r\n [attr.value]=\"value\"\r\n [required]=\"required\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n [attr.aria-labelledby]=\"ariaLabelledby\"\r\n [attr.aria-describedby]=\"ariaDescribedby\"\r\n (change)=\"_onInputInteraction($event)\">\r\n <label [for]=\"inputId\">\r\n <ng-content></ng-content>\r\n </label>\r\n</div>","import { Directive, Input } from '@angular/core';\r\nimport { BooleanInput } from '../../components';\r\nimport { Convert } from '../../utils';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[readonly],[readOnly]',\r\n host: {\r\n '[attr.readonly]': '_readonly ? \"\" : null'\r\n }\r\n})\r\nexport class ZekReadOnlyDirective {\r\n _readonly = false;\r\n @Input() readonly(v: BooleanInput) {\r\n this._readonly = Convert.toBooleanProperty(v);\r\n }\r\n}","import { HtmlHelper } from \"../../utils\";\r\nimport { ReCaptchaV2 } from \"./recaptcha.model\";\r\n\r\ndeclare var grecaptcha: ReCaptchaV2.ReCaptcha & {\r\n enterprise: ReCaptchaV2.ReCaptcha;\r\n};\r\n\r\ndeclare global {\r\n interface Window {\r\n recaptchaloaded: () => void;\r\n }\r\n}\r\nfunction loadScript(\r\n siteKey: \"explicit\" | string,\r\n onLoaded: (grecaptcha: ReCaptchaV2.ReCaptcha) => void,//ReCaptchaV2.ReCaptcha\r\n urlParams?: string,\r\n url?: string,\r\n nonce?: string\r\n): void {\r\n window.recaptchaloaded = () => {\r\n onLoaded(grecaptcha);\r\n };\r\n\r\n const baseUrl = url || \"https://www.google.com/recaptcha/api.js\";\r\n let params = urlParams || '';\r\n let src = `${baseUrl}?render=${siteKey}&onload=recaptchaloaded${params}`;\r\n\r\n HtmlHelper.loadScript(src, nonce, true, true);\r\n}\r\n\r\nexport const loader = { loadScript };","import { Inject, Injectable, NgZone, Optional } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { RECAPTCHA_SITE_KEY } from '../../tokens';\r\nimport { loader } from './loader';\r\nimport { ReCaptchaV2 } from './recaptcha.model';\r\n\r\ndeclare var grecaptcha: ReCaptchaV2.ReCaptcha & {\r\n enterprise: ReCaptchaV2.ReCaptcha;\r\n};\r\n\r\n\r\nexport interface ReCaptchaConfig {\r\n siteKey: string;\r\n}\r\n\r\n\r\nexport interface OnExecuteData {\r\n /**\r\n * The name of the action that has been executed.\r\n */\r\n action: string;\r\n /**\r\n * The token that reCAPTCHA v3 provided when executing the action.\r\n */\r\n token: string;\r\n}\r\n\r\nexport interface OnExecuteErrorData {\r\n /**\r\n * The name of the action that has been executed.\r\n */\r\n action: string;\r\n /**\r\n * The error which was encountered\r\n */\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n error: any;\r\n}\r\n\r\ntype ActionBacklogEntry = [string, Subject<string>];\r\n\r\n\r\n\r\n@Injectable()\r\nexport class ReCaptchaService {\r\n private readonly isBrowser: boolean = true;\r\n private readonly siteKey: string;\r\n private readonly zone: NgZone;\r\n\r\n private actionBacklog: ActionBacklogEntry[] | undefined;\r\n private grecaptcha?: ReCaptchaV2.ReCaptcha;\r\n private onExecuteSubject?: Subject<OnExecuteData>;\r\n private onExecuteErrorSubject?: Subject<OnExecuteErrorData>;\r\n private onExecuteObservable?: Observable<OnExecuteData>;\r\n private onExecuteErrorObservable?: Observable<OnExecuteErrorData>;\r\n\r\n constructor(\r\n zone: NgZone,\r\n @Optional() @Inject(RECAPTCHA_SITE_KEY) siteKey: string) {\r\n\r\n this.zone = zone;\r\n this.siteKey = siteKey;\r\n this.init();\r\n }\r\n\r\n public get onExecute(): Observable<OnExecuteData> {\r\n if (!this.onExecuteSubject) {\r\n this.onExecuteSubject = new Subject<OnExecuteData>();\r\n this.onExecuteObservable = this.onExecuteSubject.asObservable();\r\n }\r\n\r\n if (!this.onExecuteObservable)\r\n throw new Error(\"onExecuteObservable is undefined\");\r\n\r\n return this.onExecuteObservable;\r\n }\r\n\r\n public get onExecuteError(): Observable<OnExecuteErrorData> {\r\n if (!this.onExecuteErrorSubject) {\r\n this.onExecuteErrorSubject = new Subject<OnExecuteErrorData>();\r\n this.onExecuteErrorObservable = this.onExecuteErrorSubject.asObservable();\r\n }\r\n\r\n if (!this.onExecuteErrorObservable)\r\n throw new Error(\"onExecuteErrorObservable is undefined\");\r\n\r\n return this.onExecuteErrorObservable;\r\n }\r\n\r\n /**\r\n * Executes the provided `action` with reCAPTCHA v3 API.\r\n * Use the emitted token value for verification purposes on the backend.\r\n *\r\n * For more information about reCAPTCHA v3 actions and tokens refer to the official documentation at\r\n * https://developers.google.com/recaptcha/docs/v3.\r\n *\r\n * @param {string} action the action to execute\r\n * @returns {Observable<string>} an `Observable` that will emit the reCAPTCHA v3 string `token` value whenever ready.\r\n * The returned `Observable` completes immediately after emitting a value.\r\n */\r\n public execute(action: string): Observable<string> {\r\n const subject = new Subject<string>();\r\n if (this.isBrowser) {\r\n if (!this.grecaptcha) {\r\n // todo: add to array of later executions\r\n if (!this.actionBacklog) {\r\n this.actionBacklog = [];\r\n }\r\n\r\n this.actionBacklog.push([action, subject]);\r\n } else {\r\n this.executeActionWithSubject(action, subject);\r\n }\r\n }\r\n\r\n return subject.asObservable();\r\n }\r\n\r\n /** @internal */\r\n private executeActionWithSubject(action: string, subject: Subject<string>): void {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const onError = (error: any) => {\r\n this.zone.run(() => {\r\n subject.error(error);\r\n if (this.onExecuteErrorSubject) {\r\n // We don't know any better at this point, unfortunately, so have to resort to `any`\r\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\r\n this.onExecuteErrorSubject.next({ action, error });\r\n }\r\n });\r\n };\r\n\r\n this.zone.runOutsideAngular(() => {\r\n try {\r\n if (this.grecaptcha)\r\n this.grecaptcha.execute(this.siteKey, { action }).then((token: string) => {\r\n this.zone.run(() => {\r\n subject.next(token);\r\n subject.complete();\r\n if (this.onExecuteSubject) {\r\n this.onExecuteSubject.next({ action, token });\r\n }\r\n });\r\n }, onError);\r\n } catch (e) {\r\n onError(e);\r\n }\r\n });\r\n }\r\n\r\n /** @internal */\r\n private init() {\r\n if (this.isBrowser) {\r\n if (\"grecaptcha\" in window) {\r\n this.grecaptcha = grecaptcha;\r\n } else {\r\n loader.loadScript(this.siteKey, this.onLoadComplete);\r\n }\r\n }\r\n }\r\n\r\n /** @internal */\r\n private onLoadComplete = (grecaptcha: ReCaptchaV2.ReCaptcha) => {\r\n this.grecaptcha = grecaptcha;\r\n if (this.actionBacklog && this.actionBacklog.length > 0) {\r\n this.actionBacklog.forEach(([action, subject]) => this.executeActionWithSubject(action, subject));\r\n this.actionBacklog = undefined;\r\n }\r\n }\r\n}","import { ModuleWithProviders, NgModule } from \"@angular/core\";\r\nimport { ReCaptchaConfig } from \"./index\";\r\nimport { RECAPTCHA_SITE_KEY } from \"../../tokens\";\r\nimport { ReCaptchaService } from \"./recaptcha.service\";\r\n\r\n//4.2.0\r\n@NgModule({\r\n providers: [ReCaptchaService]\r\n})\r\nexport class RecaptchaModule {\r\n public static forRoot(config: ReCaptchaConfig): ModuleWithProviders<RecaptchaModule> {\r\n return {\r\n ngModule: RecaptchaModule,\r\n providers: [\r\n ReCaptchaService,\r\n {\r\n provide: RECAPTCHA_SITE_KEY,\r\n useValue: config.siteKey\r\n },\r\n ]\r\n };\r\n }\r\n\r\n public static forChild(config: ReCaptchaConfig) {\r\n return this.forRoot(config);\r\n }\r\n}\r\n","import { Component, ElementRef, forwardRef, Input, Renderer2 } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { BooleanInput, CoreUiComponent } from '../../components';\r\nimport { ArrayHelper, Convert } from '../../utils';\r\nimport { KeyPairOption } from './model';\r\n\r\n\r\nlet uniqueId = 0;\r\n\r\n\r\nconst ZEK_SELECT_MULTIPLE_CONTROL_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ZekSelectMultiple),\r\n multi: true,\r\n};\r\n\r\n@Component({\r\n selector: 'zek-select,[zek-select]',\r\n templateUrl: './select.html',\r\n providers: [ZEK_SELECT_MULTIPLE_CONTROL_VALUE_ACCESSOR],\r\n})\r\n\r\nexport class ZekSelectMultiple extends CoreUiComponent {\r\n constructor(renderer: Renderer2, elementRef: ElementRef) {\r\n super(renderer, elementRef);\r\n }\r\n\r\n private _uniqueId: string = `zek-select-${++uniqueId}`;\r\n /** The unique ID for the radio button. */\r\n @Input() id: string = this._uniqueId;\r\n\r\n @Input() valueField?: string | null;\r\n @Input() textField?: string | null;\r\n @Input() checkedTextField?: string | null;\r\n\r\n @Input() css: 'primary' | 'secondary' | 'success' | 'danger ' | 'warning' | 'info' | 'light' | 'dark' = 'primary';\r\n\r\n\r\n @Input()\r\n get placeholder(): string {\r\n return this._placeholder;\r\n }\r\n set placeholder(value: string | null | undefined) {\r\n if (value)\r\n this._placeholder = value;\r\n else\r\n this._placeholder = '';\r\n }\r\n private _placeholder = '';\r\n\r\n @Input()\r\n get label(): string {\r\n return this._label;\r\n }\r\n set label(value: string | null | undefined) {\r\n if (value)\r\n this._label = value;\r\n else\r\n this._label = '';\r\n }\r\n private _label = '';\r\n\r\n\r\n\r\n @Input()\r\n get multiple() {\r\n return this._multiple;\r\n }\r\n set multiple(value: BooleanInput) {\r\n this._multiple = Convert.toBooleanProperty(value);\r\n }\r\n private _multiple = true;\r\n\r\n\r\n private _selected: any[] = [];\r\n\r\n @Input()\r\n get data() {\r\n return this._data;\r\n }\r\n set data(value: any[] | null | undefined) {\r\n if (this._data !== value) {\r\n this._data = value;\r\n this.onDataChanged();\r\n }\r\n }\r\n private _data?: any[] | null = [];\r\n normalized: KeyPairOption[] = [];\r\n onDataChanged() {\r\n this._setSelectionByValue(this._value);\r\n if (this.isInitialized) {\r\n this._normalizeData();\r\n }\r\n }\r\n\r\n _text = '';\r\n\r\n\r\n\r\n override onValueChanged() {\r\n if (Array.isArray(this._data)) {\r\n this._setSelectionByValue(this._value);\r\n }\r\n }\r\n\r\n\r\n override init(): void {\r\n this._normalizeData();\r\n }\r\n\r\n\r\n private _normalizeData() {\r\n this.normalized = [];\r\n if (Array.isArray(this._data)) {\r\n if (this.valueField && this.textField) {\r\n for (const item of this._data) {\r\n this.normalized.push({ key: item[this.valueField], value: item[this.textField], checked: this._selected.includes(item), item: item });\r\n }\r\n } else {\r\n for (const item of this._data) {\r\n this.normalized.push({ key: item, value: item, checked: this._selected.includes(item), item });\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Sets the selected option based on a value. If no option can be\r\n * found with the designated value, the select trigger is cleared.\r\n */\r\n private _setSelectionByValue(value: any | any[]): void {\r\n this._selected = [];\r\n\r\n if (this.multiple && value) {\r\n if (!Array.isArray(value)) {\r\n throw new Error(\"value is not array\");\r\n }\r\n\r\n if (Array.isArray(this._data)) {\r\n let notUnique: any[] = [];\r\n if (this.valueField) {\r\n for (const currentValue of value) {\r\n let items = ArrayHelper.filterByKey(currentValue, this.valueField, this._data);\r\n notUnique = notUnique.concat(items);\r\n }\r\n } else {\r\n for (const currentValue of value) {\r\n let items = this._data.filter(x => x === currentValue);\r\n notUnique = notUnique.concat(items);\r\n }\r\n }\r\n\r\n this._selected = ArrayHelper.distinct(notUnique);\r\n }\r\n } else {\r\n if (Array.isArray(this._data)) {\r\n if (this.valueField) {\r\n this._selected = ArrayHelper.filterByKey(value, this.valueField, this._data);\r\n } else {\r\n this._selected = this._data.filter(x => x === value);\r\n }\r\n }\r\n }\r\n\r\n for (const norm of this.normalized) {\r\n norm.checked = this._selected.includes(norm.item);\r\n }\r\n this._initText();\r\n }\r\n\r\n\r\n\r\n\r\n toggleChecked(v: any) {\r\n if (v && !this.disabled && !this.readonly) {\r\n if (!v.checked) {\r\n v.checked = true;\r\n\r\n if (this.multiple) {\r\n let tmp = [];\r\n for (const item of this.normalized) {\r\n if (item.checked) {\r\n tmp.push(item.key);\r\n }\r\n }\r\n\r\n this.setNgModel(tmp);\r\n // this.value = tmp;\r\n }\r\n else {\r\n //this.value = v.key;\r\n this.setNgModel(v.key);\r\n }\r\n } else {\r\n v.checked = false;\r\n if (this.multiple) {\r\n if (Array.isArray(this._value)) {\r\n this.setNgModel((this._value as any[]).filter(x => x !== v.key));\r\n }\r\n } else {\r\n this.setNgModel(null);\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n private _initText() {\r\n let field = this.checkedTextField || this.textField || '';\r\n if (field) {\r\n this._text = this._selected.filter(x => x !== undefined && x !== null).map(x => x[field]).join(', ');\r\n } else {\r\n this._text = this._selected.join(', ');\r\n }\r\n }\r\n}\r\n","<div class=\"dropdown\" id=\"dropdown-{{id}}\">\r\n <button class=\"btn btn-{{css}} dropdown-toggle\" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n {{label}} <ng-container *ngIf=\"!_text\">{{placeholder}}</ng-container> {{_text}}\r\n </button>\r\n <ul class=\"dropdown-menu\">\r\n <ng-container *ngIf=\"normalized\">\r\n <li><a class=\"dropdown-item\" href=\"javascript:void(0)\" *ngFor=\"let item of normalized\" (click)=\"toggleChecked(item)\">\r\n <span *ngIf=\"item.checked\"><i class=\"fa-regular fa-square-check\"></i></span>\r\n <span *ngIf=\"!item.checked\"><i class=\"fa-regular fa-square\"></i></span>\r\n {{item.value}}\r\n </a></li>\r\n </ng-container>\r\n </ul>\r\n</div>"," \r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ZekSelectMultiple } from './select';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule\r\n ],\r\n declarations: [\r\n ZekSelectMultiple\r\n ],\r\n exports: [\r\n ZekSelectMultiple\r\n ],\r\n})\r\n\r\nexport class ZekSelectModule {\r\n}","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { RandomHelper, StringHelper } from '../../utils';\r\n\r\n@Component({\r\n selector: 'zek-select2,[zek-select2]',\r\n templateUrl: './select2.html',\r\n styleUrls: ['./select2.css']\r\n\r\n})\r\nexport class ZekSelect2 implements OnDestroy {\r\n filter?: string | null;\r\n text?: string | null;\r\n\r\n readonly elementId = RandomHelper.randomHex();\r\n\r\n private _data: Array<any> = [];\r\n @Input()\r\n get data(): Array<any> {\r\n return this._data;\r\n }\r\n set data(value: Array<any>) {\r\n if (this._data !== value) {\r\n this._data = value;\r\n this.findAndSetItem();\r\n this.filterData();\r\n }\r\n }\r\n filteredData: Array<any> = [];\r\n\r\n @Input() textField: any;\r\n @Input() valueField: any;\r\n @Input() placeholder: string = ''\r\n\r\n @Output() selectedItemChange = new EventEmitter<any>();\r\n private _selectedItem: any;\r\n get selectedItem(): any {\r\n return this._selectedItem;\r\n }\r\n\r\n @Output() valueChange = new EventEmitter<any>();\r\n private _value: any;\r\n @Input()\r\n get value() {\r\n return this._value;\r\n }\r\n set value(v: any) {\r\n if (this._value !== v) {\r\n this._value = v;\r\n this.findAndSetItem();\r\n }\r\n }\r\n\r\n private findAndSetItem() {\r\n let foundItem = null;\r\n if (this._value === undefined || this._value === null || !this.data) {\r\n\r\n } else if (this.valueField === undefined || this.valueField === null || this.valueField === '') {\r\n foundItem = this.data.find(x => x === this._value);\r\n } else {\r\n foundItem = this.data.find(x => x[this.valueField] === this._value);\r\n }\r\n\r\n this._selectedItem = foundItem;\r\n this.setText();\r\n }\r\n\r\n\r\n\r\n\r\n // private _dropdown: any;\r\n // public get dropdown(): any {\r\n // if (!this._dropdown) {\r\n // let el = document.getElementById('btn-' + this.elementId);\r\n // this._dropdown = new bootstrap.Dropdown(el);\r\n // }\r\n // return this._dropdown;\r\n // }\r\n // public set dropdown(v: any) {\r\n // this._dropdown = v;\r\n // }\r\n\r\n ngOnDestroy() {\r\n // this.dropdown?.dispose();\r\n // this.dropdown = null;\r\n }\r\n\r\n\r\n onTextChange(text: string) {\r\n this.filter = StringHelper.tryTrim(text);\r\n this.filterData();\r\n }\r\n\r\n private filterData() {\r\n if (this.filter && this.filter !== '') {\r\n let searchString = this.filter;\r\n if (this.textField === undefined || this.textField === null) {\r\n this.filteredData = this.data.filter(item => item.toLowerCase().indexOf(searchString.toLowerCase()) !== -1);\r\n } else {\r\n this.filteredData = this.data.filter(item => item[this.textField].toLowerCase().indexOf(searchString.toLowerCase()) !== -1);\r\n }\r\n }\r\n else// if (this.filter === undefined || this.filter === null || this.filter === '') \r\n {\r\n this.filteredData = this.data;\r\n }\r\n }\r\n\r\n onFocus(e: FocusEvent) {\r\n // if (this.dropdown){\r\n // this.dropdown.show();\r\n // }\r\n // let dropdown = document.getElementById(`dropdown-menu-container-${this.elementId}`);\r\n // console.log(dropdown);\r\n\r\n // if (dropdown) {\r\n // console.log(dropdown.classList);\r\n\r\n // if (!dropdown.classList.contains('show')) {\r\n // let el = document.getElementById(`input-${this.elementId}`);\r\n // if (el) {\r\n // el.click();\r\n // }\r\n // }\r\n // }\r\n\r\n\r\n\r\n // let inputId = 'input-' + this.elementId;\r\n // let el = document.getElementById(inputId);\r\n // if (el) {\r\n\r\n // if (!el.classList.contains('show')) {\r\n // this.dropdown?.show();\r\n // }\r\n\r\n // let menuId = '#dropdown-menu-' + this.elementId + ' ' + 'a';\r\n // el.addEventListener('keydown', function (e) {\r\n // if (e.key == 'ArrowDown') {\r\n // (document.querySelectorAll(menuId)[0] as any).focus();\r\n // }\r\n // });\r\n // }\r\n }\r\n inputUnfocused() {\r\n // this.expanded = false;\r\n }\r\n\r\n private setText() {\r\n if (this._selectedItem === undefined || this._selectedItem === null) {\r\n this.text = null;\r\n }\r\n else if (this.textField === undefined || this.textField === null) {\r\n this.text = this._selectedItem;\r\n } else {\r\n this.text = this._selectedItem[this.textField];\r\n }\r\n }\r\n\r\n selectItem(item: any) {\r\n\r\n if (this._selectedItem !== item) {\r\n this._selectedItem = item;\r\n this.selectedItemChange.emit(item);\r\n\r\n this.setText();\r\n\r\n //set value\r\n let v;\r\n if (this.valueField === undefined || this.valueField === null || this.valueField === '') {\r\n // this.value = v\r\n v = item;\r\n } else {\r\n // this.value = v[this.valueField];\r\n v = item[this.valueField];\r\n }\r\n\r\n //if value not equals then emit valueChange\r\n if (this._value !== v) {\r\n this._value = v;\r\n this.valueChange.emit(v);\r\n }\r\n }\r\n }\r\n\r\n\r\n}\r\n","<div class=\"input-group position-relative\" id=\"dropdown-menu-container-{{elementId}}\">\r\n <input type=\"text\" class=\"form-control\" placeholder=\"{{placeholder}}\" data-bs-toggle=\"dropdown\" id=\"input-{{elementId}}\" [(ngModel)]=\"text\" (ngModelChange)=\"onTextChange($event)\" (focus)=\"onFocus($event)\" (blur)=\"inputUnfocused()\">\r\n <button class=\"btn btn-outline-secondary dropdown-toggle\" id=\"btn-{{elementId}}\" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" data-bs-reference=\"parent\"></button>\r\n <ul class=\"dropdown-menu dropdown-menu-start w-100 scrollable-menu\" id=\"dropdown-menu-{{elementId}}\">\r\n <ng-container *ngIf=\"textField\">\r\n <li *ngFor=\"let entry of filteredData\">\r\n <a href=\"javascript:void(0)\" (click)=\"selectItem(entry)\" class=\"dropdown-item\">{{entry[textField]}}</a>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngIf=\"!textField\">\r\n <li *ngFor=\"let entry of filteredData\">\r\n <a href=\"javascript:void(0)\" (click)=\"selectItem(entry)\" class=\"dropdown-item\">{{textField}}</a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>\r\n<!-- <kendo-autocomplete\r\n [data]=\"data\"\r\n [filterable]=\"true\"\r\n (valueChange)=\"valueChange($event)\"\r\n (filterChange)=\"filterChange($event)\"\r\n (open)=\"open()\"\r\n (close)=\"close()\"\r\n (focus)=\"focus()\"\r\n (blur)=\"blur()\">\r\n</kendo-autocomplete> -->"," \r\nimport { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ZekSelect2 } from './select2';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule\r\n ],\r\n declarations: [\r\n ZekSelect2\r\n ],\r\n exports: [\r\n ZekSelect2\r\n ],\r\n})\r\n\r\nexport class Select2Module {\r\n}","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\r\nimport { RandomHelper, StringHelper } from '../../utils';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n//declare let bootstrap: any;\r\n\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-select2-multiple,[zek-select2-multiple]',\r\n templateUrl: './select2-multiple.html',\r\n imports: [CommonModule, FormsModule]\r\n})\r\n\r\nexport class ZekSelect2Multiple {\r\n filter?: string | null;\r\n text?: string | null;\r\n\r\n readonly elementId = RandomHelper.randomHex();\r\n\r\n private _data: Array<any> = [];\r\n @Input()\r\n get data(): Array<any> {\r\n return this._data;\r\n }\r\n set data(value: Array<any>) {\r\n if (this._data !== value) {\r\n this._data = value;\r\n this.findAndSetItems();\r\n this.filterData();\r\n }\r\n }\r\n filteredData: Array<any> = [];\r\n\r\n @Input() textField: any;\r\n @Input() valueField: any;\r\n @Input() placeholder: string = ''\r\n\r\n @Output() selectedItemChange = new EventEmitter<any>();\r\n private _selectedItems: Array<any> = [];\r\n get selectedItems(): Array<any> {\r\n return this._selectedItems;\r\n }\r\n\r\n @Output() valueChange = new EventEmitter<any>();\r\n private _value?: Array<any> | null;\r\n @Input()\r\n get value() {\r\n return this._value;\r\n }\r\n set value(v: any) {\r\n if (this._value !== v) {\r\n this._value = v;\r\n this.findAndSetItems();\r\n }\r\n }\r\n\r\n private findAndSetItems() {\r\n this._data?.forEach(x => x.selected = false);\r\n this._selectedItems = [];\r\n let foundItems: Array<any> = [];\r\n if (this._value === undefined || this._value === null || !this.data) {\r\n\r\n } else if (this.valueField === undefined || this.valueField === null || this.valueField === '') {\r\n foundItems = this.data.filter(x => this._value?.includes(x));\r\n } else {\r\n foundItems = this.data.filter(x => this._value?.includes(x[this.valueField]));\r\n }\r\n\r\n if (foundItems.length > 0) {\r\n foundItems.forEach(x => x.selected = true);\r\n this._selectedItems = foundItems;\r\n }\r\n this.setText();\r\n }\r\n\r\n\r\n\r\n onTextChange(text: string) {\r\n this.filter = StringHelper.tryTrim(text);\r\n this.filterData();\r\n }\r\n\r\n private filterData() {\r\n if (this.filter && this.filter !== '') {\r\n let searchString = this.filter;\r\n if (this.textField === undefined || this.textField === null) {\r\n this.filteredData = this.data.filter(item => item.toLowerCase().indexOf(searchString.toLowerCase()) !== -1);\r\n } else {\r\n this.filteredData = this.data.filter(item => item[this.textField].toLowerCase().indexOf(searchString.toLowerCase()) !== -1);\r\n }\r\n }\r\n else {\r\n this.filteredData = this.data;\r\n }\r\n }\r\n\r\n onFocus(e: FocusEvent) {\r\n this.filter = '';\r\n this.text = '';\r\n this.filterData();\r\n }\r\n inputUnfocused() {\r\n this.setText();\r\n }\r\n\r\n private setText() {\r\n if (this.textField === undefined || this.textField === null) {\r\n this.text = this._selectedItems.join(', ');\r\n } else {\r\n this.text = this._selectedItems.map(x => x[this.textField]).join(', ');\r\n }\r\n }\r\n\r\n selectItem(item: any) {\r\n item.selected = !item.selected;\r\n\r\n if (item.selected) {\r\n this._selectedItems.push(item);\r\n } else {\r\n this._selectedItems = this._selectedItems.filter(x => x !== item);\r\n }\r\n\r\n this.selectedItemChange.emit(item);\r\n this.setText();\r\n\r\n let v: Array<any> | null;\r\n if (this.valueField === undefined || this.valueField === null || this.valueField === '') {\r\n v = this._selectedItems ? this._selectedItems : null;\r\n } else {\r\n v = this._selectedItems ? this._selectedItems.map(x => x[this.valueField]) : null;\r\n }\r\n\r\n this._value = v;\r\n this.valueChange.emit(v);\r\n }\r\n\r\n\r\n}\r\n","<div class=\"input-group position-relative\" id=\"dropdown-menu-container-{{elementId}}\">\r\n <input type=\"text\" class=\"form-control\" placeholder=\"{{placeholder}}\" data-bs-toggle=\"dropdown\" data-bs-auto-close=\"outside\" id=\"input-{{elementId}}\" [(ngModel)]=\"text\" (ngModelChange)=\"onTextChange($event)\" (focus)=\"onFocus($event)\" (blur)=\"inputUnfocused()\">\r\n <button class=\"btn btn-outline-secondary dropdown-toggle\" id=\"btn-{{elementId}}\" type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\" data-bs-reference=\"parent\"></button>\r\n <ul class=\"dropdown-menu dropdown-menu-start w-100 scrollable-menu\" id=\"dropdown-menu-{{elementId}}\">\r\n <ng-container *ngIf=\"textField\">\r\n <li *ngFor=\"let item of filteredData\">\r\n <a href=\"javascript:void(0)\" (click)=\"selectItem(item)\" class=\"dropdown-item\">\r\n <span *ngIf=\"item.selected\"><i class=\"fa-regular fa-square-check\"></i></span>\r\n <span *ngIf=\"!item.selected\"><i class=\"fa-regular fa-square\"></i></span>\r\n {{item[textField]}}\r\n </a>\r\n </li>\r\n </ng-container>\r\n <ng-container *ngIf=\"!textField\">\r\n <li *ngFor=\"let item of filteredData\">\r\n <a href=\"javascript:void(0)\" (click)=\"selectItem(item)\" class=\"dropdown-item\">\r\n <span *ngIf=\"item.selected\"><i class=\"fa-regular fa-square-check\"></i></span>\r\n <span *ngIf=\"!item.selected\"><i class=\"fa-regular fa-square\"></i></span>\r\n {{item}}\r\n </a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n</div>","import { Directive, ElementRef, HostListener, Input, OnInit, Output, EventEmitter, AfterViewInit } from '@angular/core';\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[zek-sort]'\r\n})\r\nexport class ZekSort implements AfterViewInit {\r\n private innerHtml: string = '';\r\n\r\n /**\r\n * name of sorting column\r\n */\r\n @Input() header: string | null = null;\r\n\r\n /**\r\n * Executes after 'sort' input changed\r\n */\r\n @Output() sortChange = new EventEmitter<string | null>();\r\n\r\n /**\r\n * Executes after 'asc' input changed\r\n */\r\n @Output() ascChange = new EventEmitter<boolean>();\r\n\r\n /**\r\n * Executes after click on column\r\n */\r\n @Output() onChange = new EventEmitter();\r\n\r\n\r\n constructor(private el: ElementRef/*, renderer: Renderer, private templateRef: TemplateRef<any>, private viewContainer: ViewContainerRef */) {\r\n }\r\n\r\n // @Input() set myIf(shouldAdd: boolean) {\r\n // if (shouldAdd) {\r\n // // If condition is true add template to DOM\r\n // this.viewContainer.createEmbeddedView(this.templateRef);\r\n // } else {\r\n // // Else remove template from DOM\r\n // this.viewContainer.clear();\r\n // }\r\n // }\r\n\r\n\r\n ngAfterViewInit() {\r\n // Use renderer to render the element with styles\r\n //renderer.setElementStyle(el.nativeElement, 'display', 'none');\r\n\r\n this.innerHtml = this.el.nativeElement.innerHTML;\r\n this.initIcon();\r\n }\r\n\r\n initIcon() {\r\n if (!this.innerHtml) return;\r\n\r\n let tmpAsc = 0;\r\n if (!this.header || this.header !== this.sort) {\r\n tmpAsc = 1;\r\n } else if (this.asc) {\r\n tmpAsc = 2;\r\n } else {\r\n tmpAsc = 3;\r\n }\r\n\r\n this.el.nativeElement.innerHTML = (this.innerHtml || '')\r\n + '<span class=\"float-end' + (tmpAsc === 1 ? ' text-muted' : '') + '\">'\r\n + (tmpAsc === 1 ? '<i class=\"fa-solid fa-sort\"></i>' : '')\r\n + (tmpAsc === 2 ? '<i class=\"fa-solid fa-sort-up\"></i>' : '')\r\n + (tmpAsc === 3 ? '<i class=\"fa-solid fa-sort-down\"></i>' : '')\r\n + '</span>';\r\n }\r\n\r\n // @HostListener('click', ['$event.target']) onClick(btn) {\r\n // console.log('button', btn, 'number of clicks:', this.numberOfClicks++);\r\n // }\r\n @HostListener('click') onClick() {\r\n if (this.sort !== this.header) {\r\n this.sort = this.header;\r\n this.sortChange.emit(this.sort);\r\n this.asc = true;\r\n this.ascChange.emit(this.asc);\r\n\r\n } else {\r\n this.asc = !this.asc;\r\n this.ascChange.emit(this.asc);\r\n }\r\n\r\n this.onChange.emit();\r\n }\r\n\r\n\r\n\r\n\r\n\r\n private _sort: string | null = null;\r\n get sort() {\r\n return this._sort;\r\n }\r\n @Input()\r\n set sort(value: string | null) {\r\n if (this._sort !== value) {\r\n this._sort = value;\r\n this.initIcon();\r\n }\r\n }\r\n\r\n\r\n private _asc: boolean = false;\r\n get asc() {\r\n return this._asc;\r\n }\r\n @Input()\r\n set asc(value: boolean) {\r\n if (this._asc !== value) {\r\n this._asc = value;\r\n this.initIcon();\r\n }\r\n }\r\n}","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { KeyPair } from '../../../models/key-pair.model';\r\nimport { RandomHelper } from '../../../utils';\r\nimport { TranslateModule } from '@ngx-translate/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-sort-button-group',\r\n templateUrl: './sort-button-group.html',\r\n imports: [CommonModule, TranslateModule],\r\n})\r\nexport class ZekSortButtonGroup {\r\n elementName: string = '';\r\n\r\n /**\r\n * Executes after 'sort' input changed\r\n */\r\n @Output() sortChange = new EventEmitter<string | null>();\r\n\r\n /**\r\n * Executes after 'asc' input changed\r\n */\r\n @Output() ascChange = new EventEmitter<boolean>();\r\n\r\n /**\r\n * Executes after click on column\r\n */\r\n @Output() onChange = new EventEmitter();\r\n\r\n sortField: any;\r\n private _sort: string | null = null;\r\n get sort(): string | null {\r\n return this._sort;\r\n }\r\n @Input()\r\n set sort(value: string | null) {\r\n if (this._sort !== value) {\r\n this._sort = value;\r\n }\r\n }\r\n\r\n\r\n private _asc: boolean = false;\r\n get asc() {\r\n return this._asc;\r\n }\r\n @Input()\r\n set asc(value: boolean) {\r\n if (this._asc !== value) {\r\n this._asc = value;\r\n }\r\n }\r\n\r\n @Input() sortFields: KeyPair[] | null = null;\r\n\r\n /**\r\n * Default constructor\r\n */\r\n constructor() {\r\n this.elementName = 'sort-button-group-' + RandomHelper.randomHex();\r\n }\r\n\r\n sortFieldClick(item: any) {\r\n if (!item || !item.key) return;\r\n\r\n this.sortField = item;\r\n if (this.sort !== item.key) {\r\n this.sort = item.key;\r\n this.sortChange.emit(this.sort);\r\n this.onChange.emit();\r\n }\r\n }\r\n\r\n ascDescClick() {\r\n this.asc = !this.asc;\r\n this.ascChange.emit(this.asc);\r\n this.onChange.emit();\r\n }\r\n}\r\n","<div class=\"btn-group me-3\" role=\"group\" aria-label=\"Sort group\">\r\n <button type=\"button\" class=\"btn btn-light\" (click)=\"ascDescClick()\">\r\n <span *ngIf=\"asc === undefined || asc === null\"><i class=\"fa-solid fa-sort fa-fw\"></i></span>\r\n <span *ngIf=\"asc === true\"><i class=\"fa-solid fa-arrow-down-z-a fa-fw\"></i></span>\r\n <span *ngIf=\"asc === false\"><i class=\"fa-solid fa-arrow-up-z-a fa-fw\"></i></span>\r\n </button>\r\n <button *ngIf=\"sortFields && sortFields.length > 0\" class=\"btn btn-light dropdown-toggle\" type=\"button\" id=\"{{elementName}}\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\">\r\n <ng-container *ngIf=\"sortField; else elseFieldBlock\">{{ sortField.value | translate }}</ng-container>\r\n <ng-template #elseFieldBlock>{{ 'Action.Sort' | translate }}</ng-template>\r\n </button>\r\n <ul *ngIf=\"sortFields && sortFields.length > 0\" class=\"dropdown-menu\" [attr.aria-labelledby]=\"elementName\">\r\n <li><a *ngFor=\"let item of sortFields\" class=\"dropdown-item\" href=\"javascript:void(0)\" (click)=\"sortFieldClick(item)\">{{ (item.value) | translate }}</a></li>\r\n </ul>\r\n</div><i class=\"\"></i>","import { DatePipe } from '@angular/common';\r\nimport { Pipe, PipeTransform } from '@angular/core';\r\n//import { toDate } from '../../extensions';\r\n\r\n@Pipe({\r\n name: 'time'\r\n})\r\nexport class TimePipe implements PipeTransform {\r\n constructor(private readonly _datePipe: DatePipe) {\r\n }\r\n\r\n transform(value: Date | string | number | null | undefined, format?: string): string | null {\r\n if (value === undefined || value === null || value === '' || value !== value) return null;\r\n\r\n const dateTime: Date = new Date(value);\r\n let dateTimeString: string;\r\n if (this.isValidDate(dateTime)) {\r\n dateTimeString = dateTime.toString();\r\n } else {\r\n dateTimeString = `1970-01-01 ${value}`;\r\n }\r\n\r\n // Replace any dashes with slashes, as Safari and IE11 don't recognise dates with dashes in them.\r\n dateTimeString = dateTimeString.replace(/-/g, '/');\r\n if (!this.isValidDate(new Date(dateTimeString))) {\r\n return null;\r\n }\r\n\r\n const formattedTime = this._datePipe.transform(dateTimeString, format);\r\n return formattedTime;\r\n }\r\n\r\n\r\n private isValidDate(d: any): boolean {\r\n return d instanceof Date && !isNaN(d.getTime());\r\n }\r\n}\r\n/*export class TimePipe extends DatePipe implements PipeTransform {\r\n transform(value: Date | string | number, format?: string, timezone?: string, locale?: string): string | null;\r\n transform(value: null | undefined, format?: string, timezone?: string, locale?: string): null;\r\n transform(value: Date | string | number | null | undefined, format?: string, timezone?: string, locale?: string): string | null {\r\n if (value === undefined || value === null || value === '' || value !== value) return null;\r\n\r\n const dateTime: Date = new Date(value);\r\n\r\n //const date = toDate(value);\r\n let dateTimeString: string;\r\n if (this.isValidDate(dateTime)) {\r\n dateTimeString = dateTime.toString();\r\n } else {\r\n dateTimeString = `1970-01-01 ${value}`;\r\n }\r\n\r\n dateTimeString = dateTimeString.replace(/-/g, '/');\r\n\r\n if (!this.isValidDate(new Date(dateTimeString))) {\r\n return null;\r\n }\r\n\r\n const formattedTime = super.transform(dateTimeString, format);\r\n\r\n return formattedTime;\r\n }\r\n\r\n\r\n private isValidDate(d: any): boolean {\r\n return d instanceof Date && !isNaN(d.getTime());\r\n }\r\n}*/","import { NgModule } from '@angular/core';\r\nimport { CommonModule, DatePipe } from '@angular/common';\r\n\r\nimport { TimePipe } from './time.pipe';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n TimePipe,\r\n ],\r\n providers: [\r\n DatePipe\r\n ],\r\n exports: [TimePipe]\r\n})\r\nexport class TimeModule { }","import { Injectable, Input } from \"@angular/core\";\r\nimport { Subject, Subscription, timer } from \"rxjs\";\r\nimport { map, takeWhile, tap } from \"rxjs/operators\";\r\nimport { DateHelper } from \"../../utils\";\r\n\r\n@Injectable()\r\nexport class TimerService {\r\n @Input() seconds: number = 0;\r\n\r\n // running: boolean = false;\r\n \r\n private _count : number = 0;\r\n public get count() : number {\r\n return this._count;\r\n }\r\n \r\n private _left : number = 0;\r\n public get left() : number {\r\n return this._left;\r\n }\r\n\r\n expireDate: Date | null = null;\r\n private subscription: Subscription | null = null;\r\n //@Output() checkTime: EventEmitter<number> = new EventEmitter();\r\n\r\n tick = new Subject<number>();\r\n completed = new Subject<any>();\r\n // tickerInterval: any;\r\n // expired: Observable<number> = new Observable<number>();\r\n // initialCountValue: number = 0;\r\n\r\n constructor() { }\r\n\r\n\r\n startHour(hours: number, minutes: number, seconds: number) {\r\n this.start((hours ? hours * 60 * 60 : 0) + (minutes ? minutes * 60 : 0) + seconds);\r\n }\r\n startMinute(minutes: number, seconds: number) {\r\n this.start((minutes ? minutes * 60 : 0) + seconds);\r\n }\r\n start(seconds: number) {\r\n this.clear();\r\n\r\n this._left = seconds;\r\n this._count = seconds;\r\n this.expireDate = DateHelper.addSeconds(new Date(), seconds);\r\n\r\n //this.internalTick();//because run first tick value example 60 -> not 59\r\n const source = timer(0, 1000).pipe(\r\n //map(i => this.count - i),\r\n //takeWhile(i => i > 0),\r\n map(_i => this._left--),\r\n takeWhile(_i => this.left >= 0)\r\n //tap(s => this.checkTime.emit(s))\r\n );\r\n\r\n this.subscription = source.subscribe(() => {\r\n this.internalTick();\r\n });\r\n }\r\n clear() {\r\n this.subscription?.unsubscribe();\r\n this.subscription = null;\r\n this.expireDate = null;\r\n }\r\n\r\n\r\n internalTick() {\r\n if (this.tick) {\r\n this.tick.next(this._left);\r\n }\r\n\r\n if (this.left <= 0 && this.completed) {\r\n this.completed.next(null);\r\n }\r\n /*\r\n // get total seconds between the times\r\n let delta = Math.abs(date_future - date_now) / 1000;\r\n\r\n // calculate (and subtract) whole days\r\n let days = Math.floor(delta / 86400);\r\n delta -= days * 86400;\r\n\r\n // calculate (and subtract) whole hours\r\n let hours = Math.floor(delta / 3600) % 24;\r\n delta -= hours * 3600;\r\n\r\n // calculate (and subtract) whole minutes\r\n let minutes = Math.floor(delta / 60) % 60;\r\n delta -= minutes * 60;\r\n\r\n // what's left is seconds\r\n let seconds = delta % 60; // in theory the modulus is not required\r\n */\r\n }\r\n}","import { AfterViewInit, Directive, ElementRef } from \"@angular/core\";\r\nimport { CoreComponent } from \"../../components\";\r\n\r\ndeclare let bootstrap: any;\r\n\r\n@Directive({\r\n standalone: true,\r\n selector: '[zek-toltip]'\r\n})\r\nexport class ZekTooltip extends CoreComponent implements AfterViewInit {\r\n private _tooltip: any;\r\n constructor(private el: ElementRef) {\r\n super();\r\n }\r\n\r\n override destroy() {\r\n this._tooltip?.dispose();\r\n this._tooltip = undefined;\r\n return super.destroy();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this._tooltip = new bootstrap.Tooltip(this.el.nativeElement);\r\n }\r\n\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DateHelper } from '../../utils';\r\nimport { DatePipe } from '@angular/common';\r\n\r\n@Pipe({\r\n standalone: true,\r\n name: 'utcToLocal',\r\n pure: true\r\n})\r\nexport class UtcToLocalPipe implements PipeTransform {\r\n constructor(private readonly _datePipe: DatePipe) {\r\n }\r\n\r\n transform(value: Date | string | number | null | undefined, format?: string): string | Date | null {\r\n if (typeof value === 'undefined' || value === null || value === '' || value !== value) return null;\r\n\r\n let date = DateHelper.utcToLocal(DateHelper.toDate(value))\r\n return this._datePipe.transform(date, format);\r\n }\r\n\r\n\r\n\r\n}","// import { AbstractControl, Validators, ValidatorFn, ValidationErrors } from '@angular/forms'\r\nimport { AbstractControl, ValidationErrors, ValidatorFn } from \"@angular/forms\";\r\n\r\n// export const range = (range?: Array<number> | null): ValidatorFn => {\r\n// return (control: AbstractControl): { [key: string]: any } | null => {\r\n\r\n// if (!range) return null;\r\n// if (Validators.required(control)) return null;\r\n\r\n// let v: number = +control.value;\r\n// return v >= range[0] && v <= range[1] ? null : { actualValue: v, requiredValue: range, range: true };\r\n// };\r\n// };\r\n// export function blue(): ValidatorFn {\r\n// return (control: AbstractControl): { [key: string]: any } | null =>\r\n// control.value?.toLowerCase() === 'blue'\r\n// ? null : { wrongColor: control.value };\r\n// }\r\n\r\n\r\nfunction isEmptyInputValue(value: any): boolean {\r\n /**\r\n * Check if the object is a string or array before evaluating the length attribute.\r\n * This avoids falsely rejecting objects that contain a custom length attribute.\r\n * For example, the object {id: 1, length: 0, width: 0} should not be returned as empty.\r\n */\r\n return typeof value === 'undefined' || value == null || ((typeof value === 'string' || Array.isArray(value)) && value.length === 0);\r\n}\r\n\r\n/**\r\n * Function that has `ValidatorFn` shape, but performs no operation.\r\n */\r\nexport function nullValidator(control: AbstractControl): ValidationErrors | null {\r\n return null;\r\n}\r\n\r\n\r\nexport class Validators {\r\n\r\n /**\r\n * @description\r\n * Validator that requires the control's value to be less than or equal to the provided number.\r\n *\r\n * @usageNotes\r\n *\r\n * ### Validate against a range 0 - 15\r\n *\r\n * ```typescript\r\n * const control = new FormControl(16, Validators.max([0,15]));\r\n *\r\n * console.log(control.errors); // {range: {min: 0, max: 15, actual: 16}}\r\n * ```\r\n *\r\n * @returns A validator function that returns an error map with the\r\n * `range` property if the validation check fails, otherwise `null`.\r\n *\r\n * @see `updateValueAndValidity()`\r\n *\r\n */\r\n static range(min: number, max: number): ValidatorFn {\r\n return rangeValidator([min, max]);\r\n }\r\n\r\n\r\n /**\r\n* @description\r\n* Validator that requires the control's value to be less than or equal to the provided number.\r\n*\r\n* @usageNotes\r\n*\r\n* ### Validate against a range 0 - 15\r\n*\r\n* ```typescript\r\n* const control = new FormControl(16, Validators.max([0,15]));\r\n*\r\n* console.log(control.errors); // {range: {min: 0, max: 15, actual: 16}}\r\n* ```\r\n*\r\n* @returns A validator function that returns an error map with the\r\n* `range` property if the validation check fails, otherwise `null`.\r\n*\r\n* @see `updateValueAndValidity()`\r\n*\r\n*/\r\n static match(value: string): ValidatorFn {\r\n return matchValidator(value);\r\n }\r\n}\r\n\r\n\r\n/**\r\n * Validator that requires the control's value to be between provided numbers.\r\n * See `Validators.range` for additional information.\r\n */\r\nexport function rangeValidator(range: Array<number>): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n if (isEmptyInputValue(control.value) || isEmptyInputValue(range) || range.length < 2) {\r\n return null; // don't validate empty values to allow optional controls\r\n }\r\n const value = parseFloat(control.value);\r\n let max = range[0];\r\n let min = range[1];\r\n if (!isNaN(value) && (value < min || value > max)) {\r\n return { 'range': { 'min': min, 'max': max, 'actual': control.value } };\r\n }\r\n\r\n return null;\r\n };\r\n}\r\n\r\n\r\nexport function matchValidator(input: string): ValidatorFn {\r\n return (control: AbstractControl): ValidationErrors | null => {\r\n if (isEmptyInputValue(control.value)) {\r\n return null; // don't validate empty values to allow optional controls\r\n }\r\n\r\n const targetCtrl = control.get(input);\r\n let targetValue: any;\r\n if (!targetCtrl) {\r\n let el = document.getElementById(input) as any;\r\n if (el) {\r\n targetValue = el.value;\r\n } else {\r\n return null;\r\n }\r\n } else {\r\n targetValue = targetCtrl.value;\r\n }\r\n\r\n if (targetValue !== control.value) {\r\n return { 'mismatch': { 'requiredValue': targetValue, 'actual': control.value } };\r\n }\r\n return null;\r\n };\r\n}","\r\nimport { Directive, forwardRef, Input, OnChanges, SimpleChanges } from \"@angular/core\";\r\nimport { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from \"@angular/forms\";\r\nimport { matchValidator, nullValidator, rangeValidator } from \"./validator\";\r\n\r\nfunction toFloat(value: string | number): number {\r\n return typeof value === 'number' ? value : parseFloat(value);\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n@Directive()\r\nabstract class AbstractValidatorDirective implements Validator, OnChanges {\r\n private _validator: ValidatorFn = nullValidator;\r\n private _onChange!: () => void;\r\n\r\n /**\r\n * A flag that tracks whether this validator is enabled.\r\n *\r\n * Marking it `internal` (vs `protected`), so that this flag can be used in host bindings of\r\n * directive classes that extend this base class.\r\n * @internal\r\n */\r\n _enabled?: boolean;\r\n\r\n /**\r\n * Name of an input that matches directive selector attribute (e.g. `minlength` for\r\n * `MinLengthDirective`). An input with a given name might contain configuration information (like\r\n * `minlength='10'`) or a flag that indicates whether validator should be enabled (like\r\n * `[required]='false'`).\r\n *\r\n * @internal\r\n */\r\n abstract inputName: string;\r\n\r\n /**\r\n * Creates an instance of a validator (specific to a directive that extends this base class).\r\n *\r\n * @internal\r\n */\r\n abstract createValidator(input: unknown): ValidatorFn;\r\n\r\n /**\r\n * Performs the necessary input normalization based on a specific logic of a Directive.\r\n * For example, the function might be used to convert string-based representation of the\r\n * `minlength` input to an integer value that can later be used in the `Validators.minLength`\r\n * validator.\r\n *\r\n * @internal\r\n */\r\n abstract normalizeInput(input: unknown): unknown;\r\n\r\n /** @nodoc */\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.inputName in changes) {\r\n const input = this.normalizeInput(changes[this.inputName].currentValue);\r\n this._enabled = this.enabled(input);\r\n this._validator = this._enabled ? this.createValidator(input) : nullValidator;\r\n if (this._onChange) {\r\n this._onChange();\r\n }\r\n }\r\n }\r\n\r\n /** @nodoc */\r\n validate(control: AbstractControl): ValidationErrors | null {\r\n return this._validator(control);\r\n }\r\n\r\n /** @nodoc */\r\n registerOnValidatorChange(fn: () => void): void {\r\n this._onChange = fn;\r\n }\r\n\r\n /**\r\n * @description\r\n * Determines whether this validator should be active or not based on an input.\r\n * Base class implementation checks whether an input is defined (if the value is different from\r\n * `null` and `undefined`). Validator classes that extend this base class can override this\r\n * function with the logic specific to a particular validator directive.\r\n */\r\n enabled(input: unknown): boolean {\r\n return input != null /* both `null` and `undefined` */;\r\n }\r\n}\r\n\r\n\r\n\r\n\r\nexport const RANGE_VALIDATOR: any = {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => RangeValidator),\r\n multi: true\r\n};\r\n\r\n@Directive({\r\n selector: 'input[type=number][range][formControlName],input[type=number][range][formControl],input[type=number][range][ngModel]',\r\n providers: [RANGE_VALIDATOR],\r\n host: { '[attr.range]': '_enabled ? range : null' }\r\n})\r\nexport class RangeValidator extends AbstractValidatorDirective {\r\n @Input() range!: [number, number] | null;\r\n\r\n /** @internal */\r\n override inputName = 'range';\r\n /** @internal */\r\n override normalizeInput = (input: string | number): number => toFloat(input);\r\n /** @internal */\r\n override createValidator = (range: [number]): ValidatorFn => rangeValidator(range);\r\n}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n/**\r\n * @description\r\n * Provider which adds `MatchValidator` to the `NG_VALIDATORS` multi-provider list.\r\n */\r\nexport const MATCH_VALIDATOR: any = {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => MatchValidator),\r\n multi: true\r\n};\r\n\r\n@Directive({\r\n selector: '[match][formControlName],match][formControl],[match][ngModel]',\r\n providers: [MATCH_VALIDATOR],\r\n host: { '[attr.match]': '_enabled ? match : null' }\r\n})\r\nexport class MatchValidator extends AbstractValidatorDirective {\r\n @Input() match!: string;\r\n\r\n /** @internal */\r\n override inputName = 'match';\r\n /** @internal */\r\n override normalizeInput = (input: string): string => input;\r\n /** @internal */\r\n override createValidator = (input: string): ValidatorFn => matchValidator(input);\r\n}","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatchValidator, RangeValidator } from './directive';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule\r\n ],\r\n declarations: [\r\n RangeValidator,\r\n MatchValidator,\r\n ],\r\n exports: [\r\n RangeValidator,\r\n MatchValidator\r\n ]\r\n})\r\nexport class ValidatorsModule { }","import { Component, Input } from \"@angular/core\";\r\nimport { ZekSafePipe } from \"../../safe\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-wizard',\r\n templateUrl: './wizard.html',\r\n imports: [CommonModule, ZekSafePipe]\r\n})\r\nexport class ZekWizard {\r\n\r\n progress = 0;\r\n stepsArray: { step: number, progress: number }[] = [\r\n { step: 1, progress: 0 }\r\n ];\r\n\r\n private _steps: number = 1;\r\n @Input()\r\n get steps(): number {\r\n return this._steps;\r\n }\r\n set steps(v: number) {\r\n if (v < 1) v = 1;\r\n\r\n if (this._steps !== v) {\r\n this._steps = v;\r\n this.init();\r\n }\r\n }\r\n\r\n\r\n private _step: number = 1;\r\n @Input()\r\n get step(): number {\r\n return this._step;\r\n }\r\n set step(v: number) {\r\n if (v < 1) v = 1;\r\n else if (v > this.steps) v = this.steps;\r\n\r\n if (this._step !== v) {\r\n this._step = v;\r\n\r\n let found = this.stepsArray.find(x => x.step === this._step);\r\n if (found) {\r\n this.progress = found.progress;\r\n }\r\n }\r\n }\r\n\r\n\r\n private init() {\r\n this.stepsArray = [];\r\n this.stepsArray.push({ step: 1, progress: 0 });\r\n\r\n for (let i = 1; i < this.steps; i++) {\r\n this.stepsArray.push({ step: i + 1, progress: Math.round(100 / (this.steps - 1) * i) });\r\n }\r\n }\r\n\r\n previous() {\r\n this.step--;\r\n }\r\n next() {\r\n this.step++;\r\n }\r\n}","<div class=\"position-relative m-4\">\r\n <div class=\"progress\" style=\"height: 1px;\">\r\n <div class=\"progress-bar\" role=\"progressbar\" [style.width.%]=\"progress\" [attr.aria-valuenow]=\"progress\" aria-valuemin=\"0\" aria-valuemax=\"100\"></div>\r\n </div>\r\n <!-- left: 33%!important -->\r\n <!-- [style.left.%]=\"item.progress\" -->\r\n <button *ngFor=\"let item of stepsArray\" [attr.style]=\"('width:2rem; height:2rem; left:' + item.progress + '%!important') | safe:'style'\" type=\"button\" class=\"position-absolute top-0 translate-middle btn btn-sm btn-primary rounded-pill\">{{ item.step }}</button>\r\n</div>","import { Component } from \"@angular/core\";\r\nimport { ZekWizard } from \"../wizard/wizard\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\n@Component({\r\n standalone: true,\r\n selector: 'zek-wizard2',\r\n templateUrl: './wizard2.html',\r\n imports: [CommonModule]\r\n})\r\nexport class ZekWizard2 extends ZekWizard{\r\n\r\n}","<div class=\"m-2\">\r\n <button *ngFor=\"let item of stepsArray\"\r\n [class.btn-outline-secondary]=\"item.step >= steps\"\r\n [class.btn-primary]=\"item.step < steps\"\r\n type=\"button\"\r\n class=\"btn btn-sm mr me-2\"></button>\r\n</div>","export * from './age';\r\nexport * from './alert';\r\nexport * from './autocomplete';\r\nexport * from './bb';\r\nexport * from './card';\r\nexport * from './callback';\r\nexport * from './date-ago';\r\nexport * from './datepicker';\r\nexport * from './edit-toolbar';\r\nexport * from './file';\r\nexport * from './file-viewer';\r\nexport * from './google-login-button';\r\nexport * from './grid-toolbar';\r\nexport * from './list-toolbar';\r\nexport * from './loading';\r\nexport * from './modal';\r\nexport * from './numeric';\r\nexport * from './page-title';\r\nexport * from './pager';\r\nexport * from './password';\r\nexport * from './progress';\r\nexport * from './radio';\r\nexport * from './readonly';\r\nexport * from './recaptcha/index';\r\nexport * from './safe';\r\nexport * from './select';\r\nexport * from './select2';\r\nexport * from './select2-multiple';\r\nexport * from './sort';\r\nexport * from './time';\r\nexport * from './tooltip';\r\nexport * from './utc-to-local';\r\nexport * from './validator';\r\nexport * from './validators';\r\nexport * from './wizard';\r\n\r\n// export * from './'","import { Injector, ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { WebApiClient, WebApiConfig } from './services';\r\nimport { API_BASE_URL } from './tokens';\r\n\r\n@NgModule()\r\nexport class WebApiModule {\r\n public static forRoot(config: WebApiConfig): ModuleWithProviders<WebApiModule> {\r\n return {\r\n ngModule: WebApiModule,\r\n providers: [\r\n WebApiClient,\r\n {\r\n provide: API_BASE_URL,\r\n useValue: config.baseUrl\r\n },\r\n ]\r\n };\r\n }\r\n\r\n public static forChild(config: WebApiConfig) {\r\n return this.forRoot(config);\r\n }\r\n}","/*\r\n * Public API Surface of zek\r\n */\r\n\r\nexport * from \"./lib/components\";\r\nexport * from \"./lib/models\";\r\nexport * from \"./lib/modules\";\r\nexport * from \"./lib/services\";\r\nexport * from \"./lib/utils\";\r\n\r\nexport * from \"./lib/tokens\";\r\nexport * from \"./lib/zek.module\";","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.AuthService","i2","i1.AlertService","i3","uniqueId","i1","clamp","i2.ZekModal","loadScript","loader","i1.ZekLoadingService"],"mappings":"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"}