tin-spa 9.0.0 → 9.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/tin-spa.umd.js +4416 -1589
- package/bundles/tin-spa.umd.js.map +1 -1
- package/bundles/tin-spa.umd.min.js +2 -2
- package/bundles/tin-spa.umd.min.js.map +1 -1
- package/esm2015/lib/classes/Classes.js +58 -45
- package/esm2015/lib/classes/TinCore.js +137 -0
- package/esm2015/lib/components/activity/activity.component.js +84 -18
- package/esm2015/lib/components/attach/attach.component.js +101 -27
- package/esm2015/lib/components/change-password/change-password.component.js +122 -34
- package/esm2015/lib/components/check/check.component.js +39 -33
- package/esm2015/lib/components/chips/chips.component.js +75 -35
- package/esm2015/lib/components/create-account/create-account.component.js +124 -42
- package/esm2015/lib/components/date/date.component.js +54 -33
- package/esm2015/lib/components/datetime/datetime.component.js +43 -30
- package/esm2015/lib/components/filter/filter.component.js +64 -0
- package/esm2015/lib/components/html/html.component.js +30 -25
- package/esm2015/lib/components/label/label.component.js +109 -21
- package/esm2015/lib/components/loader/loader.component.js +43 -20
- package/esm2015/lib/components/login/login.component.js +194 -76
- package/esm2015/lib/components/logs/logs.component.js +180 -28
- package/esm2015/lib/components/message/messageDialog.component.js +128 -17
- package/esm2015/lib/components/money/currency-input-mask.directive.js +187 -0
- package/esm2015/lib/components/money/currency-input-mask.module.js +30 -0
- package/esm2015/lib/components/money/money.component.js +141 -39
- package/esm2015/lib/components/nav-menu/nav-menu.component.js +174 -21
- package/esm2015/lib/components/option/option.component.js +107 -40
- package/esm2015/lib/components/profile/profile.component.js +143 -53
- package/esm2015/lib/components/recover-account/recover-account.component.js +48 -26
- package/esm2015/lib/components/roles/addRoleDialog.component.js +99 -26
- package/esm2015/lib/components/roles/roles.component.js +153 -73
- package/esm2015/lib/components/select/select.component.js +108 -48
- package/esm2015/lib/components/settings/settings.component.js +76 -21
- package/esm2015/lib/components/signup/signup.component.js +107 -24
- package/esm2015/lib/components/steps/steps.component.js +47 -31
- package/esm2015/lib/components/table/table.component.js +301 -35
- package/esm2015/lib/components/text/text.component.js +146 -71
- package/esm2015/lib/components/tiles/tiles.component.js +75 -21
- package/esm2015/lib/components/timeout/timeout.component.js +65 -22
- package/esm2015/lib/components/tin-spa.component.js +19 -12
- package/esm2015/lib/components/users/users.component.js +308 -65
- package/esm2015/lib/components/viewer/viewer.component.js +64 -39
- package/esm2015/lib/components/viewer/viewerDialog.component.js +73 -18
- package/esm2015/lib/dnd.directive.js +30 -25
- package/esm2015/lib/modules/spa-admin.module.js +65 -51
- package/esm2015/lib/modules/spa-index.module.js +45 -20
- package/esm2015/lib/modules/spa-mat.module.js +40 -25
- package/esm2015/lib/modules/spa-user.module.js +43 -19
- package/esm2015/lib/services/auth.service.js +39 -50
- package/esm2015/lib/services/data.service.js +82 -49
- package/esm2015/lib/services/export.service.js +11 -11
- package/esm2015/lib/services/http.service.js +79 -0
- package/esm2015/lib/services/loader-interceptor.service.js +30 -30
- package/esm2015/lib/services/loader.service.js +11 -11
- package/esm2015/lib/services/log.service.js +12 -12
- package/esm2015/lib/services/message.service.js +11 -17
- package/esm2015/lib/services/storage.service.js +12 -11
- package/esm2015/lib/services/tin-spa.service.js +11 -11
- package/esm2015/lib/tin-spa.module.js +113 -48
- package/esm2015/public-api.js +4 -6
- package/esm2015/tin-spa.js +1 -5
- package/esm5/lib/classes/Classes.js +70 -55
- package/esm5/lib/classes/TinCore.js +164 -0
- package/esm5/lib/components/activity/activity.component.js +82 -15
- package/esm5/lib/components/attach/attach.component.js +100 -24
- package/esm5/lib/components/change-password/change-password.component.js +120 -31
- package/esm5/lib/components/check/check.component.js +37 -30
- package/esm5/lib/components/chips/chips.component.js +73 -32
- package/esm5/lib/components/create-account/create-account.component.js +122 -39
- package/esm5/lib/components/date/date.component.js +52 -30
- package/esm5/lib/components/datetime/datetime.component.js +41 -27
- package/esm5/lib/components/filter/filter.component.js +66 -0
- package/esm5/lib/components/html/html.component.js +28 -22
- package/esm5/lib/components/label/label.component.js +107 -18
- package/esm5/lib/components/loader/loader.component.js +41 -17
- package/esm5/lib/components/login/login.component.js +193 -74
- package/esm5/lib/components/logs/logs.component.js +178 -25
- package/esm5/lib/components/message/messageDialog.component.js +126 -14
- package/esm5/lib/components/money/currency-input-mask.directive.js +193 -0
- package/esm5/lib/components/money/currency-input-mask.module.js +34 -0
- package/esm5/lib/components/money/money.component.js +139 -36
- package/esm5/lib/components/nav-menu/nav-menu.component.js +172 -18
- package/esm5/lib/components/option/option.component.js +105 -37
- package/esm5/lib/components/profile/profile.component.js +141 -50
- package/esm5/lib/components/recover-account/recover-account.component.js +46 -23
- package/esm5/lib/components/roles/addRoleDialog.component.js +97 -23
- package/esm5/lib/components/roles/roles.component.js +152 -72
- package/esm5/lib/components/select/select.component.js +106 -45
- package/esm5/lib/components/settings/settings.component.js +74 -18
- package/esm5/lib/components/signup/signup.component.js +105 -21
- package/esm5/lib/components/steps/steps.component.js +46 -28
- package/esm5/lib/components/table/table.component.js +299 -32
- package/esm5/lib/components/text/text.component.js +144 -68
- package/esm5/lib/components/tiles/tiles.component.js +73 -18
- package/esm5/lib/components/timeout/timeout.component.js +63 -19
- package/esm5/lib/components/tin-spa.component.js +16 -8
- package/esm5/lib/components/users/users.component.js +307 -62
- package/esm5/lib/components/viewer/viewer.component.js +62 -36
- package/esm5/lib/components/viewer/viewerDialog.component.js +71 -15
- package/esm5/lib/dnd.directive.js +28 -22
- package/esm5/lib/modules/spa-admin.module.js +63 -48
- package/esm5/lib/modules/spa-index.module.js +43 -17
- package/esm5/lib/modules/spa-mat.module.js +38 -22
- package/esm5/lib/modules/spa-user.module.js +41 -16
- package/esm5/lib/services/auth.service.js +37 -47
- package/esm5/lib/services/data.service.js +89 -55
- package/esm5/lib/services/export.service.js +9 -8
- package/esm5/lib/services/http.service.js +81 -0
- package/esm5/lib/services/loader-interceptor.service.js +28 -27
- package/esm5/lib/services/loader.service.js +9 -8
- package/esm5/lib/services/log.service.js +11 -9
- package/esm5/lib/services/message.service.js +9 -14
- package/esm5/lib/services/storage.service.js +10 -8
- package/esm5/lib/services/tin-spa.service.js +9 -8
- package/esm5/lib/tin-spa.module.js +111 -45
- package/esm5/public-api.js +4 -6
- package/esm5/tin-spa.js +1 -5
- package/fesm2015/tin-spa.js +4418 -1612
- package/fesm2015/tin-spa.js.map +1 -1
- package/fesm5/tin-spa.js +4442 -1612
- package/fesm5/tin-spa.js.map +1 -1
- package/lib/classes/Classes.d.ts +55 -43
- package/lib/classes/TinCore.d.ts +27 -0
- package/lib/components/activity/activity.component.d.ts +3 -5
- package/lib/components/attach/attach.component.d.ts +3 -5
- package/lib/components/change-password/change-password.component.d.ts +11 -9
- package/lib/components/check/check.component.d.ts +3 -5
- package/lib/components/chips/chips.component.d.ts +3 -5
- package/lib/components/create-account/create-account.component.d.ts +13 -13
- package/lib/components/date/date.component.d.ts +6 -7
- package/lib/components/datetime/datetime.component.d.ts +3 -5
- package/lib/components/filter/filter.component.d.ts +15 -0
- package/lib/components/html/html.component.d.ts +3 -5
- package/lib/components/label/label.component.d.ts +3 -5
- package/lib/components/loader/loader.component.d.ts +3 -5
- package/lib/components/login/login.component.d.ts +12 -14
- package/lib/components/logs/logs.component.d.ts +5 -9
- package/lib/components/message/messageDialog.component.d.ts +3 -5
- package/lib/components/money/currency-input-mask.directive.d.ts +41 -0
- package/lib/components/money/currency-input-mask.module.d.ts +8 -0
- package/lib/components/money/money.component.d.ts +19 -8
- package/lib/components/nav-menu/nav-menu.component.d.ts +3 -5
- package/lib/components/option/option.component.d.ts +4 -5
- package/lib/components/profile/profile.component.d.ts +9 -11
- package/lib/components/recover-account/recover-account.component.d.ts +6 -8
- package/lib/components/roles/addRoleDialog.component.d.ts +5 -7
- package/lib/components/roles/roles.component.d.ts +6 -10
- package/lib/components/select/select.component.d.ts +4 -6
- package/lib/components/settings/settings.component.d.ts +5 -7
- package/lib/components/signup/signup.component.d.ts +6 -8
- package/lib/components/steps/steps.component.d.ts +3 -5
- package/lib/components/table/table.component.d.ts +3 -5
- package/lib/components/text/text.component.d.ts +4 -5
- package/lib/components/tiles/tiles.component.d.ts +3 -5
- package/lib/components/timeout/timeout.component.d.ts +3 -5
- package/lib/components/tin-spa.component.d.ts +3 -5
- package/lib/components/users/users.component.d.ts +8 -13
- package/lib/components/viewer/viewer.component.d.ts +3 -5
- package/lib/components/viewer/viewerDialog.component.d.ts +4 -6
- package/lib/dnd.directive.d.ts +3 -5
- package/lib/modules/spa-admin.module.d.ts +13 -19
- package/lib/modules/spa-index.module.d.ts +10 -11
- package/lib/modules/spa-mat.module.d.ts +30 -32
- package/lib/modules/spa-user.module.d.ts +9 -10
- package/lib/services/auth.service.d.ts +14 -14
- package/lib/services/data.service.d.ts +28 -17
- package/lib/services/export.service.d.ts +3 -4
- package/lib/services/http.service.d.ts +22 -0
- package/lib/services/loader-interceptor.service.d.ts +3 -5
- package/lib/services/loader.service.d.ts +3 -4
- package/lib/services/log.service.d.ts +3 -4
- package/lib/services/message.service.d.ts +3 -4
- package/lib/services/storage.service.d.ts +3 -4
- package/lib/services/tin-spa.service.d.ts +3 -4
- package/lib/tin-spa.module.d.ts +35 -35
- package/package.json +2 -10
- package/public-api.d.ts +3 -5
- package/tin-spa.d.ts +1 -6
- package/__ivy_ngcc__/fesm2015/tin-spa.js +0 -6813
- package/__ivy_ngcc__/fesm2015/tin-spa.js.map +0 -1
- package/esm2015/lib/components/profiles/profiles.component.js +0 -16
- package/esm2015/lib/components/roles/editRoleDialog.component.js +0 -57
- package/esm2015/lib/components/roles/viewRoleDialog.component.js +0 -38
- package/esm2015/lib/components/users/addUserDialog.component.js +0 -53
- package/esm2015/lib/components/users/editUserDialog.component.js +0 -96
- package/esm5/lib/components/profiles/profiles.component.js +0 -18
- package/esm5/lib/components/roles/editRoleDialog.component.js +0 -59
- package/esm5/lib/components/roles/viewRoleDialog.component.js +0 -39
- package/esm5/lib/components/users/addUserDialog.component.js +0 -55
- package/esm5/lib/components/users/editUserDialog.component.js +0 -99
- package/lib/components/activity/activity.component.d.ts.__ivy_ngcc_bak +0 -8
- package/lib/components/attach/attach.component.d.ts.__ivy_ngcc_bak +0 -39
- package/lib/components/change-password/change-password.component.d.ts.__ivy_ngcc_bak +0 -20
- package/lib/components/check/check.component.d.ts.__ivy_ngcc_bak +0 -16
- package/lib/components/chips/chips.component.d.ts.__ivy_ngcc_bak +0 -15
- package/lib/components/create-account/create-account.component.d.ts.__ivy_ngcc_bak +0 -25
- package/lib/components/date/date.component.d.ts.__ivy_ngcc_bak +0 -13
- package/lib/components/datetime/datetime.component.d.ts.__ivy_ngcc_bak +0 -12
- package/lib/components/html/html.component.d.ts.__ivy_ngcc_bak +0 -12
- package/lib/components/label/label.component.d.ts.__ivy_ngcc_bak +0 -8
- package/lib/components/loader/loader.component.d.ts.__ivy_ngcc_bak +0 -9
- package/lib/components/login/login.component.d.ts.__ivy_ngcc_bak +0 -29
- package/lib/components/logs/logs.component.d.ts.__ivy_ngcc_bak +0 -17
- package/lib/components/message/messageDialog.component.d.ts.__ivy_ngcc_bak +0 -12
- package/lib/components/money/money.component.d.ts.__ivy_ngcc_bak +0 -14
- package/lib/components/nav-menu/nav-menu.component.d.ts.__ivy_ngcc_bak +0 -17
- package/lib/components/option/option.component.d.ts.__ivy_ngcc_bak +0 -17
- package/lib/components/profile/profile.component.d.ts.__ivy_ngcc_bak +0 -30
- package/lib/components/profiles/profiles.component.d.ts +0 -10
- package/lib/components/profiles/profiles.component.d.ts.__ivy_ngcc_bak +0 -5
- package/lib/components/recover-account/recover-account.component.d.ts.__ivy_ngcc_bak +0 -15
- package/lib/components/roles/addRoleDialog.component.d.ts.__ivy_ngcc_bak +0 -19
- package/lib/components/roles/editRoleDialog.component.d.ts +0 -24
- package/lib/components/roles/editRoleDialog.component.d.ts.__ivy_ngcc_bak +0 -19
- package/lib/components/roles/roles.component.d.ts.__ivy_ngcc_bak +0 -29
- package/lib/components/roles/viewRoleDialog.component.d.ts +0 -20
- package/lib/components/roles/viewRoleDialog.component.d.ts.__ivy_ngcc_bak +0 -15
- package/lib/components/select/select.component.d.ts.__ivy_ngcc_bak +0 -20
- package/lib/components/settings/settings.component.d.ts.__ivy_ngcc_bak +0 -16
- package/lib/components/signup/signup.component.d.ts.__ivy_ngcc_bak +0 -20
- package/lib/components/steps/steps.component.d.ts.__ivy_ngcc_bak +0 -15
- package/lib/components/table/table.component.d.ts.__ivy_ngcc_bak +0 -25
- package/lib/components/text/text.component.d.ts.__ivy_ngcc_bak +0 -37
- package/lib/components/tiles/tiles.component.d.ts.__ivy_ngcc_bak +0 -11
- package/lib/components/timeout/timeout.component.d.ts.__ivy_ngcc_bak +0 -21
- package/lib/components/tin-spa.component.d.ts.__ivy_ngcc_bak +0 -5
- package/lib/components/users/addUserDialog.component.d.ts +0 -21
- package/lib/components/users/addUserDialog.component.d.ts.__ivy_ngcc_bak +0 -16
- package/lib/components/users/editUserDialog.component.d.ts +0 -32
- package/lib/components/users/editUserDialog.component.d.ts.__ivy_ngcc_bak +0 -27
- package/lib/components/users/users.component.d.ts.__ivy_ngcc_bak +0 -35
- package/lib/components/viewer/viewer.component.d.ts.__ivy_ngcc_bak +0 -16
- package/lib/components/viewer/viewerDialog.component.d.ts.__ivy_ngcc_bak +0 -19
- package/lib/dnd.directive.d.ts.__ivy_ngcc_bak +0 -8
- package/lib/modules/spa-admin.module.d.ts.__ivy_ngcc_bak +0 -2
- package/lib/modules/spa-index.module.d.ts.__ivy_ngcc_bak +0 -2
- package/lib/modules/spa-mat.module.d.ts.__ivy_ngcc_bak +0 -2
- package/lib/modules/spa-user.module.d.ts.__ivy_ngcc_bak +0 -2
- package/lib/services/auth.service.d.ts.__ivy_ngcc_bak +0 -45
- package/lib/services/data.service.d.ts.__ivy_ngcc_bak +0 -23
- package/lib/services/export.service.d.ts.__ivy_ngcc_bak +0 -7
- package/lib/services/loader-interceptor.service.d.ts.__ivy_ngcc_bak +0 -18
- package/lib/services/loader.service.d.ts.__ivy_ngcc_bak +0 -5
- package/lib/services/log.service.d.ts.__ivy_ngcc_bak +0 -16
- package/lib/services/message.service.d.ts.__ivy_ngcc_bak +0 -12
- package/lib/services/storage.service.d.ts.__ivy_ngcc_bak +0 -7
- package/lib/services/tin-spa.service.d.ts.__ivy_ngcc_bak +0 -3
- package/lib/tin-spa.module.d.ts.__ivy_ngcc_bak +0 -2
- package/tin-spa.d.ts.__ivy_ngcc_bak +0 -8
- package/tin-spa.metadata.json +0 -1
package/fesm2015/tin-spa.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tin-spa.js","sources":["ng://tin-spa/lib/services/tin-spa.service.ts","ng://tin-spa/lib/services/storage.service.ts","ng://tin-spa/lib/components/message/messageDialog.component.ts","ng://tin-spa/lib/services/message.service.ts","ng://tin-spa/lib/services/export.service.ts","ng://tin-spa/lib/classes/Classes.ts","ng://tin-spa/lib/services/log.service.ts","ng://tin-spa/lib/services/auth.service.ts","ng://tin-spa/lib/services/data.service.ts","ng://tin-spa/lib/services/loader.service.ts","ng://tin-spa/lib/components/loader/loader.component.ts","ng://tin-spa/lib/modules/spa-mat.module.ts","ng://tin-spa/lib/services/loader-interceptor.service.ts","ng://tin-spa/lib/components/tin-spa.component.ts","ng://tin-spa/lib/components/nav-menu/nav-menu.component.ts","ng://tin-spa/lib/components/timeout/timeout.component.ts","ng://tin-spa/lib/components/table/table.component.ts","ng://tin-spa/lib/components/tiles/tiles.component.ts","ng://tin-spa/lib/components/date/date.component.ts","ng://tin-spa/lib/components/text/text.component.ts","ng://tin-spa/lib/components/viewer/viewerDialog.component.ts","ng://tin-spa/lib/components/viewer/viewer.component.ts","ng://tin-spa/lib/components/select/select.component.ts","ng://tin-spa/lib/components/check/check.component.ts","ng://tin-spa/lib/components/attach/attach.component.ts","ng://tin-spa/lib/components/datetime/datetime.component.ts","ng://tin-spa/lib/components/money/money.component.ts","ng://tin-spa/lib/dnd.directive.ts","ng://tin-spa/lib/components/chips/chips.component.ts","ng://tin-spa/lib/components/activity/activity.component.ts","ng://tin-spa/lib/components/html/html.component.ts","ng://tin-spa/lib/components/option/option.component.ts","ng://tin-spa/lib/components/label/label.component.ts","ng://tin-spa/lib/components/steps/steps.component.ts","ng://tin-spa/lib/tin-spa.module.ts","ng://tin-spa/lib/components/login/login.component.ts","ng://tin-spa/lib/components/signup/signup.component.ts","ng://tin-spa/lib/components/recover-account/recover-account.component.ts","ng://tin-spa/lib/modules/spa-index.module.ts","ng://tin-spa/lib/components/change-password/change-password.component.ts","ng://tin-spa/lib/components/profile/profile.component.ts","ng://tin-spa/lib/modules/spa-user.module.ts","ng://tin-spa/lib/components/settings/settings.component.ts","ng://tin-spa/lib/components/logs/logs.component.ts","ng://tin-spa/lib/components/users/users.component.ts","ng://tin-spa/lib/components/users/addUserDialog.component.ts","ng://tin-spa/lib/components/users/editUserDialog.component.ts","ng://tin-spa/lib/components/roles/viewRoleDialog.component.ts","ng://tin-spa/lib/components/roles/addRoleDialog.component.ts","ng://tin-spa/lib/components/roles/editRoleDialog.component.ts","ng://tin-spa/lib/components/roles/roles.component.ts","ng://tin-spa/lib/components/profiles/profiles.component.ts","ng://tin-spa/lib/components/create-account/create-account.component.ts","ng://tin-spa/lib/modules/spa-admin.module.ts","ng://tin-spa/public-api.ts","ng://tin-spa/tin-spa.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TinSpaService {\r\n\r\n constructor() { }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StorageService {\r\n\r\n constructor() { }\r\n\r\n // Store the value\r\n async store(storageKey: string, value: any) {\r\n const encryptedValue = btoa(escape(JSON.stringify(value)));\r\n // const encryptedValue = JSON.stringify(value);\r\n await localStorage.setItem( storageKey, encryptedValue );\r\n }\r\n\r\n // Get the value\r\n async get(storageKey: string) {\r\n const ret = await localStorage.getItem( storageKey );\r\n return JSON.parse(unescape(atob(ret)));\r\n // return JSON.parse(ret);\r\n }\r\n\r\n // Remove\r\n async removeStorageItem(storageKey: string) {\r\n await localStorage.removeItem(storageKey);\r\n }\r\n\r\n // Clear storage\r\n async clear() {\r\n await localStorage.clear();\r\n }\r\n\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n\r\n@Component({\r\n selector: 'lib-app-message',\r\n templateUrl: './messageDialog.component.html'\r\n})\r\n\r\nexport class messageDialog implements OnInit {\r\n\r\n constructor(private dialogRef: MatDialogRef<messageDialog>, @Inject(MAT_DIALOG_DATA) public data) { }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.messageType = this.data.type\r\n this._messageSubject = this.data.subject;\r\n this._messageDetails = this.data.details;\r\n\r\n }\r\n\r\n messageType;\r\n _messageSubject;\r\n _messageDetails;\r\n\r\n response(resp: string) {\r\n\r\n this.dialogRef.close(resp);\r\n\r\n }\r\n\r\n};\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { messageDialog } from \"../components/message/messageDialog.component\";\r\nimport { Observable, of } from 'rxjs';\r\nimport { mergeMap } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class MessageService {\r\n constructor(private snackBar: MatSnackBar, public dialog: MatDialog) {}\r\n\r\n public toast(msg: string) {\r\n this.snackBar.open(msg, \"OK\", { duration: 5000 });\r\n }\r\n\r\n public info(subject: string, details: string) {\r\n\r\n let type = \"info\";\r\n\r\n const dialogRef = this.dialog.open(messageDialog, {\r\n width: \"600px\",\r\n data: {type, subject, details },\r\n });\r\n\r\n }\r\n\r\n public error( details: string) {\r\n\r\n let type = \"error\";\r\n let subject: \"\";\r\n\r\n const dialogRef = this.dialog.open(messageDialog, {\r\n width: \"600px\",\r\n data: {type, subject, details },\r\n });\r\n\r\n }\r\n\r\n public confirm(msg: string): Observable<any> {\r\n\r\n let type = \"confirm\";\r\n let subject = \"\";\r\n let details = msg\r\n\r\n const dialogRef = this.dialog.open(messageDialog, {\r\n width: \"400px\",\r\n data: {type, subject, details },\r\n });\r\n\r\n return dialogRef.afterClosed().pipe(mergeMap((result) => {\r\n\r\n return of(result);\r\n\r\n }\r\n\r\n ));\r\n\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as FileSaver from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExportService {\r\n\r\n constructor() { }\r\n\r\n fileType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\n fileExtension = '.xlsx';\r\n\r\n public exportExcel(jsonData: any[], fileName: string): void {\r\n\r\n const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet(jsonData);\r\n const wb: XLSX.WorkBook = { Sheets: { 'data': ws }, SheetNames: ['data'] };\r\n const excelBuffer: any = XLSX.write(wb, { bookType: 'xlsx', type: 'array' });\r\n this.saveExcelFile(excelBuffer, fileName);\r\n }\r\n\r\n private saveExcelFile(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {type: this.fileType});\r\n FileSaver.saveAs(data, fileName + this.fileExtension);\r\n }\r\n}\r\n","\r\n\r\n\r\nimport { Core } from 'tin-core';\r\n\r\nexport enum LogLevel {\r\n All = 0,\r\n Debug = 1,\r\n Info = 2,\r\n Warn = 3,\r\n Error = 4,\r\n Fatal = 5,\r\n Off = 6,\r\n}\r\n\r\n\r\nexport class Tile{\r\n\r\n tileName: string;\r\n tileValue: string;\r\n tileColor: string;\r\n selected: string;\r\n visible?: boolean;\r\n info?: string;\r\n}\r\n\r\nexport class Step{\r\n name:string\r\n icon:string;\r\n}\r\n\r\nexport class TableConfig {\r\n\r\n enableFilter: boolean = false;\r\n create = new TableCreate();\r\n\r\n columns: TableColumn[];\r\n actions: TableAction[];\r\n\r\n greyout = new Condition();\r\n\r\n}\r\n\r\nexport class TableCreate{\r\n enabled: boolean\r\n display: string;\r\n}\r\n\r\nexport class TableColumn {\r\n\r\n constructor() {\r\n this.name = \"default\"\r\n this.display = \"default\"\r\n this.type = TableColumnType.String\r\n\r\n }\r\n\r\n public name: string;\r\n public display: string;\r\n public type?: TableColumnType;\r\n public icons?: Icon[];\r\n public color?: Color;\r\n}\r\n\r\nexport enum TableColumnType {\r\n String, Date, DateTime, Image, Icon, TextIcon, Chip\r\n}\r\n\r\n\r\n\r\nexport class Condition {\r\n constructor() {\r\n this.field = \"\";\r\n this.operator = Operator.Equal;\r\n this.value = \"\";\r\n }\r\n field: string;\r\n operator: Operator;\r\n value: string;\r\n}\r\n\r\nexport enum Operator{\r\nEqual, Less, Greater, NotEqual\r\n}\r\n\r\n\r\n\r\nexport class Color extends Condition {\r\n name: string;\r\n}\r\n\r\nexport class Icon extends Condition{\r\n name: string;\r\n hint?: string;\r\n color?: string;\r\n}\r\n\r\n\r\n\r\nexport class TableAction {\r\n\r\n name: string;\r\n show?: boolean;\r\n icon: string;\r\n color?: string;\r\n hint?: string;\r\n\r\n disappear?: Condition;\r\n disable?: Condition;\r\n\r\n}\r\n\r\n\r\n\r\nexport class ActionResponse {\r\n name: string;\r\n value;\r\n}\r\n\r\n\r\n\r\nexport class loginConfig{\r\n\r\n constructor(){\r\n this.appName = \"\";\r\n this.selfService = false;\r\n this.logo = \"\";\r\n this.logoSize = \"normal\";\r\n }\r\n\r\n appName: string;\r\n selfService: boolean;\r\n logo: string;\r\n logoSize: string;\r\n\r\n}\r\n\r\n\r\n export class AppConfig {\r\n constructor() {\r\n this.appName = \"App Name\";\r\n this.logo = \"\";\r\n this.ADAuth = true;\r\n this.localAuth = true;\r\n this.employees = false;\r\n this.approvals = false;\r\n }\r\n appName: string;\r\n logo: string;\r\n capItems: CapItem[];\r\n ADAuth: boolean;\r\n localAuth:boolean;\r\n employees: boolean;\r\n approvals: boolean;\r\n }\r\n\r\n export class CapItem {\r\n\r\n constructor(){\r\n this.name = \"\";\r\n this.display = \"New Cap Item\";\r\n this.enabled = false;\r\n this.type= \"\";\r\n this.newLine = false;\r\n this.showMenu =true;\r\n this.ignoreSubsDisplay = false;\r\n this.link = \"\";\r\n this.icon = \"navigate_next\";\r\n\r\n }\r\n\r\n name: string;\r\n display: string;\r\n enabled: boolean;\r\n showMenu: boolean;\r\n\r\n ignoreSubsDisplay: boolean;\r\n type: string;\r\n newLine: boolean;\r\n link: string;\r\n icon: string;\r\n capSubItems: CapItem[];\r\n\r\n\r\n\r\n }\r\n\r\n\r\n export class Role {\r\n\r\n constructor() {\r\n this.roleID = \"\" ;\r\n this.roleName = \"New Role\" ;\r\n this.cap1 = false ;\r\n this.cap2 = false ;\r\n this.cap3 = false ;\r\n this.cap4 = false ;\r\n this.cap5 = false ;\r\n this.cap6 = false ;\r\n this.cap7 = false ;\r\n this.cap8 = false ;\r\n this.cap9 = false ;\r\n this.cap10 = false ;\r\n this.cap11 = false ;\r\n this.cap12 = false ;\r\n this.cap13 = false ;\r\n this.cap14 = false ;\r\n this.cap15 = false ;\r\n this.cap16 = false ;\r\n this.cap17 = false ;\r\n this.cap18 = false ;\r\n this.cap19 = false ;\r\n this.cap20 = false ;\r\n this.cap21 = false ;\r\n this.cap22 = false ;\r\n this.cap23 = false ;\r\n this.cap24 = false ;\r\n this.cap25 = false ;\r\n this.cap26 = false ;\r\n this.cap27 = false ;\r\n this.cap28 = false ;\r\n this.cap29 = false ;\r\n this.cap30 = false ;\r\n this.cap31 = false ;\r\n this.cap32 = false ;\r\n this.cap33 = false ;\r\n this.cap34 = false ;\r\n this.cap35 = false ;\r\n this.cap36 = false ;\r\n this.cap37 = false ;\r\n this.cap38 = false ;\r\n this.cap39 = false ;\r\n this.cap40 = false ;\r\n this.cap41 = false ;\r\n this.cap42 = false ;\r\n this.cap43 = false ;\r\n this.cap44 = false ;\r\n this.cap45 = false ;\r\n this.cap46 = false ;\r\n this.cap47 = false ;\r\n this.cap48 = false ;\r\n this.cap49 = false ;\r\n this.cap50 = false ;\r\n this.cap51 = false ;\r\n this.cap52 = false ;\r\n this.cap53 = false ;\r\n this.cap54 = false ;\r\n this.cap55 = false ;\r\n this.cap56 = false ;\r\n this.cap57 = false ;\r\n this.cap58 = false ;\r\n this.cap59 = false ;\r\n this.cap60 = false ;\r\n this.cap61 = false ;\r\n this.cap62 = false ;\r\n this.cap63 = false ;\r\n this.cap64 = false ;\r\n this.cap65 = false ;\r\n this.cap66 = false ;\r\n this.cap67 = false ;\r\n this.cap68 = false ;\r\n this.cap69 = false ;\r\n this.cap70 = false ;\r\n this.cap71 = false ;\r\n this.cap72 = false ;\r\n this.cap73 = false ;\r\n this.cap74 = false ;\r\n this.cap75 = false ;\r\n this.cap76 = false ;\r\n this.cap77 = false ;\r\n this.cap78 = false ;\r\n this.cap79 = false ;\r\n this.cap80 = false ;\r\n this.cap81 = false ;\r\n this.cap82 = false ;\r\n this.cap83 = false ;\r\n this.cap84 = false ;\r\n this.cap85 = false ;\r\n this.cap86 = false ;\r\n this.cap87 = false ;\r\n this.cap88 = false ;\r\n this.cap89 = false ;\r\n this.cap90 = false ;\r\n this.cap91 = false ;\r\n this.cap92 = false ;\r\n this.cap93 = false ;\r\n this.cap94 = false ;\r\n this.cap95 = false ;\r\n this.cap96 = false ;\r\n this.cap97 = false ;\r\n this.cap98 = false ;\r\n this.cap99 = false ;\r\n this.cap100 = false ;\r\n }\r\n\r\n roleID: string;\r\n roleName: string;\r\n cap1: boolean;\r\n cap2: boolean;\r\n cap3: boolean;\r\n cap4: boolean;\r\n cap5: boolean;\r\n cap6: boolean;\r\n cap7: boolean;\r\n cap8: boolean;\r\n cap9: boolean;\r\n cap10: boolean;\r\n cap11: boolean;\r\n cap12: boolean;\r\n cap13: boolean;\r\n cap14: boolean;\r\n cap15: boolean;\r\n cap16: boolean;\r\n cap17: boolean;\r\n cap18: boolean;\r\n cap19: boolean;\r\n cap20: boolean;\r\n cap21: boolean;\r\n cap22: boolean;\r\n cap23: boolean;\r\n cap24: boolean;\r\n cap25: boolean;\r\n cap26: boolean;\r\n cap27: boolean;\r\n cap28: boolean;\r\n cap29: boolean;\r\n cap30: boolean;\r\n cap31: boolean;\r\n cap32: boolean;\r\n cap33: boolean;\r\n cap34: boolean;\r\n cap35: boolean;\r\n cap36: boolean;\r\n cap37: boolean;\r\n cap38: boolean;\r\n cap39: boolean;\r\n cap40: boolean;\r\n cap41: boolean;\r\n cap42: boolean;\r\n cap43: boolean;\r\n cap44: boolean;\r\n cap45: boolean;\r\n cap46: boolean;\r\n cap47: boolean;\r\n cap48: boolean;\r\n cap49: boolean;\r\n cap50: boolean;\r\n cap51: boolean;\r\n cap52: boolean;\r\n cap53: boolean;\r\n cap54: boolean;\r\n cap55: boolean;\r\n cap56: boolean;\r\n cap57: boolean;\r\n cap58: boolean;\r\n cap59: boolean;\r\n cap60: boolean;\r\n cap61: boolean;\r\n cap62: boolean;\r\n cap63: boolean;\r\n cap64: boolean;\r\n cap65: boolean;\r\n cap66: boolean;\r\n cap67: boolean;\r\n cap68: boolean;\r\n cap69: boolean;\r\n cap70: boolean;\r\n cap71: boolean;\r\n cap72: boolean;\r\n cap73: boolean;\r\n cap74: boolean;\r\n cap75: boolean;\r\n cap76: boolean;\r\n cap77: boolean;\r\n cap78: boolean;\r\n cap79: boolean;\r\n cap80: boolean;\r\n cap81: boolean;\r\n cap82: boolean;\r\n cap83: boolean;\r\n cap84: boolean;\r\n cap85: boolean;\r\n cap86: boolean;\r\n cap87: boolean;\r\n cap88: boolean;\r\n cap89: boolean;\r\n cap90: boolean;\r\n cap91: boolean;\r\n cap92: boolean;\r\n cap93: boolean;\r\n cap94: boolean;\r\n cap95: boolean;\r\n cap96: boolean;\r\n cap97: boolean;\r\n cap98: boolean;\r\n cap99: boolean;\r\n cap100: boolean;\r\n }\r\n\r\nexport class Account{\r\n user: User;\r\n profile: Profile;\r\n}\r\n\r\n\r\nexport class User {\r\n\r\n constructor(){\r\n\r\n this.userID = \"\";\r\n this.password = \"\";\r\n this.tries = \"0\";\r\n this.locked = \"0\";\r\n this.logged = \"0\";\r\n this.disabled = \"0\";\r\n this.changepassword = \"0\";\r\n this.dateCreated = Core.nowDate();\r\n this.dateUpdated = Core.nowDate();\r\n this.token = \"\";\r\n this.dateExpire = Core.nowDate();\r\n this.tokenExpire = Core.nowDate();\r\n this.authType = \"\";\r\n\r\n }\r\n\r\n userID: string;\r\n password: string;\r\n tries: string;\r\n locked: string;\r\n logged: string;\r\n disabled: string;\r\n changepassword: string;\r\n dateCreated: string;\r\n dateUpdated: string;\r\n dateExpire: string;\r\n token: string;\r\n tokenExpire: string;\r\n\r\n authType: string;\r\n}\r\n\r\nexport class ChangeUserPassword {\r\n\r\n constructor(){\r\n this.userID = \"\";\r\n this.currentPassword = \"\";\r\n this.newPassword = \"\";\r\n this.confirmPassword = \"\";\r\n }\r\n userID: string;\r\n currentPassword: string;\r\n newPassword: string;\r\n confirmPassword: string;\r\n}\r\n\r\nexport class Profile {\r\n\r\n constructor() {\r\n this.profileID = \"\" ;\r\n this.userID = \"\" ;\r\n this.roleID = \"1\" ;\r\n this.firstName = \"\" ;\r\n this.lastName = \"\" ;\r\n this.email = \"\" ;\r\n this.empID = \"\";\r\n this.arID = \"0\";\r\n this.authType = \"\";\r\n }\r\n\r\n profileID: string;\r\n userID: string;\r\n roleID: string;\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n empID: string;\r\n arID: string;\r\n authType: string;\r\n }\r\n\r\n\r\n\r\n","import { Core } from 'tin-core';\r\nimport { logging } from 'protractor';\r\nimport { Injectable } from \"@angular/core\";\r\nimport { LogLevel } from '../classes/Classes';\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class LogService {\r\n constructor() {}\r\n\r\n level: LogLevel = LogLevel.All;\r\n\r\n logToConsole: boolean = true;\r\n\r\n logToApi: boolean = false;\r\n\r\n debug(msg: string, ...optionalParams: any[]) {\r\n this.writeToLog(msg, LogLevel.Debug, optionalParams);\r\n }\r\n\r\n info(msg: string, ...optionalParams: any[]) {\r\n this.writeToLog(msg, LogLevel.Info, optionalParams);\r\n }\r\n\r\n warn(msg: string, ...optionalParams: any[]) {\r\n this.writeToLog(msg, LogLevel.Warn, optionalParams);\r\n }\r\n\r\n error(msg: string, ...optionalParams: any[]) {\r\n this.writeToLog(msg, LogLevel.Error, optionalParams);\r\n }\r\n\r\n fatal(msg: string, ...optionalParams: any[]) {\r\n this.writeToLog(msg, LogLevel.Fatal, optionalParams);\r\n }\r\n\r\n log(msg: string, ...optionalParams: any[]) {\r\n this.writeToLog(msg, LogLevel.All, optionalParams);\r\n\r\n }\r\n\r\n private writeToLog(msg: string, level: LogLevel, params: any[]) {\r\n\r\n if (this.shouldLog(level)) {\r\n\r\n // Build log string\r\n let value: string = Core.getFormatedDate(Date(),false).replace(\"T\",\" \");\r\n // value += \" - Type: \" + LogLevel[this.level];\r\n value += \" - Message: \" + msg;\r\n\r\n\r\n if (params.length) {\r\n value += \" - Extra Info: \" + this.formatParams(params);\r\n }\r\n\r\n // Log the value\r\n if (this.logToConsole){\r\n console.log(value);\r\n }\r\n\r\n if (this.logToApi){\r\n //Call API post\r\n }\r\n\r\n }\r\n }\r\n\r\n private formatParams(params: any[]): string {\r\n\r\n let ret: string = params.join(\",\");\r\n // Is there at least one object in the array?\r\n if (params.some((p) => typeof p == \"object\")) {\r\n ret = \"\";\r\n // Build comma-delimited string\r\n for (let item of params) {\r\n ret += JSON.stringify(item) + \",\";\r\n }\r\n }\r\n return ret;\r\n }\r\n\r\n private shouldLog(level: LogLevel): boolean {\r\n\r\n let ret: boolean = false;\r\n\r\n if (\r\n (level >= this.level && level !== LogLevel.Off) ||\r\n this.level === LogLevel.All\r\n ) {\r\n ret = true;\r\n }\r\n\r\n return ret;\r\n }\r\n}\r\n\r\n\r\n\r\n","import { MessageService } from './message.service';\r\n//-----------------Change for Build and Reference purposes for SERVICES ONLY---------//\r\nimport { Constants, HttpService } from 'tin-core';\r\n// import { HttpService, Constants } from 'tin-core';\r\n//----------------------------------------------------------------------------------//\r\n\r\nimport { Injectable } from '@angular/core';\r\nimport { Router, CanActivate } from '@angular/router';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { StorageService } from './storage.service';\r\nimport { LogService } from './log.service';\r\nimport { Role } from '../classes/Classes';\r\n// import { Constants } from \"tin-core\";\r\n\r\n\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AuthService implements CanActivate {\r\n constructor(private storage: StorageService, public router: Router, private httpService: HttpService, private messageService: MessageService, private logService: LogService) {}\r\n\r\n\r\n //Logged in\r\n private loggedin: boolean = false;\r\n private loggedinSource = new BehaviorSubject(this.loggedin);\r\n public loggedinObserv = this.loggedinSource.asObservable();\r\n updateloggedin(loggedin: boolean) {\r\n this.loggedinSource.next(loggedin);\r\n this.loggedin = loggedin;\r\n }\r\n\r\n //Token\r\n private token: string = \"\";\r\n public tokenSource = new BehaviorSubject(this.token);\r\n public tokenObserv = this.tokenSource.asObservable();\r\n updateToken(newToken: string) {\r\n this.tokenSource.next(newToken);\r\n\r\n }\r\n\r\n //TokenExpire\r\n private tokenExpire: string = \"\";\r\n public tokenExpireSource = new BehaviorSubject(this.tokenExpire);\r\n public tokenExpireObserv = this.tokenExpireSource.asObservable();\r\n updateTokenExpire(newTokenExpire: string) {\r\n this.tokenExpireSource.next(newTokenExpire);\r\n\r\n }\r\n\r\n //Current User\r\n public currentUser: string = \"tnyagato\";\r\n private currentUserSource = new BehaviorSubject(this.currentUser);\r\n public currentUserObserv = this.currentUserSource.asObservable();\r\n updateCurrentUser(newUser: string) {\r\n this.currentUserSource.next(newUser.toLocaleLowerCase());\r\n this.currentUser = newUser.toLocaleLowerCase();\r\n }\r\n\r\n //Line Manager\r\n private islineManager: boolean = false;\r\n private isLineManagerSource = new BehaviorSubject(this.islineManager);\r\n public isLineManagerObserv = this.isLineManagerSource.asObservable();\r\n updateIsLineManager(manager: boolean) {\r\n this.isLineManagerSource.next(manager);\r\n }\r\n\r\n //Roles\r\n private currentRole = new Role;\r\n public currentRoleSource = new BehaviorSubject(this.currentRole);\r\n public myRoleObserv = this.currentRoleSource.asObservable();\r\n updateRole(role) {\r\n this.currentRoleSource.next(role);\r\n }\r\n\r\n //Logged in FirstName\r\n private loggedUserSource = new BehaviorSubject(\"tnyagato\");\r\n public loggedUserFullName = this.loggedUserSource.asObservable();\r\n updateLoggedUserFullName(username: string) {\r\n this.loggedUserSource.next(username);\r\n }\r\n\r\n\r\n //Authorisation\r\n isAuthorised(capName: string): boolean{\r\n\r\n\r\n\r\n if (!this.currentRoleSource.value[capName]) {\r\n // this.logService.info(`authorise: ${this.currentRoleSource.value.roleName} not authorised for ${capName}`);\r\n this.router.navigate([\"home\"]);\r\n this.messageService.toast(`Unauthorised: ${capName}`);\r\n\r\n return false;\r\n }else{\r\n return true;\r\n }\r\n\r\n }\r\n\r\n isValidToken(){\r\n\r\n\r\n let tokenExpire: Date = new Date(this.tokenExpireSource.value);\r\n let nowDate: Date = new Date();\r\n\r\n\r\n let valid: boolean = tokenExpire > nowDate;\r\n\r\n if (!valid){\r\n\r\n this.router.navigate([\"login\"]);\r\n this.messageService.toast(`Expired Session`);\r\n }\r\n\r\n return valid\r\n\r\n }\r\n\r\n canActivate() {\r\n\r\n\r\n if (this.loggedin && this.isValidToken()) {\r\n // this.logService.info(\"authentication: logged in\");\r\n return true;\r\n }\r\n\r\n if (localStorage.getItem(Constants.AUTH_USER) === null) {\r\n // this.logService.info(\"authentication: not logged and no cache\");\r\n\r\n this.updateloggedin(false);\r\n this.router.navigate([\"login\"]);\r\n return false;\r\n\r\n } else {\r\n // this.logService.info(\"authentication: not logged but allowed login\");\r\n\r\n this.updateloggedin(true);\r\n\r\n this.storage.get(Constants.AUTH_USER).then((resp: any) => {\r\n this.updateCurrentUser(resp);\r\n // console.log(\"user: \" + resp);\r\n });\r\n\r\n this.storage.get(Constants.AUTH_NAME).then((resp: any) => {\r\n this.updateLoggedUserFullName(resp);\r\n // console.log(\"name: \" + resp);\r\n });\r\n\r\n this.storage.get(Constants.AUTH_ROLES).then((resp) => {\r\n let ret = JSON.parse(resp);\r\n\r\n this.updateRole(ret);\r\n // console.log(\"role: \" + ret.roleName);\r\n });\r\n\r\n this.storage.get(Constants.AUTH_TOKEN).then((resp: any) => {\r\n this.updateToken(resp);\r\n // console.log(\"token: \" + resp);\r\n });\r\n\r\n this.storage.get(Constants.AUTH_TOKEN_EXPIRE).then((resp: any) => {\r\n this.updateTokenExpire(resp);\r\n this.isValidToken();\r\n });\r\n\r\n\r\n return true;\r\n }\r\n }\r\n}\r\n","import { AppConfig, HttpService } from 'tin-core';\r\nimport { Injectable } from '@angular/core';\r\nimport { CapItem, User } from '../classes/Classes';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DataService {\r\n\r\n constructor(private httpService: HttpService) {\r\n // httpService.apiUrl = \"http://localhost:20503/\";\r\n // httpService.apiUrl = \"http://localhost/basic/\";\r\n\r\n this.capUsers.name = \"cap3\";\r\n this.capUsers.display = \"Users\";\r\n this.capUsers.link = \"home/admin/users\";\r\n }\r\n\r\n capUsers = new CapItem;\r\n\r\n // public appConfig = new AppConfig; ///test\r\n\r\n public tmpProfileUserID = \"\";\r\n\r\n //Users\r\n\r\n public GetUser(by: string, val: string) {\r\n return this.httpService.Get(\"Basic/GetUser?by=\" + by + \"&val=\" + val);\r\n }\r\n\r\n public UpdateUser(user, action: string) {\r\n return this.httpService.Post(\"Basic/UpdateUser?action=\" + action, user);\r\n }\r\n\r\n public login(u: User) {\r\n return this.httpService.Post(\"Basic/login\", u);\r\n }\r\n\r\n public changePassword(u) {\r\n return this.httpService.Post(\"Basic/ChangePassword\", u);\r\n }\r\n\r\n public changePasswordAdmin(u) {\r\n return this.httpService.Post(\"Basic/ChangePasswordAdmin\", u);\r\n }\r\n\r\n public SelfReset(u: User): Observable<any> {\r\n return this.httpService.Post(\"Basic/SelfReset\", u);\r\n\r\n }\r\n\r\n\r\n //Roles\r\n\r\n public UpdateRole(role, action: string) {\r\n return this.httpService.Post(\"Basic/UpdateRole?action=\" + action, role);\r\n }\r\n\r\n public GetRole(by: string, val: string) {\r\n return this.httpService.Get(\"Basic/GetRole?by=\" + by + \"&val=\" + val);\r\n }\r\n\r\n\r\n //Account\r\n public UpdateAccount(account, action: string) {\r\n return this.httpService.Post(\"Basic/UpdateAccount?action=\" + action, account);\r\n }\r\n\r\n //Profile\r\n\r\n public GetProfile(by: string, val: string) {\r\n return this.httpService.Get(\"Basic/GetProfile?by=\" + by + \"&val=\" + val);\r\n }\r\n\r\n public UpdateProfile(profile, action: string) {\r\n return this.httpService.Post(\"Basic/UpdateProfile?action=\" + action, profile);\r\n }\r\n\r\n //Logs\r\n public GetLog(by: string, val: string) {\r\n return this.httpService.Get(\"Basic/GetLog?by=\" + by + \"&val=\" + val);\r\n }\r\n\r\n //Settings\r\n public GetSetting(by: string, val: string) {\r\n return this.httpService.Get(\"Basic/GetSetting?by=\" + by + \"&val=\" + val);\r\n }\r\n\r\n public UpdateSetting(setting, action: string) {\r\n return this.httpService.Post(\"Basic/UpdateSetting?action=\" + action, setting);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoaderService {\r\n\r\n public isLoading = new BehaviorSubject(false);\r\n constructor() { }\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { LoaderService } from '../../services/loader.service';\r\n\r\n@Component({\r\n selector: 'spa-loader',\r\n templateUrl: './loader.component.html',\r\n styleUrls: ['./loader.component.css']\r\n})\r\nexport class LoaderComponent implements OnInit {\r\n\r\n constructor(private loaderService: LoaderService) {\r\n\r\n this.loaderService.isLoading.subscribe((v) => {\r\n // console.log(v);\r\n this.loading = v;\r\n });\r\n\r\n }\r\n ngOnInit() {\r\n }\r\n\r\n @Input() logo = \"\";\r\n loading: boolean;\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatNativeDateModule, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule, MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n\r\n\r\n ],\r\n exports: [\r\n CommonModule,FormsModule, ReactiveFormsModule,\r\n MatMenuModule, MatSliderModule, MatTableModule, MatPaginatorModule,\r\n MatCheckboxModule, MatBadgeModule, MatButtonModule, MatIconModule, MatDialogModule, MatSnackBarModule,\r\n MatTabsModule, MatFormFieldModule, MatInputModule, MatCardModule, MatChipsModule, MatSelectModule,\r\n MatNativeDateModule, MatProgressSpinnerModule, MatListModule, MatAutocompleteModule, MatTooltipModule, MatSortModule,\r\n MatDatepickerModule, MatStepperModule, MatRadioModule,\r\n ],\r\n providers:[\r\n { provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: { disableClose: true, hasBackdrop: true } },\r\n { provide: MAT_DATE_LOCALE, useValue: \"en-GB\" },\r\n ]\r\n})\r\nexport class SpaMatModule { }\r\n","import { Router } from '@angular/router';\r\nimport { AuthService } from './auth.service';\r\nimport { MessageService } from './message.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpResponse, HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpErrorResponse} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { LoaderService } from './loader.service';\r\nimport { LogService } from './log.service';\r\n\r\n@Injectable()\r\nexport class LoaderInterceptor implements HttpInterceptor {\r\n private requests: HttpRequest<any>[] = [];\r\n\r\n constructor(private loaderService: LoaderService, private messageService: MessageService, private authService: AuthService, private router: Router, private logService: LogService) { }\r\n\r\n\r\n removeRequest(req: HttpRequest<any>) {\r\n const i = this.requests.indexOf(req);\r\n if (i >= 0) {\r\n this.requests.splice(i, 1);\r\n }\r\n this.loaderService.isLoading.next(this.requests.length > 0);\r\n }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n\r\n\r\n let requestClone = request.clone({\r\n setHeaders: {\r\n Authorization: \"Basic \" + btoa(this.authService.currentUser + \":\" + this.authService.tokenSource.value)\r\n // Authorization: \"Basic \" + btoa(this.authService.currentUser + \":\" + \"j5Toszfr@ys\")\r\n }\r\n });\r\n\r\n this.requests.push(requestClone);\r\n\r\n if (this.requests.length > 1){\r\n this.logService.info(\"Multiple connections detected > \" + this.requests.length)\r\n }\r\n\r\n // this.logService.info(\"Executed > \" + requestClone.url)\r\n\r\n\r\n this.loaderService.isLoading.next(true);\r\n\r\n return Observable.create(observer => {\r\n\r\n const subscription = next.handle(requestClone)\r\n .subscribe(\r\n event => {\r\n if (event instanceof HttpResponse) {\r\n this.removeRequest(requestClone);\r\n observer.next(event);\r\n }\r\n },\r\n (err: HttpErrorResponse) => {\r\n\r\n this.messageService.toast('error: ' + err.statusText)\r\n\r\n this.removeRequest(requestClone);\r\n observer.error(err);\r\n\r\n if (err.status === 401) {\r\n //request is unathorised\r\n this.router.navigate([\"login\"]);\r\n }\r\n\r\n },\r\n () => {\r\n this.removeRequest(requestClone);\r\n observer.complete();\r\n });\r\n\r\n\r\n // remove request from queue when cancelled\r\n return () => {\r\n this.removeRequest(requestClone);\r\n subscription.unsubscribe();\r\n };\r\n\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-tin-spa',\r\n template: `\r\n <p>\r\n tin-spa works!\r\n </p>\r\n `,\r\n styles: []\r\n})\r\nexport class TinSpaComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { DataService } from './../../services/data.service';\r\nimport { AppConfig } from './../../classes/Classes';\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from '../../services/auth.service';\r\n\r\n@Component({\r\n selector: 'spa-nav-menu',\r\n templateUrl: './nav-menu.component.html',\r\n styleUrls: ['./nav-menu.component.css']\r\n})\r\nexport class NavMenuComponent {\r\n\r\n constructor(public router: Router, public authService: AuthService) { }\r\n\r\n ngOnInit() {\r\n\r\n this.authService.loggedUserFullName.subscribe(user => this.loggedUserFullName = user)\r\n this.authService.myRoleObserv.subscribe(rol => this.myRole = rol);\r\n this.authService.loggedinObserv.subscribe(obj => this.loggedin = obj)\r\n\r\n }\r\n\r\n myRole;\r\n loggedUserFullName: string;\r\n loggedin: boolean;\r\n isExpanded = false;\r\n\r\n @Input() appConfig = new AppConfig();\r\n\r\n\r\n\r\n collapse() {\r\n this.isExpanded = false;\r\n }\r\n\r\n toggle() {\r\n this.isExpanded = !this.isExpanded;\r\n }\r\n\r\n // logoff() {\r\n // // this.authService.updateloggedin(false);\r\n // // this.authService.updateRole(new Role());\r\n // this.router.navigate([\"login\"]);\r\n // // this.storageService.clear();\r\n // }\r\n\r\n redirectTo(link: string){\r\n\r\n if (link!=\"\"){\r\n this.router.navigate([link]);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import { Router } from '@angular/router';\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\nimport {Idle, DEFAULT_INTERRUPTSOURCES} from '@ng-idle/core';\r\nimport {Keepalive} from '@ng-idle/keepalive';\r\nimport { AuthService } from '../../services/auth.service';\r\n\r\n@Component({\r\n selector: 'spa-timeout',\r\n templateUrl: './timeout.component.html',\r\n styleUrls: ['./timeout.component.css']\r\n})\r\nexport class TimeoutComponent implements OnInit {\r\n\r\n constructor(private idle: Idle, private keepalive: Keepalive, public authService: AuthService, private router: Router) {\r\n\r\n this.authService.loggedinObserv.subscribe(obj => {\r\n this.loggedin = obj;\r\n // if (this.loggedin){\r\n // this.startWatch();\r\n // }else{\r\n // this.stopWatch();\r\n // }\r\n\r\n })\r\n\r\n // sets an idle timeout of 5 seconds, for testing purposes.\r\n idle.setIdle(900);\r\n // sets a timeout period of 5 seconds. after 10 seconds of inactivity, the user will be considered timed out.\r\n idle.setTimeout(10);\r\n // sets the default interrupts, in this case, things like clicks, scrolls, touches to the document\r\n idle.setInterrupts(DEFAULT_INTERRUPTSOURCES);\r\n\r\n\r\n idle.onIdleStart.subscribe(() => {\r\n this.idleState = 'You\\'ve gone idle!';\r\n });\r\n\r\n idle.onIdleEnd.subscribe(() => {\r\n this.idleState = 'No longer idle.';\r\n this.isWarning = false;\r\n });\r\n\r\n idle.onTimeoutWarning.subscribe((countdown) => {\r\n this.idleState = 'You will be signed out in ' + countdown + ' seconds!';\r\n\r\n if (this.loggedin){\r\n this.isWarning = true;\r\n }\r\n\r\n });\r\n\r\n idle.onTimeout.subscribe(() => {\r\n this.idleState = 'Timed out!';\r\n this.timedOut = true;\r\n\r\n //action\r\n this.stopWatch();\r\n });\r\n\r\n\r\n\r\n\r\n\r\n // sets the ping interval to 15 seconds\r\n keepalive.interval(15);\r\n\r\n keepalive.onPing.subscribe(() => {\r\n this.lastPing = new Date();\r\n });\r\n\r\n this.startWatch();\r\n }\r\n\r\n loggedin = false;\r\n idleState = 'Not started.';\r\n timedOut = false;\r\n lastPing?: Date = null;\r\n isWarning = false;\r\n\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n startWatch() {\r\n this.idle.watch();\r\n this.idleState = 'Started.';\r\n this.timedOut = false;\r\n this.isWarning = false;\r\n }\r\n\r\n stopWatch(){\r\n this.idle.stop();\r\n this.isWarning = false;\r\n this.router.navigate(['login']);\r\n }\r\n\r\n using(){\r\n //remove message and continue\r\n this.isWarning = false;\r\n }\r\n\r\n\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ActionResponse, Operator, TableColumnType, TableConfig } from '../../classes/Classes';\r\n\r\n@Component({\r\n selector: 'spa-table',\r\n templateUrl: './table.component.html',\r\n styleUrls: ['./table.component.css']\r\n})\r\nexport class TableComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n\r\n // console.log(\"Init\")\r\n this.config.columns.forEach(element => {\r\n this.displayedColumns.push(element.name);\r\n });\r\n\r\n this.displayedColumns.push(\"Action\")\r\n\r\n this.styleString = `width: ${50 * this.config.actions.length}px`;\r\n\r\n }\r\n\r\n ngOnChanges(){\r\n // console.log(\"OnChange\")\r\n this.data = new MatTableDataSource(this.data);\r\n this.data.paginator = this.tablePaginator;\r\n this.applyFilter(this._filterText);\r\n }\r\n\r\n\r\n @Input() config: TableConfig;\r\n @Input() data: any;\r\n @Output() dataChange = new EventEmitter();\r\n @Output() buttonClick = new EventEmitter();\r\n @Output() loadClick = new EventEmitter();\r\n @Output() createClick = new EventEmitter();\r\n\r\n @ViewChild('tablePaginator') tablePaginator: MatPaginator;\r\n\r\n colType = TableColumnType\r\n op = Operator\r\n\r\n displayedColumns: string[] = [];\r\n\r\n styleString: string;\r\n\r\n _filterText = \"\";\r\n applyFilter(filterValue: string) {\r\n this.data.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n do(name, item) {\r\n\r\n let resp = new ActionResponse();\r\n resp.name = name;\r\n resp.value = item;\r\n this.buttonClick.emit(resp);\r\n }\r\n\r\n\r\n create(){\r\n this.createClick.emit();\r\n }\r\n\r\n load(){\r\n this.loadClick.emit();\r\n }\r\n\r\n test(a:any, op: Operator, b: any){\r\n\r\n if (op == Operator.Equal){\r\n if (a == b){\r\n return true;\r\n }else{\r\n return false;\r\n }\r\n\r\n }\r\n\r\n if (op == Operator.Greater) {\r\n if (a > b) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n\r\n }\r\n\r\n if (op == Operator.Less) {\r\n if (a < b) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n\r\n }\r\n\r\n if (op == Operator.NotEqual) {\r\n if (a != b) {\r\n return true;\r\n } else {\r\n return false;\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","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Tile } from '../../classes/Classes';\r\n\r\n\r\n@Component({\r\n selector: 'spa-tiles',\r\n templateUrl: './tiles.component.html',\r\n styleUrls: ['./tiles.component.css']\r\n})\r\nexport class TilesComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() tiles: Tile[];\r\n\r\n @Input() clickable: boolean = false;\r\n @Output() tileClick = new EventEmitter();\r\n\r\n selected: string = \"\";\r\n\r\n clicked(v: Tile){\r\n\r\n if(!this.clickable) return;\r\n\r\n\r\n if(this.selected == v.tileName){\r\n this.tileClick.emit(\"\");\r\n this.selected = \"\";\r\n }else{\r\n this.tileClick.emit(v.tileName);\r\n this.selected = v.tileName;\r\n }\r\n\r\n\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { EventEmitter } from 'protractor';\r\nimport { Core } from \"tin-core\";\r\n\r\n@Component({\r\n selector: 'spa-date',\r\n templateUrl: './date.component.html',\r\n styleUrls: ['./date.component.css']\r\n})\r\nexport class DateComponent implements OnInit {\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() date = new FormControl(new Date());\r\n @Input() display = \"\";\r\n @Input() readonly = false;\r\n\r\n currentYear = new Date().getFullYear();\r\n @Input() min = new FormControl(new Date(this.currentYear - 50, 0, 1));\r\n @Input() max = new FormControl(new Date(this.currentYear + 50, 0, 1));\r\n\r\n // @Output() dateChange = new EventEmitter();\r\n\r\n\r\n // minDate: Date = new Date(this.currentYear, 2, 2);\r\n // maxDate: Date = new Date(this.currentYear, 2, 10);\r\n\r\n\r\n onChangeEvent(d){\r\n // this.dateChange.emit(d);\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'spa-text',\r\n templateUrl: './text.component.html',\r\n styleUrls: ['./text.component.css']\r\n})\r\nexport class TextComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n\r\n if(this.options.length > 0){\r\n this.initFilter();\r\n }\r\n\r\n if (this.placeholder == \"\") {\r\n this.placeholder = this.display;\r\n }\r\n\r\n }\r\n\r\n ngAfterViewInit(){\r\n\r\n if (this.readonly) {\r\n this.control.setValidators(null);\r\n this.control.updateValueAndValidity();\r\n }\r\n if (!this.required && !this.readonly){\r\n\r\n this.control.setValidators([Validators.minLength(this.min), Validators.maxLength(this.max), Validators.pattern(this.regex)]);\r\n this.control.updateValueAndValidity();\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n // options: FormGroup;\r\n hideRequiredControl = new FormControl(true);\r\n\r\n @Input() readonly = false;\r\n @Input() hint = \"\";\r\n @Input() display = \"\";\r\n @Input() placeholder = \"\";\r\n @Input() value = \"\";\r\n @Output() valueChange = new EventEmitter();\r\n @Input() format = \"text\";\r\n\r\n @Output() leave = new EventEmitter();\r\n @Output() enterPress = new EventEmitter();\r\n\r\n @Input() rows = \"\";\r\n @Input() width = \"100%\"\r\n\r\n\r\n //Autocomplete items\r\n @Input() options: any = [];\r\n @Input() optionValue = \"\";\r\n @Input() optionDisplay = \"\";\r\n\r\n myControl = new FormControl();\r\n filteredOptions: Observable<string[]>;\r\n\r\n private initFilter() {\r\n this.filteredOptions = this.myControl.valueChanges.pipe(\r\n startWith(\"\"),\r\n map((value) => this._filter(value))\r\n );\r\n }\r\n\r\n private _filter(value: string): string[] {\r\n const filterValue = value.toLowerCase();\r\n\r\n return this.options.filter((option) => option[`${this.optionDisplay}`].toLowerCase().includes(filterValue));\r\n }\r\n\r\n\r\n\r\n\r\n\r\n //validations\r\n @Input() required = true;\r\n @Input() min = 0;\r\n @Input() max = 9000000000000000; //Math.max\r\n @Input() regex = \"\" //\"[a-zA-Z ]*\" //\"/\\S+@\\S+\\.\\S+/\";\r\n\r\n changed(){\r\n // console.log(\"value: \" + this.value)\r\n // console.log(\"cont: \" + this.myControl.value)\r\n\r\n // if (this.options.length > 0) {\r\n // this.value = this.myControl.value;\r\n // }\r\n\r\n this.valueChange.emit(this.value);\r\n\r\n }\r\n\r\n changed2() {\r\n // console.log(\"value: \" + this.value)\r\n // console.log(\"cont: \" + this.myControl.value)\r\n\r\n // if (this.options.length > 0) {\r\n // this.value = this.myControl.value;\r\n // }\r\n\r\n this.valueChange.emit(this.myControl.value);\r\n\r\n }\r\n\r\n leaved(){\r\n this.leave.emit();\r\n }\r\n\r\n enterPressed() {\r\n this.enterPress.emit();\r\n }\r\n\r\n control = new FormControl( this.value, [Validators.required, Validators.minLength(this.min), Validators.maxLength(this.max), Validators.pattern(this.regex) ]);\r\n\r\n validate() : string{\r\n\r\n\r\n if ((this.required || this.min > 0) && this.control.hasError('required') ){\r\n return `Required`;\r\n }\r\n\r\n if (this.control.hasError('minlength') ){\r\n return `Minimun length is ${this.min}`;\r\n }\r\n\r\n if (this.control.hasError('maxlength')) {\r\n return `Maximum length is ${this.max}`;\r\n }\r\n\r\n if (this.control.hasError('pattern')) {\r\n return `Invalid Input`;\r\n }\r\n\r\n\r\n // if (this.regex != \"\"){\r\n\r\n // let r = new RegExp(this.regex, \"g\");\r\n\r\n // if (!r.test(this.value)){\r\n // this.valid = false;\r\n // this.errorMessage = \"Invalid input\";\r\n // return this.errorMessage;\r\n // }\r\n // }\r\n\r\n return \"\";\r\n }\r\n\r\n}\r\n","//-------------------------------------------EDIT\r\n\r\nimport { Component, OnInit, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { HttpService } from 'tin-core';\r\n\r\n@Component({\r\n selector: 'app-editRequest',\r\n templateUrl: './viewerDialog.component.html',\r\n styleUrls: ['./viewer.component.css']\r\n})\r\nexport class viewerDialog implements OnInit {\r\n\r\n constructor(private httpService: HttpService, @Inject(MAT_DIALOG_DATA) public data) { }\r\n\r\n ngOnInit() {\r\n\r\n this.fileNames = this.data.fileNames;\r\n this.path = this.data.path;\r\n this.fileName = this.data.fileName;\r\n this.currIndex = this.data.fileNames.indexOf(this.fileName);\r\n this.setURL();\r\n\r\n }\r\n\r\n isProcessing: boolean = false;\r\n\r\n path: string;\r\n fileNames = new Array();\r\n fileName: string;\r\n currIndex = 0;\r\n\r\n currentFileUrl = \"\";\r\n\r\n\r\n previous() {\r\n\r\n if (this.fileNames.length == 0) {\r\n return;\r\n }\r\n\r\n if (this.currIndex -1 >= 0)\r\n {\r\n this.currIndex = this.currIndex - 1;\r\n }\r\n else if (this.currIndex == 0)\r\n {\r\n this.currIndex = this.fileNames.length -1;\r\n }\r\n\r\n this.setURL();\r\n\r\n }\r\n\r\n next() {\r\n\r\n if (this.fileNames.length == 0){\r\n return;\r\n }\r\n\r\n if (this.currIndex +1 < this.fileNames.length)\r\n {\r\n this.currIndex = this.currIndex + 1;\r\n }\r\n else if (this.currIndex +1 > this.fileNames.length -1)\r\n {\r\n this.currIndex = 0;\r\n }\r\n\r\n this.setURL();\r\n\r\n }\r\n\r\n imageDoc = false;\r\n setURL() {\r\n // this.currentFileUrl = this.httpService.apiUrl.replace(\"/api/\", \"/files/\") + '' + \"/\" + this.files[this.currIndex];\r\n\r\n this.currentFileUrl = `${this.httpService.apiUrl.replace(\"/api/\", \"/\")}${this.path.replace(\"//\", \"/\")}/${this.fileNames[this.currIndex]}` ;\r\n\r\n if (this.currentFileUrl.toLocaleLowerCase().endsWith(\".pdf\") || this.currentFileUrl.toLocaleLowerCase().endsWith(\".jpg\") || this.currentFileUrl.toLocaleLowerCase().endsWith(\".jpeg\")){\r\n this.imageDoc = true;\r\n }else{\r\n this.imageDoc = false\r\n window.open(this.currentFileUrl, '_blank');\r\n\r\n }\r\n\r\n }\r\n\r\n change(fileName){\r\n\r\n this.currIndex = this.fileNames.indexOf(fileName);\r\n this.setURL();\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { viewerDialog } from './viewerDialog.component';\r\n\r\n@Component({\r\n selector: 'spa-viewer',\r\n templateUrl: './viewer.component.html',\r\n styleUrls: ['./viewer.component.css']\r\n})\r\nexport class ViewerComponent implements OnInit {\r\n\r\n constructor(public dialog: MatDialog) { }\r\n\r\n ngOnInit(): void {\r\n // console.log(`${this.dir}/${this.folderName}`)\r\n }\r\n\r\n\r\n @Input() dir = \"\";\r\n @Input() folderName=\"\";\r\n @Input() fileNames = new Array()\r\n @Input() removable = false;\r\n @Output() remove = new EventEmitter();\r\n @Input() display = \"Documents\";\r\n @Input() title = \"Documents\";\r\n\r\n // fileList: string[];\r\n\r\n\r\n viewDocs(fileName: string) {\r\n\r\n if (typeof fileName != 'string') {\r\n return;\r\n }\r\n\r\n\r\n // console.log(\"opening doc: \" + fileName)\r\n\r\n const dialogRef = this.dialog.open(viewerDialog, {\r\n minWidth: '1500px',\r\n maxWidth: '80vw',\r\n\r\n data: { fileNames: this.fileNames, fileName: fileName, path:`${this.dir}/${this.folderName}` }\r\n });\r\n\r\n }\r\n\r\n removed(i){\r\n this.remove.emit(i);\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'spa-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.css']\r\n})\r\nexport class SelectComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n // this.displayValue = this.options.filter((m) => m.optionValue == this.value)\r\n // console.log(this.displayValue)\r\n // this.displayValue = this.value\r\n }\r\n\r\n ngOnChanges() {\r\n\r\n if (this.readonlyMode != \"\" && this.options.length > 0){\r\n this.displayValue = this.options.filter((m) => m[`${this.optionValue}`] == this.value)[0][`${this.optionDisplay}`]\r\n }\r\n\r\n }\r\n\r\n displayValue;\r\n\r\n @Input() width = \"100%\"\r\n @Input() readonly = false;\r\n @Input() readonlyMode = \"\";\r\n @Input() hint = \"\";\r\n\r\n\r\n @Input() display = \"\";\r\n @Input() value = \"\";\r\n @Input() options: any;\r\n @Input() optionValue = \"\";\r\n @Input() optionDisplay = \"\";\r\n @Input() optionDisplayExtra = \"\";\r\n\r\n @Output() valueChange = new EventEmitter();\r\n\r\n\r\n\r\n changed(){\r\n this.valueChange.emit(this.value);\r\n\r\n }\r\n\r\n selectChanged(){\r\n\r\n }\r\n\r\n}\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'spa-check',\r\n templateUrl: './check.component.html',\r\n styleUrls: ['./check.component.css']\r\n})\r\nexport class CheckComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() readonly = false;\r\n @Input() display = \"\";\r\n @Input() value = false;\r\n @Output() valueChange = new EventEmitter();\r\n @Output() click = new EventEmitter();\r\n @Output() check = new EventEmitter();\r\n @Output() uncheck = new EventEmitter();\r\n\r\n changed(){\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n clicked(){\r\n this.click.emit();\r\n\r\n if(!this.value){\r\n this.checked();\r\n }else{\r\n this.unchecked();\r\n }\r\n }\r\n\r\n checked(){\r\n this.check.emit();\r\n }\r\n unchecked(){\r\n this.uncheck.emit();\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'spa-attach',\r\n templateUrl: './attach.component.html',\r\n styleUrls: ['./attach.component.scss']\r\n})\r\nexport class AttachComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() message = \"Drag and drop files here\"\r\n @Input() files: any[] = [];\r\n @Output() filesChange = new EventEmitter();\r\n @Output() upload = new EventEmitter();\r\n\r\n\r\n @Input() enableUpload = false;\r\n\r\n\r\n /**\r\n * on file drop handler\r\n */\r\n onFileDropped($event) {\r\n this.prepareFilesList($event);\r\n }\r\n\r\n /**\r\n * handle file from browsing\r\n */\r\n fileBrowseHandler(files) {\r\n this.prepareFilesList(files);\r\n }\r\n\r\n /**\r\n * Delete file from files list\r\n * @param index (File index)\r\n */\r\n deleteFile(index: number) {\r\n this.files.splice(index, 1);\r\n }\r\n\r\n /**\r\n * Simulate the upload process\r\n */\r\n // uploadFilesSimulator(index: number) {\r\n // setTimeout(() => {\r\n // if (index === this.files.length) {\r\n // return;\r\n // } else {\r\n // const progressInterval = setInterval(() => {\r\n // if (this.files[index].progress === 100) {\r\n // clearInterval(progressInterval);\r\n // this.uploadFilesSimulator(index + 1);\r\n // } else {\r\n // this.files[index].progress += 5;\r\n // }\r\n // }, 200);\r\n // }\r\n // }, 1000);\r\n // }\r\n\r\n /**\r\n * Convert Files list to normal array list\r\n * @param files (Files List)\r\n */\r\n prepareFilesList(files: Array<any>) {\r\n for (const item of files) {\r\n item.progress = 0;\r\n this.files.push(item);\r\n }\r\n // this.uploadFilesSimulator(0);\r\n }\r\n\r\n /**\r\n * format bytes\r\n * @param bytes (File size in bytes)\r\n * @param decimals (Decimals point)\r\n */\r\n formatBytes(bytes, decimals) {\r\n if (bytes === 0) {\r\n return '0 Bytes';\r\n }\r\n const k = 1024;\r\n const dm = decimals <= 0 ? 0 : decimals || 2;\r\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\r\n }\r\n\r\n uploaded(){\r\n this.upload.emit();\r\n }\r\n\r\n filesChanged(){\r\n this.filesChange.emit(this.files);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'spa-datetime',\r\n templateUrl: './datetime.component.html',\r\n styleUrls: ['./datetime.component.css']\r\n})\r\nexport class DatetimeComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() display = \"\";\r\n @Input() value = \"\";\r\n @Output() valueChange = new EventEmitter();\r\n @Input() readonly = false;\r\n\r\n @Input() min = \"01 jan 1900\";\r\n\r\n @Input() max = \"31 dec 9999\";\r\n\r\n changed() {\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n// import { CurrencyPipe } from '@angular/common';\r\nimport { Core } from 'tin-core';\r\n\r\n@Component({\r\n selector: 'spa-money',\r\n templateUrl: './money.component.html',\r\n styleUrls: ['./money.component.css']\r\n})\r\nexport class MoneyComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n\r\n\r\n }\r\n\r\n ngOnChanges() {\r\n\r\n }\r\n\r\n @Input() readonly = false;\r\n @Input() display = \"\";\r\n @Input() value = \"\";\r\n @Output() valueChange = new EventEmitter();\r\n\r\n @Input() width = \"100%\"\r\n @Input() hint = \"\";\r\n @Input() currency = \"$\";\r\n\r\n\r\n\r\n\r\n\r\n changed(){\r\n\r\n this.valueChange.emit(this.value);\r\n\r\n }\r\n\r\n\r\n}\r\n","import {\r\n Directive,\r\n Output,\r\n Input,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appDnd]'\r\n})\r\nexport class DndDirective {\r\n @HostBinding('class.fileover') fileOver: boolean;\r\n @Output() fileDropped = new EventEmitter<any>();\r\n\r\n // Dragover listener\r\n @HostListener('dragover', ['$event']) onDragOver(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileOver = true;\r\n }\r\n\r\n // Dragleave listener\r\n @HostListener('dragleave', ['$event']) public onDragLeave(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileOver = false;\r\n }\r\n\r\n // Drop listener\r\n @HostListener('drop', ['$event']) public ondrop(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileOver = false;\r\n let files = evt.dataTransfer.files;\r\n if (files.length > 0) {\r\n this.fileDropped.emit(files);\r\n }\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MessageService } from '../../services/message.service';\r\n@Component({\r\n selector: 'spa-chips',\r\n templateUrl: './chips.component.html',\r\n styleUrls: ['./chips.component.css']\r\n})\r\nexport class ChipsComponent implements OnInit {\r\n\r\n constructor(private messageService: MessageService) { }\r\n\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n\r\n @Input() icon = \"\";\r\n @Input() removable = false;\r\n @Input() addable = false;\r\n\r\n\r\n\r\n @Input() chips: string[];\r\n // @Output() chipClick = new EventEmitter();\r\n\r\n @Output() click = new EventEmitter();\r\n\r\n @Output() remove = new EventEmitter();\r\n\r\n clicked(chip: string) {\r\n\r\n console.log(\"Clicked chip: \" + chip)\r\n\r\n if (typeof chip != 'string') {\r\n return;\r\n }\r\n\r\n if (chip) {\r\n this.click.emit(chip);\r\n }\r\n }\r\n\r\n\r\n removed(chip) {\r\n\r\n // const index = this.chips.indexOf(chip);\r\n\r\n // if (index >= 0) {\r\n // this.chips.splice(index, 1);\r\n // }\r\n\r\n this.messageService.confirm(`Remove ${chip} ?`).subscribe((result) => {\r\n if (result == \"yes\") {\r\n\r\n this.remove.emit(chip);\r\n\r\n };\r\n });\r\n\r\n }\r\n\r\n}\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'spa-activity',\r\n templateUrl: './activity.component.html',\r\n styleUrls: ['./activity.component.css']\r\n})\r\nexport class ActivityComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() notes = new Array();\r\n notesMessage: string = \"Empty\";\r\n @Input() title = \"Notes\"\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { AngularEditorConfig } from '@kolkov/angular-editor';\r\n\r\n@Component({\r\n selector: 'spa-html',\r\n templateUrl: './html.component.html',\r\n styleUrls: ['./html.component.css']\r\n})\r\nexport class HtmlComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() value = \"\";\r\n @Output() valueChange = new EventEmitter();\r\n @Input() readonly = false;\r\n\r\n changed() {\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n ngOnChanges() {\r\n // console.log(\"OnChange\")\r\n this.config.editable = !this.readonly;\r\n\r\n }\r\n\r\n @Input() config: AngularEditorConfig = {\r\n editable: true,\r\n spellcheck: true,\r\n height: 'auto',\r\n minHeight: '5rem',\r\n placeholder: 'Enter text here...',\r\n translate: 'no',\r\n defaultParagraphSeparator: '',\r\n defaultFontName: 'Arial',\r\n toolbarHiddenButtons: [\r\n [\r\n 'bold',\r\n 'italic',\r\n 'underline',\r\n 'strikeThrough',\r\n 'subscript',\r\n 'superscript',\r\n 'justifyLeft',\r\n 'justifyCenter',\r\n 'justifyRight',\r\n 'justifyFull',\r\n 'indent',\r\n 'outdent',\r\n 'insertUnorderedList',\r\n 'insertOrderedList',\r\n 'heading',\r\n 'fontName'\r\n ],\r\n [\r\n 'fontSize',\r\n 'textColor',\r\n 'backgroundColor',\r\n 'customClasses',\r\n 'link',\r\n 'unlink',\r\n 'insertImage',\r\n 'insertVideo',\r\n 'insertHorizontalRule',\r\n 'removeFormat',\r\n 'toggleEditorMode'\r\n ]\r\n ],\r\n customClasses: [\r\n {\r\n name: \"quote\",\r\n class: \"quote\",\r\n },\r\n {\r\n name: 'redText',\r\n class: 'redText'\r\n },\r\n {\r\n name: \"titleText\",\r\n class: \"titleText\",\r\n tag: \"h1\",\r\n },\r\n ]\r\n };\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'spa-option',\r\n templateUrl: './option.component.html',\r\n styleUrls: ['./option.component.css']\r\n})\r\nexport class OptionComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n\r\n\r\n @Input() options: any;\r\n @Input() optionValue = \"\";\r\n @Input() optionDisplay = \"\";\r\n @Input() readonly = false;\r\n\r\n @Input() value = \"\";\r\n @Input() display = \"\";\r\n @Input() show: boolean = false;\r\n\r\n\r\n @Output() valueChange = new EventEmitter();\r\n @Output() enterPress = new EventEmitter();\r\n\r\n changed() {\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n enterPressed(){\r\n this.valueChange.emit();\r\n }\r\n\r\n resetValue(){\r\n this.value = \"\";\r\n this.changed();\r\n\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'spa-label',\r\n templateUrl: './label.component.html',\r\n styleUrls: ['./label.component.css']\r\n})\r\nexport class LabelComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() display = \"\";\r\n @Input() value = \"\";\r\n @Input() format = \"text\";\r\n\r\n}\r\n","import { AfterViewInit, Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { MatStepper } from '@angular/material/stepper';\r\nimport { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';\r\nimport { Step } from '../../classes/Classes';\r\n\r\n@Component({\r\n selector: 'spa-steps',\r\n templateUrl: './steps.component.html',\r\n styleUrls: ['./steps.component.css'],\r\n providers: [{\r\n provide: STEPPER_GLOBAL_OPTIONS, useValue: { displayDefaultIndicatorType: false }\r\n }]\r\n})\r\nexport class StepsComponent implements OnInit, AfterViewInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n ngOnChanges() {\r\n // console.log(\"OnChange\")\r\n this.pushSteps();\r\n }\r\n\r\n @ViewChild('stepper') stepper: MatStepper;\r\n @Input() value = \"\";\r\n @Input() steps: Step[];\r\n\r\n setStepper() {\r\n\r\n if (this.value == \"\") return;\r\n\r\n // console.log(this.value)\r\n\r\n // this.stepper.disableRipple = true;\r\n this.stepper.selectedIndex = 0;\r\n\r\n switch (this.value) {\r\n\r\n\r\n\r\n case \"Draft\":\r\n this.stepper.selectedIndex = 0;\r\n break;\r\n\r\n case \"Head Approval\":\r\n this.pushStepper(1)\r\n break;\r\n\r\n case \"CE Approval\":\r\n this.pushStepper(2)\r\n break;\r\n\r\n case \"Booking\":\r\n this.pushStepper(3)\r\n break;\r\n\r\n case \"BTA Approval\":\r\n this.pushStepper(4)\r\n break;\r\n\r\n case \"Travel\":\r\n this.pushStepper(5)\r\n break;\r\n\r\n case \"BTR Approval\":\r\n this.pushStepper(6)\r\n break;\r\n\r\n case \"Travel Closure\":\r\n this.pushStepper(7)\r\n break;\r\n\r\n }\r\n\r\n }\r\n\r\n pushStepper(count: number) {\r\n\r\n for (let index = 0; index < count + 1; index++) {\r\n // const element = array[index];\r\n this.stepper.selectedIndex = index;\r\n // console.log(\"pushed\")\r\n\r\n }\r\n\r\n }\r\n\r\n pushSteps(){\r\n\r\n if(this.steps.length == 0) return;\r\n if (this.value == \"\") return;\r\n this.stepper.selectedIndex = 0;\r\n\r\n\r\n let i = 0;\r\n\r\n for (let step of this.steps) {\r\n\r\n if (step.name != this.value) {\r\n\r\n this.stepper.selectedIndex = i;\r\n i++;\r\n\r\n } else {\r\n\r\n this.stepper.selectedIndex = i;\r\n // console.log(\"Stopped\")\r\n break;\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n}\r\n","import { LoaderComponent } from './components/loader/loader.component';\r\nimport { SpaMatModule } from \"./modules/spa-mat.module\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { LoaderInterceptor } from './services/loader-interceptor.service';\r\nimport { NgIdleKeepaliveModule } from '@ng-idle/keepalive';\r\nimport { MomentModule } from 'angular2-moment';\r\nimport { NgxDocViewerModule } from 'ngx-doc-viewer';\r\n\r\nimport { TinSpaComponent } from \"./components/tin-spa.component\";\r\nimport { NavMenuComponent } from \"./components/nav-menu/nav-menu.component\";\r\nimport { messageDialog } from \"./components/message/messageDialog.component\";\r\nimport { TimeoutComponent } from './components/timeout/timeout.component';\r\nimport { HashLocationStrategy, LocationStrategy } from '@angular/common';\r\nimport { TableComponent } from './components/table/table.component';\r\nimport { TilesComponent } from './components/tiles/tiles.component';\r\nimport { DateComponent } from './components/date/date.component';\r\nimport { TextComponent } from './components/text/text.component';\r\nimport { ViewerComponent } from './components/viewer/viewer.component';\r\nimport { SelectComponent } from './components/select/select.component';\r\nimport { CheckComponent } from './components/check/check.component';\r\nimport { AttachComponent } from './components/attach/attach.component';\r\nimport { DatetimeComponent } from './components/datetime/datetime.component';\r\nimport { MoneyComponent } from './components/money/money.component';\r\nimport { DndDirective } from './dnd.directive';\r\nimport { ChipsComponent } from './components/chips/chips.component';\r\nimport { ActivityComponent } from './components/activity/activity.component';\r\nimport { viewerDialog } from './components/viewer/viewerDialog.component';\r\nimport { HtmlComponent } from './components/html/html.component';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { OptionComponent } from './components/option/option.component';\r\nimport { LabelComponent } from './components/label/label.component';\r\nimport { StepsComponent } from './components/steps/steps.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [DndDirective,TinSpaComponent, messageDialog, NavMenuComponent, LoaderComponent,\r\n TimeoutComponent, TableComponent, TilesComponent, DateComponent, TextComponent,\r\n ViewerComponent, SelectComponent, CheckComponent, AttachComponent, DatetimeComponent,\r\n MoneyComponent,\r\n ChipsComponent,\r\n ActivityComponent, viewerDialog, HtmlComponent, OptionComponent, LabelComponent, StepsComponent ],\r\n\r\n entryComponents: [messageDialog],\r\n\r\n imports: [\r\n ReactiveFormsModule.withConfig({ warnOnNgModelWithFormControl: \"never\" }),\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SpaMatModule,\r\n MomentModule,\r\n NgxDocViewerModule,\r\n AngularEditorModule,\r\n\r\n NgIdleKeepaliveModule.forRoot()\r\n ],\r\n\r\n exports: [\r\n CommonModule,\r\n FormsModule,\r\n SpaMatModule,\r\n TinSpaComponent,\r\n messageDialog,\r\n NavMenuComponent,\r\n LoaderComponent,\r\n TimeoutComponent,\r\n TableComponent,\r\n TilesComponent,\r\n DateComponent,\r\n ViewerComponent,\r\n SelectComponent,\r\n TextComponent,\r\n DatetimeComponent,\r\n CheckComponent,\r\n AttachComponent,\r\n MoneyComponent,\r\n ChipsComponent,\r\n ActivityComponent,\r\n HtmlComponent,\r\n OptionComponent,\r\n LabelComponent,\r\n StepsComponent\r\n\r\n ],\r\n\r\n providers: [\r\n\r\n { provide: HTTP_INTERCEPTORS, useClass: LoaderInterceptor, multi: true },\r\n { provide: LocationStrategy, useClass: HashLocationStrategy}\r\n ],\r\n})\r\nexport class TinSpaModule {}\r\n","//-----------------Change for Build and Reference purposes for SERVICES ONLY---------//\r\nimport { HttpService, ApiResponse, Core, Constants } from \"tin-core\";\r\n// import { HttpService,ApiResponse, Core, Constants } from 'tin-core';\r\n//----------------------------------------------------------------------------------//\r\nimport { MessageService } from \"../../services/message.service\";\r\nimport { StorageService } from \"../../services/storage.service\";\r\nimport { AuthService } from \"../../services/auth.service\";\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\r\nimport { DataService } from \"../../services/data.service\";\r\nimport { LogService } from \"./../../services/log.service\";\r\n// import { AuthService } from \"../services/auth.service\";\r\n// import { ApiResponse, Core } from \"../classes/TinCore\";\r\nimport { User, loginConfig, AppConfig } from \"../../classes/Classes\";\r\nimport { CurrencyPipe } from \"@angular/common\";\r\n// import { StorageService } from \"../services/storage.service\";\r\n// import { Constants } from \"../../classes/TinSpa\";\r\nimport { HttpErrorResponse } from \"@angular/common/http\";\r\n\r\n@Component({\r\n selector: \"spa-login\",\r\n templateUrl: \"./login.component.html\",\r\n styleUrls: [\"./login.component.scss\"],\r\n})\r\nexport class LoginComponent implements OnInit {\r\n constructor(\r\n private httpService: HttpService,\r\n private storageService: StorageService,\r\n public router: Router,\r\n private messageService: MessageService,\r\n private dataService: DataService,\r\n public authService: AuthService,\r\n private logService: LogService\r\n ) {}\r\n\r\n public user = new User();\r\n hide = true;\r\n isProcessing: boolean = false;\r\n @Input() config: loginConfig;\r\n\r\n ngOnInit() {\r\n this.authService.updateloggedin(false);\r\n this.authService.updateRole(null);\r\n this.storageService.clear();\r\n }\r\n\r\n @Input() appConfig = new AppConfig();\r\n\r\n public signup() {\r\n this.router.navigate([\"signup\"]);\r\n }\r\n\r\n public recoverAccount() {\r\n this.router.navigate([\"recover-account\"]);\r\n }\r\n\r\n public login() {\r\n\r\n if (this.user.userID == \"\" || this.user.password == \"\") {\r\n this.messageService.toast(\"Please enter your credentials\");\r\n return;\r\n }\r\n\r\n\r\n this.logService.info(\"logging in\");\r\n\r\n this.isProcessing = true;\r\n\r\n this.dataService.login(this.user).subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n\r\n\r\n if (apiResponse.ds.dtUser[0][\"authType\"] == 'local' && !this.appConfig.localAuth){\r\n this.messageService.toast(\"Contact Admin: Authentication Type error\");\r\n return;\r\n }\r\n\r\n if (apiResponse.ds.dtUser[0][\"authType\"] == 'AD' && !this.appConfig.ADAuth) {\r\n this.messageService.toast(\"Contact Admin: Authentication Type error\");\r\n return;\r\n }\r\n\r\n\r\n this.authService.updateloggedin(true);\r\n\r\n this.authService.updateToken(apiResponse.ds.dtUser[0][\"token\"]);\r\n this.storageService.store(Constants.AUTH_TOKEN, apiResponse.ds.dtUser[0][\"token\"]);\r\n\r\n this.authService.updateTokenExpire(apiResponse.ds.dtUser[0][\"tokenExpire\"]);\r\n this.storageService.store(Constants.AUTH_TOKEN_EXPIRE, apiResponse.ds.dtUser[0][\"tokenExpire\"]);\r\n\r\n this.authService.updateCurrentUser(this.user.userID);\r\n this.storageService.store(Constants.AUTH_USER, this.user.userID);\r\n\r\n this.authService.updateLoggedUserFullName( apiResponse.ds.dtProfile[0][\"firstName\"] );\r\n this.storageService.store(Constants.AUTH_NAME, apiResponse.ds.dtProfile[0][\"firstName\"]\r\n );\r\n\r\n this.authService.updateRole(apiResponse.ds.dtRole[0]);\r\n this.storageService.store(Constants.AUTH_ROLES, JSON.stringify(apiResponse.ds.dtRole[0]));\r\n // this.setRole(apiResponse.dt[0][\"accessLevel\"]);\r\n\r\n // this.setRole(\"1\");\r\n\r\n if (apiResponse.ds.dtUser[0][\"changePassword\"] == \"0\") {\r\n this.router.navigate([\"home\"]);\r\n // this.messageService.toast(\"Welcome\");\r\n this.logService.info(\"logged in\");\r\n } else {\r\n this.router.navigate([\"home/user/change-password\"]);\r\n }\r\n\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n this.user.password = \"\";\r\n }\r\n },\r\n (error) => {\r\n this.isProcessing = false;\r\n\r\n this.messageService.toast(this.httpService.Error(error));\r\n }\r\n );\r\n }\r\n\r\n setRole(roleID: string) {\r\n this.dataService\r\n .GetRole(\"id\", roleID)\r\n .subscribe((apiResponse: ApiResponse) => {\r\n this.authService.updateRole(apiResponse.dt[0]);\r\n\r\n this.storageService.store(\r\n Constants.AUTH_ROLES,\r\n JSON.stringify(apiResponse.dt[0])\r\n );\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { HttpService, ApiResponse } from 'tin-core';\r\nimport { MessageService } from '../../services/message.service';\r\nimport { DataService } from '../../services/data.service';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { User, Profile, Account } from '../../classes/Classes';\r\n\r\n@Component({\r\n selector: 'spa-signup',\r\n templateUrl: './signup.component.html',\r\n styleUrls: ['./signup.component.css']\r\n})\r\nexport class SignupComponent implements OnInit {\r\n\r\n\r\n constructor(private httpService: HttpService, private messageService: MessageService, private dataService: DataService, private authService: AuthService,) { }\r\n\r\n ngOnInit() {\r\n\r\n this.account.user = this.user;\r\n this.account.profile = this.profile;\r\n }\r\n\r\n isProcessing: boolean = false;\r\n user = new User();\r\n profile = new Profile();\r\n\r\n account = new Account();\r\n\r\n confirmPassword: string;\r\n\r\n\r\ncreate(){\r\n\r\n this.profile.userID = this.user.userID;\r\n\r\n this.isProcessing = true;\r\n this.dataService.UpdateAccount(this.account,\"add\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"Account Created\");\r\n\r\n this.user = new User();\r\n this.profile = new Profile();\r\n\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n },\r\n (error) => {\r\n this.isProcessing = false;\r\n this.messageService.toast(this.httpService.Error(error));\r\n }\r\n );\r\n}\r\n\r\n\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DataService } from '../../services/data.service';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { MessageService } from '../../services/message.service';\r\nimport { User } from '../../classes/Classes';\r\nimport { ApiResponse } from 'tin-core';\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'spa-recover-account',\r\n templateUrl: './recover-account.component.html',\r\n styleUrls: ['./recover-account.component.css']\r\n})\r\nexport class RecoverAccountComponent implements OnInit {\r\n\r\n constructor(private location: Location, private dataService: DataService, public authService: AuthService, private messageService: MessageService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n userID: string = \"\";\r\n\r\n recover(){\r\n\r\n\r\n if (this.userID == \"\") {\r\n\r\n this.messageService.toast(\"Please enter your userID\");\r\n return;\r\n } else {\r\n let u = new User();\r\n u.userID = this.userID;\r\n\r\n this.dataService.SelfReset(u).subscribe((apiResponse: ApiResponse) => {\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"The password has been sent to your email\");\r\n this.location.back();\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n}\r\n","import { SpaMatModule } from \"./spa-mat.module\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { LoginComponent } from \"../components/login/login.component\";\r\nimport { SignupComponent } from \"../components/signup/signup.component\";\r\nimport { RecoverAccountComponent } from \"../components/recover-account/recover-account.component\";\r\n\r\n@NgModule({\r\n declarations: [LoginComponent, SignupComponent, RecoverAccountComponent],\r\n\r\n entryComponents: [],\r\n\r\n imports: [\r\n ReactiveFormsModule.withConfig({ warnOnNgModelWithFormControl: \"never\" }),\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SpaMatModule,\r\n ],\r\n\r\n exports: [\r\n CommonModule,\r\n FormsModule,\r\n SpaMatModule,\r\n LoginComponent,\r\n SignupComponent,\r\n RecoverAccountComponent,\r\n ],\r\n})\r\nexport class SpaIndexModule {}\r\n","\r\nimport { ChangeUserPassword } from './../../classes/Classes';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { MessageService } from '../../services/message.service';\r\nimport { DataService } from '../../services/data.service';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { ApiResponse, HttpService } from 'tin-core';\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'spa-change-password',\r\n templateUrl: './change-password.component.html',\r\n styleUrls: ['./change-password.component.css']\r\n})\r\nexport class ChangePasswordComponent implements OnInit {\r\n\r\n constructor(private location: Location, private httpService: HttpService,private messageService: MessageService, public dataService: DataService, private authService: AuthService) { }\r\n\r\n ngOnInit() {\r\n this.myRole = this.authService.currentRoleSource.value\r\n\r\n if (this.dataService.tmpProfileUserID==\"\"){\r\n this.changePassword.userID = this.authService.currentUser;\r\n\r\n }else{\r\n this.changePassword.userID = this.dataService.tmpProfileUserID;\r\n this.dataService.tmpProfileUserID = \"\";\r\n }\r\n\r\n // console.log(this.myRole)\r\n\r\n }\r\n\r\n myRole;\r\n\r\n\r\n\r\n\r\n\r\n isProcessing: boolean = false;\r\n\r\n changePassword = new ChangeUserPassword();\r\n\r\n public change() {\r\n\r\n\r\n if (!this.myRole[this.dataService.capUsers.name]){\r\n if (this.changePassword.currentPassword == \"\") {\r\n this.messageService.toast(\"Please enter current Password\");\r\n return;\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n if (this.changePassword.newPassword == \"\") {\r\n this.messageService.toast(\"Please enter new Password\");\r\n return;\r\n }\r\n\r\n if (this.changePassword.confirmPassword == \"\") {\r\n this.messageService.toast(\"Please confirm new Password\");\r\n return;\r\n }\r\n\r\n if (this.changePassword.confirmPassword != this.changePassword.newPassword ) {\r\n this.messageService.toast(\"Passwords do not match\");\r\n return;\r\n }\r\n\r\n this.isProcessing = true;\r\n\r\n if (this.myRole[this.dataService.capUsers.name]){\r\n\r\n this.dataService.changePasswordAdmin(this.changePassword).subscribe((apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"Password Changed\");\r\n\r\n this.location.back();\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n }\r\n );\r\n\r\n }else{\r\n\r\n this.dataService.changePassword(this.changePassword).subscribe((apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"Password Changed\");\r\n\r\n this.location.back();\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\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}\r\n","import { AuthService } from './../../services/auth.service';\r\nimport { HttpService } from 'tin-core';\r\nimport { MessageService } from './../../services/message.service';\r\nimport { DataService } from './../../services/data.service';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { ApiResponse } from 'tin-core';\r\nimport { AppConfig, Profile } from '../../classes/Classes';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'spa-profile',\r\n templateUrl: './profile.component.html',\r\n styleUrls: ['./profile.component.css']\r\n})\r\nexport class ProfileComponent implements OnInit {\r\n isProcessing: boolean;\r\n\r\n constructor(public dataService: DataService, private messageService: MessageService, private httpService: HttpService, private router: Router, private authService: AuthService) { }\r\n\r\n ngOnInit() {\r\n\r\n this.myRole = this.authService.currentRoleSource.value\r\n\r\n // this.loadRoles();\r\n\r\n if (this.dataService.tmpProfileUserID==\"\"){\r\n this.loadProfile(this.authService.currentUser);\r\n\r\n }else{\r\n this.loadProfile(this.dataService.tmpProfileUserID);\r\n this.dataService.tmpProfileUserID = \"\";\r\n }\r\n\r\n\r\n // console.log(this.myRole);\r\n\r\n\r\n }\r\n\r\n myRole;\r\n @Input() appConfig = new AppConfig();\r\n\r\n\r\n selfProfile : boolean = false;\r\n\r\n profile = new Profile();\r\n roles;\r\n approvalRoles;\r\n employees;\r\n\r\n\r\n loadProfile(userID: string){\r\n\r\n let action = \"all\";\r\n\r\n if (this.appConfig.approvals && this.appConfig.employees){\r\n action = \"set\"\r\n }\r\n\r\n if (this.appConfig.approvals && !this.appConfig.employees){\r\n action = \"setapp\"\r\n }\r\n\r\n if (!this.appConfig.approvals && this.appConfig.employees){\r\n action = \"setemp\"\r\n }\r\n\r\n\r\n this.dataService.GetProfile(action, userID).subscribe(\r\n (apiResponse: ApiResponse) => {\r\n\r\n this.profile = apiResponse.ds.dtProfiles[0];\r\n\r\n if (this.profile.userID.toLocaleLowerCase() == this.authService.currentUser.toLocaleLowerCase()){\r\n this.selfProfile = true\r\n }\r\n\r\n //get more details\r\n this.roles = apiResponse.ds.dtRoles;\r\n this.approvalRoles = apiResponse.ds.dtApprovalRoles;\r\n this.employees = apiResponse.ds.dtEmployees;\r\n\r\n\r\n },\r\n (error) => {\r\n this.isProcessing = false;\r\n this.messageService.toast(this.httpService.Error(error));\r\n }\r\n );\r\n\r\n\r\n\r\n }\r\n\r\n loadRoles(){\r\n\r\n\r\n this.dataService.GetRole(\"all\", \"\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n\r\n this.roles = apiResponse.dt;\r\n },\r\n (error) => {\r\n this.isProcessing = false;\r\n this.messageService.toast(this.httpService.Error(error));\r\n }\r\n );\r\n\r\n\r\n\r\n }\r\n\r\n\r\n\r\n changePassword(){\r\n this.dataService.tmpProfileUserID = this.profile.userID;\r\n this.router.navigate([\"home/user/change-password\"]);\r\n }\r\n\r\n gotoUsers(){\r\n this.router.navigate([\"home/admin/users\"]);\r\n }\r\n\r\n update(){\r\n\r\n }\r\n\r\n updateProfile(){\r\n this.isProcessing = true;\r\n this.dataService.UpdateProfile(this.profile, \"edit\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"Profile Updated\");\r\n\r\n\r\n\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n },\r\n (error) => {\r\n this.messageService.toast(\"Connection failed \");\r\n this.isProcessing = false;\r\n }\r\n );\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n","import { SpaMatModule } from \"./spa-mat.module\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { ChangePasswordComponent } from \"../components/change-password/change-password.component\";\r\nimport { ProfileComponent } from \"../components/profile/profile.component\";\r\n\r\n@NgModule({\r\n declarations: [ChangePasswordComponent, ProfileComponent],\r\n\r\n entryComponents: [],\r\n\r\n imports: [\r\n ReactiveFormsModule.withConfig({ warnOnNgModelWithFormControl: \"never\" }),\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SpaMatModule,\r\n ],\r\n\r\n exports: [\r\n CommonModule,\r\n FormsModule,\r\n SpaMatModule,\r\n ChangePasswordComponent,\r\n ProfileComponent,\r\n ],\r\n})\r\nexport class SpaUserModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DataService } from '../../services/data.service';\r\nimport { MessageService } from '../../services/message.service';\r\nimport { ApiResponse } from 'tin-core';\r\n\r\n@Component({\r\n selector: 'spa-settings',\r\n templateUrl: './settings.component.html',\r\n styleUrls: ['./settings.component.css']\r\n})\r\nexport class SettingsComponent implements OnInit {\r\n\r\n constructor(private dataService: DataService, private messageService: MessageService) { }\r\n\r\n ngOnInit(): void {\r\n this.loadSettings();\r\n }\r\n\r\n _filterText = \"\";\r\n settings;\r\n isProcessing = false;\r\n\r\n applyFilter(filterValue: string) {\r\n this.settings.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n loadSettings(){\r\n this.dataService.GetSetting(\"all\", \"\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.settings = apiResponse.dt;\r\n // this.applyFilter(this._filterText);\r\n }\r\n );\r\n\r\n }\r\n\r\n updateSetting(setting) {\r\n\r\n this.isProcessing = true;\r\n this.dataService.UpdateSetting(setting, \"edit\").subscribe((apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(`Setting ${setting.sName} Updated`);\r\n this.loadSettings();\r\n\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n\r\n });\r\n\r\n };\r\n\r\n addSetting() {\r\n\r\n // const dialogRef = this.dialog.open(addRoleDialog, {\r\n // width: \"1100px\",\r\n // data: \"\",\r\n // });\r\n\r\n // dialogRef.afterClosed().subscribe((result) => {\r\n // if (result == \"success\") {\r\n // this.loadRoles();\r\n // }\r\n // });\r\n this.messageService.toast(\"Feature not Available\");\r\n\r\n }\r\n\r\n}\r\n","import { ApiResponse } from 'tin-core';\r\nimport { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { DataService } from \"../../services/data.service\";\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { AuthService } from '../../services/auth.service';\r\n\r\n@Component({\r\n selector: 'spa-logs',\r\n templateUrl: './logs.component.html',\r\n styleUrls: ['./logs.component.css']\r\n})\r\nexport class LogsComponent implements OnInit {\r\n constructor( private authService: AuthService, private dataService: DataService,) {}\r\n\r\n ngOnInit() {\r\n this.loadLogs();\r\n }\r\n\r\n isProcessing: boolean = false;\r\n @ViewChild(\"logsPaginator\") logsPaginator: MatPaginator;\r\n\r\n _filterText = \"\";\r\n\r\n logs;\r\n\r\n displayedColumns: string[] = [ \"dateLogged\", \"userID\",\"fullName\",\"source\", \"details\"];\r\n\r\n public loadLogs() {\r\n this.dataService.GetLog(\"all\",\"\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.logs = new MatTableDataSource(apiResponse.dt);\r\n this.logs.paginator = this.logsPaginator;\r\n this.applyFilter(this._filterText);\r\n }\r\n );\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.logs.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit, Inject, ViewChild } from \"@angular/core\";\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { DataService } from \"../../services/data.service\";\r\nimport { ApiResponse, Core,HttpService } from \"tin-core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { MessageService } from \"../../services/message.service\";\r\nimport { AuthService } from \"../../services/auth.service\";\r\nimport { AddUserDialog } from './addUserDialog.component';\r\nimport { EditUserDialog } from './editUserDialog.component';\r\nimport { User } from '../../classes/Classes';\r\n\r\n\r\n\r\n@Component({\r\n selector: \"spa-users\",\r\n templateUrl: \"./users.component.html\",\r\n styleUrls: [\"./users.component.css\"],\r\n})\r\nexport class UsersComponent implements OnInit {\r\n constructor(private httpService: HttpService, public router: Router, private authService: AuthService, private dataService: DataService, public dialog: MatDialog, private messageService: MessageService) {}\r\n\r\n ngOnInit() {\r\n\r\n this.UpdateData();\r\n\r\n }\r\n\r\n isProcessing: boolean = false;\r\n @ViewChild(\"usersPaginator\") usersPaginator: MatPaginator;\r\n\r\n _filterText = \"\";\r\n\r\n users;\r\n // public myResponse;\r\n displayedColumns: string[] = [\"userID\", \"fullName\", \"roleName\", \"locked\", \"dateCreated\", \"Action\"];\r\n\r\n public UpdateData() {\r\n this.dataService.GetUser(\"all\",\"\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n //this.myData = apiResponse;\r\n this.users = new MatTableDataSource(apiResponse.dt);\r\n this.users.paginator = this.usersPaginator;\r\n this.applyFilter(this._filterText);\r\n },\r\n (error) => {\r\n this.isProcessing = false;\r\n this.messageService.toast(this.httpService.Error(error));\r\n }\r\n );\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.users.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n createAccount() {\r\n\r\n this.router.navigate([\"home/admin/create-account\"]);\r\n\r\n }\r\n\r\n viewProfile(user: User) {\r\n\r\n this.dataService.tmpProfileUserID = user.userID;\r\n this.router.navigate([\"home/user/profile\"]);\r\n\r\n }\r\n\r\n lock(u: User){\r\n u.locked = \"1\";\r\n this.updateUser(u);\r\n }\r\n\r\n unlock(u: User){\r\n u.locked = \"0\";\r\n u.tries = \"0\";\r\n this.updateUser(u);\r\n }\r\n\r\n enable(u: User){\r\n u.disabled = \"0\";\r\n this.updateUser(u);\r\n }\r\n\r\n disable(u: User){\r\n u.disabled = \"1\";\r\n this.updateUser(u);\r\n }\r\n\r\n recover(u: User){\r\n\r\n\r\n\r\n this.dataService.SelfReset(u).subscribe((apiResponse: ApiResponse) => {\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"The password has been sent on email\");\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n });\r\n\r\n}\r\n\r\n updateUser(user){\r\n this.isProcessing = true;\r\n this.dataService.UpdateUser(user, \"edit\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"User Updated\");\r\n\r\n this.UpdateData();\r\n\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n },\r\n (error) => {\r\n this.messageService.toast(\"Connection failed \");\r\n this.isProcessing = false;\r\n }\r\n );\r\n }\r\n\r\n deleteUser(user: User){\r\n\r\n\r\n this.messageService.confirm(`Delete ${user.userID} ?`).subscribe((result) => {\r\n\r\n if (result == \"yes\"){\r\n\r\n this.isProcessing = true;\r\n this.dataService.UpdateUser(user, \"delete\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"User Deleted\");\r\n\r\n this.UpdateData();\r\n\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n },\r\n (error) => {\r\n this.messageService.toast(\"Connection failed \");\r\n this.isProcessing = false;\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\r\n\r\n","import { Component, OnInit, Inject, ViewChild } from \"@angular/core\";\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { SelectionModel } from \"@angular/cdk/collections\";\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\r\nimport { DataService } from \"../../services/data.service\";\r\nimport { User } from \"../../classes/Classes\";\r\nimport { ApiResponse, Core,HttpService } from \"tin-core\";\r\n// import { AuthService } from \"../../services/auth.service\";\r\nimport { Router } from \"@angular/router\";\r\nimport { MessageService } from \"../../services/message.service\";\r\nimport { AuthService } from \"../../services/auth.service\";\r\n\r\n\r\n@Component({\r\n selector: \"spa-add-user\",\r\n templateUrl: \"./addUserDialog.component.html\",\r\n styleUrls: [\"./users.component.css\"],\r\n})\r\nexport class AddUserDialog implements OnInit {\r\n\r\n public currentCount = 0;\r\n user = new User();\r\n isProcessing: boolean = false;\r\n\r\n constructor(private dataserv: DataService, private messageService: MessageService, private dialogRef: MatDialogRef<AddUserDialog>) {}\r\n\r\n ngOnInit() {\r\n\r\n }\r\n\r\n\r\n\r\n\r\n public Signup() {\r\n\r\n // if (Core.emailIsValid(this.user.email)) {\r\n // this.messageService.toast(\"Invalid Email\");\r\n // return;\r\n // }\r\n\r\n this.user.dateCreated = Core.getFormatedDate(Core.nowDate());\r\n this.user.dateUpdated = Core.getFormatedDate(Core.nowDate());\r\n this.user.dateExpire = Core.getFormatedDate(Core.nowDate());\r\n\r\n this.isProcessing = true;\r\n this.dataserv.UpdateUser(this.user,\"add\").subscribe((apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"User Added\");\r\n\r\n\r\n\r\n this.dialogRef.close(\"success\");\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n });\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","import { Component, OnInit, Inject, ViewChild } from \"@angular/core\";\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { DataService } from \"../../services/data.service\";\r\nimport { User } from \"../../classes/Classes\";\r\nimport { ApiResponse, Core,HttpService } from \"tin-core\";\r\nimport { MessageService } from \"../../services/message.service\";\r\n\r\n\r\n@Component({\r\n selector: \"spa-edit-user\",\r\n templateUrl: \"./editUserDialog.component.html\",\r\n styleUrls: [\"./users.component.css\"],\r\n})\r\nexport class EditUserDialog implements OnInit {\r\n\r\n constructor(private dataserv: DataService, private messageService: MessageService, private dialogRef: MatDialogRef<EditUserDialog>, @Inject(MAT_DIALOG_DATA) public data) {}\r\n\r\n ngOnInit() {\r\n // this.loadDepartments();\r\n // this.loadRoles();\r\n // this.loadLineManagers();\r\n this.user = this.data;\r\n }\r\n\r\n user = new User();\r\n\r\n public myData;\r\n public myResponse;\r\n departments;\r\n lineManagers;\r\n roles;\r\n isProcessing: boolean = false;\r\n\r\n myUser = new User();\r\n\r\n public unlock() {\r\n this.user.locked = \"0\";\r\n }\r\n\r\n public lock() {\r\n this.user.locked = \"1\";\r\n }\r\n\r\n public enable() {\r\n this.user.disabled = \"0\";\r\n }\r\n\r\n public disable() {\r\n this.user.disabled = \"1\";\r\n }\r\n\r\n // loadDepartments() {\r\n // this.dataserv.GetDepartment(\"all\", \"\").subscribe((myApiResponse) => {\r\n // this.departments = myApiResponse;\r\n // });\r\n // }\r\n\r\n // loadLineManagers() {\r\n // this.dataserv.GetLineManagers().subscribe((apiResponse: ApiResponse) => {\r\n // this.lineManagers = apiResponse.dt;\r\n // });\r\n // }\r\n\r\n // loadRoles() {\r\n // this.dataserv.GetRole(\"all\", \"\").subscribe((apiResponse: ApiResponse) => {\r\n // this.roles = apiResponse.dt;\r\n // });\r\n // }\r\n\r\n public Update() {\r\n\r\n this.isProcessing = true;\r\n this.dataserv.UpdateUser(this.user,\"edit\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"User Updated\");\r\n\r\n this.dialogRef.close(\"success\");\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n },\r\n (error) => {\r\n this.messageService.toast(\"Connection failed \");\r\n this.isProcessing = false;\r\n }\r\n );\r\n }\r\n\r\n public DeleteUser() {\r\n\r\n this.isProcessing = true;\r\n this.dataserv.UpdateUser(this.user, \"delete\").subscribe((myData) => {\r\n this.isProcessing = false;\r\n\r\n this.myData = myData;\r\n this.myResponse = this.myData.message;\r\n if (this.myResponse == \"success\") {\r\n this.messageService.toast(this.user.userID + \" Deleted\");\r\n this.dialogRef.close(\"success\");\r\n } else {\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { DataService } from '../../services/data.service';\r\n//import { AuthService } from '../../services/auth.service';\r\nimport { ApiResponse, Core } from 'tin-core';\r\nimport { MessageService } from '../../services/message.service';\r\nimport { AuthService } from '../../services/auth.service';\r\n\r\n@Component({\r\n selector: 'app-viewRole',\r\n templateUrl: './viewRoleDialog.component.html',\r\n styleUrls: ['./roles.component.css']\r\n})\r\nexport class viewRoleDialog implements OnInit {\r\n\r\n constructor(private messageService: MessageService, private dataserv: DataService, private authserv: AuthService, private dialogRef: MatDialogRef<viewRoleDialog>, @Inject(MAT_DIALOG_DATA) public data) { }\r\n\r\n ngOnInit() {\r\n\r\n\r\n\r\n }\r\n\r\n\r\n\r\n submit() {\r\n\r\n\r\n\r\n };\r\n};\r\n\r\n\r\n\r\n","import { MessageService } from '../../services/message.service';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { DataService } from '../../services/data.service';\r\n// import { AuthService } from '../../services/auth.service';\r\nimport { ApiResponse, Core } from 'tin-core';\r\nimport { Role } from '../../classes/Classes';\r\n\r\n@Component({\r\n selector: 'app-addRole',\r\n templateUrl: './addRoleDialog.component.html',\r\n styleUrls: ['./roles.component.css']\r\n})\r\nexport class addRoleDialog implements OnInit {\r\n\r\n constructor(private messageService: MessageService, private dataService: DataService, private authService: AuthService, private dialogRef: MatDialogRef<addRoleDialog>, @Inject(MAT_DIALOG_DATA) public data) { }\r\n ngOnInit() {\r\n this.capItems = this.data;\r\n }\r\n\r\n capItems;\r\n\r\n isProcessing: boolean;\r\n role = new Role();\r\n\r\n submit() {\r\n\r\n if (this.role.roleName == \"New Role\" || this.role.roleName == \"\"){\r\n this.messageService.toast(\"Please enter Role Name\");\r\n return;\r\n }\r\n\r\n\r\n this.isProcessing = true;\r\n this.dataService.UpdateRole(this.role, \"add\").subscribe((apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"Role Added\");\r\n this.dialogRef.close(\"success\");\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n\r\n\r\n }, error => {\r\n this.messageService.toast(\"Connection failed\");\r\n this.isProcessing = false;\r\n });\r\n\r\n };\r\n};\r\n\r\n\r\n\r\n","import { MessageService } from '../../services/message.service';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { DataService } from '../../services/data.service';\r\n// import { AuthService } from '../../services/auth.service';\r\nimport { ApiResponse, Core } from 'tin-core';\r\nimport { Role } from '../../classes/Classes';\r\n\r\n@Component({\r\n selector: 'app-editRole',\r\n templateUrl: './editRoleDialog.component.html',\r\n styleUrls: ['./roles.component.css']\r\n})\r\nexport class editRoleDialog implements OnInit {\r\n\r\n constructor(private messageService: MessageService, private dataserv: DataService, private authserv: AuthService, private dialogRef: MatDialogRef<editRoleDialog>, @Inject(MAT_DIALOG_DATA) public data) { }\r\n\r\n ngOnInit() {\r\n this.role = this.data;\r\n this.isLoadComplete = true;\r\n }\r\n\r\n role = new Role;\r\n isLoadComplete: boolean = false;\r\n isProcessing: boolean;\r\n\r\n\r\n submit() {\r\n\r\n this.isProcessing = true;\r\n this.dataserv.UpdateRole(this.role, \"edit\").subscribe((apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"Role Updated\");\r\n this.dialogRef.close(\"success\");\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n\r\n }, error => {\r\n this.messageService.toast(\"Connection failed \");\r\n this.isProcessing = false;\r\n });\r\n\r\n };\r\n};\r\n\r\n\r\n\r\n","import { AppConfig } from './../../classes/Classes';\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { DataService } from \"../../services/data.service\";\r\n// import { AuthService } from \"../../services/auth.service\";\r\nimport { ApiResponse, Core, HttpService } from \"tin-core\";\r\nimport { Role, CapItem } from \"../../classes/Classes\";\r\nimport { viewRoleDialog } from \"./viewRoleDialog.component\";\r\nimport { addRoleDialog } from \"./addRoleDialog.component\";\r\nimport { editRoleDialog } from \"./editRoleDialog.component\";\r\nimport { Router } from \"@angular/router\";\r\nimport { MessageService } from '../../services/message.service';\r\nimport { AuthService } from '../../services/auth.service';\r\n\r\n\r\n@Component({\r\n selector: \"spa-roles\",\r\n templateUrl: \"./roles.component.html\",\r\n styleUrls: [\"./roles.component.css\"],\r\n})\r\nexport class RolesComponent implements OnInit {\r\n constructor(private httpService: HttpService, private router: Router, private authService: AuthService, private dataService: DataService, public dialog: MatDialog, private messageService: MessageService) {}\r\n\r\n ngOnInit() {\r\n\r\n this.loadRoles();\r\n\r\n }\r\n\r\n isProcessing = false;\r\n // myRole: Rolev2;\r\n roles: Role[];\r\n\r\n\r\n\r\n @Input() appConfig = new AppConfig();\r\n\r\n\r\n // _filterText = \"\";\r\n // applyFilter(filterValue: string) {\r\n // this.roles.filter = filterValue.trim().toLowerCase();\r\n // }\r\n\r\n\r\n loadRoles() {\r\n this.dataService.GetRole(\"all\", \"\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.roles = apiResponse.dt;\r\n },\r\n (error) => {\r\n this.isProcessing = false;\r\n this.messageService.toast(this.httpService.Error(error));\r\n }\r\n );\r\n }\r\n\r\n refresh() {\r\n this.loadRoles();\r\n }\r\n\r\n addRole() {\r\n const dialogRef = this.dialog.open(addRoleDialog, {\r\n width: \"1100px\",\r\n data: this.appConfig.capItems,\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result == \"success\") {\r\n this.loadRoles();\r\n }\r\n });\r\n }\r\n\r\n viewRole(role: Role) {\r\n const dialogRef = this.dialog.open(viewRoleDialog, {\r\n width: \"1100px\",\r\n data: role,\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result == \"success\") {\r\n this.loadRoles();\r\n }\r\n });\r\n }\r\n\r\n editRole(role: Role) {\r\n const dialogRef = this.dialog.open(editRoleDialog, {\r\n width: \"1100px\",\r\n data: role,\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result == \"success\") {\r\n this.loadRoles();\r\n }\r\n });\r\n }\r\n\r\n updateRole(role: Role) {\r\n\r\n this.messageService.confirm(`UPDATE ${role.roleName} ?`).subscribe((result) => {\r\n\r\n if (result == \"yes\"){\r\n\r\n this.dataService\r\n .UpdateRole(role, \"edit\")\r\n .subscribe((apiResponse: ApiResponse) => {\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"Role Updated\");\r\n this.loadRoles();\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n });\r\n\r\n }\r\n\r\n })\r\n\r\n\r\n };\r\n\r\n deleteRole(role: Role) {\r\n\r\n this.messageService.confirm(`DELETE ${role.roleName} ?`).subscribe((result) => {\r\n\r\n if (result == \"yes\"){\r\n\r\n this.dataService\r\n .UpdateRole(role, \"delete\")\r\n .subscribe((apiResponse: ApiResponse) => {\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"Role Deleted\");\r\n this.loadRoles();\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n });\r\n\r\n }\r\n\r\n })\r\n\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'spa-profiles',\r\n templateUrl: './profiles.component.html',\r\n styleUrls: ['./profiles.component.css']\r\n})\r\nexport class ProfilesComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { DataService } from './../../services/data.service';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { ApiResponse, HttpService } from 'tin-core';\r\nimport { MessageService } from '../../services/message.service';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { User, Profile, Account, AppConfig } from '../../classes/Classes';\r\nimport { Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'spa-create-account',\r\n templateUrl: './create-account.component.html',\r\n styleUrls: ['./create-account.component.css']\r\n})\r\nexport class CreateAccountComponent implements OnInit {\r\n\r\n constructor(private httpService: HttpService, private messageService: MessageService, private dataService: DataService, private authService: AuthService,public router: Router) { }\r\n\r\n ngOnInit() {\r\n\r\n\r\n }\r\n\r\n @Input() appConfig = new AppConfig();\r\n\r\n isProcessing: boolean = false;\r\n user = new User();\r\n profile = new Profile();\r\n\r\n account = new Account();\r\n\r\n confirmPassword: string;\r\n\r\n openProfile: boolean = true;\r\n\r\n\r\ncreate(){\r\n\r\n if(this.user.authType == \"\"){\r\n this.messageService.toast(\"Choose Authentication Type\");\r\n return;\r\n }\r\n\r\n this.account.user = this.user;\r\n this.account.profile = this.profile;\r\n\r\n this.profile.userID = this.user.userID;\r\n\r\n this.isProcessing = true;\r\n this.dataService.UpdateAccount(this.account,\"add\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"Account Created\");\r\n\r\n if (this.openProfile){\r\n this.viewProfile(this.user);\r\n }else{\r\n this.user = new User();\r\n this.profile = new Profile();\r\n this.confirmPassword = \"\";\r\n }\r\n\r\n\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n },\r\n (error) => {\r\n this.isProcessing = false;\r\n this.messageService.toast(this.httpService.Error(error));\r\n }\r\n );\r\n}\r\n\r\nviewProfile(user: User) {\r\n\r\n this.dataService.tmpProfileUserID = user.userID;\r\n this.router.navigate([\"home/user/profile\"]);\r\n\r\n}\r\n\r\n\r\n\r\n}\r\n","import { SettingsComponent } from '../components/settings/settings.component';\r\nimport { LogsComponent } from '../components/logs/logs.component';\r\nimport { SpaMatModule } from \"./spa-mat.module\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { UsersComponent } from \"../components/users/users.component\";\r\nimport { AddUserDialog } from \"../components/users/addUserDialog.component\";\r\nimport { EditUserDialog } from \"../components/users/editUserDialog.component\";\r\nimport { RolesComponent } from \"../components/roles/roles.component\";\r\nimport { addRoleDialog } from \"../components/roles/addRoleDialog.component\";\r\nimport { editRoleDialog } from \"../components/roles/editRoleDialog.component\";\r\nimport { ProfilesComponent } from \"../components/profiles/profiles.component\";\r\nimport { CreateAccountComponent } from \"../components/create-account/create-account.component\";\r\nimport { viewRoleDialog } from \"../components/roles/viewRoleDialog.component\";\r\n\r\n@NgModule({\r\n declarations: [\r\n UsersComponent,\r\n AddUserDialog,\r\n EditUserDialog,\r\n RolesComponent,\r\n addRoleDialog,\r\n editRoleDialog,\r\n viewRoleDialog,\r\n ProfilesComponent,\r\n CreateAccountComponent,\r\n LogsComponent,\r\n SettingsComponent\r\n ],\r\n\r\n entryComponents: [\r\n AddUserDialog,\r\n EditUserDialog,\r\n addRoleDialog,\r\n editRoleDialog,\r\n viewRoleDialog,\r\n ],\r\n\r\n imports: [\r\n ReactiveFormsModule.withConfig({ warnOnNgModelWithFormControl: \"never\" }),\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SpaMatModule,\r\n ],\r\n\r\n exports: [\r\n CommonModule,\r\n FormsModule,\r\n SpaMatModule,\r\n UsersComponent,\r\n AddUserDialog,\r\n EditUserDialog,\r\n RolesComponent,\r\n addRoleDialog,\r\n editRoleDialog,\r\n viewRoleDialog,\r\n ProfilesComponent,\r\n CreateAccountComponent,\r\n LogsComponent,\r\n SettingsComponent\r\n ],\r\n})\r\nexport class SpaAdminModule {}\r\n","/*\r\n * Public API Surface of tin-spa\r\n */\r\n\r\n\r\n//Services\r\nexport * from './lib/services/tin-spa.service';\r\nexport * from './lib/services/storage.service';\r\nexport * from './lib/services/message.service';\r\nexport * from './lib/services/export.service';\r\nexport * from './lib/services/auth.service';\r\nexport * from './lib/services/data.service';\r\nexport * from './lib/services/log.service';\r\n\r\n\r\n//classes\r\nexport * from './lib/classes/Classes';\r\n\r\n//modules\r\nexport * from './lib/tin-spa.module';\r\nexport * from './lib/modules/spa-mat.module'\r\nexport * from './lib/modules/spa-index.module'\r\nexport * from './lib/modules/spa-user.module'\r\nexport * from './lib/modules/spa-admin.module'\r\n\r\n\r\n//components\r\nexport * from './lib/components/tin-spa.component';\r\nexport * from './lib/components/table/table.component';\r\nexport * from './lib/components/tiles/tiles.component';\r\nexport * from './lib/components/date/date.component';\r\n\r\nexport * from './lib/components/text/text.component';\r\nexport * from './lib/components/label/label.component';\r\nexport * from './lib/components/datetime/datetime.component';\r\nexport * from './lib/components/select/select.component';\r\nexport * from './lib/components/attach/attach.component';\r\nexport * from './lib/components/check/check.component';\r\nexport * from './lib/components/viewer/viewer.component';\r\nexport * from './lib/components/money/money.component';\r\nexport * from './lib/components/chips/chips.component';\r\nexport * from './lib/components/activity/activity.component';\r\nexport * from './lib/components/html/html.component';\r\nexport * from './lib/components/option/option.component';\r\nexport * from './lib/components/steps/steps.component';\r\n\r\nexport * from './lib/components/message/messageDialog.component';\r\nexport * from './lib/components/loader/loader.component';\r\nexport * from './lib/components/users/users.component';\r\nexport * from './lib/components/users/addUserDialog.component';\r\nexport * from './lib/components/users/editUserDialog.component';\r\nexport * from './lib/components/login/login.component';\r\nexport * from './lib/components/nav-menu/nav-menu.component';\r\nexport * from './lib/components/roles/roles.component';\r\nexport * from './lib/components/roles/addRoleDialog.component';\r\nexport * from './lib/components/roles/editRoleDialog.component';\r\nexport * from './lib/components/roles/viewRoleDialog.component';\r\nexport * from './lib/components/signup/signup.component';\r\nexport * from './lib/components/change-password/change-password.component';\r\nexport * from './lib/components/profile/profile.component';\r\nexport * from './lib/components/profiles/profiles.component';\r\nexport * from './lib/components/recover-account/recover-account.component';\r\nexport * from './lib/components/create-account/create-account.component';\r\nexport * from './lib/components/timeout/timeout.component'\r\nexport * from './lib/components/logs/logs.component';\r\nexport * from './lib/components/settings/settings.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {viewerDialog as ɵc} from './lib/components/viewer/viewerDialog.component';\nexport {DndDirective as ɵa} from './lib/dnd.directive';\nexport {LoaderInterceptor as ɵd} from './lib/services/loader-interceptor.service';\nexport {LoaderService as ɵb} from './lib/services/loader.service';"],"names":["XLSX.utils","XLSX.write","FileSaver.saveAs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAKa,aAAa,GAA1B,MAAa,aAAa;IAExB,iBAAiB;EAClB;;AAHY,aAAa;IAHzB,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,aAAa,CAGzB;;ICHY,cAAc,GAA3B,MAAa,cAAc;IAEzB,iBAAiB;;IAGX,KAAK,CAAC,UAAkB,EAAE,KAAU;;YACxC,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;;YAE3D,MAAM,YAAY,CAAC,OAAO,CAAE,UAAU,EAAE,cAAc,CAAE,CAAC;SAC1D;KAAA;;IAGK,GAAG,CAAC,UAAkB;;YAC1B,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,OAAO,CAAE,UAAU,CAAE,CAAC;YACrD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;SAExC;KAAA;;IAGK,iBAAiB,CAAC,UAAkB;;YACxC,MAAM,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;SAC3C;KAAA;;IAGK,KAAK;;YACT,MAAM,YAAY,CAAC,KAAK,EAAE,CAAC;SAC5B;KAAA;EAEF;;AA5BY,cAAc;IAH1B,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,cAAc,CA4B1B;;ICvBY,aAAa,GAA1B,MAAa,aAAa;IAExB,YAAoB,SAAsC,EAAkC,IAAI;QAA5E,cAAS,GAAT,SAAS,CAA6B;QAAkC,SAAI,GAAJ,IAAI,CAAA;KAAK;IAGrG,QAAQ;QAEN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;QACjC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACzC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;KAE1C;IAMD,QAAQ,CAAC,IAAY;QAEnB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAE5B;EAEF;;YArBgC,YAAY;4CAAkB,MAAM,SAAC,eAAe;;AAFxE,aAAa;IALzB,SAAS,CAAC;QACT,QAAQ,EAAE,iBAAiB;QAC3B,0wCAA6C;KAC9C,CAAC;IAI6D,WAAA,MAAM,CAAC,eAAe,CAAC,CAAA;GAFzE,aAAa,CAuBzB;AAAA;;ICvBY,cAAc,GAA3B,MAAa,cAAc;IACzB,YAAoB,QAAqB,EAAS,MAAiB;QAA/C,aAAQ,GAAR,QAAQ,CAAa;QAAS,WAAM,GAAN,MAAM,CAAW;KAAI;IAEhE,KAAK,CAAC,GAAW;QACtB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;KACnD;IAEM,IAAI,CAAC,OAAe,EAAE,OAAe;QAE1C,IAAI,IAAI,GAAG,MAAM,CAAC;QAElB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE;YAChD,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;SAChC,CAAC,CAAC;KAEJ;IAEM,KAAK,CAAE,OAAe;QAE3B,IAAI,IAAI,GAAG,OAAO,CAAC;QACnB,IAAI,OAAW,CAAC;QAEhB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE;YAChD,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;SAChC,CAAC,CAAC;KAEJ;IAEM,OAAO,CAAC,GAAW;QAEvB,IAAI,IAAI,GAAG,SAAS,CAAC;QACrB,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,OAAO,GAAG,GAAG,CAAA;QAElB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE;YAChD,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE;SAChC,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM;YAEhD,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;SAEnB,CAEF,CAAC,CAAC;KAEJ;EAGF;;YAnD+B,WAAW;YAAiB,SAAS;;;AADxD,cAAc;IAH1B,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,cAAc,CAoD1B;;ICvDY,aAAa,GAA1B,MAAa,aAAa;IAExB;QAEA,aAAQ,GAAG,iFAAiF,CAAC;QAC7F,kBAAa,GAAG,OAAO,CAAC;KAHP;IAKV,WAAW,CAAC,QAAe,EAAE,QAAgB;QAElD,MAAM,EAAE,GAAmBA,KAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC9D,MAAM,EAAE,GAAkB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,MAAM,WAAW,GAAQC,KAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;KAC3C;IAEO,aAAa,CAAC,MAAW,EAAE,QAAgB;QACjD,MAAM,IAAI,GAAS,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,EAAE,EAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAC,CAAC,CAAC;QAC7DC,MAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;KACvD;EACF;;AAnBY,aAAa;IAHzB,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,aAAa,CAmBzB;;ICrBW;AAAZ,WAAY,QAAQ;IAClB,qCAAO,CAAA;IACP,yCAAS,CAAA;IACT,uCAAQ,CAAA;IACR,uCAAQ,CAAA;IACR,yCAAS,CAAA;IACT,yCAAS,CAAA;IACT,qCAAO,CAAA;AACT,CAAC,EARW,QAAQ,KAAR,QAAQ,QAQnB;MAGY,IAAI;CAQhB;MAEY,IAAI;CAGhB;MAEY,WAAW;IAAxB;QAEE,iBAAY,GAAY,KAAK,CAAC;QAC9B,WAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAK3B,YAAO,GAAG,IAAI,SAAS,EAAE,CAAC;KAE3B;CAAA;MAEY,WAAW;CAGvB;MAEY,WAAW;IAEtB;QACE,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;QACrB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QACxB,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,MAAM,CAAA;KAEnC;CAOF;IAEW;AAAZ,WAAY,eAAe;IACzB,yDAAM,CAAA;IAAE,qDAAI,CAAA;IAAE,6DAAQ,CAAA;IAAE,uDAAK,CAAA;IAAE,qDAAI,CAAA;IAAE,6DAAQ,CAAA;IAAE,qDAAI,CAAA;AACrD,CAAC,EAFW,eAAe,KAAf,eAAe,QAE1B;MAIY,SAAS;IACpB;QACE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;KACjB;CAIF;IAEW;AAAZ,WAAY,QAAQ;IACpB,yCAAK,CAAA;IAAE,uCAAI,CAAA;IAAE,6CAAO,CAAA;IAAE,+CAAQ,CAAA;AAC9B,CAAC,EAFW,QAAQ,KAAR,QAAQ,QAEnB;MAIY,KAAM,SAAQ,SAAS;CAEnC;MAEY,IAAK,SAAQ,SAAS;CAIlC;MAIY,WAAW;CAWvB;MAIY,cAAc;CAG1B;MAIY,WAAW;IAEtB;QACE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;CAOF;MAGc,SAAS;IACpB;QACE,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACxB;CAQF;MAEY,OAAO;IAElB;QACE,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC;QAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,IAAI,GAAE,EAAE,CAAC;QACd,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAE,IAAI,CAAC;QACpB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;KAE7B;CAgBF;MAGa,IAAI;IAEhB;QACA,IAAI,CAAC,MAAM,GAAI,EAAE,CAAE;QACnB,IAAI,CAAC,QAAQ,GAAI,UAAU,CAAE;QAC7B,IAAI,CAAC,IAAI,GAAI,KAAK,CAAE;QACpB,IAAI,CAAC,IAAI,GAAI,KAAK,CAAE;QACpB,IAAI,CAAC,IAAI,GAAI,KAAK,CAAE;QACpB,IAAI,CAAC,IAAI,GAAI,KAAK,CAAE;QACpB,IAAI,CAAC,IAAI,GAAI,KAAK,CAAE;QACpB,IAAI,CAAC,IAAI,GAAI,KAAK,CAAE;QACpB,IAAI,CAAC,IAAI,GAAI,KAAK,CAAE;QACpB,IAAI,CAAC,IAAI,GAAI,KAAK,CAAE;QACpB,IAAI,CAAC,IAAI,GAAI,KAAK,CAAE;QACpB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,KAAK,CAAE;QACrB,IAAI,CAAC,MAAM,GAAI,KAAK,CAAE;KACrB;CAwGA;MAEQ,OAAO;CAGnB;MAGY,IAAI;IAEf;QAEE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;QAClB,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;QACpB,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,UAAU,GAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KAEpB;CAgBF;MAEY,kBAAkB;IAE7B;QACE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;KAC3B;CAKF;MAEa,OAAO;IAEnB;QACA,IAAI,CAAC,SAAS,GAAI,EAAE,CAAE;QACtB,IAAI,CAAC,MAAM,GAAI,EAAE,CAAE;QACnB,IAAI,CAAC,MAAM,GAAI,GAAG,CAAE;QACpB,IAAI,CAAC,SAAS,GAAI,EAAE,CAAE;QACtB,IAAI,CAAC,QAAQ,GAAI,EAAE,CAAE;QACrB,IAAI,CAAC,KAAK,GAAI,EAAE,CAAE;QAClB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;QAChB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KAClB;;;IC3cU,UAAU,GAAvB,MAAa,UAAU;IACrB;QAEA,UAAK,GAAa,QAAQ,CAAC,GAAG,CAAC;QAE/B,iBAAY,GAAY,IAAI,CAAC;QAE7B,aAAQ,GAAY,KAAK,CAAC;KANV;IAQhB,KAAK,CAAC,GAAW,EAAE,GAAG,cAAqB;QACzC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;KACtD;IAED,IAAI,CAAC,GAAW,EAAE,GAAG,cAAqB;QACxC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;KACrD;IAED,IAAI,CAAC,GAAW,EAAE,GAAG,cAAqB;QACxC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;KACrD;IAED,KAAK,CAAC,GAAW,EAAE,GAAG,cAAqB;QACzC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;KACtD;IAED,KAAK,CAAC,GAAW,EAAE,GAAG,cAAqB;QACzC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;KACtD;IAED,GAAG,CAAC,GAAW,EAAE,GAAG,cAAqB;QACvC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;KAEpD;IAEO,UAAU,CAAC,GAAW,EAAE,KAAe,EAAE,MAAa;QAE5D,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;;YAGzB,IAAI,KAAK,GAAW,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,EAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,EAAC,GAAG,CAAC,CAAC;;YAExE,KAAK,IAAI,cAAc,GAAG,GAAG,CAAC;YAG9B,IAAI,MAAM,CAAC,MAAM,EAAE;gBACjB,KAAK,IAAI,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;aACxD;;YAGD,IAAI,IAAI,CAAC,YAAY,EAAC;gBACpB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;aACpB;YAED,IAAI,IAAI,CAAC,QAAQ,EAAC;;aAEjB;SAEF;KACF;IAEO,YAAY,CAAC,MAAa;QAEhC,IAAI,GAAG,GAAW,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;QAEnC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,QAAQ,CAAC,EAAE;YAC5C,GAAG,GAAG,EAAE,CAAC;;YAET,KAAK,IAAI,IAAI,IAAI,MAAM,EAAE;gBACvB,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;aACnC;SACF;QACD,OAAO,GAAG,CAAC;KACZ;IAEO,SAAS,CAAC,KAAe;QAE/B,IAAI,GAAG,GAAY,KAAK,CAAC;QAEzB,IACE,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,QAAQ,CAAC,GAAG;YAC9C,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,GAAG,EAC3B;YACA,GAAG,GAAG,IAAI,CAAC;SACZ;QAED,OAAO,GAAG,CAAC;KACZ;EACF;;AAvFY,UAAU;IAHtB,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,UAAU,CAuFtB;;ACnFD;IASa,WAAW,GAAxB,MAAa,WAAW;IACtB,YAAoB,OAAuB,EAAS,MAAc,EAAU,WAAwB,EAAU,cAA8B,EAAU,UAAsB;QAAxJ,YAAO,GAAP,OAAO,CAAgB;QAAS,WAAM,GAAN,MAAM,CAAQ;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAAU,eAAU,GAAV,UAAU,CAAY;;QAIpK,aAAQ,GAAY,KAAK,CAAC;QAC1B,mBAAc,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrD,mBAAc,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;;QAOnD,UAAK,GAAW,EAAE,CAAC;QACpB,gBAAW,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9C,gBAAW,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC;;QAO3C,gBAAW,GAAW,EAAE,CAAC;QAC1B,sBAAiB,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1D,sBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;;QAO5D,gBAAW,GAAW,UAAU,CAAC;QAChC,sBAAiB,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC3D,sBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;;QAOzD,kBAAa,GAAY,KAAK,CAAC;QAC/B,wBAAmB,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC/D,wBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC;;QAM7D,gBAAW,GAAG,IAAI,IAAI,CAAC;QACxB,sBAAiB,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1D,iBAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;;QAMpD,qBAAgB,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;QACpD,uBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;KAzD+G;IAOhL,cAAc,CAAC,QAAiB;QAC9B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;KAC1B;IAMD,WAAW,CAAC,QAAgB;QAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAEjC;IAMC,iBAAiB,CAAC,cAAsB;QACtC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KAE7C;IAMH,iBAAiB,CAAC,OAAe;QAC/B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;KAChD;IAMD,mBAAmB,CAAC,OAAgB;QAClC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACxC;IAMD,UAAU,CAAC,IAAI;QACb,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACnC;IAKD,wBAAwB,CAAC,QAAgB;QACvC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACtC;;IAID,YAAY,CAAC,OAAe;QAI1B,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;;YAE1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC/B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC;YAEtD,OAAO,KAAK,CAAC;SACd;aAAI;YACH,OAAO,IAAI,CAAC;SACb;KAEF;IAED,YAAY;QAGV,IAAI,WAAW,GAAS,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC/D,IAAI,OAAO,GAAS,IAAI,IAAI,EAAE,CAAC;QAG/B,IAAI,KAAK,GAAY,WAAW,GAAG,OAAO,CAAC;QAE3C,IAAI,CAAC,KAAK,EAAC;YAET,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAChC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;SAC9C;QAED,OAAO,KAAK,CAAA;KAEb;IAED,WAAW;QAGT,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;;YAExC,OAAO,IAAI,CAAC;SACb;QAED,IAAI,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE;;YAGtD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAChC,OAAO,KAAK,CAAC;SAEd;aAAM;;YAGL,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAE1B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAS;gBACnD,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;;aAE9B,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,IAAS;gBACnD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC;;aAErC,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI;gBAC/C,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE3B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;;aAEtB,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAS;gBACpD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;;aAExB,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,IAAS;gBAC3D,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;aACrB,CAAC,CAAC;YAGH,OAAO,IAAI,CAAC;SACb;KACF;EACF;;YAtJ8B,cAAc;YAAiB,MAAM;YAAuB,WAAW;YAA0B,cAAc;YAAsB,UAAU;;;AADjK,WAAW;IAJvB,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GAEW,WAAW,CAuJvB;;ICpKY,WAAW,GAAxB,MAAa,WAAW;IAEtB,YAAoB,WAAwB;;;QAAxB,gBAAW,GAAX,WAAW,CAAa;QAS5C,aAAQ,GAAG,IAAI,OAAO,CAAC;;QAIhB,qBAAgB,GAAG,EAAE,CAAC;QAT3B,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,kBAAkB,CAAC;KACzC;;IAUM,OAAO,CAAC,EAAU,EAAE,GAAW;QACpC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,mBAAmB,GAAG,EAAE,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC;KACvE;IAEM,UAAU,CAAC,IAAI,EAAE,MAAc;QACpC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,0BAA0B,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC;KACzE;IAEM,KAAK,CAAC,CAAO;QAClB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;KAChD;IAEM,cAAc,CAAC,CAAC;QACrB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;KACzD;IAEM,mBAAmB,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;KAC9D;IAEM,SAAS,CAAC,CAAO;QACtB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;KAEpD;;IAKM,UAAU,CAAC,IAAI,EAAE,MAAc;QACpC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,0BAA0B,GAAG,MAAM,EAAE,IAAI,CAAC,CAAC;KACzE;IAEM,OAAO,CAAC,EAAU,EAAE,GAAW;QACpC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,mBAAmB,GAAG,EAAE,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC;KACvE;;IAIM,aAAa,CAAC,OAAO,EAAE,MAAc;QAC1C,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,6BAA6B,GAAG,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/E;;IAIM,UAAU,CAAC,EAAU,EAAE,GAAW;QACvC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,sBAAsB,GAAG,EAAE,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC;KAC1E;IAEM,aAAa,CAAC,OAAO,EAAE,MAAc;QAC1C,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,6BAA6B,GAAG,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/E;;IAGM,MAAM,CAAC,EAAU,EAAE,GAAW;QACnC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,kBAAkB,GAAG,EAAE,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC;KACtE;;IAGO,UAAU,CAAC,EAAU,EAAE,GAAW;QACxC,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,sBAAsB,GAAG,EAAE,GAAG,OAAO,GAAG,GAAG,CAAC,CAAC;KAC1E;IAEM,aAAa,CAAC,OAAO,EAAE,MAAc;QAC1C,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,6BAA6B,GAAG,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/E;EAEF;;YAnFkC,WAAW;;;AAFjC,WAAW;IAHvB,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,WAAW,CAqFvB;;ICvFY,aAAa,GAA1B,MAAa,aAAa;IAGxB;QADO,cAAS,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;KAC7B;EAClB;;AAJY,aAAa;IAHzB,UAAU,CAAC;QACV,UAAU,EAAE,MAAM;KACnB,CAAC;GACW,aAAa,CAIzB;;ICFY,eAAe,GAA5B,MAAa,eAAe;IAE1B,YAAoB,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QAWvC,SAAI,GAAG,EAAE,CAAC;QATjB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;;YAEvC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;SAClB,CAAC,CAAC;KAEJ;IACD,QAAQ;KACP;EAKF;;YAdoC,aAAa;;AAWvC;IAAR,KAAK,EAAE;6CAAW;AAbR,eAAe;IAL3B,SAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,66BAAsC;;KAEvC,CAAC;GACW,eAAe,CAgB3B;;WCoBoD,EAAE,YAAY,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI;IAI/E,YAAY,GAAzB,MAAa,YAAY;EAAI;AAAhB,YAAY;IAnBxB,QAAQ,CAAC;QACR,YAAY,EAAE,EAAE;QAChB,OAAO,EAAE,EAGR;QACD,OAAO,EAAE;YACP,YAAY,EAAC,WAAW,EAAE,mBAAmB;YAC7C,aAAa,EAAK,eAAe,EAAK,cAAc,EAAK,kBAAkB;YAC3E,iBAAiB,EAAK,cAAc,EAAK,eAAe,EAAK,aAAa,EAAK,eAAe,EAAK,iBAAiB;YACpH,aAAa,EAAK,kBAAkB,EAAK,cAAc,EAAK,aAAa,EAAK,cAAc,EAAK,eAAe;YAChH,mBAAmB,EAAK,wBAAwB,EAAK,aAAa,EAAK,qBAAqB,EAAK,gBAAgB,EAAK,aAAa;YACnI,mBAAmB,EAAK,gBAAgB,EAAK,cAAc;SAC5D;QACD,SAAS,EAAC;YACR,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,IAA2C,EAAG;YAC7F,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,OAAO,EAAE;SAChD;KACF,CAAC;GACW,YAAY,CAAI;;ICtChB,iBAAiB,GAA9B,MAAa,iBAAiB;IAG5B,YAAoB,aAA4B,EAAU,cAA8B,EAAU,WAAwB,EAAU,MAAc,EAAU,UAAsB;QAA9J,kBAAa,GAAb,aAAa,CAAe;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAU,WAAM,GAAN,MAAM,CAAQ;QAAU,eAAU,GAAV,UAAU,CAAY;QAF1K,aAAQ,GAAuB,EAAE,CAAC;KAE6I;IAGvL,aAAa,CAAC,GAAqB;QACjC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,EAAE;YACV,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC5B;QACD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;KAC7D;IAED,SAAS,CAAC,OAAyB,EAAE,IAAiB;QAGpD,IAAI,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC;YAC/B,UAAU,EAAE;gBACV,aAAa,EAAE,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC;;aAExG;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEjC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAC;YAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kCAAkC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;SAChF;;QAKD,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAExC,OAAO,UAAU,CAAC,MAAM,CAAC,QAAQ;YAE/B,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;iBAC3C,SAAS,CACR,KAAK;gBACH,IAAI,KAAK,YAAY,YAAY,EAAE;oBACjC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;oBACjC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBACtB;aACF,EACD,CAAC,GAAsB;gBAErB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,UAAU,CAAC,CAAA;gBAErD,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;gBACjC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAEpB,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE;;oBAEtB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;iBACjC;aAEF,EACD;gBACE,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;gBACjC,QAAQ,CAAC,QAAQ,EAAE,CAAC;aACrB,CAAC,CAAC;;YAIP,OAAO;gBACL,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;gBACjC,YAAY,CAAC,WAAW,EAAE,CAAC;aAC5B,CAAC;SAEH,CAAC,CAAC;KACJ;EACF;;YArEoC,aAAa;YAA0B,cAAc;YAAuB,WAAW;YAAkB,MAAM;YAAsB,UAAU;;AAHvK,iBAAiB;IAD7B,UAAU,EAAE;GACA,iBAAiB,CAwE7B;;ICvEY,eAAe,GAA5B,MAAa,eAAe;IAE1B,iBAAiB;IAEjB,QAAQ;KACP;EAEF;AAPY,eAAe;IAT3B,SAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,QAAQ,EAAE;;;;GAIT;KAEF,CAAC;GACW,eAAe,CAO3B;;ICPY,gBAAgB,GAA7B,MAAa,gBAAgB;IAE3B,YAAmB,MAAc,EAAS,WAAwB;QAA/C,WAAM,GAAN,MAAM,CAAQ;QAAS,gBAAW,GAAX,WAAW,CAAa;QAalE,eAAU,GAAG,KAAK,CAAC;QAEV,cAAS,GAAG,IAAI,SAAS,EAAE,CAAC;KAfkC;IAEvE,QAAQ;QAEN,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAAA;QACrF,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC;QAClE,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAA;KAEtE;IAWD,QAAQ;QACN,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KACzB;IAED,MAAM;QACJ,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;KACpC;;;;;;;IASD,UAAU,CAAC,IAAY;QAErB,IAAI,IAAI,IAAE,EAAE,EAAC;YACX,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;SAC9B;KAEF;EAMF;;YA9C4B,MAAM;YAAsB,WAAW;;AAezD;IAAR,KAAK,EAAE;mDAA6B;AAjB1B,gBAAgB;IAL5B,SAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,07FAAwC;;KAEzC,CAAC;GACW,gBAAgB,CAgD5B;;IC/CY,gBAAgB,GAA7B,MAAa,gBAAgB;IAE3B,YAAoB,IAAU,EAAU,SAAoB,EAAU,WAAwB,EAAU,MAAc;QAAlG,SAAI,GAAJ,IAAI,CAAM;QAAU,cAAS,GAAT,SAAS,CAAW;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAU,WAAM,GAAN,MAAM,CAAQ;QA4DtH,aAAQ,GAAG,KAAK,CAAC;QACjB,cAAS,GAAG,cAAc,CAAC;QAC3B,aAAQ,GAAG,KAAK,CAAC;QACjB,aAAQ,GAAU,IAAI,CAAC;QACvB,cAAS,GAAG,KAAK,CAAC;QA9DhB,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,SAAS,CAAC,GAAG;YAC3C,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;;;;;;SAOrB,CAAC,CAAA;;QAGA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;;QAElB,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;;QAEpB,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;QAG7C,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;YACzB,IAAI,CAAC,SAAS,GAAG,oBAAoB,CAAC;SACvC,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,iBAAiB,CAAC;YACnC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,SAAS;YACxC,IAAI,CAAC,SAAS,GAAG,4BAA4B,GAAG,SAAS,GAAG,WAAW,CAAC;YAExE,IAAI,IAAI,CAAC,QAAQ,EAAC;gBAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;aACvB;SAEF,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;YACvB,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;;YAGrB,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB,CAAC,CAAC;;QAOH,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAEvB,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC;YACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;SAC5B,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IASD,QAAQ;KACP;IAED,UAAU;QACR,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAClB,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;QAC5B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACxB;IAED,SAAS;QACP,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;KACjC;IAED,KAAK;;QAEH,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;KACxB;EAIF;;YA1F2B,IAAI;YAAqB,SAAS;YAAuB,WAAW;YAAkB,MAAM;;AAF3G,gBAAgB;IAL5B,SAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,slDAAuC;;KAExC,CAAC;GACW,gBAAgB,CA4F5B;;IC9FY,cAAc,GAA3B,MAAa,cAAc;IAEzB;QAyBU,eAAU,GAAG,IAAI,YAAY,EAAE,CAAC;QAChC,gBAAW,GAAG,IAAI,YAAY,EAAE,CAAC;QACjC,cAAS,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,gBAAW,GAAG,IAAI,YAAY,EAAE,CAAC;QAI3C,YAAO,GAAG,eAAe,CAAA;QACzB,OAAE,GAAG,QAAQ,CAAA;QAEb,qBAAgB,GAAa,EAAE,CAAC;QAIhC,gBAAW,GAAG,EAAE,CAAC;KAvCA;IAEjB,QAAQ;;QAGN,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO;YACjC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC1C,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEpC,IAAI,CAAC,WAAW,GAAG,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC;KAElE;IAED,WAAW;;QAET,IAAI,CAAC,IAAI,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;QAC1C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACpC;IAoBD,WAAW,CAAC,WAAmB;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;KACrD;IAED,EAAE,CAAC,IAAI,EAAE,IAAI;QAEX,IAAI,IAAI,GAAG,IAAI,cAAc,EAAE,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC7B;IAGD,MAAM;QACJ,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KACzB;IAED,IAAI;QACF,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACvB;IAED,IAAI,CAAC,CAAK,EAAE,EAAY,EAAE,CAAM;QAE9B,IAAI,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAC;YACvB,IAAI,CAAC,IAAI,CAAC,EAAC;gBACT,OAAO,IAAI,CAAC;aACb;iBAAI;gBACH,OAAO,KAAK,CAAC;aACd;SAEF;QAED,IAAI,EAAE,IAAI,QAAQ,CAAC,OAAO,EAAE;YAC1B,IAAI,CAAC,GAAG,CAAC,EAAE;gBACT,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,OAAO,KAAK,CAAC;aACd;SAEF;QAED,IAAI,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE;YACvB,IAAI,CAAC,GAAG,CAAC,EAAE;gBACT,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,OAAO,KAAK,CAAC;aACd;SAEF;QAED,IAAI,EAAE,IAAI,QAAQ,CAAC,QAAQ,EAAE;YAC3B,IAAI,CAAC,IAAI,CAAC,EAAE;gBACV,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,OAAO,KAAK,CAAC;aACd;SAEF;KAIF;EAEF;AAhFU;IAAR,KAAK,EAAE;8CAAqB;AACpB;IAAR,KAAK,EAAE;4CAAW;AACT;IAAT,MAAM,EAAE;kDAAiC;AAChC;IAAT,MAAM,EAAE;mDAAkC;AACjC;IAAT,MAAM,EAAE;iDAAgC;AAC/B;IAAT,MAAM,EAAE;mDAAkC;AAEd;IAA5B,SAAS,CAAC,gBAAgB,CAAC;sDAA8B;AAhC/C,cAAc;IAL1B,SAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,6lMAAqC;;KAEtC,CAAC;GACW,cAAc,CAyG1B;;IC1GY,cAAc,GAA3B,MAAa,cAAc;IAEzB;QAOS,cAAS,GAAY,KAAK,CAAC;QAC1B,cAAS,GAAG,IAAI,YAAY,EAAE,CAAC;QAEzC,aAAQ,GAAW,EAAE,CAAC;KAVL;IAEjB,QAAQ;KACP;IASD,OAAO,CAAC,CAAO;QAEb,IAAG,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAG3B,IAAG,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,EAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACpB;aAAI;YACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAChC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;SAC5B;KAGF;EAEF;AAvBU;IAAR,KAAK,EAAE;6CAAe;AAEd;IAAR,KAAK,EAAE;iDAA4B;AAC1B;IAAT,MAAM,EAAE;iDAAgC;AAV9B,cAAc;IAL1B,SAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,i1DAAqC;;KAEtC,CAAC;GACW,cAAc,CA8B1B;;IC7BY,aAAa,GAA1B,MAAa,aAAa;IAExB;QAMS,SAAI,GAAG,IAAI,WAAW,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACnC,YAAO,GAAG,EAAE,CAAC;QACb,aAAQ,GAAG,KAAK,CAAC;QAE1B,gBAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9B,QAAG,GAAG,IAAI,WAAW,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7D,QAAG,GAAG,IAAI,WAAW,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAXpE;IAEF,QAAQ;KACP;;;;IAiBD,aAAa,CAAC,CAAC;;KAEd;EAEF;AAnBU;IAAR,KAAK,EAAE;2CAAoC;AACnC;IAAR,KAAK,EAAE;8CAAc;AACb;IAAR,KAAK,EAAE;+CAAkB;AAGjB;IAAR,KAAK,EAAE;0CAA8D;AAC7D;IAAR,KAAK,EAAE;0CAA8D;AAd3D,aAAa;IALzB,SAAS,CAAC;QACT,QAAQ,EAAE,UAAU;QACpB,gaAAoC;;KAErC,CAAC;GACW,aAAa,CA2BzB;;IC3BY,aAAa,GAA1B,MAAa,aAAa;IAExB;;QA+BA,wBAAmB,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;QAEnC,aAAQ,GAAG,KAAK,CAAC;QACjB,SAAI,GAAG,EAAE,CAAC;QACV,YAAO,GAAG,EAAE,CAAC;QACb,gBAAW,GAAG,EAAE,CAAC;QACjB,UAAK,GAAG,EAAE,CAAC;QACV,gBAAW,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,WAAM,GAAG,MAAM,CAAC;QAEf,UAAK,GAAG,IAAI,YAAY,EAAE,CAAC;QAC3B,eAAU,GAAG,IAAI,YAAY,EAAE,CAAC;QAEjC,SAAI,GAAG,EAAE,CAAC;QACV,UAAK,GAAG,MAAM,CAAA;;QAId,YAAO,GAAQ,EAAE,CAAC;QAClB,gBAAW,GAAG,EAAE,CAAC;QACjB,kBAAa,GAAG,EAAE,CAAC;QAE5B,cAAS,GAAG,IAAI,WAAW,EAAE,CAAC;;QAqBrB,aAAQ,GAAG,IAAI,CAAC;QAChB,QAAG,GAAG,CAAC,CAAC;QACR,QAAG,GAAG,gBAAgB,CAAC;QACvB,UAAK,GAAG,EAAE,CAAA;QAkCnB,YAAO,GAAG,IAAI,WAAW,CAAE,IAAI,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAG,CAAC,CAAC;KA/G9I;IAElB,QAAQ;QAEN,IAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAC;YACzB,IAAI,CAAC,UAAU,EAAE,CAAC;SACnB;QAED,IAAI,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE;YAC1B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;SACjC;KAEF;IAED,eAAe;QAEb,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;SACvC;QACD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAC;YAEnC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7H,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC;SACvC;KAGF;IA6BO,UAAU;QAChB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CACrD,SAAS,CAAC,EAAE,CAAC,EACb,GAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CACpC,CAAC;KACH;IAEO,OAAO,CAAC,KAAa;QAC3B,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAExC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;KAC7G;IAYD,OAAO;;;;;;QAQL,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAEnC;IAED,QAAQ;;;;;;QAQN,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KAE7C;IAED,MAAM;QACJ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACnB;IAED,YAAY;QACV,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;KACxB;IAID,QAAQ;QAGN,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;YACxE,OAAO,UAAU,CAAC;SACnB;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YACtC,OAAO,qBAAqB,IAAI,CAAC,GAAG,EAAE,CAAC;SACxC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YACtC,OAAO,qBAAqB,IAAI,CAAC,GAAG,EAAE,CAAC;SACxC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YACpC,OAAO,eAAe,CAAC;SACxB;;;;;;;;;QAcD,OAAO,EAAE,CAAC;KACX;EAEF;AAlHU;IAAR,KAAK,EAAE;+CAAkB;AACjB;IAAR,KAAK,EAAE;2CAAW;AACV;IAAR,KAAK,EAAE;8CAAc;AACb;IAAR,KAAK,EAAE;kDAAkB;AACjB;IAAR,KAAK,EAAE;4CAAY;AACV;IAAT,MAAM,EAAE;kDAAkC;AAClC;IAAR,KAAK,EAAE;6CAAiB;AAEf;IAAT,MAAM,EAAE;4CAA4B;AAC3B;IAAT,MAAM,EAAE;iDAAiC;AAEjC;IAAR,KAAK,EAAE;2CAAW;AACV;IAAR,KAAK,EAAE;4CAAe;AAId;IAAR,KAAK,EAAE;8CAAmB;AAClB;IAAR,KAAK,EAAE;kDAAkB;AACjB;IAAR,KAAK,EAAE;oDAAoB;AAuBnB;IAAR,KAAK,EAAE;+CAAiB;AAChB;IAAR,KAAK,EAAE;0CAAS;AACR;IAAR,KAAK,EAAE;0CAAwB;AACvB;IAAR,KAAK,EAAE;4CAAW;AA/ER,aAAa;IALzB,SAAS,CAAC;QACT,QAAQ,EAAE,UAAU;QACpB,8hEAAoC;;KAErC,CAAC;GACW,aAAa,CAqJzB;;AC/JD;IAWa,YAAY,GAAzB,MAAa,YAAY;IAEvB,YAAoB,WAAwB,EAAkC,IAAI;QAA9D,gBAAW,GAAX,WAAW,CAAa;QAAkC,SAAI,GAAJ,IAAI,CAAA;QAYlF,iBAAY,GAAY,KAAK,CAAC;QAG9B,cAAS,GAAG,IAAI,KAAK,EAAE,CAAC;QAExB,cAAS,GAAG,CAAC,CAAC;QAEd,mBAAc,GAAG,EAAE,CAAC;QAyCpB,aAAQ,GAAG,KAAK,CAAC;KA5DsE;IAEvF,QAAQ;QAEN,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;QACrC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,MAAM,EAAE,CAAC;KAEf;IAYD,QAAQ;QAEN,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE;YAC9B,OAAO;SACR;QAED,IAAI,IAAI,CAAC,SAAS,GAAE,CAAC,IAAI,CAAC,EAC1B;YACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;SACrC;aACI,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,EAC5B;YACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAE,CAAC,CAAC;SAC3C;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;KAEf;IAED,IAAI;QAEF,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAC;YAC7B,OAAO;SACR;QAED,IAAI,IAAI,CAAC,SAAS,GAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAC7C;YACE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;SACrC;aACI,IAAI,IAAI,CAAC,SAAS,GAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAE,CAAC,EACrD;YACE,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;SACpB;QAED,IAAI,CAAC,MAAM,EAAE,CAAC;KAEf;IAGD,MAAM;;QAGJ,IAAI,CAAC,cAAc,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAE;QAE3I,IAAI,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAC;YACpL,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACtB;aAAI;YACH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAA;YACrB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;SAE5C;KAEF;IAED,MAAM,CAAC,QAAQ;QAEb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;EAEF;;YAlFkC,WAAW;4CAAG,MAAM,SAAC,eAAe;;AAF1D,YAAY;IALxB,SAAS,CAAC;QACT,QAAQ,EAAE,iBAAiB;QAC3B,gkCAA4C;;KAE7C,CAAC;IAG+C,WAAA,MAAM,CAAC,eAAe,CAAC,CAAA;GAF3D,YAAY,CAoFxB;;ICtFY,eAAe,GAA5B,MAAa,eAAe;IAE1B,YAAmB,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;QAO3B,QAAG,GAAG,EAAE,CAAC;QACT,eAAU,GAAC,EAAE,CAAC;QACd,cAAS,GAAG,IAAI,KAAK,EAAE,CAAA;QACvB,cAAS,GAAG,KAAK,CAAC;QACjB,WAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC7B,YAAO,GAAG,WAAW,CAAC;QACtB,UAAK,GAAG,WAAW,CAAC;KAbY;IAEzC,QAAQ;;KAEP;;IAcD,QAAQ,CAAC,QAAgB;QAEvB,IAAI,OAAO,QAAQ,IAAI,QAAQ,EAAE;YAC/B,OAAO;SACR;;QAKD,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE;YAC/C,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,MAAM;YAEhB,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;SAC/F,CAAC,CAAC;KAEJ;IAED,OAAO,CAAC,CAAC;QACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACrB;EAEF;;YAxC4B,SAAS;;AAO3B;IAAR,KAAK,EAAE;4CAAU;AACT;IAAR,KAAK,EAAE;mDAAe;AACd;IAAR,KAAK,EAAE;kDAAwB;AACvB;IAAR,KAAK,EAAE;kDAAmB;AACjB;IAAT,MAAM,EAAE;+CAA6B;AAC7B;IAAR,KAAK,EAAE;gDAAuB;AACtB;IAAR,KAAK,EAAE;8CAAqB;AAflB,eAAe;IAL3B,SAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,+gBAAsC;;KAEvC,CAAC;GACW,eAAe,CA0C3B;;IC5CY,eAAe,GAA5B,MAAa,eAAe;IAE1B;QAkBS,UAAK,GAAG,MAAM,CAAA;QACd,aAAQ,GAAG,KAAK,CAAC;QACjB,iBAAY,GAAG,EAAE,CAAC;QAClB,SAAI,GAAG,EAAE,CAAC;QAGV,YAAO,GAAG,EAAE,CAAC;QACb,UAAK,GAAG,EAAE,CAAC;QAEX,gBAAW,GAAG,EAAE,CAAC;QACjB,kBAAa,GAAG,EAAE,CAAC;QACnB,uBAAkB,GAAG,EAAE,CAAC;QAEvB,gBAAW,GAAG,IAAI,YAAY,EAAE,CAAC;KA/B1B;IAEjB,QAAQ;;;;KAIP;IAED,WAAW;QAET,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAC;YACrD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC,CAAA;SACnH;KAEF;IAqBD,OAAO;QACL,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAEnC;IAED,aAAa;KAEZ;EAEF;AA1BU;IAAR,KAAK,EAAE;8CAAe;AACd;IAAR,KAAK,EAAE;iDAAkB;AACjB;IAAR,KAAK,EAAE;qDAAmB;AAClB;IAAR,KAAK,EAAE;6CAAW;AAGV;IAAR,KAAK,EAAE;gDAAc;AACb;IAAR,KAAK,EAAE;8CAAY;AACX;IAAR,KAAK,EAAE;gDAAc;AACb;IAAR,KAAK,EAAE;oDAAkB;AACjB;IAAR,KAAK,EAAE;sDAAoB;AACnB;IAAR,KAAK,EAAE;2DAAyB;AAEvB;IAAT,MAAM,EAAE;oDAAkC;AAjChC,eAAe;IAL3B,SAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,+zBAAsC;;KAEvC,CAAC;GACW,eAAe,CA8C3B;;IC7CY,cAAc,GAA3B,MAAa,cAAc;IAEzB;QAKS,aAAQ,GAAG,KAAK,CAAC;QACjB,YAAO,GAAG,EAAE,CAAC;QACb,UAAK,GAAG,KAAK,CAAC;QACb,gBAAW,GAAG,IAAI,YAAY,EAAE,CAAC;QACjC,UAAK,GAAG,IAAI,YAAY,EAAE,CAAC;QAC3B,UAAK,GAAG,IAAI,YAAY,EAAE,CAAC;QAC3B,YAAO,GAAG,IAAI,YAAY,EAAE,CAAC;KAXtB;IAEjB,QAAQ;KACP;IAUD,OAAO;QACL,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;IAED,OAAO;QACL,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAElB,IAAG,CAAC,IAAI,CAAC,KAAK,EAAC;YACb,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;aAAI;YACH,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;KACF;IAED,OAAO;QACL,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;KACnB;IACD,SAAS;QACP,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;EAEF;AA7BU;IAAR,KAAK,EAAE;gDAAkB;AACjB;IAAR,KAAK,EAAE;+CAAc;AACb;IAAR,KAAK,EAAE;6CAAe;AACb;IAAT,MAAM,EAAE;mDAAkC;AACjC;IAAT,MAAM,EAAE;6CAA4B;AAC3B;IAAT,MAAM,EAAE;6CAA4B;AAC3B;IAAT,MAAM,EAAE;+CAA8B;AAb5B,cAAc;IAL1B,SAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,kNAAqC;;KAEtC,CAAC;GACW,cAAc,CAoC1B;;ICpCY,eAAe,GAA5B,MAAa,eAAe;IAE1B;QAKS,YAAO,GAAG,0BAA0B,CAAA;QACpC,UAAK,GAAU,EAAE,CAAC;QACjB,gBAAW,GAAG,IAAI,YAAY,EAAE,CAAC;QACjC,WAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAG7B,iBAAY,GAAG,KAAK,CAAC;KAXb;IAEjB,QAAQ;KACP;;;;IAcD,aAAa,CAAC,MAAM;QAClB,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;KAC/B;;;;IAKD,iBAAiB,CAAC,KAAK;QACrB,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;KAC9B;;;;;IAMD,UAAU,CAAC,KAAa;QACtB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KAC7B;;;;;;;;;;;;;;;;;;;;;;;;IA0BD,gBAAgB,CAAC,KAAiB;QAChC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAClB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACvB;;KAEF;;;;;;IAOD,WAAW,CAAC,KAAK,EAAE,QAAQ;QACzB,IAAI,KAAK,KAAK,CAAC,EAAE;YACf,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,CAAC,GAAG,IAAI,CAAC;QACf,MAAM,EAAE,GAAG,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,IAAI,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACxE,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,OAAO,UAAU,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;KAC1E;IAED,QAAQ;QACN,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KACpB;IAED,YAAY;QACV,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;EACF;AAtFU;IAAR,KAAK,EAAE;gDAAqC;AACpC;IAAR,KAAK,EAAE;8CAAmB;AACjB;IAAT,MAAM,EAAE;oDAAkC;AACjC;IAAT,MAAM,EAAE;+CAA6B;AAG7B;IAAR,KAAK,EAAE;qDAAsB;AAbnB,eAAe;IAL3B,SAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,q6DAAsC;;KAEvC,CAAC;GACW,eAAe,CA6F3B;;IC9FY,iBAAiB,GAA9B,MAAa,iBAAiB;IAE5B;QAKS,YAAO,GAAG,EAAE,CAAC;QACb,UAAK,GAAG,EAAE,CAAC;QACV,gBAAW,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,aAAQ,GAAG,KAAK,CAAC;QAEjB,QAAG,GAAG,aAAa,CAAC;QAEpB,QAAG,GAAG,aAAa,CAAC;KAZZ;IAEjB,QAAQ;KACP;IAWD,OAAO;QACL,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;EAEF;AAbU;IAAR,KAAK,EAAE;kDAAc;AACb;IAAR,KAAK,EAAE;gDAAY;AACV;IAAT,MAAM,EAAE;sDAAkC;AAClC;IAAR,KAAK,EAAE;mDAAkB;AAEjB;IAAR,KAAK,EAAE;8CAAqB;AAEpB;IAAR,KAAK,EAAE;8CAAqB;AAdlB,iBAAiB;IAL7B,SAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,kUAAwC;;KAEzC,CAAC;GACW,iBAAiB,CAoB7B;;IClBY,cAAc,GAA3B,MAAa,cAAc;IAEzB;QAWS,aAAQ,GAAG,KAAK,CAAC;QACjB,YAAO,GAAG,EAAE,CAAC;QACb,UAAK,GAAG,EAAE,CAAC;QACV,gBAAW,GAAG,IAAI,YAAY,EAAE,CAAC;QAElC,UAAK,GAAG,MAAM,CAAA;QACd,SAAI,GAAG,EAAE,CAAC;QACV,aAAQ,GAAG,GAAG,CAAC;KAlBP;IAEjB,QAAQ;KAGP;IAED,WAAW;KAEV;IAeD,OAAO;QAEL,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAEnC;EAGF;AApBU;IAAR,KAAK,EAAE;gDAAkB;AACjB;IAAR,KAAK,EAAE;+CAAc;AACb;IAAR,KAAK,EAAE;6CAAY;AACV;IAAT,MAAM,EAAE;mDAAkC;AAElC;IAAR,KAAK,EAAE;6CAAe;AACd;IAAR,KAAK,EAAE;4CAAW;AACV;IAAR,KAAK,EAAE;gDAAgB;AApBb,cAAc;IAL1B,SAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,ojBAAqC;;KAEtC,CAAC;GACW,cAAc,CAiC1B;;IC9BY,YAAY,GAAzB,MAAa,YAAY;IAAzB;QAEY,gBAAW,GAAG,IAAI,YAAY,EAAO,CAAC;KA0BjD;;IAvBuC,UAAU,CAAC,GAAG;QAClD,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;KACtB;;IAG6C,WAAW,CAAC,GAAG;QAC3D,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;KACvB;;IAGwC,MAAM,CAAC,GAAG;QACjD,GAAG,CAAC,cAAc,EAAE,CAAC;QACrB,GAAG,CAAC,eAAe,EAAE,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC;QACnC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9B;KACF;EACF;AA3BgC;IAA9B,WAAW,CAAC,gBAAgB,CAAC;8CAAmB;AACvC;IAAT,MAAM,EAAE;iDAAuC;AAGV;IAArC,YAAY,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;8CAIpC;AAGsC;IAAtC,YAAY,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,CAAC;+CAIrC;AAGiC;IAAjC,YAAY,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;0CAQhC;AA3BU,YAAY;IAHxB,SAAS,CAAC;QACT,QAAQ,EAAE,UAAU;KACrB,CAAC;GACW,YAAY,CA4BxB;;ICjCY,cAAc,GAA3B,MAAa,cAAc;IAEzB,YAAoB,cAA8B;QAA9B,mBAAc,GAAd,cAAc,CAAgB;QAOzC,SAAI,GAAG,EAAE,CAAC;QACV,cAAS,GAAG,KAAK,CAAC;QAClB,YAAO,GAAG,KAAK,CAAC;;QAOf,UAAK,GAAG,IAAI,YAAY,EAAE,CAAC;QAE3B,WAAM,GAAG,IAAI,YAAY,EAAE,CAAC;KAlBiB;IAGvD,QAAQ;KACP;IAgBD,OAAO,CAAC,IAAY;QAElB,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAA;QAEpC,IAAI,OAAO,IAAI,IAAI,QAAQ,EAAE;YAC3B,OAAO;SACR;QAED,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACvB;KACF;IAGD,OAAO,CAAC,IAAI;;;;;QAQV,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM;YAC/D,IAAI,MAAM,IAAI,KAAK,EAAE;gBAEnB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAExB;YAAA,CAAC;SACH,CAAC,CAAC;KAEJ;EAEF;;YApDqC,cAAc;;AAOzC;IAAR,KAAK,EAAE;4CAAW;AACV;IAAR,KAAK,EAAE;iDAAmB;AAClB;IAAR,KAAK,EAAE;+CAAiB;AAIhB;IAAR,KAAK,EAAE;6CAAiB;AAGf;IAAT,MAAM,EAAE;6CAA4B;AAE3B;IAAT,MAAM,EAAE;8CAA6B;AApB3B,cAAc;IAL1B,SAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,orBAAqC;;KAEtC,CAAC;GACW,cAAc,CAsD1B;;ICtDY,iBAAiB,GAA9B,MAAa,iBAAiB;IAE5B;QAKS,UAAK,GAAG,IAAI,KAAK,EAAE,CAAC;QAC7B,iBAAY,GAAW,OAAO,CAAC;QACtB,UAAK,GAAG,OAAO,CAAA;KAPP;IAEjB,QAAQ;KACP;EAMF;AAJU;IAAR,KAAK,EAAE;gDAAqB;AAEpB;IAAR,KAAK,EAAE;gDAAgB;AATb,iBAAiB;IAL7B,SAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,8gCAAwC;;KAEzC,CAAC;GACW,iBAAiB,CAW7B;;ICVY,aAAa,GAA1B,MAAa,aAAa;IAExB;QAKS,UAAK,GAAG,EAAE,CAAC;QACV,gBAAW,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,aAAQ,GAAG,KAAK,CAAC;QAYjB,WAAM,GAAwB;YACrC,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;YAChB,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,MAAM;YACjB,WAAW,EAAE,oBAAoB;YACjC,SAAS,EAAE,IAAI;YACf,yBAAyB,EAAE,EAAE;YAC7B,eAAe,EAAE,OAAO;YACxB,oBAAoB,EAAE;gBACpB;oBACE,MAAM;oBACN,QAAQ;oBACR,WAAW;oBACX,eAAe;oBACf,WAAW;oBACX,aAAa;oBACb,aAAa;oBACb,eAAe;oBACf,cAAc;oBACd,aAAa;oBACb,QAAQ;oBACR,SAAS;oBACT,qBAAqB;oBACrB,mBAAmB;oBACnB,SAAS;oBACT,UAAU;iBACX;gBACD;oBACE,UAAU;oBACV,WAAW;oBACX,iBAAiB;oBACjB,eAAe;oBACf,MAAM;oBACN,QAAQ;oBACR,aAAa;oBACb,aAAa;oBACb,sBAAsB;oBACtB,cAAc;oBACd,kBAAkB;iBACnB;aACF;YACD,aAAa,EAAE;gBACb;oBACE,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,OAAO;iBACf;gBACD;oBACE,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,SAAS;iBACjB;gBACD;oBACE,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,WAAW;oBAClB,GAAG,EAAE,IAAI;iBACV;aACF;SACF,CAAC;KA5Ee;IAEjB,QAAQ;KACP;IAMD,OAAO;QACL,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;IAED,WAAW;;QAET,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;KAEvC;EA6DF;AAzEU;IAAR,KAAK,EAAE;4CAAY;AACV;IAAT,MAAM,EAAE;kDAAkC;AAClC;IAAR,KAAK,EAAE;+CAAkB;AAYjB;IAAR,KAAK,EAAE;6CAyDN;AA9ES,aAAa;IALzB,SAAS,CAAC;QACT,QAAQ,EAAE,UAAU;QACpB,2HAAoC;;KAErC,CAAC;GACW,aAAa,CAgFzB;;ICjFY,eAAe,GAA5B,MAAa,eAAe;IAE1B;QAQS,gBAAW,GAAG,EAAE,CAAC;QACjB,kBAAa,GAAG,EAAE,CAAC;QACnB,aAAQ,GAAG,KAAK,CAAC;QAEjB,UAAK,GAAG,EAAE,CAAC;QACX,YAAO,GAAG,EAAE,CAAC;QACb,SAAI,GAAY,KAAK,CAAC;QAGrB,gBAAW,GAAG,IAAI,YAAY,EAAE,CAAC;QACjC,eAAU,GAAG,IAAI,YAAY,EAAE,CAAC;KAlBzB;IAEjB,QAAQ;KACP;IAiBD,OAAO;QACL,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;IAED,YAAY;QACV,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;KACzB;IAED,UAAU;QACR,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,OAAO,EAAE,CAAC;KAEhB;EAEF;AA3BU;IAAR,KAAK,EAAE;gDAAc;AACb;IAAR,KAAK,EAAE;oDAAkB;AACjB;IAAR,KAAK,EAAE;sDAAoB;AACnB;IAAR,KAAK,EAAE;iDAAkB;AAEjB;IAAR,KAAK,EAAE;8CAAY;AACX;IAAR,KAAK,EAAE;gDAAc;AACb;IAAR,KAAK,EAAE;6CAAuB;AAGrB;IAAT,MAAM,EAAE;oDAAkC;AACjC;IAAT,MAAM,EAAE;mDAAiC;AApB/B,eAAe;IAL3B,SAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,yrCAAsC;;KAEvC,CAAC;GACW,eAAe,CAoC3B;;ICpCY,cAAc,GAA3B,MAAa,cAAc;IAEzB;QAKS,YAAO,GAAG,EAAE,CAAC;QACb,UAAK,GAAG,EAAE,CAAC;QACX,WAAM,GAAG,MAAM,CAAC;KAPR;IAEjB,QAAQ;KACP;EAMF;AAJU;IAAR,KAAK,EAAE;+CAAc;AACb;IAAR,KAAK,EAAE;6CAAY;AACX;IAAR,KAAK,EAAE;8CAAiB;AATd,cAAc;IAL1B,SAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,2qBAAqC;;KAEtC,CAAC;GACW,cAAc,CAW1B;;aCR8C,EAAE,2BAA2B,EAAE,KAAK,EAAE;IAGxE,cAAc,GAA3B,MAAa,cAAc;IAEzB;QAgBS,UAAK,GAAG,EAAE,CAAC;KAhBH;IAEjB,QAAQ;KAEP;IAED,eAAe;KAEd;IAED,WAAW;;QAET,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAMD,UAAU;QAER,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE;YAAE,OAAO;;;QAK7B,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;QAE/B,QAAQ,IAAI,CAAC,KAAK;YAIhB,KAAK,OAAO;gBACV,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;gBAC/B,MAAM;YAER,KAAK,eAAe;gBAClB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;gBACnB,MAAM;YAER,KAAK,aAAa;gBAChB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;gBACnB,MAAM;YAER,KAAK,SAAS;gBACZ,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;gBACnB,MAAM;YAER,KAAK,cAAc;gBACjB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;gBACnB,MAAM;YAER,KAAK,QAAQ;gBACX,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;gBACnB,MAAM;YAER,KAAK,cAAc;gBACjB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;gBACnB,MAAM;YAER,KAAK,gBAAgB;gBACnB,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA;gBACnB,MAAM;SAET;KAEF;IAED,WAAW,CAAC,KAAa;QAEvB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE;;YAE9C,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC;;SAGpC;KAEF;IAED,SAAS;QAEP,IAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO;QAClC,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE;YAAE,OAAO;QAC7B,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;QAG/B,IAAI,CAAC,GAAG,CAAC,CAAC;QAEV,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAE3B,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;gBAE3B,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;gBAC/B,CAAC,EAAE,CAAC;aAEL;iBAAM;gBAEL,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;;gBAE/B,MAAM;aAEP;SACF;KAEF;EAEF;AA3FuB;IAArB,SAAS,CAAC,SAAS,CAAC;+CAAqB;AACjC;IAAR,KAAK,EAAE;6CAAY;AACX;IAAR,KAAK,EAAE;6CAAe;AAnBZ,cAAc;IAR1B,SAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,w6CAAqC;QAErC,SAAS,EAAE,CAAC;gBACV,OAAO,EAAE,sBAAsB,EAAE,QAAQ,MAAwC;aAClF,CAAC;;KACH,CAAC;GACW,cAAc,CA4G1B;;IC3BY,YAAY,GAAzB,MAAa,YAAY;EAAG;AAAf,YAAY;IAzDxB,QAAQ,CAAC;QACR,YAAY,EAAE,CAAC,YAAY,EAAC,eAAe,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe;YAC3F,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa;YAC9E,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,iBAAiB;YACpF,cAAc;YACd,cAAc;YACd,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,CAAE;QAEnG,eAAe,EAAE,CAAC,aAAa,CAAC;QAEhC,OAAO,EAAE;YACP,mBAAmB,CAAC,UAAU,CAAC,EAAE,4BAA4B,EAAE,OAAO,EAAE,CAAC;YACzE,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,YAAY;YACZ,YAAY;YACZ,kBAAkB;YAClB,mBAAmB;YAEnB,qBAAqB,CAAC,OAAO,EAAE;SAChC;QAED,OAAO,EAAE;YACP,YAAY;YACZ,WAAW;YACX,YAAY;YACZ,eAAe;YACf,aAAa;YACb,gBAAgB;YAChB,eAAe;YACf,gBAAgB;YAChB,cAAc;YACd,cAAc;YACd,aAAa;YACb,eAAe;YACf,eAAe;YACf,aAAa;YACb,iBAAiB;YACjB,cAAc;YACd,eAAe;YACf,cAAc;YACd,cAAc;YACd,iBAAiB;YACjB,aAAa;YACb,eAAe;YACf,cAAc;YACd,cAAc;SAEf;QAED,SAAS,EAAE;YAET,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE;YACxE,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAC;SAC7D;KACF,CAAC;GACW,YAAY,CAAG;;ICrEf,cAAc,GAA3B,MAAa,cAAc;IACzB,YACU,WAAwB,EACxB,cAA8B,EAC/B,MAAc,EACb,cAA8B,EAC9B,WAAwB,EACzB,WAAwB,EACvB,UAAsB;QANtB,gBAAW,GAAX,WAAW,CAAa;QACxB,mBAAc,GAAd,cAAc,CAAgB;QAC/B,WAAM,GAAN,MAAM,CAAQ;QACb,mBAAc,GAAd,cAAc,CAAgB;QAC9B,gBAAW,GAAX,WAAW,CAAa;QACzB,gBAAW,GAAX,WAAW,CAAa;QACvB,eAAU,GAAV,UAAU,CAAY;QAGzB,SAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,SAAI,GAAG,IAAI,CAAC;QACZ,iBAAY,GAAY,KAAK,CAAC;QASrB,cAAS,GAAG,IAAI,SAAS,EAAE,CAAC;KAbjC;IAOJ,QAAQ;QACN,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;KAC7B;IAIM,MAAM;QACX,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;KAClC;IAEM,cAAc;QACnB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC;KAC3C;IAEM,KAAK;QAEV,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE;YACtD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;YAC3D,OAAO;SACR;QAGD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEnC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CACzC,CAAC,WAAwB;YACvB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAE1B,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,EAAE;gBAGpC,IAAI,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAC;oBAC/E,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;oBACtE,OAAO;iBACR;gBAED,IAAI,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE;oBAC1E,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;oBACtE,OAAO;iBACR;gBAGD,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gBAEtC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBAChE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;gBAEnF,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;gBAC5E,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,iBAAiB,EAAE,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;gBAEhG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAEjE,IAAI,CAAC,WAAW,CAAC,wBAAwB,CAAE,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAE,CAAC;gBACtF,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CACtF,CAAC;gBAEF,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtD,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;;gBAK1F,IAAI,WAAW,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,GAAG,EAAE;oBACrD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;;oBAE/B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;iBACnC;qBAAM;oBACL,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC;iBACrD;aAEF;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;gBAC3D,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;aACzB;SACF,EACD,CAAC,KAAK;YACJ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAE1B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;SAC1D,CACF,CAAC;KACH;IAED,OAAO,CAAC,MAAc;QACpB,IAAI,CAAC,WAAW;aACb,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;aACrB,SAAS,CAAC,CAAC,WAAwB;YAClC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAE/C,IAAI,CAAC,cAAc,CAAC,KAAK,CACvB,SAAS,CAAC,UAAU,EACpB,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAClC,CAAC;SACH,CAAC,CAAC;KACN;EACF;;YAlHwB,WAAW;YACR,cAAc;YACvB,MAAM;YACG,cAAc;YACjB,WAAW;YACZ,WAAW;YACX,UAAU;;AAMvB;IAAR,KAAK,EAAE;8CAAqB;AAQpB;IAAR,KAAK,EAAE;iDAA6B;AAtB1B,cAAc;IAL1B,SAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,ksGAAqC;;KAEtC,CAAC;GACW,cAAc,CAoH1B;;ICjIY,eAAe,GAA5B,MAAa,eAAe;IAG1B,YAAoB,WAAwB,EAAU,cAA8B,EAAU,WAAwB,EAAU,WAAwB;QAApI,gBAAW,GAAX,WAAW,CAAa;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAU,gBAAW,GAAX,WAAW,CAAa;QAQxJ,iBAAY,GAAY,KAAK,CAAC;QAC9B,SAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,YAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAExB,YAAO,GAAG,IAAI,OAAO,EAAE,CAAC;KAZsI;IAE9J,QAAQ;QAEN,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;KACrC;IAWH,MAAM;QAEJ,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAEvC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAC,KAAK,CAAC,CAAC,SAAS,CAC1D,CAAC,WAAwB;YACvB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAE1B,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,EAAE;gBACpC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBAE7C,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;aAE9B;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;aAC5D;SACF,EACD,CAAC,KAAK;YACJ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;SAC1D,CACF,CAAC;KACL;EAIA;;YA7CkC,WAAW;YAA0B,cAAc;YAAuB,WAAW;YAAuB,WAAW;;AAH7I,eAAe;IAL3B,SAAS,CAAC;QACT,QAAQ,EAAE,YAAY;QACtB,+pEAAsC;;KAEvC,CAAC;GACW,eAAe,CAgD3B;;IC/CY,uBAAuB,GAApC,MAAa,uBAAuB;IAElC,YAAoB,QAAkB,EAAU,WAAwB,EAAS,WAAwB,EAAU,cAA8B;QAA7H,aAAQ,GAAR,QAAQ,CAAU;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAS,gBAAW,GAAX,WAAW,CAAa;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAKjJ,WAAM,GAAW,EAAE,CAAC;KALkI;IAEtJ,QAAQ;KACP;IAID,OAAO;QAGL,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE;YAErB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACtD,OAAO;SACR;aAAM;YACL,IAAI,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;YACnB,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAEvB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAwB;gBAC/D,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,EAAE;oBACpC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;oBACtE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;iBACtB;qBAAM;oBACL,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;iBAC5D;aACF,CAAC,CAAC;SACJ;KACF;EAGF;;YA9B+B,QAAQ;YAAuB,WAAW;YAAsB,WAAW;YAA0B,cAAc;;AAFtI,uBAAuB;IALnC,SAAS,CAAC;QACT,QAAQ,EAAE,qBAAqB;QAC/B,+tBAA+C;;KAEhD,CAAC;GACW,uBAAuB,CAgCnC;;ICfY,cAAc,GAA3B,MAAa,cAAc;EAAG;AAAjB,cAAc;IAtB1B,QAAQ,CAAC;QACR,YAAY,EAAE,CAAC,cAAc,EAAE,eAAe,EAAE,uBAAuB,CAAC;QAExE,eAAe,EAAE,EAAE;QAEnB,OAAO,EAAE;YACP,mBAAmB,CAAC,UAAU,CAAC,EAAE,4BAA4B,EAAE,OAAO,EAAE,CAAC;YACzE,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,YAAY;SACb;QAED,OAAO,EAAE;YACP,YAAY;YACZ,WAAW;YACX,YAAY;YACZ,cAAc;YACd,eAAe;YACf,uBAAuB;SACxB;KACF,CAAC;GACW,cAAc,CAAG;;IChBjB,uBAAuB,GAApC,MAAa,uBAAuB;IAElC,YAAoB,QAAkB,EAAU,WAAwB,EAAS,cAA8B,EAAU,WAAwB,EAAU,WAAwB;QAA/J,aAAQ,GAAR,QAAQ,CAAU;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAS,mBAAc,GAAd,cAAc,CAAgB;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAU,gBAAW,GAAX,WAAW,CAAa;QAuBnL,iBAAY,GAAY,KAAK,CAAC;QAE9B,mBAAc,GAAG,IAAI,kBAAkB,EAAE,CAAC;KAzB8I;IAExL,QAAQ;QACN,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAA;QAEtD,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,IAAE,EAAE,EAAC;YACxC,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;SAE3D;aAAI;YACH,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC;YAC/D,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,EAAE,CAAC;SACxC;;KAIF;IAYM,MAAM;QAGX,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC;YAC/C,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,IAAI,EAAE,EAAE;gBAC7C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBAC3D,OAAO;aACR;SACF;QAKD,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,IAAI,EAAE,EAAE;YACzC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YACvD,OAAO;SACR;QAED,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,IAAI,EAAE,EAAE;YAC7C,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;YACzD,OAAO;SACR;QAED,IAAI,IAAI,CAAC,cAAc,CAAC,eAAe,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,EAAG;YAC3E,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACpD,OAAO;SACR;QAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAEzB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAC;YAE9C,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,WAAwB;gBAC3F,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAE1B,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,EAAE;oBACpC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;oBAE9C,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;iBACtB;qBAAM;oBACL,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;iBAC5D;aACF,CACA,CAAC;SAEH;aAAI;YAEH,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,CAAC,CAAC,WAAwB;gBACtF,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;gBAE1B,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,EAAE;oBACpC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;oBAE9C,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;iBACtB;qBAAM;oBACL,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;iBAC5D;aACF,CACA,CAAC;SAEH;KAKF;EAGF;;YA/F+B,QAAQ;YAAuB,WAAW;YAAyB,cAAc;YAAuB,WAAW;YAAuB,WAAW;;AAFxK,uBAAuB;IALnC,SAAS,CAAC;QACT,QAAQ,EAAE,qBAAqB;QAC/B,29EAA+C;;KAEhD,CAAC;GACW,uBAAuB,CAiGnC;;ICjGY,gBAAgB,GAA7B,MAAa,gBAAgB;IAG3B,YAAmB,WAAwB,EAAU,cAA8B,EAAU,WAAwB,EAAU,MAAc,EAAU,WAAwB;QAA5J,gBAAW,GAAX,WAAW,CAAa;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAU,WAAM,GAAN,MAAM,CAAQ;QAAU,gBAAW,GAAX,WAAW,CAAa;QAuBtK,cAAS,GAAG,IAAI,SAAS,EAAE,CAAC;QAGrC,gBAAW,GAAa,KAAK,CAAC;QAE9B,YAAO,GAAG,IAAI,OAAO,EAAE,CAAC;KA5B4J;IAEpL,QAAQ;QAEN,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,KAAK,CAAA;;QAItD,IAAI,IAAI,CAAC,WAAW,CAAC,gBAAgB,IAAE,EAAE,EAAC;YACxC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;SAEhD;aAAI;YACH,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;YACpD,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,EAAE,CAAC;SACxC;;KAMF;IAcD,WAAW,CAAC,MAAc;QAExB,IAAI,MAAM,GAAG,KAAK,CAAC;QAEnB,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAC;YACvD,MAAM,GAAG,KAAK,CAAA;SACf;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAC;YACxD,MAAM,GAAG,QAAQ,CAAA;SAClB;QAED,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAC;YACxD,MAAM,GAAG,QAAQ,CAAA;SAClB;QAGD,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,SAAS,CACnD,CAAC,WAAwB;YAEvB,IAAI,CAAC,OAAO,GAAG,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAE5C,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,iBAAiB,EAAE,EAAC;gBAC9F,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;aACxB;;YAGD,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC,OAAO,CAAC;YACpC,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,EAAE,CAAC,eAAe,CAAC;YACpD,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC;SAG7C,EACD,CAAC,KAAK;YACJ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;SAC1D,CACF,CAAC;KAIH;IAED,SAAS;QAGP,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,SAAS,CAC3C,CAAC,WAAwB;YAEvB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC;SAC7B,EACD,CAAC,KAAK;YACJ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;SAC1D,CACF,CAAC;KAIH;IAID,cAAc;QACZ,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC;KACrD;IAED,SAAS;QACP,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;KAC5C;IAED,MAAM;KAEL;IAED,aAAa;QACX,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,SAAS,CAC5D,CAAC,WAAwB;YACvB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAE1B,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,EAAE;gBACpC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;aAI9C;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;aAC5D;SACF,EACD,CAAC,KAAK;YACJ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC3B,CACF,CAAC;KACF;EAKH;;YAvIiC,WAAW;YAA0B,cAAc;YAAuB,WAAW;YAAkB,MAAM;YAAuB,WAAW;;AAuBtK;IAAR,KAAK,EAAE;mDAA6B;AA1B1B,gBAAgB;IAL5B,SAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,uyIAAuC;;KAExC,CAAC;GACW,gBAAgB,CA0I5B;;IC5HY,aAAa,GAA1B,MAAa,aAAa;EAAG;AAAhB,aAAa;IArBzB,QAAQ,CAAC;QACR,YAAY,EAAE,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;QAEzD,eAAe,EAAE,EAAE;QAEnB,OAAO,EAAE;YACP,mBAAmB,CAAC,UAAU,CAAC,EAAE,4BAA4B,EAAE,OAAO,EAAE,CAAC;YACzE,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,YAAY;SACb;QAED,OAAO,EAAE;YACP,YAAY;YACZ,WAAW;YACX,YAAY;YACZ,uBAAuB;YACvB,gBAAgB;SACjB;KACF,CAAC;GACW,aAAa,CAAG;;IClBhB,iBAAiB,GAA9B,MAAa,iBAAiB;IAE5B,YAAoB,WAAwB,EAAU,cAA8B;QAAhE,gBAAW,GAAX,WAAW,CAAa;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAMpF,gBAAW,GAAG,EAAE,CAAC;QAEjB,iBAAY,GAAG,KAAK,CAAC;KARoE;IAEzF,QAAQ;QACN,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;IAMD,WAAW,CAAC,WAAmB;QAC7B,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;KACzD;IAED,YAAY;QACV,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,SAAS,CAC9C,CAAC,WAAwB;YACvB,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,EAAE,CAAC;;SAEhC,CACF,CAAC;KAEH;IAED,aAAa,CAAC,OAAO;QAEnB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,WAAwB;YACjF,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAE1B,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,EAAE;gBACpC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,WAAW,OAAO,CAAC,KAAK,UAAU,CAAC,CAAC;gBAC9D,IAAI,CAAC,YAAY,EAAE,CAAC;aAErB;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;aAC5D;SAEF,CAAC,CAAC;KAEJ;;IAED,UAAU;;;;;;;;;;QAYR,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;KAEpD;EAEF;;YA1DkC,WAAW;YAA0B,cAAc;;AAFzE,iBAAiB;IAL7B,SAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,smCAAwC;;KAEzC,CAAC;GACW,iBAAiB,CA4D7B;;IC1DY,aAAa,GAA1B,MAAa,aAAa;IACxB,YAAsB,WAAwB,EAAU,WAAwB;QAA1D,gBAAW,GAAX,WAAW,CAAa;QAAU,gBAAW,GAAX,WAAW,CAAa;QAMhF,iBAAY,GAAY,KAAK,CAAC;QAG9B,gBAAW,GAAG,EAAE,CAAC;QAIjB,qBAAgB,GAAa,CAAE,YAAY,EAAE,QAAQ,EAAC,UAAU,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;KAbD;IAErF,QAAQ;QACJ,IAAI,CAAC,QAAQ,EAAE,CAAC;KACnB;IAWM,QAAQ;QACb,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAC,EAAE,CAAC,CAAC,SAAS,CACzC,CAAC,WAAwB;YACvB,IAAI,CAAC,IAAI,GAAG,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;YACzC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACpC,CACF,CAAC;KACH;IAED,WAAW,CAAC,WAAmB;QAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;KACrD;EAGF;;YA9BoC,WAAW;YAAuB,WAAW;;AAOpD;IAA3B,SAAS,CAAC,eAAe,CAAC;oDAA6B;AAR7C,aAAa;IALzB,SAAS,CAAC;QACT,QAAQ,EAAE,UAAU;QACpB,skFAAoC;;KAErC,CAAC;GACW,aAAa,CA+BzB;;ICvBY,cAAc,GAA3B,MAAa,cAAc;IACzB,YAAoB,WAAwB,EAAS,MAAc,EAAU,WAAwB,EAAU,WAAwB,EAAS,MAAiB,EAAU,cAA8B;QAArL,gBAAW,GAAX,WAAW,CAAa;QAAS,WAAM,GAAN,MAAM,CAAQ;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAS,WAAM,GAAN,MAAM,CAAW;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAQzM,iBAAY,GAAY,KAAK,CAAC;QAG9B,gBAAW,GAAG,EAAE,CAAC;;QAIjB,qBAAgB,GAAa,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;KAf0G;IAE7M,QAAQ;QAEJ,IAAI,CAAC,UAAU,EAAE,CAAC;KAErB;IAWM,UAAU;QACf,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAC,EAAE,CAAC,CAAC,SAAS,CAC1C,CAAC,WAAwB;;YAEvB,IAAI,CAAC,KAAK,GAAG,IAAI,kBAAkB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YACpD,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC;YAC3C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACpC,EACD,CAAC,KAAK;YACJ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;SAC1D,CACF,CAAC;KACH;IAED,WAAW,CAAC,WAAmB;QAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;KACtD;IAED,aAAa;QAEV,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC;KAEtD;IAED,WAAW,CAAC,IAAU;QAEpB,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;KAE9C;IAED,IAAI,CAAC,CAAO;QACX,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,MAAM,CAAC,CAAO;QACb,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC;QACf,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC;QACd,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,MAAM,CAAC,CAAO;QACb,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC;QACjB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,OAAO,CAAC,CAAO;QACd,CAAC,CAAC,QAAQ,GAAG,GAAG,CAAC;QACjB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;KACnB;IAED,OAAO,CAAC,CAAO;QAId,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAwB;YAC/D,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,EAAE;gBACpC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;aAClE;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;aAC5D;SACF,CAAC,CAAC;KAEJ;IAEA,UAAU,CAAC,IAAI;QACd,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,SAAS,CACjD,CAAC,WAAwB;YACvB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAE1B,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,EAAE;gBACpC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBAE1C,IAAI,CAAC,UAAU,EAAE,CAAC;aAEnB;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;aAC5D;SACF,EACD,CAAC,KAAK;YACJ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC3B,CACF,CAAC;KACF;IAED,UAAU,CAAC,IAAU;QAGpB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM;YAEtE,IAAI,MAAM,IAAI,KAAK,EAAC;gBAElB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;gBACzB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,SAAS,CACnD,CAAC,WAAwB;oBACvB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;oBAE1B,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,EAAE;wBACpC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;wBAE1C,IAAI,CAAC,UAAU,EAAE,CAAC;qBAEnB;yBAAM;wBACL,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;qBAC5D;iBACF,EACD,CAAC,KAAK;oBACJ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;oBAChD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;iBAC3B,CACF,CAAC;aAEH;SACF,CAAC,CAAA;KAIF;EAED;;YA5IkC,WAAW;YAAiB,MAAM;YAAuB,WAAW;YAAuB,WAAW;YAAiB,SAAS;YAA0B,cAAc;;AAS5K;IAA5B,SAAS,CAAC,gBAAgB,CAAC;sDAA8B;AAV/C,cAAc;IAL1B,SAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,yvJAAqC;;KAEtC,CAAC;GACW,cAAc,CA6I1B;;IC7IY,aAAa,GAA1B,MAAa,aAAa;IAMxB,YAAoB,QAAqB,EAAU,cAA8B,EAAU,SAAsC;QAA7G,aAAQ,GAAR,QAAQ,CAAa;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAAU,cAAS,GAAT,SAAS,CAA6B;QAJ1H,iBAAY,GAAG,CAAC,CAAC;QACxB,SAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,iBAAY,GAAY,KAAK,CAAC;KAEuG;IAErI,QAAQ;KAEP;IAKM,MAAM;;;;;QAOX,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAE5D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,WAAwB;YAC3E,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAE1B,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,EAAE;gBACpC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAIxC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;aACjC;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;aAC5D;SACF,CAAC,CAAC;KACJ;EAEF;;YApC+B,WAAW;YAA0B,cAAc;YAAqB,YAAY;;AANvG,aAAa;IALzB,SAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,k6BAA6C;;KAE9C,CAAC;GACW,aAAa,CA0CzB;;ICjDY,cAAc,GAA3B,MAAa,cAAc;IAEzB,YAAoB,QAAqB,EAAU,cAA8B,EAAU,SAAuC,EAAkC,IAAI;QAApJ,aAAQ,GAAR,QAAQ,CAAa;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAAU,cAAS,GAAT,SAAS,CAA8B;QAAkC,SAAI,GAAJ,IAAI,CAAA;QASxK,SAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAOlB,iBAAY,GAAY,KAAK,CAAC;QAE9B,WAAM,GAAG,IAAI,IAAI,EAAE,CAAC;KAlBwJ;IAE5K,QAAQ;;;;QAIN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;KACvB;IAaM,MAAM;QACX,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;KACxB;IAEM,IAAI;QACT,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;KACxB;IAEM,MAAM;QACX,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;KAC1B;IAEM,OAAO;QACZ,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,CAAC;KAC1B;;;;;;;;;;;;;;;;IAoBM,MAAM;QAEX,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAC,MAAM,CAAC,CAAC,SAAS,CAClD,CAAC,WAAwB;YACvB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAE1B,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,EAAE;gBACpC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBAE1C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;aACjC;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;aAC5D;SACF,EACD,CAAC,KAAK;YACJ,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC3B,CACF,CAAC;KACH;IAEM,UAAU;QAEf,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM;YAC7D,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAE1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YACtC,IAAI,IAAI,CAAC,UAAU,IAAI,SAAS,EAAE;gBAChC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,CAAC;gBACzD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;aACjC;iBAAM;aACN;SACF,CAAC,CAAC;KACJ;EAMF;;YAhG+B,WAAW;YAA0B,cAAc;YAAqB,YAAY;4CAAmB,MAAM,SAAC,eAAe;;AAFhJ,cAAc;IAL1B,SAAS,CAAC;QACT,QAAQ,EAAE,eAAe;QACzB,4xBAA8C;;KAE/C,CAAC;IAGqI,WAAA,MAAM,CAAC,eAAe,CAAC,CAAA;GAFjJ,cAAc,CAkG1B;;ICjGY,cAAc,GAA3B,MAAa,cAAc;IAEzB,YAAoB,cAA8B,EAAU,QAAqB,EAAU,QAAqB,EAAU,SAAuC,EAAkC,IAAI;QAAnL,mBAAc,GAAd,cAAc,CAAgB;QAAU,aAAQ,GAAR,QAAQ,CAAa;QAAU,aAAQ,GAAR,QAAQ,CAAa;QAAU,cAAS,GAAT,SAAS,CAA8B;QAAkC,SAAI,GAAJ,IAAI,CAAA;KAAK;IAE5M,QAAQ;KAIP;IAID,MAAM;KAIL;;EACF;;YAfqC,cAAc;YAAoB,WAAW;YAAoB,WAAW;YAAqB,YAAY;4CAAmB,MAAM,SAAC,eAAe;;AAF/K,cAAc;IAL1B,SAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,YAA8C;;KAE/C,CAAC;IAGoK,WAAA,MAAM,CAAC,eAAe,CAAC,CAAA;GAFhL,cAAc,CAiB1B;AAAA;;IChBY,aAAa,GAA1B,MAAa,aAAa;IAExB,YAAoB,cAA8B,EAAU,WAAwB,EAAU,WAAwB,EAAU,SAAsC,EAAkC,IAAI;QAAxL,mBAAc,GAAd,cAAc,CAAgB;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAU,cAAS,GAAT,SAAS,CAA6B;QAAkC,SAAI,GAAJ,IAAI,CAAA;QAQ5M,SAAI,GAAG,IAAI,IAAI,EAAE,CAAC;KAR+L;IACjN,QAAQ;QACN,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;KAC3B;IAOD,MAAM;QAEJ,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAC;YAC/D,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;YACpD,OAAO;SACR;QAGD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,WAAwB;YAC/E,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAE1B,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,EAAE;gBACpC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBACxC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;aACjC;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;aAC5D;SAGF,EAAE,KAAK;YACN,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YAC/C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC3B,CAAC,CAAC;KAEJ;;EACF;;YApCqC,cAAc;YAAuB,WAAW;YAAuB,WAAW;YAAqB,YAAY;4CAAkB,MAAM,SAAC,eAAe;;AAFpL,aAAa;IALzB,SAAS,CAAC;QACT,QAAQ,EAAE,aAAa;QACvB,67CAA6C;;KAE9C,CAAC;IAGyK,WAAA,MAAM,CAAC,eAAe,CAAC,CAAA;GAFrL,aAAa,CAsCzB;AAAA;;ICtCY,cAAc,GAA3B,MAAa,cAAc;IAEzB,YAAoB,cAA8B,EAAU,QAAqB,EAAU,QAAqB,EAAU,SAAuC,EAAkC,IAAI;QAAnL,mBAAc,GAAd,cAAc,CAAgB;QAAU,aAAQ,GAAR,QAAQ,CAAa;QAAU,aAAQ,GAAR,QAAQ,CAAa;QAAU,cAAS,GAAT,SAAS,CAA8B;QAAkC,SAAI,GAAJ,IAAI,CAAA;QAOvM,SAAI,GAAG,IAAI,IAAI,CAAC;QAChB,mBAAc,GAAY,KAAK,CAAC;KAR4K;IAE5M,QAAQ;QACN,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;KAC5B;IAOD,MAAM;QAEJ,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,WAAwB;YAC7E,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAE1B,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,EAAE;gBACpC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;gBAC1C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;aACjC;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;aAC5D;SAEF,EAAE,KAAK;YACN,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YAChD,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC3B,CAAC,CAAC;KAEJ;;EACF;;YA/BqC,cAAc;YAAoB,WAAW;YAAoB,WAAW;YAAqB,YAAY;4CAAmB,MAAM,SAAC,eAAe;;AAF/K,cAAc;IAL1B,SAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,q9DAA8C;;KAE/C,CAAC;IAGoK,WAAA,MAAM,CAAC,eAAe,CAAC,CAAA;GAFhL,cAAc,CAiC1B;AAAA;;IC5BY,cAAc,GAA3B,MAAa,cAAc;IACzB,YAAoB,WAAwB,EAAU,MAAc,EAAU,WAAwB,EAAU,WAAwB,EAAS,MAAiB,EAAU,cAA8B;QAAtL,gBAAW,GAAX,WAAW,CAAa;QAAU,WAAM,GAAN,MAAM,CAAQ;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAS,WAAM,GAAN,MAAM,CAAW;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAQ1M,iBAAY,GAAG,KAAK,CAAC;QAMZ,cAAS,GAAG,IAAI,SAAS,EAAE,CAAC;KAdyK;IAE9M,QAAQ;QAEN,IAAI,CAAC,SAAS,EAAE,CAAC;KAElB;;;;;IAiBD,SAAS;QACP,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,SAAS,CAC3C,CAAC,WAAwB;YACvB,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,EAAE,CAAC;SAC7B,EACD,CAAC,KAAK;YACJ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;SAC1D,CACF,CAAC;KACH;IAED,OAAO;QACL,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAED,OAAO;QACL,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE;YAChD,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ;SAC9B,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM;YACvC,IAAI,MAAM,IAAI,SAAS,EAAE;gBACvB,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB;SACF,CAAC,CAAC;KACJ;IAED,QAAQ,CAAC,IAAU;QACjB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE;YACjD,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM;YACvC,IAAI,MAAM,IAAI,SAAS,EAAE;gBACvB,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB;SACF,CAAC,CAAC;KACJ;IAED,QAAQ,CAAC,IAAU;QACjB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE;YACjD,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,IAAI;SACX,CAAC,CAAC;QAEH,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM;YACvC,IAAI,MAAM,IAAI,SAAS,EAAE;gBACvB,IAAI,CAAC,SAAS,EAAE,CAAC;aAClB;SACF,CAAC,CAAC;KACJ;IAED,UAAU,CAAC,IAAU;QAEnB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM;YAExE,IAAI,MAAM,IAAI,KAAK,EAAC;gBAElB,IAAI,CAAC,WAAW;qBACf,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;qBACxB,SAAS,CAAC,CAAC,WAAwB;oBAClC,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,EAAE;wBACpC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;wBAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;qBAClB;yBAAM;wBACL,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;qBAC5D;iBACF,CAAC,CAAC;aAEJ;SAEF,CAAC,CAAA;KAGH;;IAED,UAAU,CAAC,IAAU;QAEnB,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM;YAExE,IAAI,MAAM,IAAI,KAAK,EAAC;gBAElB,IAAI,CAAC,WAAW;qBACf,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC;qBAC1B,SAAS,CAAC,CAAC,WAAwB;oBAClC,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,EAAE;wBACpC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;wBAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;qBAClB;yBAAM;wBACL,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;qBAC5D;iBACF,CAAC,CAAC;aAEJ;SAEF,CAAC,CAAA;KAEH;EACF;;YA5HkC,WAAW;YAAkB,MAAM;YAAuB,WAAW;YAAuB,WAAW;YAAiB,SAAS;YAA0B,cAAc;;AAcjM;IAAR,KAAK,EAAE;iDAA6B;AAf1B,cAAc;IAL1B,SAAS,CAAC;QACT,QAAQ,EAAE,WAAW;QACrB,miFAAqC;;KAEtC,CAAC;GACW,cAAc,CA6H1B;;IC1IY,iBAAiB,GAA9B,MAAa,iBAAiB;IAE5B,iBAAiB;IAEjB,QAAQ;KACP;EAEF;AAPY,iBAAiB;IAL7B,SAAS,CAAC;QACT,QAAQ,EAAE,cAAc;QACxB,iCAAwC;;KAEzC,CAAC;GACW,iBAAiB,CAO7B;;ICDY,sBAAsB,GAAnC,MAAa,sBAAsB;IAEjC,YAAoB,WAAwB,EAAU,cAA8B,EAAU,WAAwB,EAAU,WAAwB,EAAQ,MAAc;QAA1J,gBAAW,GAAX,WAAW,CAAa;QAAU,mBAAc,GAAd,cAAc,CAAgB;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAU,gBAAW,GAAX,WAAW,CAAa;QAAQ,WAAM,GAAN,MAAM,CAAQ;QAOrK,cAAS,GAAG,IAAI,SAAS,EAAE,CAAC;QAErC,iBAAY,GAAY,KAAK,CAAC;QAC9B,SAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,YAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAExB,YAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QAIxB,gBAAW,GAAY,IAAI,CAAC;KAjBuJ;IAEnL,QAAQ;KAGP;IAeH,MAAM;QAEJ,IAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YACxD,OAAO;SACR;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAEpC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAEvC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,EAAC,KAAK,CAAC,CAAC,SAAS,CAC1D,CAAC,WAAwB;YACvB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAE1B,IAAI,WAAW,CAAC,OAAO,IAAI,SAAS,EAAE;gBACpC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;gBAE7C,IAAI,IAAI,CAAC,WAAW,EAAC;oBACnB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC7B;qBAAI;oBACH,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;oBAC7B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;iBAC3B;aAGF;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;aAC5D;SACF,EACD,CAAC,KAAK;YACJ,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC1B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;SAC1D,CACF,CAAC;KACL;IAED,WAAW,CAAC,IAAU;QAEpB,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;KAE7C;EAIA;;YArEkC,WAAW;YAA0B,cAAc;YAAuB,WAAW;YAAuB,WAAW;YAAgB,MAAM;;AAOrK;IAAR,KAAK,EAAE;yDAA6B;AAT1B,sBAAsB;IALlC,SAAS,CAAC;QACT,QAAQ,EAAE,oBAAoB;QAC9B,k7FAA8C;;KAE/C,CAAC;GACW,sBAAsB,CAuElC;;ICpBY,cAAc,GAA3B,MAAa,cAAc;EAAG;AAAjB,cAAc;IAhD1B,QAAQ,CAAC;QACR,YAAY,EAAE;YACZ,cAAc;YACd,aAAa;YACb,cAAc;YACd,cAAc;YACd,aAAa;YACb,cAAc;YACd,cAAc;YACd,iBAAiB;YACjB,sBAAsB;YACtB,aAAa;YACb,iBAAiB;SAClB;QAED,eAAe,EAAE;YACf,aAAa;YACb,cAAc;YACd,aAAa;YACb,cAAc;YACd,cAAc;SACf;QAED,OAAO,EAAE;YACP,mBAAmB,CAAC,UAAU,CAAC,EAAE,4BAA4B,EAAE,OAAO,EAAE,CAAC;YACzE,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,YAAY;SACb;QAED,OAAO,EAAE;YACP,YAAY;YACZ,WAAW;YACX,YAAY;YACZ,cAAc;YACd,aAAa;YACb,cAAc;YACd,cAAc;YACd,aAAa;YACb,cAAc;YACd,cAAc;YACd,iBAAiB;YACjB,sBAAsB;YACtB,aAAa;YACb,iBAAiB;SAClB;KACF,CAAC;GACW,cAAc,CAAG;;AChE9B;;;;ACAA;;;;;;"}
|
|
1
|
+
{"version":3,"file":"tin-spa.js","sources":["ng://tin-spa/lib/services/tin-spa.service.ts","ng://tin-spa/lib/services/storage.service.ts","ng://tin-spa/lib/components/message/messageDialog.component.html","ng://tin-spa/lib/components/message/messageDialog.component.ts","ng://tin-spa/lib/services/message.service.ts","ng://tin-spa/lib/services/export.service.ts","ng://tin-spa/lib/classes/TinCore.ts","ng://tin-spa/lib/classes/Classes.ts","ng://tin-spa/lib/services/http.service.ts","ng://tin-spa/lib/services/log.service.ts","ng://tin-spa/lib/services/auth.service.ts","ng://tin-spa/lib/services/data.service.ts","ng://tin-spa/lib/services/loader.service.ts","ng://tin-spa/lib/components/loader/loader.component.html","ng://tin-spa/lib/components/loader/loader.component.ts","ng://tin-spa/lib/modules/spa-mat.module.ts","ng://tin-spa/lib/services/loader-interceptor.service.ts","ng://tin-spa/lib/components/tin-spa.component.ts","ng://tin-spa/lib/components/nav-menu/nav-menu.component.html","ng://tin-spa/lib/components/nav-menu/nav-menu.component.ts","ng://tin-spa/lib/components/timeout/timeout.component.ts","ng://tin-spa/lib/components/timeout/timeout.component.html","ng://tin-spa/lib/components/table/table.component.html","ng://tin-spa/lib/components/table/table.component.ts","ng://tin-spa/lib/components/tiles/tiles.component.html","ng://tin-spa/lib/components/tiles/tiles.component.ts","ng://tin-spa/lib/components/date/date.component.ts","ng://tin-spa/lib/components/date/date.component.html","ng://tin-spa/lib/components/text/text.component.html","ng://tin-spa/lib/components/text/text.component.ts","ng://tin-spa/lib/components/chips/chips.component.html","ng://tin-spa/lib/components/chips/chips.component.ts","ng://tin-spa/lib/components/viewer/viewerDialog.component.ts","ng://tin-spa/lib/components/viewer/viewerDialog.component.html","ng://tin-spa/lib/components/viewer/viewer.component.html","ng://tin-spa/lib/components/viewer/viewer.component.ts","ng://tin-spa/lib/components/select/select.component.html","ng://tin-spa/lib/components/select/select.component.ts","ng://tin-spa/lib/components/check/check.component.ts","ng://tin-spa/lib/components/check/check.component.html","ng://tin-spa/lib/dnd.directive.ts","ng://tin-spa/lib/components/attach/attach.component.html","ng://tin-spa/lib/components/attach/attach.component.ts","ng://tin-spa/lib/components/datetime/datetime.component.ts","ng://tin-spa/lib/components/datetime/datetime.component.html","ng://tin-spa/lib/components/money/currency-input-mask.directive.ts","ng://tin-spa/lib/components/money/money.component.html","ng://tin-spa/lib/components/money/money.component.ts","ng://tin-spa/lib/components/activity/activity.component.html","ng://tin-spa/lib/components/activity/activity.component.ts","ng://tin-spa/lib/components/html/html.component.ts","ng://tin-spa/lib/components/html/html.component.html","ng://tin-spa/lib/components/option/option.component.html","ng://tin-spa/lib/components/option/option.component.ts","ng://tin-spa/lib/components/label/label.component.html","ng://tin-spa/lib/components/label/label.component.ts","ng://tin-spa/lib/components/steps/steps.component.html","ng://tin-spa/lib/components/steps/steps.component.ts","ng://tin-spa/lib/components/filter/filter.component.ts","ng://tin-spa/lib/components/filter/filter.component.html","ng://tin-spa/lib/components/money/currency-input-mask.module.ts","ng://tin-spa/lib/tin-spa.module.ts","ng://tin-spa/lib/components/login/login.component.html","ng://tin-spa/lib/components/login/login.component.ts","ng://tin-spa/lib/components/signup/signup.component.ts","ng://tin-spa/lib/components/signup/signup.component.html","ng://tin-spa/lib/components/recover-account/recover-account.component.ts","ng://tin-spa/lib/components/recover-account/recover-account.component.html","ng://tin-spa/lib/modules/spa-index.module.ts","ng://tin-spa/lib/components/change-password/change-password.component.html","ng://tin-spa/lib/components/change-password/change-password.component.ts","ng://tin-spa/lib/components/profile/profile.component.html","ng://tin-spa/lib/components/profile/profile.component.ts","ng://tin-spa/lib/modules/spa-user.module.ts","ng://tin-spa/lib/components/settings/settings.component.html","ng://tin-spa/lib/components/settings/settings.component.ts","ng://tin-spa/lib/components/logs/logs.component.html","ng://tin-spa/lib/components/logs/logs.component.ts","ng://tin-spa/lib/components/users/users.component.html","ng://tin-spa/lib/components/users/users.component.ts","ng://tin-spa/lib/components/roles/addRoleDialog.component.html","ng://tin-spa/lib/components/roles/addRoleDialog.component.ts","ng://tin-spa/lib/components/roles/roles.component.html","ng://tin-spa/lib/components/roles/roles.component.ts","ng://tin-spa/lib/components/create-account/create-account.component.html","ng://tin-spa/lib/components/create-account/create-account.component.ts","ng://tin-spa/lib/modules/spa-admin.module.ts","ng://tin-spa/public-api.ts","ng://tin-spa/tin-spa.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TinSpaService {\r\n\r\n constructor() { }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StorageService {\r\n\r\n constructor() { }\r\n\r\n // Store the value\r\n async store(storageKey: string, value: any) {\r\n const encryptedValue = btoa(escape(JSON.stringify(value)));\r\n // const encryptedValue = JSON.stringify(value);\r\n await localStorage.setItem(storageKey, encryptedValue);\r\n }\r\n\r\n // Get the value\r\n async get(storageKey: string) {\r\n const ret = await localStorage.getItem(storageKey);\r\n return JSON.parse(unescape(atob(ret)));\r\n // return JSON.parse(ret);\r\n }\r\n\r\n // Remove\r\n async removeStorageItem(storageKey: string) {\r\n await localStorage.removeItem(storageKey);\r\n }\r\n\r\n // Clear storage\r\n async clear() {\r\n await localStorage.clear();\r\n }\r\n\r\n}\r\n","\r\n <h2 mat-dialog-title>\r\n\r\n <mat-label *ngIf=\"messageType=='confirm'\">Confirm</mat-label>\r\n <mat-label *ngIf=\"messageType=='info'\">Information</mat-label>\r\n <mat-label *ngIf=\"messageType=='error'\">Error</mat-label>\r\n\r\n </h2>\r\n\r\n <mat-dialog-content class=\"mat-typography\">\r\n\r\n\r\n <!-- Confirm -->\r\n <p *ngIf=\"messageType=='confirm'\">{{_messageDetails}}</p>\r\n\r\n\r\n <!-- Information -->\r\n <div *ngIf=\"messageType=='info'\">\r\n\r\n <h3>{{_messageSubject}}</h3>\r\n <mat-label>{{_messageDetails}}</mat-label>\r\n\r\n </div>\r\n\r\n\r\n <!-- Error -->\r\n <div *ngIf=\"messageType=='error'\">\r\n\r\n <mat-label>{{_messageDetails}}</mat-label>\r\n\r\n </div>\r\n\r\n\r\n </mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n\r\n <button id=\"btnYes\" mat-stroked-button *ngIf=\"messageType=='confirm'\" (click)=\"response('yes')\" cdkFocusInitial>Yes</button>\r\n\r\n <button id=\"btnNo\" mat-stroked-button *ngIf=\"messageType=='confirm'\" (click)=\"response('no')\" >No</button>\r\n\r\n <button id=\"btnOK\" mat-stroked-button *ngIf=\"messageType=='info' || messageType=='error'\" (click)=\"response('ok')\" cdkFocusInitial>OK</button>\r\n\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n","import { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n\r\n@Component({\r\n selector: 'lib-app-message',\r\n templateUrl: './messageDialog.component.html'\r\n})\r\n\r\nexport class messageDialog implements OnInit {\r\n\r\n constructor(private dialogRef: MatDialogRef<messageDialog>, @Inject(MAT_DIALOG_DATA) public data) { }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.messageType = this.data.type\r\n this._messageSubject = this.data.subject;\r\n this._messageDetails = this.data.details;\r\n\r\n }\r\n\r\n messageType;\r\n _messageSubject;\r\n _messageDetails;\r\n\r\n response(resp: string) {\r\n\r\n this.dialogRef.close(resp);\r\n\r\n }\r\n\r\n};\r\n\r\n\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { messageDialog } from \"../components/message/messageDialog.component\";\r\nimport { Observable, of } from 'rxjs';\r\nimport { mergeMap } from 'rxjs/operators';\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class MessageService {\r\n constructor(private snackBar: MatSnackBar, public dialog: MatDialog) { }\r\n\r\n public toast(msg: string) {\r\n this.snackBar.open(msg, \"OK\", { duration: 5000 });\r\n }\r\n\r\n public info(subject: string, details: string) {\r\n\r\n let type = \"info\";\r\n\r\n const dialogRef = this.dialog.open(messageDialog, {\r\n width: \"600px\",\r\n data: { type, subject, details },\r\n });\r\n\r\n }\r\n\r\n public error(details: string) {\r\n\r\n let type = \"error\";\r\n let subject: \"\";\r\n\r\n const dialogRef = this.dialog.open(messageDialog, {\r\n width: \"600px\",\r\n data: { type, subject, details },\r\n });\r\n\r\n }\r\n\r\n public confirm(msg: string): Observable<any> {\r\n\r\n let type = \"confirm\";\r\n let subject = \"\";\r\n let details = msg\r\n\r\n const dialogRef = this.dialog.open(messageDialog, {\r\n width: \"400px\",\r\n data: { type, subject, details },\r\n });\r\n\r\n return dialogRef.afterClosed().pipe(mergeMap((result) => {\r\n\r\n return of(result);\r\n\r\n }\r\n\r\n ));\r\n\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport * as FileSaver from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExportService {\r\n\r\n constructor() { }\r\n\r\n fileType = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\n fileExtension = '.xlsx';\r\n\r\n public exportExcel(jsonData: any[], fileName: string): void {\r\n\r\n const ws: XLSX.WorkSheet = XLSX.utils.json_to_sheet(jsonData);\r\n const wb: XLSX.WorkBook = { Sheets: { 'data': ws }, SheetNames: ['data'] };\r\n const excelBuffer: any = XLSX.write(wb, { bookType: 'xlsx', type: 'array' });\r\n this.saveExcelFile(excelBuffer, fileName);\r\n }\r\n\r\n private saveExcelFile(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], { type: this.fileType });\r\n FileSaver.saveAs(data, fileName + this.fileExtension);\r\n }\r\n}\r\n","export class Core {\r\n\r\n public static getClone(x) {\r\n return JSON.parse(JSON.stringify(x))\r\n }\r\n\r\n public static getNumber(value: string) {\r\n\r\n if (value == null || value == \"\") {\r\n return 0;\r\n }\r\n\r\n const onlyNumbers = value.replace(/[^\\d.-]/g, '');\r\n return onlyNumbers\r\n }\r\n\r\n public static getFirstDayOfMonth() {\r\n const date = new Date();\r\n return new Date(date.getFullYear(), date.getMonth(), 1);\r\n }\r\n\r\n public static emailIsValid(email) {\r\n return /\\S+@\\S+\\.\\S+/.test(email)\r\n }\r\n\r\n public static isValidUNCPath(path: string) {\r\n return /\\\\\\\\([a-zA-Z0-9_.$●-]+)\\\\([a-zA-Z0-9_.$●-]+).*/.test(path)\r\n }\r\n\r\n public static isValidDate(date) {\r\n\r\n var parsedDate = Date.parse(date);\r\n\r\n\r\n if (isNaN(date) && !isNaN(parsedDate)) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n\r\n }\r\n\r\n public static isValidEmailList(list: string) {\r\n\r\n if (list.includes(\";\")) {\r\n\r\n let emails = list.split(\";\")\r\n\r\n for (var email of emails) {\r\n if (this.emailIsValid(email) == false) {\r\n return false;\r\n }\r\n }\r\n\r\n\r\n } else {\r\n\r\n if (this.emailIsValid(list) == false) {\r\n return false;\r\n }\r\n\r\n }\r\n\r\n return true;\r\n\r\n }\r\n\r\n public static nullDate = \"01 Jan 1969\"\r\n\r\n public static isNumber(value: string | number): boolean {\r\n return ((value != null) &&\r\n (value !== '') &&\r\n !isNaN(Number(value.toString())));\r\n }\r\n\r\n public static getDiff(startDate, endDate = Date()) {\r\n\r\n var eventStartTime = new Date(startDate);\r\n var eventEndTime = new Date(endDate);\r\n var milliseconds = eventEndTime.valueOf() - eventStartTime.valueOf();\r\n\r\n function numberEnding(number: number) {\r\n\r\n if (number.toFixed() == '1') {\r\n return ''\r\n } else {\r\n return 's';\r\n }\r\n\r\n }\r\n\r\n var minutes = (milliseconds / (1000 * 60));\r\n\r\n var hours: number = (milliseconds / (1000 * 60 * 60));\r\n\r\n var days = (milliseconds / (1000 * 60 * 60 * 24));\r\n\r\n var weeks: number = (milliseconds / (1000 * 60 * 60 * 24 * 7));\r\n\r\n var months = (milliseconds / (1000 * 60 * 60 * 24 * 7 * 4));\r\n\r\n var years = (milliseconds / (1000 * 60 * 60 * 24 * 365));\r\n\r\n\r\n if (years >= 1) {\r\n\r\n return years.toFixed() + ' year' + numberEnding(years);\r\n\r\n } else if (months >= 1) {\r\n\r\n return months.toFixed() + ' month' + numberEnding(months);\r\n\r\n } else if (weeks >= 1) {\r\n\r\n return weeks.toFixed() + ' week' + numberEnding(weeks);\r\n\r\n } else if (days >= 1) {\r\n\r\n return days.toFixed() + ' day' + numberEnding(days);\r\n\r\n } else if (hours >= 1) {\r\n\r\n return hours.toFixed() + ' hour' + numberEnding(hours);\r\n\r\n } else if (minutes >= 1) {\r\n\r\n return minutes.toFixed() + ' minute' + numberEnding(minutes);\r\n\r\n } else if (milliseconds >= (-1000 * 60)) {\r\n\r\n return 'a minute';\r\n\r\n } else {\r\n\r\n return 'N/A';\r\n }\r\n\r\n }\r\n\r\n\r\n public static nowDate(NoTime: boolean = false) {\r\n\r\n if (NoTime) {\r\n return this.getFormatedDate(Date(), true);\r\n } else {\r\n return this.getFormatedDate(Date());\r\n }\r\n }\r\n\r\n public static getFormatedDate(dateString: string, NoTime: boolean = false) {\r\n\r\n let d: Date = new Date(dateString);\r\n d.setHours(d.getHours() + 2);\r\n\r\n if (NoTime == true) {\r\n return d.toISOString().split('T')[0];\r\n } else {\r\n return d.toISOString().split('.')[0];\r\n }\r\n\r\n }\r\n\r\n public static getBusinessDatesCount(startDate: string, endDate: string) {\r\n var count = 0;\r\n var _startDate = new Date(startDate);\r\n var _endDate = new Date(endDate);\r\n\r\n var curDate = _startDate;\r\n\r\n while (curDate < _endDate) {\r\n var dayOfWeek = curDate.getDay();\r\n if (!(dayOfWeek == 6 || dayOfWeek == 0)) count++;\r\n curDate.setDate(curDate.getDate() + 1);\r\n }\r\n\r\n return count;\r\n }\r\n\r\n}\r\n\r\n\r\nexport class ApiResponse {\r\n success: boolean;\r\n message: string;\r\n data;\r\n}\r\n\r\nexport class Constants {\r\n public static readonly AUTH_USER = 'a';\r\n public static readonly AUTH_NAME = 'b';\r\n public static readonly AUTH_ROLES = 'c';\r\n public static readonly AUTH_TOKEN = 'd';\r\n public static readonly AUTH_TOKEN_EXPIRE = 'e';\r\n}\r\n\r\n","import { Core } from \"./TinCore\";\r\n\r\nexport enum LogLevel {\r\n All = 0,\r\n Debug = 1,\r\n Info = 2,\r\n Warn = 3,\r\n Error = 4,\r\n Fatal = 5,\r\n Off = 6,\r\n}\r\n\r\nexport class Tile {\r\n\r\n tileName: string;\r\n tileValue: string;\r\n tileColor: string;\r\n selected: string;\r\n visible?: boolean;\r\n info?: string;\r\n}\r\n\r\nexport class Step {\r\n name: string\r\n icon: string;\r\n}\r\n\r\nexport class TableConfig {\r\n\r\n enableFilter: boolean = false;\r\n create = new TableCreate();\r\n\r\n columns: TableColumn[];\r\n actions: TableAction[];\r\n\r\n greyout = new Condition();\r\n\r\n}\r\n\r\nexport class TableCreate {\r\n enabled: boolean\r\n display: string;\r\n}\r\n\r\nexport class TableColumn {\r\n\r\n constructor() {\r\n this.name = \"default\"\r\n this.display = \"default\"\r\n this.type = TableColumnType.String\r\n\r\n }\r\n\r\n public name: string;\r\n public display: string;\r\n public type?: TableColumnType;\r\n public icons?: Icon[];\r\n public color?: Color;\r\n}\r\n\r\nexport enum TableColumnType {\r\n String, Date, DateTime, Image, Icon, TextIcon, Chip\r\n}\r\n\r\n\r\nexport class Condition {\r\n constructor() {\r\n this.field = \"\";\r\n this.operator = Operator.Equal;\r\n this.value = \"\";\r\n }\r\n field: string;\r\n operator: Operator;\r\n value: string;\r\n}\r\n\r\nexport enum Operator {\r\n Equal, Less, Greater, NotEqual\r\n}\r\n\r\n\r\n\r\nexport class Color extends Condition {\r\n name: string;\r\n}\r\n\r\nexport class Icon extends Condition {\r\n name: string;\r\n hint?: string;\r\n color?: string;\r\n}\r\n\r\n\r\nexport class TableAction {\r\n\r\n name: string;\r\n show?: boolean;\r\n icon: string;\r\n color?: string;\r\n hint?: string;\r\n\r\n disappear?: Condition;\r\n disable?: Condition;\r\n\r\n}\r\n\r\n\r\nexport class ActionResponse {\r\n name: string;\r\n value;\r\n}\r\n\r\n\r\nexport class loginConfig {\r\n\r\n constructor() {\r\n this.appName = \"\";\r\n this.selfService = false;\r\n this.logo = \"\";\r\n this.logoSize = \"normal\";\r\n }\r\n\r\n appName: string;\r\n selfService: boolean;\r\n logo: string;\r\n logoSize: string;\r\n}\r\n\r\n\r\nexport class AppConfig {\r\n constructor() {\r\n this.appName = \"App Name\";\r\n this.logo = \"\";\r\n this.logoSize = \"normal\";\r\n this.ADAuth = true;\r\n this.localAuth = true;\r\n this.selfService = false;\r\n }\r\n appName: string;\r\n logo: string;\r\n logoSize: string;\r\n ADAuth: boolean;\r\n localAuth: boolean;\r\n selfService: boolean;\r\n capItems: CapItem[];\r\n\r\n\r\n}\r\n\r\nexport class CapItem {\r\n\r\n constructor() {\r\n this.name = \"\";\r\n this.display = \"New Cap Item\";\r\n this.enabled = false;\r\n this.type = \"\";\r\n this.newLine = false;\r\n this.showMenu = true;\r\n this.ignoreSubsDisplay = false;\r\n this.link = \"\";\r\n this.icon = \"navigate_next\";\r\n\r\n }\r\n\r\n name: string;\r\n display: string;\r\n enabled: boolean;\r\n showMenu: boolean;\r\n\r\n ignoreSubsDisplay: boolean;\r\n type: string;\r\n newLine: boolean;\r\n link: string;\r\n icon: string;\r\n capSubItems: CapItem[];\r\n\r\n}\r\n\r\n\r\nexport class Account {\r\n user: User;\r\n profile: Profile;\r\n}\r\n\r\nexport class User {\r\n\r\n constructor() {\r\n\r\n\r\n this.userName = \"\";\r\n this.password = \"\";\r\n this.tries = \"0\";\r\n this.locked = \"0\";\r\n this.logged = \"0\";\r\n this.disabled = \"0\";\r\n this.changepassword = \"0\";\r\n this.dateCreated = Core.nowDate();\r\n this.dateUpdated = Core.nowDate();\r\n this.token = \"\";\r\n this.dateExpire = Core.nowDate();\r\n this.tokenExpire = Core.nowDate();\r\n this.authType = \"\";\r\n }\r\n\r\n userName:string;\r\n password: string;\r\n tries: string;\r\n locked: string;\r\n logged: string;\r\n disabled: string;\r\n changepassword: string;\r\n dateCreated: string;\r\n dateUpdated: string;\r\n dateExpire: string;\r\n token: string;\r\n tokenExpire: string;\r\n\r\n authType: string;\r\n}\r\n\r\nexport class ChangeUserPassword {\r\n\r\n constructor() {\r\n this.userName = \"\";\r\n this.currentPassword = \"\";\r\n this.newPassword = \"\";\r\n this.confirmPassword = \"\";\r\n }\r\n userName: string;\r\n currentPassword: string;\r\n newPassword: string;\r\n confirmPassword: string;\r\n}\r\n\r\nexport class Register {\r\n\r\n constructor() {\r\n this.userName = \"\";\r\n this.roleID = 1;\r\n this.firstName = \"\";\r\n this.lastName = \"\";\r\n this.email = \"\";\r\n this.authType = \"\";\r\n this.password = \"\";\r\n }\r\n\r\n userName: string;\r\n roleID: number;\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n authType: string;\r\n password: string;\r\n}\r\n\r\nexport class Profile {\r\n\r\n constructor() {\r\n this.profileID = \"\";\r\n this.userName = \"\";\r\n this.roleID = 1;\r\n this.firstName = \"\";\r\n this.lastName = \"\";\r\n this.email = \"\";\r\n this.empID = \"\";\r\n this.arID = \"0\";\r\n this.authType = \"\";\r\n this.password = \"\";\r\n this.role = new Role();\r\n }\r\n\r\n profileID: string;\r\n userName: string;\r\n roleID: number;\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n empID: string;\r\n arID: string;\r\n authType: string;\r\n password: string;\r\n role: Role\r\n}\r\n\r\n\r\nexport class Role {\r\n\r\n constructor() {\r\n this.roleID = 0;\r\n this.roleName = \"New Role\";\r\n this.cap1 = false;\r\n this.cap2 = false;\r\n this.cap3 = false;\r\n this.cap4 = false;\r\n this.cap5 = false;\r\n this.cap6 = false;\r\n this.cap7 = false;\r\n this.cap8 = false;\r\n this.cap9 = false;\r\n this.cap10 = false;\r\n this.cap11 = false;\r\n this.cap12 = false;\r\n this.cap13 = false;\r\n this.cap14 = false;\r\n this.cap15 = false;\r\n this.cap16 = false;\r\n this.cap17 = false;\r\n this.cap18 = false;\r\n this.cap19 = false;\r\n this.cap20 = false;\r\n this.cap21 = false;\r\n this.cap22 = false;\r\n this.cap23 = false;\r\n this.cap24 = false;\r\n this.cap25 = false;\r\n this.cap26 = false;\r\n this.cap27 = false;\r\n this.cap28 = false;\r\n this.cap29 = false;\r\n this.cap30 = false;\r\n this.cap31 = false;\r\n this.cap32 = false;\r\n this.cap33 = false;\r\n this.cap34 = false;\r\n this.cap35 = false;\r\n this.cap36 = false;\r\n this.cap37 = false;\r\n this.cap38 = false;\r\n this.cap39 = false;\r\n this.cap40 = false;\r\n this.cap41 = false;\r\n this.cap42 = false;\r\n this.cap43 = false;\r\n this.cap44 = false;\r\n this.cap45 = false;\r\n this.cap46 = false;\r\n this.cap47 = false;\r\n this.cap48 = false;\r\n this.cap49 = false;\r\n this.cap50 = false;\r\n this.cap51 = false;\r\n this.cap52 = false;\r\n this.cap53 = false;\r\n this.cap54 = false;\r\n this.cap55 = false;\r\n this.cap56 = false;\r\n this.cap57 = false;\r\n this.cap58 = false;\r\n this.cap59 = false;\r\n this.cap60 = false;\r\n this.cap61 = false;\r\n this.cap62 = false;\r\n this.cap63 = false;\r\n this.cap64 = false;\r\n this.cap65 = false;\r\n this.cap66 = false;\r\n this.cap67 = false;\r\n this.cap68 = false;\r\n this.cap69 = false;\r\n this.cap70 = false;\r\n this.cap71 = false;\r\n this.cap72 = false;\r\n this.cap73 = false;\r\n this.cap74 = false;\r\n this.cap75 = false;\r\n this.cap76 = false;\r\n this.cap77 = false;\r\n this.cap78 = false;\r\n this.cap79 = false;\r\n this.cap80 = false;\r\n this.cap81 = false;\r\n this.cap82 = false;\r\n this.cap83 = false;\r\n this.cap84 = false;\r\n this.cap85 = false;\r\n this.cap86 = false;\r\n this.cap87 = false;\r\n this.cap88 = false;\r\n this.cap89 = false;\r\n this.cap90 = false;\r\n this.cap91 = false;\r\n this.cap92 = false;\r\n this.cap93 = false;\r\n this.cap94 = false;\r\n this.cap95 = false;\r\n this.cap96 = false;\r\n this.cap97 = false;\r\n this.cap98 = false;\r\n this.cap99 = false;\r\n this.cap100 = false;\r\n }\r\n\r\n roleID: number;\r\n roleName: string;\r\n cap1: boolean;\r\n cap2: boolean;\r\n cap3: boolean;\r\n cap4: boolean;\r\n cap5: boolean;\r\n cap6: boolean;\r\n cap7: boolean;\r\n cap8: boolean;\r\n cap9: boolean;\r\n cap10: boolean;\r\n cap11: boolean;\r\n cap12: boolean;\r\n cap13: boolean;\r\n cap14: boolean;\r\n cap15: boolean;\r\n cap16: boolean;\r\n cap17: boolean;\r\n cap18: boolean;\r\n cap19: boolean;\r\n cap20: boolean;\r\n cap21: boolean;\r\n cap22: boolean;\r\n cap23: boolean;\r\n cap24: boolean;\r\n cap25: boolean;\r\n cap26: boolean;\r\n cap27: boolean;\r\n cap28: boolean;\r\n cap29: boolean;\r\n cap30: boolean;\r\n cap31: boolean;\r\n cap32: boolean;\r\n cap33: boolean;\r\n cap34: boolean;\r\n cap35: boolean;\r\n cap36: boolean;\r\n cap37: boolean;\r\n cap38: boolean;\r\n cap39: boolean;\r\n cap40: boolean;\r\n cap41: boolean;\r\n cap42: boolean;\r\n cap43: boolean;\r\n cap44: boolean;\r\n cap45: boolean;\r\n cap46: boolean;\r\n cap47: boolean;\r\n cap48: boolean;\r\n cap49: boolean;\r\n cap50: boolean;\r\n cap51: boolean;\r\n cap52: boolean;\r\n cap53: boolean;\r\n cap54: boolean;\r\n cap55: boolean;\r\n cap56: boolean;\r\n cap57: boolean;\r\n cap58: boolean;\r\n cap59: boolean;\r\n cap60: boolean;\r\n cap61: boolean;\r\n cap62: boolean;\r\n cap63: boolean;\r\n cap64: boolean;\r\n cap65: boolean;\r\n cap66: boolean;\r\n cap67: boolean;\r\n cap68: boolean;\r\n cap69: boolean;\r\n cap70: boolean;\r\n cap71: boolean;\r\n cap72: boolean;\r\n cap73: boolean;\r\n cap74: boolean;\r\n cap75: boolean;\r\n cap76: boolean;\r\n cap77: boolean;\r\n cap78: boolean;\r\n cap79: boolean;\r\n cap80: boolean;\r\n cap81: boolean;\r\n cap82: boolean;\r\n cap83: boolean;\r\n cap84: boolean;\r\n cap85: boolean;\r\n cap86: boolean;\r\n cap87: boolean;\r\n cap88: boolean;\r\n cap89: boolean;\r\n cap90: boolean;\r\n cap91: boolean;\r\n cap92: boolean;\r\n cap93: boolean;\r\n cap94: boolean;\r\n cap95: boolean;\r\n cap96: boolean;\r\n cap97: boolean;\r\n cap98: boolean;\r\n cap99: boolean;\r\n cap100: boolean;\r\n}\r\n","import { Injectable, Inject } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\nimport { HttpClient, HttpHeaders, HttpErrorResponse, } from \"@angular/common/http\";\r\nimport { Router } from \"@angular/router\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class HttpService {\r\n\r\n constructor(private httpClient: HttpClient, private router: Router) { }\r\n\r\n\r\n //----Set apiUrl from the data service of the project---//\r\n public apiUrl = \"https://api.solinc.co.zw/\"; //default\r\n\r\n\r\n\r\n //POST\r\n public Post(service: string, data: any): Observable<any> {\r\n return this.httpClient.post(this.apiUrl + service, data, this.httpOptions_Legacy);\r\n }\r\n\r\n //PUT\r\n public Put(service: string, data: any): Observable<any> {\r\n return this.httpClient.put(this.apiUrl + service, data, this.httpOptions_Legacy);\r\n }\r\n\r\n\r\n //POST RAW\r\n public Post_Raw(url: string, data: any): Observable<any> {\r\n\r\n return this.httpClient.post(url, data, this.httpOptions_Legacy);\r\n }\r\n\r\n //POST with file\r\n public Post_WithFile(service: string, data: any, file: File) {\r\n\r\n let formData: FormData = new FormData();\r\n\r\n if (file) {\r\n formData.append(\"uploadFile\", file, file.name);\r\n }\r\n\r\n formData.append(\"data\", JSON.stringify(data));\r\n\r\n return this.httpClient.post(this.apiUrl + service, formData, this.httpOptions_Files);\r\n }\r\n\r\n // //POST with files\r\n public Post_FormData(service: string, formData: FormData) {\r\n\r\n return this.httpClient.post(this.apiUrl + service, formData, this.httpOptions_Files);\r\n }\r\n\r\n //GET\r\n public Get(service: string): Observable<any> {\r\n return this.httpClient.get(this.apiUrl + service, this.httpOptions_Legacy);\r\n }\r\n\r\n //Get RAW\r\n public Get_Raw(url: string): Observable<any> {\r\n return this.httpClient.get(url, this.httpOptions_Legacy);\r\n }\r\n\r\n //ERROR\r\n public Error(error: HttpErrorResponse) {\r\n if (error.statusText == \"Unauthorized\") {\r\n this.router.navigate([\"login\"]);\r\n return \"Unauthorized\";\r\n } else {\r\n return \"Connection failed\";\r\n }\r\n }\r\n\r\n private httpOptions_Legacy = {\r\n headers: new HttpHeaders({\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n Authorization: \"Basic \" + btoa(\"emptyUser:emptyToken\"),\r\n }),\r\n resposeType: \"json\",\r\n };\r\n\r\n private httpOptions_Files = {\r\n headers: new HttpHeaders({\r\n Authorization: \"Basic \" + btoa(\"tnyagato:j5Toszfr@ys\"),\r\n }),\r\n resposeType: \"json\",\r\n };\r\n}\r\n","// import { Core } from 'tin-core';\r\nimport { logging } from 'protractor';\r\nimport { Injectable } from \"@angular/core\";\r\nimport { LogLevel } from '../classes/Classes';\r\nimport { Core } from '../classes/TinCore';\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class LogService {\r\n constructor() { }\r\n\r\n level: LogLevel = LogLevel.All;\r\n\r\n logToConsole: boolean = true;\r\n\r\n logToApi: boolean = false;\r\n\r\n debug(msg: string, ...optionalParams: any[]) {\r\n this.writeToLog(msg, LogLevel.Debug, optionalParams);\r\n }\r\n\r\n info(msg: string, ...optionalParams: any[]) {\r\n this.writeToLog(msg, LogLevel.Info, optionalParams);\r\n }\r\n\r\n warn(msg: string, ...optionalParams: any[]) {\r\n this.writeToLog(msg, LogLevel.Warn, optionalParams);\r\n }\r\n\r\n error(msg: string, ...optionalParams: any[]) {\r\n this.writeToLog(msg, LogLevel.Error, optionalParams);\r\n }\r\n\r\n fatal(msg: string, ...optionalParams: any[]) {\r\n this.writeToLog(msg, LogLevel.Fatal, optionalParams);\r\n }\r\n\r\n log(msg: string, ...optionalParams: any[]) {\r\n this.writeToLog(msg, LogLevel.All, optionalParams);\r\n\r\n }\r\n\r\n private writeToLog(msg: string, level: LogLevel, params: any[]) {\r\n\r\n if (this.shouldLog(level)) {\r\n\r\n // Build log string\r\n let value: string = Core.getFormatedDate(Date(), false).replace(\"T\", \" \");\r\n // value += \" - Type: \" + LogLevel[this.level];\r\n value += \" - Message: \" + msg;\r\n\r\n\r\n if (params.length) {\r\n value += \" - Extra Info: \" + this.formatParams(params);\r\n }\r\n\r\n // Log the value\r\n if (this.logToConsole) {\r\n console.log(value);\r\n }\r\n\r\n if (this.logToApi) {\r\n //Call API post\r\n }\r\n\r\n }\r\n }\r\n\r\n private formatParams(params: any[]): string {\r\n\r\n let ret: string = params.join(\",\");\r\n // Is there at least one object in the array?\r\n if (params.some((p) => typeof p == \"object\")) {\r\n ret = \"\";\r\n // Build comma-delimited string\r\n for (let item of params) {\r\n ret += JSON.stringify(item) + \",\";\r\n }\r\n }\r\n return ret;\r\n }\r\n\r\n private shouldLog(level: LogLevel): boolean {\r\n\r\n let ret: boolean = false;\r\n\r\n if (\r\n (level >= this.level && level !== LogLevel.Off) ||\r\n this.level === LogLevel.All\r\n ) {\r\n ret = true;\r\n }\r\n\r\n return ret;\r\n }\r\n}\r\n\r\n\r\n\r\n","import { MessageService } from './message.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { Router, CanActivate, ActivatedRoute } from '@angular/router';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { StorageService } from './storage.service';\r\nimport { LogService } from './log.service';\r\nimport { Role } from '../classes/Classes';\r\nimport { HttpService } from './http.service';\r\nimport { Constants } from '../classes/TinCore';\r\nimport { conditionallyCreateMapObjectLiteral } from '@angular/compiler/src/render3/view/util';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class AuthService implements CanActivate {\r\n\r\n constructor(private _route: ActivatedRoute, private storage: StorageService, public router: Router, private httpService: HttpService, private messageService: MessageService, private logService: LogService) { }\r\n\r\n //Logged in\r\n private loggedin: boolean = false;\r\n private loggedinSource = new BehaviorSubject(this.loggedin);\r\n public loggedinObserv = this.loggedinSource.asObservable();\r\n Updateloggedin(loggedin: boolean) {\r\n this.loggedinSource.next(loggedin);\r\n this.loggedin = loggedin;\r\n }\r\n\r\n //Token\r\n private token: string = \"\";\r\n public tokenSource = new BehaviorSubject(this.token);\r\n public tokenObserv = this.tokenSource.asObservable();\r\n UpdateToken(newToken: string) {\r\n this.tokenSource.next(newToken);\r\n\r\n }\r\n\r\n //TokenExpire\r\n private tokenExpire: string = \"\";\r\n public tokenExpireSource = new BehaviorSubject(this.tokenExpire);\r\n public tokenExpireObserv = this.tokenExpireSource.asObservable();\r\n UpdateTokenExpire(newTokenExpire: string) {\r\n this.tokenExpireSource.next(newTokenExpire);\r\n\r\n }\r\n\r\n //Current User\r\n public currentUser: string = \"tnyagato\";\r\n private currentUserSource = new BehaviorSubject(this.currentUser);\r\n public currentUserObserv = this.currentUserSource.asObservable();\r\n UpdateCurrentUser(newUser: string) {\r\n this.currentUserSource.next(newUser.toLocaleLowerCase());\r\n this.currentUser = newUser.toLocaleLowerCase();\r\n }\r\n\r\n //Line Manager\r\n private islineManager: boolean = false;\r\n private isLineManagerSource = new BehaviorSubject(this.islineManager);\r\n public isLineManagerObserv = this.isLineManagerSource.asObservable();\r\n UpdateIsLineManager(manager: boolean) {\r\n this.isLineManagerSource.next(manager);\r\n }\r\n\r\n //Roles\r\n private currentRole = new Role;\r\n public currentRoleSource = new BehaviorSubject(this.currentRole);\r\n public myRoleObserv = this.currentRoleSource.asObservable();\r\n UpdateRole(role) {\r\n this.currentRoleSource.next(role);\r\n }\r\n\r\n //Logged in FirstName\r\n private loggedUserSource = new BehaviorSubject(\"tnyagato\");\r\n public loggedUserFullName = this.loggedUserSource.asObservable();\r\n updateLoggedUserFullName(userName: string) {\r\n this.loggedUserSource.next(userName);\r\n }\r\n\r\n\r\n //Authorisation\r\n isAuthorised(capName: string): boolean {\r\n\r\n if (!this.currentRoleSource.value[capName]) {\r\n // this.logService.info(`authorise: ${this.currentRoleSource.value.roleName} not authorised for ${capName}`);\r\n this.router.navigate([\"home\"]);\r\n this.messageService.toast(`Unauthorised: ${capName}`);\r\n\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n\r\n }\r\n\r\n isValidToken() {\r\n\r\n let tokenExpire: Date = new Date(this.tokenExpireSource.value);\r\n let nowDate: Date = new Date();\r\n\r\n let valid: boolean = tokenExpire > nowDate;\r\n\r\n if (!valid) {\r\n\r\n this.router.navigate([\"login\"]);\r\n this.messageService.toast(`Expired Session`);\r\n }\r\n\r\n return valid\r\n }\r\n\r\n canActivate() {\r\n\r\n if (this.loggedin && this.isValidToken()) {\r\n // this.logService.info(\"authentication: logged in\");\r\n return true;\r\n }\r\n\r\n if (localStorage.getItem(Constants.AUTH_USER) === null) {\r\n // this.logService.info(\"authentication: not logged and no cache\");\r\n\r\n this.Updateloggedin(false);\r\n\r\n let url = new URL(window.location.href);\r\n let path = url.hash.replace(\"#/\",\"\");\r\n\r\n\r\n this.router.navigate([\"login\"], {\r\n relativeTo: this._route,\r\n queryParams: {redirectTo: path},\r\n queryParamsHandling: 'merge',\r\n skipLocationChange: false\r\n });\r\n\r\n return false;\r\n\r\n } else {\r\n // this.logService.info(\"authentication: not logged but allowed login\");\r\n\r\n this.Updateloggedin(true);\r\n\r\n this.storage.get(Constants.AUTH_USER).then((resp: any) => {\r\n this.UpdateCurrentUser(resp);\r\n });\r\n\r\n this.storage.get(Constants.AUTH_NAME).then((resp: any) => {\r\n this.updateLoggedUserFullName(resp);\r\n });\r\n\r\n this.storage.get(Constants.AUTH_ROLES).then((resp) => {\r\n let ret = JSON.parse(resp);\r\n\r\n this.UpdateRole(ret);\r\n });\r\n\r\n this.storage.get(Constants.AUTH_TOKEN).then((resp: any) => {\r\n this.UpdateToken(resp);\r\n });\r\n\r\n this.storage.get(Constants.AUTH_TOKEN_EXPIRE).then((resp: any) => {\r\n this.UpdateTokenExpire(resp);\r\n this.isValidToken();\r\n });\r\n\r\n return true;\r\n }\r\n }\r\n}\r\n","\r\nimport { Injectable } from '@angular/core';\r\nimport { AppConfig, CapItem, User } from '../classes/Classes';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { HttpService } from './http.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DataServiceLib {\r\n\r\n constructor(private httpService: HttpService) {\r\n\r\n this.appConfig.appName = \"App-Name\";\r\n this.appConfig.logo = \"./assets/logo.png\"\r\n this.appConfig.ADAuth = true;\r\n this.appConfig.capItems = [this.capAdmin, this.capHome];\r\n\r\n\r\n this.capHome.name = \"cap1\";\r\n this.capHome.display = \"Home\";\r\n this.capHome.link = \"home\";\r\n\r\n this.capAdmin.name = \"cap2\";\r\n this.capAdmin.display = \"Admin\";\r\n this.capAdmin.capSubItems = [this.capUsers, this.capRoles, this.capLogs, this.capSettings];\r\n\r\n this.capUsers.name = \"cap3\";\r\n this.capUsers.display = \"Users\";\r\n this.capUsers.link = \"home/admin/users\";\r\n\r\n this.capRoles.name = \"cap4\"\r\n this.capRoles.display = \"Roles\";\r\n this.capRoles.link = \"home/admin/roles\";\r\n\r\n this.capLogs.name = \"cap5\"\r\n this.capLogs.display = \"Logs\";\r\n this.capLogs.link = \"home/admin/logs\";\r\n\r\n this.capSettings.name = \"cap6\"\r\n this.capSettings.display = \"Settings\";\r\n this.capSettings.link = \"home/admin/settings\";\r\n }\r\n\r\n\r\n appConfig = new AppConfig();\r\n private appConfigSource = new BehaviorSubject(this.appConfig);\r\n public appConfigObserv = this.appConfigSource.asObservable();\r\n UpdateAppConfig(config: AppConfig) {\r\n this.appConfigSource.next(config);\r\n this.appConfig = config;\r\n }\r\n\r\n // caps: CapItem[];\r\n capHome = new CapItem;\r\n capAdmin = new CapItem;\r\n capUsers = new CapItem;\r\n capRoles = new CapItem;\r\n capLogs = new CapItem;\r\n capSettings = new CapItem;\r\n\r\n\r\n public tmpProfileuserName = \"\";\r\n\r\n\r\n //Users\r\n public GetUser() {\r\n return this.httpService.Get(\"User/all/x\");\r\n }\r\n\r\n public RegisterAccount(u) {\r\n return this.httpService.Post(\"User/register\", u);\r\n }\r\n\r\n public GetUserByID(val: string) {\r\n return this.httpService.Get(`User/id/${val}`);\r\n }\r\n\r\n public UpdateUser(profile) {\r\n return this.httpService.Post(\"User/edit\", profile);\r\n }\r\n\r\n public UnlockUser(user) {\r\n return this.httpService.Post(\"User/unlock\", user);\r\n }\r\n\r\n public LockUser(user) {\r\n return this.httpService.Post(\"User/lock\", user);\r\n }\r\n\r\n public DeleteUser(user) {\r\n return this.httpService.Post(\"User/delete\", user);\r\n }\r\n\r\n public Login(u: User) {\r\n return this.httpService.Post(\"User/login\", u);\r\n }\r\n\r\n public ChangePassword(u) {\r\n return this.httpService.Post(\"User/changepassword-self\", u);\r\n }\r\n\r\n public ChangePasswordAdmin(u) {\r\n return this.httpService.Post(\"User/changepassword-admin\", u);\r\n }\r\n\r\n public SelfReset(u: User): Observable<any> {\r\n return this.httpService.Post(\"Basic/SelfReset\", u);\r\n }\r\n\r\n\r\n //Roles\r\n\r\n public PostRole(role, action: string) {\r\n return this.httpService.Post(`Role?action=${action}`, role);\r\n }\r\n\r\n public PutRole(role) {\r\n return this.httpService.Put(\"Role\", role);\r\n }\r\n\r\n public GetRole(by: string, val: string) {\r\n return this.httpService.Get(\"Role/all/x\");\r\n }\r\n\r\n\r\n\r\n //Logs\r\n public GetLog(by: string, val: string) {\r\n return this.httpService.Get(\"Log/all/x\");\r\n }\r\n\r\n\r\n //Settings\r\n public GetSetting(by: string, val: string) {\r\n return this.httpService.Get(\"Setting/all/x\");\r\n }\r\n\r\n public UpdateSetting(setting, action: string) {\r\n return this.httpService.Post(`Setting?action=${action}`, setting);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoaderService {\r\n\r\n public isLoading = new BehaviorSubject(false);\r\n constructor() { }\r\n}\r\n","<div class=\"progress-loader\" style=\"z-index: 9999;\" [hidden]=\"!loading\">\r\n <div class=\"loading-spinner\">\r\n\r\n <img *ngIf=\"logo==''\" style=\"width: 100px;\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\"\r\n\r\n >\r\n\r\n <img *ngIf=\"logo!=''\" [src]=\"logo\" style=\"width: 100px;\" />\r\n\r\n\r\n <span id=\"loadingMessage\" class=\"loading-message\">Please wait...</span>\r\n </div>\r\n</div>\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { LoaderService } from '../../services/loader.service';\r\n\r\n@Component({\r\n selector: 'spa-loader',\r\n templateUrl: './loader.component.html',\r\n styleUrls: ['./loader.component.css']\r\n})\r\nexport class LoaderComponent implements OnInit {\r\n\r\n constructor(private loaderService: LoaderService) {\r\n\r\n this.loaderService.isLoading.subscribe((v) => {\r\n this.loading = v;\r\n });\r\n\r\n }\r\n ngOnInit() {\r\n }\r\n\r\n @Input() logo = \"\";\r\n loading: boolean;\r\n\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatNativeDateModule, MAT_DATE_LOCALE } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule, MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\r\n\r\n@NgModule({\r\n declarations: [],\r\n imports: [\r\n\r\n\r\n ],\r\n exports: [\r\n CommonModule,FormsModule, ReactiveFormsModule,\r\n MatMenuModule, MatSliderModule, MatTableModule, MatPaginatorModule,\r\n MatCheckboxModule, MatBadgeModule, MatButtonModule, MatIconModule, MatDialogModule, MatSnackBarModule,\r\n MatTabsModule, MatFormFieldModule, MatInputModule, MatCardModule, MatChipsModule, MatSelectModule,\r\n MatNativeDateModule, MatProgressSpinnerModule, MatListModule, MatAutocompleteModule, MatTooltipModule, MatSortModule,\r\n MatDatepickerModule, MatStepperModule, MatRadioModule,\r\n ],\r\n providers:[\r\n { provide: MAT_DIALOG_DEFAULT_OPTIONS, useValue: { disableClose: true, hasBackdrop: true } },\r\n { provide: MAT_DATE_LOCALE, useValue: \"en-GB\" },\r\n ]\r\n})\r\nexport class SpaMatModule { }\r\n","import { Router } from '@angular/router';\r\nimport { AuthService } from './auth.service';\r\nimport { MessageService } from './message.service';\r\nimport { Injectable } from '@angular/core';\r\nimport { HttpResponse, HttpRequest, HttpHandler, HttpEvent, HttpInterceptor, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { LoaderService } from './loader.service';\r\nimport { LogService } from './log.service';\r\n\r\n@Injectable()\r\nexport class LoaderInterceptor implements HttpInterceptor {\r\n\r\n private requests: HttpRequest<any>[] = [];\r\n\r\n constructor(private loaderService: LoaderService, private messageService: MessageService, private authService: AuthService, private router: Router, private logService: LogService) { }\r\n\r\n\r\n removeRequest(req: HttpRequest<any>) {\r\n\r\n const i = this.requests.indexOf(req);\r\n\r\n if (i >= 0) {\r\n this.requests.splice(i, 1);\r\n }\r\n\r\n this.loaderService.isLoading.next(this.requests.length > 0);\r\n }\r\n\r\n intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n\r\n\r\n let requestClone = request.clone({\r\n setHeaders: {\r\n Authorization: \"Bearer \" + this.authService.tokenSource.value\r\n }\r\n });\r\n\r\n this.requests.push(requestClone);\r\n\r\n if (this.requests.length > 1) {\r\n this.logService.info(\"Multiple connections detected > \" + this.requests.length)\r\n }\r\n\r\n this.loaderService.isLoading.next(true);\r\n\r\n return Observable.create(observer => {\r\n\r\n const subscription = next.handle(requestClone).subscribe(event => {\r\n\r\n if (event instanceof HttpResponse) {\r\n this.removeRequest(requestClone);\r\n observer.next(event);\r\n }\r\n\r\n\r\n\r\n },\r\n (error: HttpErrorResponse) => {\r\n\r\n\r\n\r\n this.removeRequest(requestClone);\r\n observer.error(error);\r\n\r\n if (error.status === 401) {\r\n this.router.navigate([\"login\"]);\r\n this.messageService.toast('Unauthorised: Please login again')\r\n }\r\n else if (error.status ===500){\r\n console.log(error.error)\r\n this.messageService.toast('System Error')\r\n }\r\n else if (error.statusText == 'Unknown Error'){\r\n this.messageService.toast('Connection Error')\r\n }\r\n else{\r\n this.messageService.toast('Error: ' + error.statusText)\r\n }\r\n\r\n },\r\n () => {\r\n this.removeRequest(requestClone);\r\n observer.complete();\r\n });\r\n\r\n\r\n // remove request from queue when cancelled\r\n return () => {\r\n this.removeRequest(requestClone);\r\n subscription.unsubscribe();\r\n };\r\n\r\n });\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-tin-spa',\r\n template: `\r\n <p>\r\n tin-spa works!\r\n </p>\r\n `,\r\n styles: []\r\n})\r\nexport class TinSpaComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","<header *ngIf=\"loggedin\">\r\n <nav class=\"toolbar navbar navbar-expand-sm navbar-toggleable-sm navbar-light border-bottom box-shadow mb-3 \" style=\"padding-right: 10px;\">\r\n <div class=\"container-fluid\" style=\"padding-right: 0px;\">\r\n <!--<a class=\"navbar-brand\" [routerLink]=\"['/']\">Orbit</a>-->\r\n\r\n <img *ngIf=\"appConfig.logo!=''\" [src]=\"appConfig.logo\" style=\"height: 50px; margin-right: 2em\" />\r\n\r\n\r\n <div style=\"font-size: 20px;\">\r\n {{appConfig.appName}}\r\n </div>\r\n\r\n\r\n <button class=\"navbar-toggler\"\r\n type=\"button\"\r\n data-toggle=\"collapse\"\r\n data-target=\".navbar-collapse\"\r\n aria-label=\"Toggle navigation\"\r\n [attr.aria-expanded]=\"isExpanded\"\r\n (click)=\"toggle()\">\r\n <span class=\"navbar-toggler-icon\"></span>\r\n </button>\r\n\r\n <div *ngIf=\"myRole\" class=\"navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse stack-top\" style=\"margin-right: 0px;\" [ngClass]=\"{ show: isExpanded }\" >\r\n\r\n <button mat-icon-button (click)=\"redirectTo('login')\"> <mat-icon>logout</mat-icon> </button>\r\n\r\n <button id=\"btnUser\" mat-button [matMenuTriggerFor]=\"profileMenu\" style=\"margin-left:2em\"><mat-icon>account_circle</mat-icon> {{loggedUserFullName}}</button>\r\n\r\n <mat-menu #profileMenu=\"matMenu\">\r\n <button id=\"btnProfile\" mat-menu-item (click)=\"redirectTo('home/user/profile')\" >Profile</button>\r\n <button id=\"btnLogOff\" mat-menu-item (click)=\"redirectTo('login')\">Log Off</button>\r\n </mat-menu>\r\n\r\n <div *ngFor=\"let item of appConfig.capItems\">\r\n\r\n <!-- Menu Item -->\r\n <button id=\"btnMenu\" *ngIf=\"myRole[item.name] && !item.capSubItems && item.showMenu\" mat-button (click)=\"redirectTo(item.link)\">{{item.display}}</button>\r\n\r\n <!-- Menu Item with Sub items ignored -->\r\n <button id=\"btnMenu\" *ngIf=\"myRole[item.name] && item.capSubItems && item.showMenu && item.ignoreSubsDisplay\" mat-button (click)=\"redirectTo(item.link)\">{{item.display}}</button>\r\n\r\n <!-- Menu Item with Sub items to display-->\r\n <button id=\"btnMenu\" *ngIf=\"myRole[item.name] && item.capSubItems && item.showMenu && !item.ignoreSubsDisplay\" mat-button [matMenuTriggerFor]=\"adminMenu\">{{item.display}}</button>\r\n\r\n\r\n <!-- Sub Menu Items -->\r\n <mat-menu #adminMenu=\"matMenu\">\r\n\r\n <div *ngFor=\"let subItem of item.capSubItems\">\r\n\r\n <button *ngIf=\"myRole[subItem.name] && subItem.showMenu\" mat-menu-item (click)=\"redirectTo(subItem.link)\">{{subItem.display}}</button>\r\n\r\n </div>\r\n\r\n </mat-menu>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n </nav>\r\n</header>\r\n","import { AppConfig } from './../../classes/Classes';\r\nimport { Component, OnInit, Input } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from '../../services/auth.service';\r\n\r\n@Component({\r\n selector: 'spa-nav-menu',\r\n templateUrl: './nav-menu.component.html',\r\n styleUrls: ['./nav-menu.component.css']\r\n})\r\nexport class NavMenuComponent {\r\n\r\n constructor(public router: Router, public authService: AuthService) { }\r\n\r\n ngOnInit() {\r\n\r\n this.authService.loggedUserFullName.subscribe(user => this.loggedUserFullName = user)\r\n this.authService.myRoleObserv.subscribe(rol => this.myRole = rol);\r\n this.authService.loggedinObserv.subscribe(obj => this.loggedin = obj)\r\n\r\n }\r\n\r\n myRole;\r\n loggedUserFullName: string;\r\n loggedin: boolean;\r\n isExpanded = false;\r\n\r\n @Input() appConfig = new AppConfig();\r\n\r\n\r\n\r\n collapse() {\r\n this.isExpanded = false;\r\n }\r\n\r\n toggle() {\r\n this.isExpanded = !this.isExpanded;\r\n }\r\n\r\n // logoff() {\r\n // // this.authService.updateloggedin(false);\r\n // // this.authService.updateRole(new Role());\r\n // this.router.navigate([\"login\"]);\r\n // // this.storageService.clear();\r\n // }\r\n\r\n redirectTo(link: string){\r\n\r\n if (link!=\"\"){\r\n this.router.navigate([link]);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n}\r\n","import { Router } from '@angular/router';\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\nimport {Idle, DEFAULT_INTERRUPTSOURCES} from '@ng-idle/core';\r\nimport {Keepalive} from '@ng-idle/keepalive';\r\nimport { AuthService } from '../../services/auth.service';\r\n\r\n@Component({\r\n selector: 'spa-timeout',\r\n templateUrl: './timeout.component.html',\r\n styleUrls: ['./timeout.component.css']\r\n})\r\nexport class TimeoutComponent implements OnInit {\r\n\r\n constructor(private idle: Idle, private keepalive: Keepalive, public authService: AuthService, private router: Router) {\r\n\r\n this.authService.loggedinObserv.subscribe(obj => {\r\n this.loggedin = obj;\r\n // if (this.loggedin){\r\n // this.startWatch();\r\n // }else{\r\n // this.stopWatch();\r\n // }\r\n\r\n })\r\n\r\n // sets an idle timeout of 5 seconds, for testing purposes.\r\n idle.setIdle(900);\r\n // sets a timeout period of 5 seconds. after 10 seconds of inactivity, the user will be considered timed out.\r\n idle.setTimeout(10);\r\n // sets the default interrupts, in this case, things like clicks, scrolls, touches to the document\r\n idle.setInterrupts(DEFAULT_INTERRUPTSOURCES);\r\n\r\n\r\n idle.onIdleStart.subscribe(() => {\r\n this.idleState = 'You\\'ve gone idle!';\r\n });\r\n\r\n idle.onIdleEnd.subscribe(() => {\r\n this.idleState = 'No longer idle.';\r\n this.isWarning = false;\r\n });\r\n\r\n idle.onTimeoutWarning.subscribe((countdown) => {\r\n this.idleState = 'You will be signed out in ' + countdown + ' seconds!';\r\n\r\n if (this.loggedin){\r\n this.isWarning = true;\r\n }\r\n\r\n });\r\n\r\n idle.onTimeout.subscribe(() => {\r\n this.idleState = 'Timed out!';\r\n this.timedOut = true;\r\n\r\n //action\r\n this.stopWatch();\r\n });\r\n\r\n\r\n\r\n\r\n\r\n // sets the ping interval to 15 seconds\r\n keepalive.interval(15);\r\n\r\n keepalive.onPing.subscribe(() => {\r\n this.lastPing = new Date();\r\n });\r\n\r\n this.startWatch();\r\n }\r\n\r\n loggedin = false;\r\n idleState = 'Not started.';\r\n timedOut = false;\r\n lastPing?: Date = null;\r\n isWarning = false;\r\n\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n startWatch() {\r\n this.idle.watch();\r\n this.idleState = 'Started.';\r\n this.timedOut = false;\r\n this.isWarning = false;\r\n }\r\n\r\n stopWatch(){\r\n this.idle.stop();\r\n this.isWarning = false;\r\n this.router.navigate(['login']);\r\n }\r\n\r\n using(){\r\n //remove message and continue\r\n this.isWarning = false;\r\n }\r\n\r\n\r\n\r\n}\r\n","\r\n<div class=\"loading-spinner\" [hidden]=\"!isWarning\" >\r\n\r\n <div style=\"width: 500px; text-align: center;\">\r\n\r\n\r\n\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <img style=\"width: 100px;\"\r\n src=\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==\">\r\n </div>\r\n </div>\r\n\r\n <mat-card class=\"mat-elevation-z3\" >\r\n\r\n <mat-card-header>\r\n\r\n <h5>Are you still there ?</h5>\r\n\r\n </mat-card-header>\r\n\r\n <mat-card-content>\r\n\r\n <br>\r\n <span>{{idleState}}</span>\r\n\r\n <br>\r\n\r\n </mat-card-content>\r\n\r\n <mat-card-actions>\r\n\r\n <div class=\"row justify-content-around\">\r\n\r\n <div class=\"col-2\">\r\n <button style=\"width: 100px;\" mat-stroked-button color=\"primary\" (click)=\"using()\">Yes</button>\r\n </div>\r\n\r\n <div class=\"col-4\">\r\n <button style=\"width: 100px;\" mat-stroked-button color=\"primary\" (click)=\"stopWatch()\">No</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </mat-card-actions>\r\n\r\n </mat-card>\r\n\r\n\r\n</div>\r\n\r\n</div>\r\n","<div >\r\n\r\n<div *ngIf=\"config.create.enabled || config.enableFilter\" class=\"row justify-content-between\" style=\"padding-bottom: 10px\">\r\n <div class=\"col\">\r\n<button *ngIf=\"config.create\" [disabled]=\"!config.create.enabled\" mat-raised-button color=\"primary\" (click)=\"create()\">{{config.create.display}}</button>\r\n</div>\r\n <div *ngIf=\"config.enableFilter\" class=\"col d-flex justify-content-end\">\r\n<mat-form-field style=\"font-size:12px;margin-right: 5px;\">\r\n<mat-label>Filter</mat-label>\r\n<input matInput [(ngModel)]=\"_filterText\" (keyup)=\"applyFilter($event.target.value)\" placeholder=\"Enter Filter text\" autocomplete=\"off\">\r\n</mat-form-field>\r\n<button mat-mini-fab color=\"primary\" (click)=\"load()\" style=\"margin-top:5px\" matTooltip=\"refresh data\" matTooltipPosition=\"right\"><mat-icon class=\"refreshIcon\">refresh</mat-icon></button>\r\n</div>\r\n</div>\r\n\r\n<div class=\"mat-elevation-z8\" *ngIf=\"data\">\r\n\r\n <table mat-table [dataSource]=\"data\">\r\n\r\n <ng-container *ngFor=\"let col of config.columns; let i = index\"\r\n\r\n [matColumnDef]=\"col.name\">\r\n <th mat-header-cell *matHeaderCellDef> {{col.display}} </th>\r\n <td mat-cell *matCellDef=\"let row\">\r\n\r\n <!-- String -->\r\n <div *ngIf=\"(col.type==colType.String || col.type == null) && col.color == null\"> {{row[col.name]}}</div>\r\n\r\n <div [ngStyle]=\"{'color':col.color.name}\"\r\n *ngIf=\"(col.type==colType.String || col.type == null) && col.color != null && test(row[col.color.field], col.color.operator, col.color.value )\" >\r\n {{row[col.name]}}\r\n </div>\r\n\r\n <div\r\n *ngIf=\"(col.type==colType.String || col.type == null) && col.color != null && !test(row[col.color.field], col.color.operator, col.color.value )\" >\r\n {{row[col.name]}}\r\n </div>\r\n\r\n <!-- <div [ngStyle]=\"{'color':col.color.name}\"\r\n *ngIf=\"(col.type==colType.String || col.type == null) && col.color != null &&\r\n col.color.operator==op.Equal && row[col.color.field]==col.color.value\" >\r\n {{row[col.name]}}\r\n </div>\r\n\r\n <div [ngStyle]=\"{'color':col.color.name}\"\r\n *ngIf=\"(col.type==colType.String || col.type == null) && col.color != null &&\r\n col.color.operator==op.Greater && row[col.color.field]>col.color.value\" >\r\n {{row[col.name]}}\r\n </div>\r\n\r\n <div [ngStyle]=\"{'color':col.color.name}\"\r\n *ngIf=\"(col.type==colType.String || col.type == null) && col.color != null &&\r\n col.color.operator==op.Less && row[col.color.field]<col.color.value\" >\r\n {{row[col.name]}}\r\n </div>\r\n\r\n <div [ngStyle]=\"{'color':col.color.name}\"\r\n *ngIf=\"(col.type==colType.String || col.type == null) && col.color != null &&\r\n col.color.operator==op.NotEqual && row[col.color.field]!=col.color.value\" >\r\n {{row[col.name]}}\r\n </div> -->\r\n\r\n\r\n <!-- Date -->\r\n <div *ngIf=\"col.type==colType.Date\"> {{row[col.name] | date:'dd/MM/yyyy'}}</div>\r\n\r\n\r\n <!-- DateTime -->\r\n <div *ngIf=\"col.type==colType.DateTime\"> {{row[col.name] | date:'dd/MM/yyyy HH:mm'}}</div>\r\n\r\n\r\n <ng-container *ngFor=\"let icon of col.icons;\">\r\n <!-- <mat-icon *ngIf=\"col.type==colType.Icon && icon.operator==op.Equal && row[icon.field]==icon.value\"\r\n [ngStyle]=\"{'color':icon.color}\"\r\n [matTooltip]=\"icon.hint\" matTooltipPosition=\"above\">\r\n {{icon.name}}\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf=\"col.type==colType.Icon && icon.operator==op.Greater && row[icon.field]>icon.value\"\r\n [ngStyle]=\"{'color':icon.color}\"\r\n [matTooltip]=\"icon.hint\" matTooltipPosition=\"above\">\r\n {{icon.name}}\r\n </mat-icon>\r\n\r\n <mat-icon *ngIf=\"col.type==colType.Icon && icon.operator==op.Less && row[icon.field]<icon.value\"\r\n [ngStyle]=\"{'color':icon.color}\"\r\n [matTooltip]=\"icon.hint\" matTooltipPosition=\"above\">\r\n {{icon.name}}\r\n </mat-icon>\r\n <mat-icon *ngIf=\"col.type==colType.Icon && icon.operator==op.NotEqual && row[icon.field]!=icon.value\"\r\n [ngStyle]=\"{'color':icon.color}\"\r\n [matTooltip]=\"icon.hint\" matTooltipPosition=\"above\">\r\n {{icon.name}}\r\n </mat-icon> -->\r\n\r\n <mat-icon *ngIf=\"col.type==colType.Icon && test(row[icon.field],icon.operator,icon.value)\"\r\n [ngStyle]=\"{'color':icon.color}\"\r\n [matTooltip]=\"icon.hint\" matTooltipPosition=\"above\">\r\n {{icon.name}}\r\n </mat-icon>\r\n\r\n </ng-container>\r\n\r\n </td>\r\n\r\n </ng-container>\r\n\r\n\r\n\r\n\r\n <ng-container matColumnDef=\"Action\">\r\n\r\n <th mat-header-cell *matHeaderCellDef> Action </th>\r\n <td mat-cell *matCellDef=\"let row\" [style]=\"styleString+';padding-right: 0px;'\">\r\n\r\n <ng-container *ngFor=\"let act of config.actions\">\r\n\r\n <button *ngIf=\" (act.disappear && (row[act.disappear.field] != act.disappear.value)) || !act.disappear\" mat-mini-fab\r\n\r\n [disabled]=\"(act.disable && (row[act.disable.field] == act.disable.value))\"\r\n [color]=\"act.color==null? 'primary' : act.color\"\r\n [matTooltip]=\"act.hint\" matTooltipPosition=\"above\"\r\n (click)=\"do(act.name,row)\" style=\"margin-right:5px\">\r\n <mat-icon>{{act.icon}}</mat-icon>\r\n\r\n </button>\r\n\r\n </ng-container>\r\n\r\n </td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" [ngClass]=\"{'make-gray': row[config.greyout.field]==config.greyout.value}\"></tr>\r\n\r\n </table>\r\n</div>\r\n<mat-paginator #tablePaginator [pageSizeOptions]=\"[10, 50, 100]\" showFirstLastButtons></mat-paginator>\r\n</div>\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { ActionResponse, Operator, TableColumnType, TableConfig } from '../../classes/Classes';\r\n\r\n@Component({\r\n selector: 'spa-table',\r\n templateUrl: './table.component.html',\r\n styleUrls: ['./table.component.css']\r\n})\r\nexport class TableComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n\r\n this.config.columns.forEach(element => {\r\n this.displayedColumns.push(element.name);\r\n });\r\n\r\n this.displayedColumns.push(\"Action\")\r\n\r\n this.styleString = `width: ${50 * this.config.actions.length}px`;\r\n\r\n }\r\n\r\n ngOnChanges(){\r\n this.data = new MatTableDataSource(this.data);\r\n this.data.paginator = this.tablePaginator;\r\n this.applyFilter(this._filterText);\r\n }\r\n\r\n\r\n @Input() config: TableConfig;\r\n @Input() data: any;\r\n @Output() dataChange = new EventEmitter();\r\n @Output() buttonClick = new EventEmitter();\r\n @Output() loadClick = new EventEmitter();\r\n @Output() createClick = new EventEmitter();\r\n\r\n @ViewChild('tablePaginator') tablePaginator: MatPaginator;\r\n\r\n colType = TableColumnType\r\n op = Operator\r\n\r\n displayedColumns: string[] = [];\r\n\r\n styleString: string;\r\n\r\n _filterText = \"\";\r\n applyFilter(filterValue: string) {\r\n this.data.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n do(name, item) {\r\n\r\n let resp = new ActionResponse();\r\n resp.name = name;\r\n resp.value = item;\r\n this.buttonClick.emit(resp);\r\n }\r\n\r\n\r\n create(){\r\n this.createClick.emit();\r\n }\r\n\r\n load(){\r\n this.loadClick.emit();\r\n }\r\n\r\n test(a:any, op: Operator, b: any){\r\n\r\n if (op == Operator.Equal){\r\n if (a == b){\r\n return true;\r\n }else{\r\n return false;\r\n }\r\n\r\n }\r\n\r\n if (op == Operator.Greater) {\r\n if (a > b) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n\r\n }\r\n\r\n if (op == Operator.Less) {\r\n if (a < b) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n\r\n }\r\n\r\n if (op == Operator.NotEqual) {\r\n if (a != b) {\r\n return true;\r\n } else {\r\n return false;\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"," <div class=\"row align-items-center\">\r\n\r\n <!-- <div class=\"col\" *ngFor=\"let row of tiles\" >\r\n\r\n <mat-card *ngIf=\"row.visible\">\r\n <div class=\"row d-flex justify-content-center\">\r\n\r\n <mat-label style=\"font-size:30px;font-weight:bold\" [ngStyle]=\"{'color':row.tileColor}\">{{row.tileValue}}</mat-label>\r\n\r\n </div>\r\n\r\n <div class=\"row d-flex justify-content-center\">\r\n\r\n <mat-label [ngStyle]=\"{'color':row.selected == true ? 'darkorange' : 'black' }\" style=\"font-size:12px;padding-left:5px;padding-right:5px\">{{row.tileName}}</mat-label>\r\n <mat-icon style=\"font-size: 17px; color:steelblue;\">info</mat-icon>\r\n\r\n </div>\r\n </mat-card>\r\n\r\n </div> -->\r\n\r\n <ng-container *ngFor=\"let row of tiles\">\r\n\r\n <mat-card class=\"col\" style=\"margin-left: 10px;margin-right: 10px\" *ngIf=\"row.visible\" (click)=\"clicked(row)\">\r\n\r\n <div class=\"row d-flex justify-content-center\">\r\n\r\n <mat-label style=\"font-weight:bold\" [ngStyle]=\"{'color':row.tileColor,'font-size':row.tileName == selected ? '35px' : '30px' }\">{{row.tileValue}}</mat-label>\r\n\r\n </div>\r\n\r\n <div class=\"row d-flex justify-content-center row align-items-center\">\r\n\r\n <mat-label [ngStyle]=\"{'font-size':row.tileName == selected ? '18px' : '12px' }\" style=\"padding-left:5px;padding-right:5px\">{{row.tileName}}</mat-label>\r\n <mat-icon [matTooltip]=\"row.info\" matTooltipPosition=\"above\" [ngStyle]=\"{'font-size':row.tileName == selected ? '20px' : '17px' }\" style=\" color:steelblue;\">info</mat-icon>\r\n\r\n </div>\r\n\r\n </mat-card>\r\n\r\n\r\n </ng-container>\r\n\r\n </div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Tile } from '../../classes/Classes';\r\n\r\n\r\n@Component({\r\n selector: 'spa-tiles',\r\n templateUrl: './tiles.component.html',\r\n styleUrls: ['./tiles.component.css']\r\n})\r\nexport class TilesComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() tiles: Tile[];\r\n\r\n @Input() clickable: boolean = false;\r\n @Output() tileClick = new EventEmitter();\r\n\r\n selected: string = \"\";\r\n\r\n clicked(v: Tile){\r\n\r\n if(!this.clickable) return;\r\n\r\n\r\n if(this.selected == v.tileName){\r\n this.tileClick.emit(\"\");\r\n this.selected = \"\";\r\n }else{\r\n this.tileClick.emit(v.tileName);\r\n this.selected = v.tileName;\r\n }\r\n\r\n\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'spa-date',\r\n templateUrl: './date.component.html',\r\n styleUrls: ['./date.component.css']\r\n})\r\nexport class DateComponent implements OnInit {\r\n\r\n constructor() {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() date = new FormControl(new Date());\r\n @Input() display = \"\";\r\n @Input() readonly = false;\r\n\r\n currentYear = new Date().getFullYear();\r\n @Input() min = new FormControl(new Date(this.currentYear - 50, 0, 1));\r\n @Input() max = new FormControl(new Date(this.currentYear + 50, 0, 1));\r\n\r\n // @Output() dateChange = new EventEmitter();\r\n\r\n\r\n // minDate: Date = new Date(this.currentYear, 2, 2);\r\n // maxDate: Date = new Date(this.currentYear, 2, 10);\r\n\r\n\r\n // onChangeEvent(d){\r\n // // this.dateChange.emit(d);\r\n // }\r\n\r\n @Output() dateChange = new EventEmitter();\r\n\r\n onChangeEvent() {\r\n this.dateChange.emit();\r\n }\r\n\r\n}\r\n","\r\n<mat-form-field style=\"width:150px;margin-right:20px\">\r\n<input [formControl]=\"date\" [min]=\"min.value\" [max]=\"max.value\" matInput [matDatepicker]=\"picker_date\" [placeholder]=\"display\" (dateInput)=\"onChangeEvent()\" [readonly]=\"true\" [disabled]=\"readonly\">\r\n<mat-datepicker-toggle matSuffix [for]=\"picker_date\"></mat-datepicker-toggle>\r\n<mat-datepicker #picker_date></mat-datepicker>\r\n</mat-form-field>\r\n","<mat-form-field *ngIf=\"rows == '' && options.length==0\" hideRequiredMarker=\"true\" [hintLabel]=\"hint\" style=\"padding-right: 20px;\" [ngStyle]=\"{'width':width}\" >\r\n<mat-label *ngIf=\"format=='text'\">{{display}}</mat-label>\r\n<mat-label *ngIf=\"format=='date'\">{{display | date:'dd/MM/yyyy'}}</mat-label>\r\n<!-- <mat-label *ngIf=\"format=='datetime'\">{{display | date:'dd/MM/yyyy HH:mm'}}</mat-label> -->\r\n<input matInput autocomplete=\"off\" [(ngModel)]=\"value\" (change)=\"changed()\" (blur)=\"leaved()\" (keyup.enter)=\"enterPressed()\" [type]=\"type\" [placeholder]=\"placeholder\" [formControl]=\"control\" [required]=\"required\" [readonly]=\"readonly\"/>\r\n<mat-error *ngIf=\"control.invalid\">{{validate()}}</mat-error>\r\n</mat-form-field>\r\n\r\n\r\n<!-- TextArea copy - Only change input to textarea and change ngif to not -->\r\n\r\n<mat-form-field *ngIf=\"rows != '' && options.length==0\" hideRequiredMarker=\"true\" [hintLabel]=\"hint\" style=\"padding-right: 20px;\" [ngStyle]=\"{'width':width}\">\r\n<mat-label>{{display}}</mat-label>\r\n<textarea matInput autocomplete=\"off\" [rows]=\"rows\" [(ngModel)]=\"value\" (change)=\"changed()\" (keyup.enter)=\"enterPressed()\" [placeholder]=\"placeholder\" [formControl]=\"control\" [required]=\"required\" [readonly]=\"readonly\"></textarea>\r\n<mat-error *ngIf=\"control.invalid\">{{validate()}}</mat-error>\r\n</mat-form-field>\r\n\r\n\r\n\r\n<!-- Work in progress cant bind to value -->\r\n\r\n <!-- <mat-form-field *ngIf=\"options.length !=0\" hideRequiredMarker=\"true\" [hintLabel]=\"hint\" style=\"padding-right: 20px;\" [ngStyle]=\"{'width':width}\">\r\n <input type=\"text\" autocomplete=\"off\" [placeholder]=\"display\" (change)=\"changed2()\" matInput [formControl]=\"myControl\" [matAutocomplete]=\"auto\" [readonly]=\"readonly\">\r\n <mat-autocomplete #auto=\"matAutocomplete\">\r\n <mat-option *ngFor=\"let row of filteredOptions | async\" [value]=\"row[optionValue]\">\r\n {{row[optionDisplay]}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n</mat-form-field> -->\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { map, startWith } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'spa-text',\r\n templateUrl: './text.component.html',\r\n styleUrls: ['./text.component.css']\r\n})\r\nexport class TextComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n\r\n if(this.options.length > 0){\r\n this.initFilter();\r\n }\r\n\r\n if (this.placeholder == \"\") {\r\n this.placeholder = \"Enter \" + this.display;\r\n }\r\n\r\n }\r\n\r\n ngAfterViewInit(){\r\n\r\n if (this.readonly) {\r\n this.control.setValidators(null);\r\n this.control.updateValueAndValidity();\r\n }\r\n if (!this.required && !this.readonly){\r\n\r\n this.control.setValidators([Validators.minLength(this.min), Validators.maxLength(this.max), Validators.pattern(this.regex)]);\r\n this.control.updateValueAndValidity();\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n // options: FormGroup;\r\n hideRequiredControl = new FormControl(true);\r\n\r\n @Input() readonly = false;\r\n @Input() hint = \"\";\r\n @Input() display = \"\";\r\n @Input() placeholder = \"\";\r\n @Input() value = \"\";\r\n @Output() valueChange = new EventEmitter();\r\n @Input() format = \"text\";\r\n @Input() type = \"\";\r\n\r\n @Output() leave = new EventEmitter();\r\n @Output() enterPress = new EventEmitter();\r\n\r\n @Input() rows = \"\";\r\n @Input() width = \"100%\"\r\n\r\n\r\n //Autocomplete items\r\n @Input() options: any = [];\r\n @Input() optionValue = \"\";\r\n @Input() optionDisplay = \"\";\r\n\r\n myControl = new FormControl();\r\n filteredOptions: Observable<string[]>;\r\n\r\n private initFilter() {\r\n this.filteredOptions = this.myControl.valueChanges.pipe(\r\n startWith(\"\"),\r\n map((value) => this._filter(value))\r\n );\r\n }\r\n\r\n private _filter(value: string): string[] {\r\n const filterValue = value.toLowerCase();\r\n\r\n return this.options.filter((option) => option[`${this.optionDisplay}`].toLowerCase().includes(filterValue));\r\n }\r\n\r\n\r\n\r\n\r\n\r\n //validations\r\n @Input() required = true;\r\n @Input() min = 0;\r\n @Input() max = 9000000000000000; //Math.max\r\n @Input() regex = \"\" //\"[a-zA-Z ]*\" //\"/\\S+@\\S+\\.\\S+/\";\r\n\r\n changed(){\r\n\r\n // if (this.options.length > 0) {\r\n // this.value = this.myControl.value;\r\n // }\r\n\r\n this.valueChange.emit(this.value);\r\n\r\n }\r\n\r\n changed2() {\r\n\r\n // if (this.options.length > 0) {\r\n // this.value = this.myControl.value;\r\n // }\r\n\r\n this.valueChange.emit(this.myControl.value);\r\n\r\n }\r\n\r\n leaved(){\r\n this.leave.emit();\r\n }\r\n\r\n enterPressed() {\r\n this.enterPress.emit();\r\n }\r\n\r\n control = new FormControl( this.value, [Validators.required, Validators.minLength(this.min), Validators.maxLength(this.max), Validators.pattern(this.regex) ]);\r\n\r\n validate() : string{\r\n\r\n\r\n if ((this.required || this.min > 0) && this.control.hasError('required') ){\r\n return `Required`;\r\n }\r\n\r\n if (this.control.hasError('minlength') ){\r\n return `Minimun length is ${this.min}`;\r\n }\r\n\r\n if (this.control.hasError('maxlength')) {\r\n return `Maximum length is ${this.max}`;\r\n }\r\n\r\n if (this.control.hasError('pattern')) {\r\n return `Invalid Input`;\r\n }\r\n\r\n\r\n // if (this.regex != \"\"){\r\n\r\n // let r = new RegExp(this.regex, \"g\");\r\n\r\n // if (!r.test(this.value)){\r\n // this.valid = false;\r\n // this.errorMessage = \"Invalid input\";\r\n // return this.errorMessage;\r\n // }\r\n // }\r\n\r\n return \"\";\r\n }\r\n\r\n}\r\n","\r\n\r\n\r\n<div class=\"row mt-1\" style=\"margin-left: 1em;\">\r\n <mat-chip-list #chipList >\r\n <mat-chip *ngFor=\"let chip of chips let i = index\" selectable [removable]=\"removable\" style=\"font-size: 12px;\" [ngStyle]=\"{'padding-right': removable ? '5px':'12px'}\" (click)=\"clicked(chip)\" >\r\n <mat-icon *ngIf=\"icon != ''\" color=\"primary\" style=\"font-size: 22px;\">{{icon}}</mat-icon>\r\n\r\n {{chip}}\r\n\r\n <mat-icon *ngIf=\"removable\" style=\"font-size: 20px; margin-left: 5px;margin-top: 3px;margin-right: 0px; color: grey;\" (click)=\"removed(chip)\">cancel</mat-icon>\r\n </mat-chip>\r\n </mat-chip-list>\r\n</div>\r\n\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MessageService } from '../../services/message.service';\r\n@Component({\r\n selector: 'spa-chips',\r\n templateUrl: './chips.component.html',\r\n styleUrls: ['./chips.component.css']\r\n})\r\nexport class ChipsComponent implements OnInit {\r\n\r\n constructor(private messageService: MessageService) { }\r\n\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n\r\n @Input() icon = \"\";\r\n @Input() removable = false;\r\n @Input() addable = false;\r\n\r\n\r\n\r\n @Input() chips: string[];\r\n // @Output() chipClick = new EventEmitter();\r\n\r\n @Output() click = new EventEmitter();\r\n\r\n @Output() remove = new EventEmitter();\r\n\r\n clicked(chip: string) {\r\n\r\n if (typeof chip != 'string') {\r\n return;\r\n }\r\n\r\n if (chip) {\r\n this.click.emit(chip);\r\n }\r\n }\r\n\r\n\r\n removed(chip) {\r\n\r\n // const index = this.chips.indexOf(chip);\r\n\r\n // if (index >= 0) {\r\n // this.chips.splice(index, 1);\r\n // }\r\n\r\n this.messageService.confirm(`Remove ${chip} ?`).subscribe((result) => {\r\n if (result == \"yes\") {\r\n\r\n this.remove.emit(chip);\r\n\r\n };\r\n });\r\n\r\n }\r\n\r\n}\r\n\r\n","//-------------------------------------------EDIT\r\n\r\nimport { Component, OnInit, Inject } from '@angular/core';\r\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { HttpService } from '../../services/http.service';\r\n// import { HttpService } from 'tin-core';\r\n\r\n@Component({\r\n selector: 'app-editRequest',\r\n templateUrl: './viewerDialog.component.html',\r\n styleUrls: ['./viewer.component.css']\r\n})\r\nexport class viewerDialog implements OnInit {\r\n\r\n constructor(private httpService: HttpService, @Inject(MAT_DIALOG_DATA) public data) { }\r\n\r\n ngOnInit() {\r\n\r\n this.fileNames = this.data.fileNames;\r\n this.path = this.data.path;\r\n this.fileName = this.data.fileName;\r\n this.currIndex = this.data.fileNames.indexOf(this.fileName);\r\n this.setURL();\r\n\r\n }\r\n\r\n isProcessing: boolean = false;\r\n\r\n path: string;\r\n fileNames = new Array();\r\n fileName: string;\r\n currIndex = 0;\r\n\r\n currentFileUrl = \"\";\r\n\r\n\r\n previous() {\r\n\r\n if (this.fileNames.length == 0) {\r\n return;\r\n }\r\n\r\n if (this.currIndex -1 >= 0)\r\n {\r\n this.currIndex = this.currIndex - 1;\r\n }\r\n else if (this.currIndex == 0)\r\n {\r\n this.currIndex = this.fileNames.length -1;\r\n }\r\n\r\n this.setURL();\r\n\r\n }\r\n\r\n next() {\r\n\r\n if (this.fileNames.length == 0){\r\n return;\r\n }\r\n\r\n if (this.currIndex +1 < this.fileNames.length)\r\n {\r\n this.currIndex = this.currIndex + 1;\r\n }\r\n else if (this.currIndex +1 > this.fileNames.length -1)\r\n {\r\n this.currIndex = 0;\r\n }\r\n\r\n this.setURL();\r\n\r\n }\r\n\r\n imageDoc = false;\r\n setURL() {\r\n // this.currentFileUrl = this.httpService.apiUrl.replace(\"/api/\", \"/files/\") + '' + \"/\" + this.files[this.currIndex];\r\n\r\n this.currentFileUrl = `${this.httpService.apiUrl.replace(\"/api/\", \"/\")}${this.path.replace(\"//\", \"/\")}/${this.fileNames[this.currIndex]}` ;\r\n\r\n if (this.currentFileUrl.toLocaleLowerCase().endsWith(\".pdf\") || this.currentFileUrl.toLocaleLowerCase().endsWith(\".jpg\") || this.currentFileUrl.toLocaleLowerCase().endsWith(\".jpeg\")){\r\n this.imageDoc = true;\r\n }else{\r\n this.imageDoc = false\r\n window.open(this.currentFileUrl, '_blank');\r\n\r\n }\r\n\r\n }\r\n\r\n change(fileName){\r\n\r\n this.currIndex = this.fileNames.indexOf(fileName);\r\n this.setURL();\r\n }\r\n\r\n}\r\n","\r\n\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n <div class=\"row\">\r\n\r\n <div class=\"col\">\r\n <ngx-doc-viewer *ngIf=\"imageDoc\"\r\n [url]=\"currentFileUrl\"\r\n viewer=\"url\"\r\n style=\"width:100%;height:60vh;\">\r\n </ngx-doc-viewer>\r\n\r\n <div *ngIf=\"!imageDoc\" class=\"d-flex justify-content-center row align-items-center\" style=\"height:60vh;\">\r\n\r\n This file type will be downloaded\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"col-3\">\r\n <spa-chips [chips]=\"fileNames\" display=\"Documents\" icon=\"description\" (click)=\"change($event)\"></spa-chips>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n<button mat-button [disabled]=\"currIndex == 0\" (click)=\"previous()\" cdkFocusInitial>Previous</button>\r\n<button mat-button [disabled]=\"currIndex+1 == fileNames.length\" (click)=\"next()\" cdkFocusInitial>Next</button>\r\n<button mat-button mat-dialog-close>Cancel</button>\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n","<div class=\"tin-input-row mt-3\" *ngIf=\"title != ''\">\r\n <mat-label style=\"font-size: 20px; font-weight: 300\" > {{title}}</mat-label >\r\n</div>\r\n\r\n<spa-chips [chips]=\"fileNames\" [title]=\"title\" [removable]=\"removable\" icon=\"description\" (click)=\"viewDocs($event)\" (remove)=\"removed($event)\"></spa-chips>\r\n\r\n\r\n\r\n<div *ngIf=\"!fileNames\" class=\"d-flex justify-content-center row align-items-center\" style=\"max-height:200px\">\r\n\r\n No {{title.toLowerCase()}}\r\n\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\r\nimport { viewerDialog } from './viewerDialog.component';\r\n\r\n@Component({\r\n selector: 'spa-viewer',\r\n templateUrl: './viewer.component.html',\r\n styleUrls: ['./viewer.component.css']\r\n})\r\nexport class ViewerComponent implements OnInit {\r\n\r\n constructor(public dialog: MatDialog) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n\r\n @Input() dir = \"\";\r\n @Input() folderName=\"\";\r\n @Input() fileNames = new Array()\r\n @Input() removable = false;\r\n @Output() remove = new EventEmitter();\r\n @Input() display = \"Documents\";\r\n @Input() title = \"Documents\";\r\n\r\n // fileList: string[];\r\n\r\n\r\n viewDocs(fileName: string) {\r\n\r\n if (typeof fileName != 'string') {\r\n return;\r\n }\r\n\r\n\r\n\r\n const dialogRef = this.dialog.open(viewerDialog, {\r\n minWidth: '1500px',\r\n maxWidth: '80vw',\r\n\r\n data: { fileNames: this.fileNames, fileName: fileName, path:`${this.dir}/${this.folderName}` }\r\n });\r\n\r\n }\r\n\r\n removed(i){\r\n this.remove.emit(i);\r\n }\r\n\r\n}\r\n","\r\n<mat-form-field *ngIf=\"readonlyMode==''\" style=\"padding-right: 20px;\" floatLabel=\"always\" [ngStyle]=\"{'width':width}\">\r\n <mat-label>{{display}}</mat-label>\r\n <mat-select [(value)]=\"value\" (selectionChange)=\"changed()\" [disabled]=\"readonly\" [placeholder]=\"placeholder\" >\r\n <mat-option *ngFor=\"let row of options\" [value]=\"row[optionValue]\">\r\n {{row[optionDisplay]}} <label *ngIf=\"optionDisplayExtra!='' && row[optionDisplayExtra] && row[optionDisplayExtra] != ''\">({{row[optionDisplayExtra]}})</label>\r\n </mat-option>\r\n </mat-select>\r\n <mat-hint *ngIf=\"hint!=''\">{{hint}}</mat-hint>\r\n</mat-form-field>\r\n\r\n<!-- ReadOnlyModes original, text, label -->\r\n<!-- <spa-text *ngIf=\"readonlyMode=='text' && readonly\" [display]=\"display\" [(value)]=\"displayValue\" [readonly]=\"true\" ></spa-text> -->\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'spa-select',\r\n templateUrl: './select.component.html',\r\n styleUrls: ['./select.component.css']\r\n})\r\nexport class SelectComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n // this.displayValue = this.options.filter((m) => m.optionValue == this.value)\r\n // this.displayValue = this.value\r\n if (this.placeholder == \"\") {\r\n this.placeholder = \"Select \" + this.display;\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n\r\n if (this.readonlyMode != \"\" && this.options.length > 0){\r\n this.displayValue = this.options.filter((m) => m[`${this.optionValue}`] == this.value)[0][`${this.optionDisplay}`]\r\n }\r\n\r\n }\r\n\r\n displayValue;\r\n\r\n @Input() width = \"100%\"\r\n @Input() readonly = false;\r\n @Input() readonlyMode = \"\";\r\n @Input() hint = \"\";\r\n @Input() placeholder = \"\";\r\n\r\n\r\n @Input() display = \"\";\r\n @Input() value = \"\";\r\n @Input() options: any;\r\n @Input() optionValue = \"\";\r\n @Input() optionDisplay = \"\";\r\n @Input() optionDisplayExtra = \"\";\r\n\r\n @Output() valueChange = new EventEmitter();\r\n\r\n\r\n\r\n changed(){\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n}\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'spa-check',\r\n templateUrl: './check.component.html',\r\n styleUrls: ['./check.component.css']\r\n})\r\nexport class CheckComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() readonly = false;\r\n @Input() display = \"\";\r\n @Input() value = false;\r\n @Output() valueChange = new EventEmitter();\r\n @Output() click = new EventEmitter();\r\n @Output() check = new EventEmitter();\r\n @Output() uncheck = new EventEmitter();\r\n\r\n changed(){\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n clicked(){\r\n this.click.emit();\r\n\r\n if(!this.value){\r\n this.checked();\r\n }else{\r\n this.unchecked();\r\n }\r\n }\r\n\r\n checked(){\r\n this.check.emit();\r\n }\r\n unchecked(){\r\n this.uncheck.emit();\r\n }\r\n\r\n}\r\n"," <mat-checkbox color=\"primary\" style=\"margin-right:50px; font-size:14px\" [(ngModel)]=\"value\" (change)=\"changed()\" (click)=\"clicked()\" [disabled]=\"readonly\">{{display}}</mat-checkbox>\r\n","import {\r\n Directive,\r\n Output,\r\n Input,\r\n EventEmitter,\r\n HostBinding,\r\n HostListener\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[appDnd]'\r\n})\r\nexport class DndDirective {\r\n @HostBinding('class.fileover') fileOver: boolean;\r\n @Output() fileDropped = new EventEmitter<any>();\r\n\r\n // Dragover listener\r\n @HostListener('dragover', ['$event']) onDragOver(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileOver = true;\r\n }\r\n\r\n // Dragleave listener\r\n @HostListener('dragleave', ['$event']) public onDragLeave(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileOver = false;\r\n }\r\n\r\n // Drop listener\r\n @HostListener('drop', ['$event']) public ondrop(evt) {\r\n evt.preventDefault();\r\n evt.stopPropagation();\r\n this.fileOver = false;\r\n let files = evt.dataTransfer.files;\r\n if (files.length > 0) {\r\n this.fileDropped.emit(files);\r\n }\r\n }\r\n}\r\n","<div class=\"tin-input-row\" style=\"width: 100%;\">\r\n\r\n <div class=\"col\">\r\n <div class=\"container\" appDnd (fileDropped)=\"onFileDropped($event)\">\r\n <input type=\"file\" #fileDropRef id=\"fileDropRef\" multiple (change)=\"fileBrowseHandler($event.target.files)\" />\r\n <h4>{{message}}</h4>\r\n <h4>or</h4>\r\n <label for=\"fileDropRef\">Click to Browse</label>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <div class=\"files-list \">\r\n <div class=\"single-file \" style=\"width: 100%;\" *ngFor=\"let file of files; let i = index\">\r\n\r\n <div class=\"tin-input-row info\" >\r\n <h4 class=\"name\">\r\n {{ file?.name }}\r\n </h4>\r\n <p class=\"size\">\r\n {{ formatBytes(file?.size, 2) }}\r\n </p>\r\n </div>\r\n\r\n <div class=\"delete\" (click)=\"deleteFile(i)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"14\" height=\"18\" viewBox=\"0 0 14 18\">\r\n <path fill=\"#B1B1B1\" fill-rule=\"nonzero\"\r\n d=\"M1 16c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v10zm3.17-7.83a.996.996 0 0 1 1.41 0L7 9.59l1.42-1.42a.996.996 0 1 1 1.41 1.41L8.41 11l1.42 1.42a.996.996 0 1 1-1.41 1.41L7 12.41l-1.42 1.42a.996.996 0 1 1-1.41-1.41L5.59 11 4.17 9.58a.996.996 0 0 1 0-1.41zM10.5 1L9.79.29C9.61.11 9.35 0 9.09 0H4.91c-.26 0-.52.11-.7.29L3.5 1H1c-.55 0-1 .45-1 1s.45 1 1 1h12c.55 0 1-.45 1-1s-.45-1-1-1h-2.5z\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"files.length > 0 && enableUpload\" class=\"tin-input-row d-flex justify-content-center\" style=\"width: 100%;\" >\r\n <button mat-button color=\"primary\" (click)=\"uploaded()\" matTooltip=\"Upload New Documents\" matTooltipPosition=\"above\" ><mat-icon>file_upload</mat-icon> Upload</button>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'spa-attach',\r\n templateUrl: './attach.component.html',\r\n styleUrls: ['./attach.component.scss']\r\n})\r\nexport class AttachComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() message = \"Drag and drop files here\"\r\n @Input() files: any[] = [];\r\n @Output() filesChange = new EventEmitter();\r\n @Output() upload = new EventEmitter();\r\n\r\n\r\n @Input() enableUpload = false;\r\n\r\n\r\n /**\r\n * on file drop handler\r\n */\r\n onFileDropped($event) {\r\n this.prepareFilesList($event);\r\n }\r\n\r\n /**\r\n * handle file from browsing\r\n */\r\n fileBrowseHandler(files) {\r\n this.prepareFilesList(files);\r\n }\r\n\r\n /**\r\n * Delete file from files list\r\n * @param index (File index)\r\n */\r\n deleteFile(index: number) {\r\n this.files.splice(index, 1);\r\n }\r\n\r\n /**\r\n * Simulate the upload process\r\n */\r\n // uploadFilesSimulator(index: number) {\r\n // setTimeout(() => {\r\n // if (index === this.files.length) {\r\n // return;\r\n // } else {\r\n // const progressInterval = setInterval(() => {\r\n // if (this.files[index].progress === 100) {\r\n // clearInterval(progressInterval);\r\n // this.uploadFilesSimulator(index + 1);\r\n // } else {\r\n // this.files[index].progress += 5;\r\n // }\r\n // }, 200);\r\n // }\r\n // }, 1000);\r\n // }\r\n\r\n /**\r\n * Convert Files list to normal array list\r\n * @param files (Files List)\r\n */\r\n prepareFilesList(files: Array<any>) {\r\n for (const item of files) {\r\n item.progress = 0;\r\n this.files.push(item);\r\n }\r\n // this.uploadFilesSimulator(0);\r\n }\r\n\r\n /**\r\n * format bytes\r\n * @param bytes (File size in bytes)\r\n * @param decimals (Decimals point)\r\n */\r\n formatBytes(bytes, decimals) {\r\n if (bytes === 0) {\r\n return '0 Bytes';\r\n }\r\n const k = 1024;\r\n const dm = decimals <= 0 ? 0 : decimals || 2;\r\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n const i = Math.floor(Math.log(bytes) / Math.log(k));\r\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\r\n }\r\n\r\n uploaded(){\r\n this.upload.emit();\r\n }\r\n\r\n filesChanged(){\r\n this.filesChange.emit(this.files);\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'spa-datetime',\r\n templateUrl: './datetime.component.html',\r\n styleUrls: ['./datetime.component.css']\r\n})\r\nexport class DatetimeComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() display = \"\";\r\n @Input() value = \"\";\r\n @Output() valueChange = new EventEmitter();\r\n @Input() readonly = false;\r\n\r\n @Input() min = \"01 jan 1900\";\r\n\r\n @Input() max = \"31 dec 9999\";\r\n\r\n changed() {\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n}\r\n","<mat-form-field style=\"width:150px;margin-right:20px\">\r\n<mat-label>{{display}}</mat-label>\r\n<input matInput autocomplete=\"off\" type=\"datetime-local\" [(ngModel)]=\"value\" [min]=\"min\" [max]=\"max\" (change)=\"changed()\" [placeholder]=\"display\" [readonly]=\"readonly\" />\r\n</mat-form-field>\r\n","import {\r\n OnInit,\r\n Directive,\r\n HostListener,\r\n ElementRef, forwardRef\r\n} from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { DecimalPipe } from '@angular/common';\r\n\r\nexport const CURRENCY_INPUT_MASK_DIRECTIVE_VALUE_ACCESSOR: any = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => CurrencyInputMaskDirective),\r\n multi: true\r\n};\r\n\r\n@Directive({\r\n selector: '[appCurrencyInputMask]',\r\n providers: [\r\n CURRENCY_INPUT_MASK_DIRECTIVE_VALUE_ACCESSOR,\r\n DecimalPipe\r\n ]\r\n})\r\nexport class CurrencyInputMaskDirective implements ControlValueAccessor, OnInit {\r\n private el: HTMLInputElement;\r\n private onModelChange: Function;\r\n private onModelTouched: Function;\r\n private lastNumVal: number;\r\n private DECIMAL_MARK = '.';\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private decimalPipe: DecimalPipe\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.el = this.elementRef.nativeElement;\r\n }\r\n\r\n @HostListener('focus', ['$event'])\r\n handleFocus(event: any) {\r\n const strVal: string = this.getInputValue();\r\n const unmaskedStr: string = this.getUnmaskedValue(strVal);\r\n this.updateInputValue(unmaskedStr);\r\n }\r\n\r\n @HostListener('cut', ['$event'])\r\n handleCut(event: any) {\r\n setTimeout(() => {\r\n this.inputUpdated();\r\n }, 0);\r\n }\r\n\r\n @HostListener('keypress', ['$event'])\r\n handleKeypress(event: any) {\r\n // Restrict characters\r\n const newChar: string = String.fromCharCode(event.which);\r\n const allowedChars: RegExp = /^[\\d.]+$/;\r\n if (!allowedChars.test(newChar)) {\r\n event.preventDefault();\r\n return;\r\n }\r\n // Handle decimal mark input\r\n const currentValue: string = event.target.value;\r\n const separatorIdx: number = currentValue.indexOf(this.DECIMAL_MARK);\r\n const hasFractionalPart: boolean = (separatorIdx >= 0);\r\n if (!hasFractionalPart || newChar !== this.DECIMAL_MARK) {\r\n return;\r\n }\r\n const isOutsideSelection = !this.isIdxBetweenSelection(separatorIdx);\r\n if (isOutsideSelection) {\r\n const positionAfterMark = separatorIdx + 1;\r\n this.setCursorPosition(positionAfterMark);\r\n event.preventDefault();\r\n return;\r\n }\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n handleInput(event: any) {\r\n this.inputUpdated();\r\n }\r\n\r\n @HostListener('paste', ['$event'])\r\n handlePaste(event: any) {\r\n setTimeout(() => {\r\n this.inputUpdated();\r\n }, 1);\r\n }\r\n\r\n @HostListener('blur', ['$event'])\r\n handleBlur(event: any) {\r\n const strVal: string = this.getInputValue();\r\n const numVal: number = this.convertStrToDecimal(strVal);\r\n this.maskInput(numVal);\r\n this.onModelTouched.apply(event);\r\n }\r\n\r\n registerOnChange(callbackFunction: Function): void {\r\n this.onModelChange = callbackFunction;\r\n }\r\n\r\n registerOnTouched(callbackFunction: Function): void {\r\n this.onModelTouched = callbackFunction;\r\n }\r\n\r\n setDisabledState(value: boolean): void {\r\n this.el.disabled = value;\r\n }\r\n\r\n writeValue(numValue: number): void {\r\n this.maskInput(numValue);\r\n }\r\n\r\n private maskInput(numVal: number): void {\r\n if (!this.isNumeric(numVal)) {\r\n this.updateInputValue('');\r\n return;\r\n }\r\n const strVal: string = this.convertDecimalToStr(numVal);\r\n const newVal: string = this.transformWithPipe(strVal);\r\n this.updateInputValue(newVal);\r\n }\r\n\r\n private inputUpdated() {\r\n this.restrictDecimalValue();\r\n const strVal: string = this.getInputValue();\r\n const unmaskedVal: string = this.getUnmaskedValue(strVal);\r\n const numVal: number = this.convertStrToDecimal(unmaskedVal);\r\n if (numVal !== this.lastNumVal) {\r\n this.lastNumVal = numVal;\r\n this.onModelChange(numVal);\r\n }\r\n }\r\n\r\n private restrictDecimalValue(): void {\r\n const strVal: string = this.getInputValue();\r\n const dotIdx: number = strVal.indexOf(this.DECIMAL_MARK);\r\n const hasFractionalPart: boolean = (dotIdx >= 0);\r\n if (hasFractionalPart) {\r\n const fractionalPart: string = strVal.substring(dotIdx + 1);\r\n if (fractionalPart.length > 2) {\r\n const choppedVal: string = strVal.substring(0, dotIdx + 3);\r\n this.updateInputValue(choppedVal, true);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n\r\n private transformWithPipe(str: string): string {\r\n return this.decimalPipe.transform(str, '1.2-2');\r\n }\r\n\r\n private getUnmaskedValue(value: string): string {\r\n return value.replace(/[^-\\d\\\\.]/g, '');\r\n }\r\n\r\n private updateInputValue(value: string, savePosition = false) {\r\n if (savePosition) {\r\n this.saveCursorPosition();\r\n }\r\n this.el.value = value;\r\n }\r\n\r\n private getInputValue(): string {\r\n return this.el.value;\r\n }\r\n\r\n private convertStrToDecimal(str: string): number {\r\n return (this.isNumeric(str)) ? parseFloat(str) : null;\r\n }\r\n\r\n private convertDecimalToStr(n: number): string {\r\n return (this.isNumeric(n)) ? n + '' : '';\r\n }\r\n\r\n private isNumeric(n: any): boolean {\r\n return !isNaN(parseFloat(n)) && isFinite(n);\r\n }\r\n\r\n private saveCursorPosition() {\r\n const position: number = this.el.selectionStart;\r\n setTimeout(() => {\r\n this.setCursorPosition(position);\r\n }, 1);\r\n }\r\n\r\n private setCursorPosition(position: number) {\r\n this.el.selectionStart = position;\r\n this.el.selectionEnd = position;\r\n }\r\n\r\n private isIdxBetweenSelection(idx: number) {\r\n if (this.el.selectionStart === this.el.selectionEnd) {\r\n return false;\r\n }\r\n return (idx >= this.el.selectionStart && idx < this.el.selectionEnd);\r\n }\r\n\r\n}\r\n","\r\n\r\n<mat-form-field hideRequiredMarker=\"true\" [hintLabel]=\"hint\" [ngStyle]=\"{'width':width}\" hideRequiredMarker=\"true\" style=\"margin-right: 5px;\">\r\n <mat-label>{{display}}</mat-label>\r\n <input matInput appCurrencyInputMask autocomplete=\"off\" style=\"text-align: right;\"\r\n [min]=\"min\" [max]=\"max\"\r\n [ngModel]=\"value\" (ngModelChange)=\"changed($event)\" (keyup.enter)=\"enterPressed()\" (blur)=\"leaved()\" [placeholder]=\"placeholder\" [formControl]=\"control\" [readonly]=\"readonly\" />\r\n <span *ngIf=\"currency!=''\" matPrefix>{{currency}} </span>\r\n <mat-error *ngIf=\"control.invalid\">{{validate(control)}}</mat-error>\r\n</mat-form-field>\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'spa-money',\r\n templateUrl: './money.component.html',\r\n styleUrls: ['./money.component.css']\r\n})\r\nexport class MoneyComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n if (this.placeholder == \"\") {\r\n this.placeholder = \"Enter \" + this.display;\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.initControl(this.control)\r\n }\r\n\r\n initControl(control: FormControl) {\r\n if (this.readonly) {\r\n control.setValidators(null);\r\n control.updateValueAndValidity();\r\n }\r\n if (!this.required && !this.readonly) {\r\n\r\n control.setValidators([Validators.min(this.min), Validators.max(this.max)]);\r\n this.control.updateValueAndValidity();\r\n }\r\n }\r\n\r\n @Input() readonly = false;\r\n @Input() hint = \"\";\r\n @Input() display = \"\";\r\n @Input() placeholder = \"\";\r\n @Input() value = \"\";\r\n @Input() width = \"100%\"\r\n @Input() currency = \"\";\r\n\r\n @Output() valueChange = new EventEmitter();\r\n @Output() leave = new EventEmitter();\r\n @Output() enterPress = new EventEmitter();\r\n\r\n\r\n\r\n //validation input\r\n @Input() required = true;\r\n @Input() min = 0;\r\n @Input() max = 9000000000000000; //Math.max 9000000000000000\r\n\r\n\r\n changed(x){\r\n this.valueChange.emit(x);\r\n }\r\n\r\n leaved() {\r\n this.leave.emit();\r\n }\r\n\r\n enterPressed() {\r\n this.enterPress.emit();\r\n }\r\n\r\n //validation\r\n control = new FormControl(this.value, [Validators.required, Validators.min(this.min), Validators.max(this.max)]);\r\n\r\n validate(control: FormControl): string {\r\n\r\n if (this.required && control.hasError('required')) {\r\n return `Required`;\r\n }\r\n\r\n if (parseFloat(this.value) < this.min){\r\n return `Minimun value is ${this.min}`;\r\n }\r\n\r\n if (parseFloat(this.value) > this.max) {\r\n return `Maximum value is ${this.max}`;\r\n }\r\n\r\n if (control.hasError('min')) {\r\n return `Minimun value is ${this.min}`;\r\n }\r\n\r\n if (control.hasError('max')) {\r\n return `Maximum value is ${this.max}`;\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n\r\n}\r\n","\r\n <div class=\"tin-input-row mt-3\" *ngIf=\"title != ''\">\r\n <mat-label style=\"font-size: 20px; font-weight: 300\" > {{title}}</mat-label >\r\n </div>\r\n\r\n <ul *ngIf=\"notes && notes.length>0\" class=\"list-group list-group-flush\" style=\"max-height:350px; margin-left:5px\">\r\n\r\n <li *ngFor=\"let note of notes\" class=\"list-group-item list-group-item-action flex-column align-items-start\">\r\n <div class=\"d-flex w-100 justify-content-between\">\r\n <div class=\"mb-0\">{{note.createdByName}}</div>\r\n <!-- <small class=\"text-muted\">{{note.expr1}} ago</small> -->\r\n </div>\r\n\r\n <small>{{note.details}} (<em>{{note.createdDate | date: 'dd MMM yyyy HH:mm'}}</em>) </small>\r\n </li>\r\n\r\n\r\n </ul>\r\n\r\n <div *ngIf=\"notes && notes.length==0\" class=\"d-flex justify-content-center row align-items-center\" style=\"max-height:200px\">\r\n\r\n No {{title.toLowerCase()}}\r\n\r\n </div>\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'spa-activity',\r\n templateUrl: './activity.component.html',\r\n styleUrls: ['./activity.component.css']\r\n})\r\nexport class ActivityComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() notes = new Array();\r\n notesMessage: string = \"Empty\";\r\n @Input() title = \"Notes\"\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { AngularEditorConfig } from '@kolkov/angular-editor';\r\n\r\n@Component({\r\n selector: 'spa-html',\r\n templateUrl: './html.component.html',\r\n styleUrls: ['./html.component.css']\r\n})\r\nexport class HtmlComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() value = \"\";\r\n @Output() valueChange = new EventEmitter();\r\n @Input() readonly = false;\r\n\r\n changed() {\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n ngOnChanges() {\r\n this.config.editable = !this.readonly;\r\n }\r\n\r\n @Input() config: AngularEditorConfig = {\r\n editable: true,\r\n spellcheck: true,\r\n height: 'auto',\r\n minHeight: '5rem',\r\n placeholder: 'Enter text here...',\r\n translate: 'no',\r\n defaultParagraphSeparator: '',\r\n defaultFontName: 'Arial',\r\n toolbarHiddenButtons: [\r\n [\r\n 'bold',\r\n 'italic',\r\n 'underline',\r\n 'strikeThrough',\r\n 'subscript',\r\n 'superscript',\r\n 'justifyLeft',\r\n 'justifyCenter',\r\n 'justifyRight',\r\n 'justifyFull',\r\n 'indent',\r\n 'outdent',\r\n 'insertUnorderedList',\r\n 'insertOrderedList',\r\n 'heading',\r\n 'fontName'\r\n ],\r\n [\r\n 'fontSize',\r\n 'textColor',\r\n 'backgroundColor',\r\n 'customClasses',\r\n 'link',\r\n 'unlink',\r\n 'insertImage',\r\n 'insertVideo',\r\n 'insertHorizontalRule',\r\n 'removeFormat',\r\n 'toggleEditorMode'\r\n ]\r\n ],\r\n customClasses: [\r\n {\r\n name: \"quote\",\r\n class: \"quote\",\r\n },\r\n {\r\n name: 'redText',\r\n class: 'redText'\r\n },\r\n {\r\n name: \"titleText\",\r\n class: \"titleText\",\r\n tag: \"h1\",\r\n },\r\n ]\r\n };\r\n\r\n}\r\n","<angular-editor [(ngModel)]=\"value\" [config]=\"config\" (ngModelChange)=\"changed()\" ></angular-editor>\r\n","\r\n<mat-checkbox color=\"primary\" style=\"margin-right:5px\" [(ngModel)]=\"show\" (change)=\"resetValue()\" labelPosition=\"after\">{{display}}</mat-checkbox>\r\n\r\n\r\n<mat-form-field style=\"margin-right:10px;width: 0px;\" >\r\n<input matInput />\r\n</mat-form-field>\r\n\r\n\r\n<mat-form-field style=\"margin-right:30px\" *ngIf=\"show && !options\">\r\n<mat-label>{{display}}</mat-label>\r\n<input matInput [(ngModel)]=\"value\" width=\"100\" (change)=\"changed()\" (keyup.enter)=\"changed()\" [placeholder]=\"'Enter ' + display\" autocomplete=\"off\" />\r\n</mat-form-field>\r\n\r\n\r\n<mat-form-field style=\"margin-right: 20px;\" floatLabel=\"always\" width=\"100\" *ngIf=\"show && options\">\r\n <mat-label>{{display}}</mat-label>\r\n <mat-select [(value)]=\"value\" (selectionChange)=\"changed()\" [placeholder]=\"'Select ' + display\" [disabled]=\"readonly\" >\r\n <mat-option *ngFor=\"let row of options\" [value]=\"row[optionValue]\">\r\n {{row[optionDisplay]}}\r\n </mat-option>\r\n </mat-select>\r\n</mat-form-field>\r\n\r\n<!-- <spa-text *ngIf=\"show\" style=\"margin-right:30px\" [display]=\"'Enter ' + display\" (enterPress)=\"enterPressed()\" (valueChange)=\"changed($event.target.value)\" width=\"100\" [required]=\"false\" [(value)]=\"value\" ></spa-text> -->\r\n\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'spa-option',\r\n templateUrl: './option.component.html',\r\n styleUrls: ['./option.component.css']\r\n})\r\nexport class OptionComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.OGValue = this.value;\r\n }\r\n\r\n OGValue\r\n\r\n\r\n @Input() options: any;\r\n @Input() optionValue = \"\";\r\n @Input() optionDisplay = \"\";\r\n @Input() readonly = false;\r\n\r\n @Input() value = \"\";\r\n @Input() display = \"\";\r\n @Input() show: boolean = false;\r\n\r\n\r\n @Output() valueChange = new EventEmitter();\r\n @Output() enterPress = new EventEmitter();\r\n\r\n changed() {\r\n this.valueChange.emit(this.value);\r\n }\r\n\r\n enterPressed(){\r\n this.valueChange.emit();\r\n }\r\n\r\n resetValue(){\r\n this.value = this.OGValue;\r\n this.changed();\r\n\r\n }\r\n\r\n}\r\n","<div *ngIf=\"format=='text'\">\r\n <label style=\"font-weight: 500\" >{{display}}: </label> <label>{{value}} </label> \r\n</div>\r\n\r\n<div *ngIf=\"format=='date'\">\r\n <label style=\"font-weight: 500\" >{{display}}: </label> <label>{{value | date:'dd/MM/yyyy'}} </label> \r\n</div>\r\n\r\n<div *ngIf=\"format=='datetime'\">\r\n <label style=\"font-weight: 500\" >{{display}}: </label> <label>{{value | date:'dd/MM/yyyy HH:mm'}} </label> \r\n</div>\r\n\r\n<div *ngIf=\"format=='money'\">\r\n <label style=\"font-weight: 500\" >{{display}}: </label> <label>{{value | currency:'USD':''}} </label> \r\n</div>\r\n\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'spa-label',\r\n templateUrl: './label.component.html',\r\n styleUrls: ['./label.component.css']\r\n})\r\nexport class LabelComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n @Input() display = \"\";\r\n @Input() value = \"\";\r\n @Input() format = \"text\";\r\n\r\n}\r\n","\r\n\r\n\r\n<!-- <mat-horizontal-stepper class=\"test\" labelPosition=\"bottom\" #stepper>\r\n <mat-step [editable]=\"false\" label=\"Draft\"> </mat-step>\r\n <mat-step [editable]=\"false\" label=\"Head Approval\" > </mat-step>\r\n <mat-step [editable]=\"false\" label=\"CE Approval\"> </mat-step>\r\n <mat-step [editable]=\"false\" label=\"Booking\" state=\"booking\"> </mat-step>\r\n <mat-step [editable]=\"false\" label=\"BTA Approval\"> </mat-step>\r\n <mat-step [editable]=\"false\" label=\"Travel\"> </mat-step>\r\n <mat-step [editable]=\"false\" label=\"BTR Approval\"> </mat-step>\r\n <mat-step [editable]=\"false\" label=\"Closure\"> </mat-step>\r\n <ng-template matStepperIcon=\"booking\"> <mat-icon>forum</mat-icon> </ng-template>\r\n</mat-horizontal-stepper> -->\r\n\r\n<mat-horizontal-stepper class=\"transparent\" labelPosition=\"bottom\" #stepper>\r\n\r\n <mat-step *ngFor=\"let row of steps\"\r\n [editable]=\"false\" [label]=\"row.name\">\r\n </mat-step>\r\n\r\n <!-- <ng-template *ngFor=\"let row of steps\"\r\n [matStepperIcon]=\"row.name\"> <mat-icon>{{row.icon}}</mat-icon>\r\n </ng-template> -->\r\n\r\n <!-- <ng-template matStepperIcon=\"booking\">\r\n <mat-icon>call_end</mat-icon>\r\n </ng-template> -->\r\n\r\n <!-- <ng-template ngFor let-xb [ngForOf]=\"steps\" matStepperIcon=\"Booking\"> <mat-icon>forum</mat-icon>\r\n\r\n </ng-template> -->\r\n\r\n</mat-horizontal-stepper>\r\n","import { AfterViewInit, Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { MatStepper } from '@angular/material/stepper';\r\nimport { STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';\r\nimport { Step } from '../../classes/Classes';\r\n\r\n@Component({\r\n selector: 'spa-steps',\r\n templateUrl: './steps.component.html',\r\n styleUrls: ['./steps.component.css'],\r\n providers: [{\r\n provide: STEPPER_GLOBAL_OPTIONS, useValue: { displayDefaultIndicatorType: false }\r\n }]\r\n})\r\nexport class StepsComponent implements OnInit, AfterViewInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n\r\n ngOnChanges() {\r\n this.pushSteps();\r\n }\r\n\r\n @ViewChild('stepper') stepper: MatStepper;\r\n @Input() value = \"\";\r\n @Input() steps: Step[];\r\n\r\n setStepper() {\r\n\r\n if (this.value == \"\") return;\r\n\r\n\r\n this.stepper.selectedIndex = 0;\r\n\r\n switch (this.value) {\r\n\r\n\r\n\r\n case \"Draft\":\r\n this.stepper.selectedIndex = 0;\r\n break;\r\n\r\n case \"Head Approval\":\r\n this.pushStepper(1)\r\n break;\r\n\r\n case \"CE Approval\":\r\n this.pushStepper(2)\r\n break;\r\n\r\n case \"Booking\":\r\n this.pushStepper(3)\r\n break;\r\n\r\n case \"BTA Approval\":\r\n this.pushStepper(4)\r\n break;\r\n\r\n case \"Travel\":\r\n this.pushStepper(5)\r\n break;\r\n\r\n case \"BTR Approval\":\r\n this.pushStepper(6)\r\n break;\r\n\r\n case \"Travel Closure\":\r\n this.pushStepper(7)\r\n break;\r\n\r\n }\r\n\r\n }\r\n\r\n pushStepper(count: number) {\r\n\r\n for (let index = 0; index < count + 1; index++) {\r\n // const element = array[index];\r\n this.stepper.selectedIndex = index;\r\n }\r\n\r\n }\r\n\r\n pushSteps(){\r\n\r\n if(this.steps.length == 0) return;\r\n if (this.value == \"\") return;\r\n this.stepper.selectedIndex = 0;\r\n\r\n\r\n let i = 0;\r\n\r\n for (let step of this.steps) {\r\n\r\n if (step.name != this.value) {\r\n\r\n this.stepper.selectedIndex = i;\r\n i++;\r\n\r\n } else {\r\n\r\n this.stepper.selectedIndex = i;\r\n break;\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\n\r\n@Component({\r\n selector: 'spa-filter',\r\n templateUrl: './filter.component.html',\r\n styleUrls: ['./filter.component.css']\r\n})\r\nexport class FilterComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n ngOnChanges() {\r\n // console.log(\"OnChange\")\r\n this.applyFilter(this._filterText);\r\n }\r\n\r\n @Input() data = new MatTableDataSource();;\r\n @Output() refreshClick = new EventEmitter();\r\n\r\n _filterText = \"\";\r\n\r\n applyFilter(filterValue: string) {\r\n if (this.data){\r\n this.data.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n }\r\n\r\n refreshClicked(){\r\n this.refreshClick.emit();\r\n }\r\n\r\n}\r\n","<mat-form-field style=\"font-size:12px\">\r\n <mat-label>Filter</mat-label>\r\n <input id=\"txtFilter\" matInput [(ngModel)]=\"_filterText\" (keyup)=\"applyFilter($event.target.value)\" placeholder=\"Enter Filter text\" autocomplete=\"off\">\r\n</mat-form-field>\r\n\r\n<button id=\"btnFilter\" mat-mini-fab color=\"primary\" matTooltip=\"Refresh Data\" matTooltipPosition=\"above\" (click)=\"refreshClicked()\" style=\"margin-right:1em;margin-top:5px\"><mat-icon class=\"refreshIcon\">refresh</mat-icon></button>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\nimport { CurrencyInputMaskDirective } from './currency-input-mask.directive';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule\r\n ],\r\n declarations: [\r\n CurrencyInputMaskDirective\r\n ],\r\n exports: [\r\n CurrencyInputMaskDirective\r\n ]\r\n})\r\nexport class CurrencyInputModule {\r\n}\r\n","import { LoaderComponent } from './components/loader/loader.component';\r\nimport { SpaMatModule } from \"./modules/spa-mat.module\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { CommonModule, CurrencyPipe } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { LoaderInterceptor } from './services/loader-interceptor.service';\r\nimport { NgIdleKeepaliveModule } from '@ng-idle/keepalive';\r\nimport { MomentModule } from 'angular2-moment';\r\nimport { NgxDocViewerModule } from 'ngx-doc-viewer';\r\n\r\nimport { TinSpaComponent } from \"./components/tin-spa.component\";\r\nimport { NavMenuComponent } from \"./components/nav-menu/nav-menu.component\";\r\nimport { messageDialog } from \"./components/message/messageDialog.component\";\r\nimport { TimeoutComponent } from './components/timeout/timeout.component';\r\nimport { HashLocationStrategy, LocationStrategy } from '@angular/common';\r\nimport { TableComponent } from './components/table/table.component';\r\nimport { TilesComponent } from './components/tiles/tiles.component';\r\nimport { DateComponent } from './components/date/date.component';\r\nimport { TextComponent } from './components/text/text.component';\r\nimport { ViewerComponent } from './components/viewer/viewer.component';\r\nimport { SelectComponent } from './components/select/select.component';\r\nimport { CheckComponent } from './components/check/check.component';\r\nimport { AttachComponent } from './components/attach/attach.component';\r\nimport { DatetimeComponent } from './components/datetime/datetime.component';\r\nimport { MoneyComponent } from './components/money/money.component';\r\nimport { DndDirective } from './dnd.directive';\r\nimport { ChipsComponent } from './components/chips/chips.component';\r\nimport { ActivityComponent } from './components/activity/activity.component';\r\nimport { viewerDialog } from './components/viewer/viewerDialog.component';\r\nimport { HtmlComponent } from './components/html/html.component';\r\nimport { AngularEditorModule } from '@kolkov/angular-editor';\r\nimport { OptionComponent } from './components/option/option.component';\r\nimport { LabelComponent } from './components/label/label.component';\r\nimport { StepsComponent } from './components/steps/steps.component';\r\nimport { FilterComponent } from './components/filter/filter.component';\r\nimport { CurrencyInputModule } from './components/money/currency-input-mask.module';\r\n// import { CurrencyInputDirective } from './components/money/currency-input.directive';\r\n\r\n\r\n@NgModule({\r\n declarations: [DndDirective,TinSpaComponent, messageDialog, NavMenuComponent, LoaderComponent,\r\n TimeoutComponent, TableComponent, TilesComponent, DateComponent, TextComponent,\r\n ViewerComponent, SelectComponent, CheckComponent, AttachComponent, DatetimeComponent,\r\n MoneyComponent,\r\n ChipsComponent,\r\n ActivityComponent, viewerDialog, HtmlComponent, OptionComponent, LabelComponent, StepsComponent, FilterComponent, ],\r\n\r\n entryComponents: [messageDialog],\r\n\r\n imports: [\r\n ReactiveFormsModule.withConfig({ warnOnNgModelWithFormControl: \"never\" }),\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SpaMatModule,\r\n MomentModule,\r\n NgxDocViewerModule,\r\n AngularEditorModule,\r\n CurrencyInputModule,\r\n\r\n\r\n NgIdleKeepaliveModule.forRoot()\r\n ],\r\n\r\n exports: [\r\n CommonModule,\r\n FormsModule,\r\n SpaMatModule,\r\n TinSpaComponent,\r\n messageDialog,\r\n NavMenuComponent,\r\n LoaderComponent,\r\n TimeoutComponent,\r\n TableComponent,\r\n TilesComponent,\r\n DateComponent,\r\n ViewerComponent,\r\n SelectComponent,\r\n TextComponent,\r\n DatetimeComponent,\r\n CheckComponent,\r\n AttachComponent,\r\n MoneyComponent,\r\n ChipsComponent,\r\n ActivityComponent,\r\n HtmlComponent,\r\n OptionComponent,\r\n LabelComponent,\r\n StepsComponent,\r\n FilterComponent\r\n\r\n\r\n ],\r\n\r\n providers: [\r\n CurrencyPipe,\r\n { provide: HTTP_INTERCEPTORS, useClass: LoaderInterceptor, multi: true },\r\n { provide: LocationStrategy, useClass: HashLocationStrategy}\r\n ],\r\n})\r\nexport class TinSpaModule {}\r\n","\r\n <div class=\"tin-bg-login login-page\">\r\n\r\n <div *ngIf=\"appConfig.logo!=''\" class=\"d-flex justify-content-center row align-items-center\" style=\"margin-top:3em;margin-bottom:1em\">\r\n\r\n <img *ngIf=\"appConfig.logoSize=='normal'\" [src]=\"appConfig.logo\" style=\"height:100px;margin-right:3em;margin-left:3em\" />\r\n <img *ngIf=\"appConfig.logoSize=='medium'\" [src]=\"appConfig.logo\" style=\"height:150px;margin-right:3em;margin-left:3em\" />\r\n <img *ngIf=\"appConfig.logoSize=='large'\" [src]=\"appConfig.logo\" style=\"height:250px;margin-right:3em;margin-left:3em\" />\r\n\r\n </div>\r\n\r\n\r\n <div *ngIf=\"appConfig.logo ==''\" style=\"margin-top:2em\">\r\n <!-- Add margin top when there is no logo -->\r\n </div>\r\n\r\n\r\n <div class=\"d-flex justify-content-center row align-items-center\" style=\"margin-top:3em\">\r\n\r\n <div class=\"d-none d-sm-block\">\r\n </div>\r\n\r\n <div style=\"margin-left:1em\">\r\n\r\n <mat-card class=\"mat-elevation-z3\" style=\"width:400px; \">\r\n\r\n <mat-card-header>\r\n <mat-card-title>{{appConfig.appName}}</mat-card-title>\r\n </mat-card-header>\r\n\r\n <mat-card-content>\r\n\r\n <div class=\"tin-input mt-2\">\r\n\r\n <spa-text id=\"txtuserName\" display=\"Username\" [(value)]=\"user.userName\" ></spa-text>\r\n\r\n <mat-form-field >\r\n <mat-label>Password</mat-label>\r\n <input id=\"txtPassword\" matInput [type]=\"hide ? 'password' : 'text'\" (keyup.enter)=\"login()\" [(ngModel)]=\"user.password\" autocomplete=\"off\" >\r\n <button mat-icon-button matSuffix (click)=\"hide = !hide\" [attr.aria-label]=\"'Hide password'\" [attr.aria-pressed]=\"hide\">\r\n <mat-icon style=\"font-size: 18px;\">{{hide ? 'visibility_off' : 'visibility'}}</mat-icon>\r\n </button>\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n </mat-card-content>\r\n\r\n\r\n <mat-card-actions>\r\n\r\n <div class=\"row \">\r\n\r\n <div class=\"col d-flex justify-content-center\">\r\n <button id=\"btnLogin\" mat-raised-button [disabled]=\"isProcessing\" style=\"width: 100px;\" (click)=\"login()\" color=\"primary\">Login</button>\r\n </div>\r\n\r\n <div class=\"col d-flex justify-content-center\" *ngIf=\"appConfig.selfService\">\r\n <button id=\"btnSignup\" mat-stroked-button color=\"primary\" style=\"width: 100px;\" (click)=\"signup()\">Signup</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </mat-card-actions>\r\n\r\n </mat-card>\r\n\r\n <div *ngIf=\"appConfig.selfService\">\r\n <br />\r\n <a mat-button id=\"lnkRecover\" style=\"margin-left: 1em\" (click)=\"recoverAccount()\">Forgot your password ?</a>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n","import { MessageService } from \"../../services/message.service\";\r\nimport { StorageService } from \"../../services/storage.service\";\r\nimport { AuthService } from \"../../services/auth.service\";\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { DataServiceLib } from \"../../services/data.service\";\r\nimport { LogService } from \"./../../services/log.service\";\r\nimport { User, AppConfig } from \"../../classes/Classes\";\r\nimport { HttpService } from \"../../services/http.service\";\r\nimport { ApiResponse, Constants } from \"../../classes/TinCore\";\r\n\r\n@Component({\r\n selector: \"spa-login\",\r\n templateUrl: \"./login.component.html\",\r\n styleUrls: [\"./login.component.scss\"],\r\n})\r\nexport class LoginComponent implements OnInit {\r\n\r\n constructor(private httpService: HttpService, private storageService: StorageService, public router: Router, private messageService: MessageService, public dataService: DataServiceLib,\r\n public authService: AuthService, private logService: LogService, private route: ActivatedRoute\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.authService.Updateloggedin(false);\r\n this.authService.UpdateRole(null);\r\n this.storageService.clear();\r\n\r\n this.dataService.appConfigObserv.subscribe(x => this.appConfig = x);\r\n\r\n if (this.route.snapshot.queryParams.redirectTo != undefined) {\r\n this.redirectPath = this.route.snapshot.queryParams.redirectTo\r\n }else{\r\n this.redirectPath = \"home\"\r\n }\r\n\r\n }\r\n\r\n redirectPath\r\n\r\n public user = new User();\r\n hide = true;\r\n isProcessing: boolean = false;\r\n\r\n appConfig = new AppConfig();\r\n\r\n public signup() {\r\n this.router.navigate([\"signup\"]);\r\n }\r\n\r\n public recoverAccount() {\r\n this.router.navigate([\"recover-account\"]);\r\n }\r\n\r\n public login() {\r\n\r\n if (this.user.userName == \"\" || this.user.password == \"\") {\r\n this.messageService.toast(\"Please enter your credentials\");\r\n return;\r\n }\r\n\r\n\r\n this.logService.info(\"logging in\");\r\n\r\n this.isProcessing = true;\r\n\r\n\r\n this.user.userName = this.user.userName\r\n this.dataService.Login(this.user).subscribe((apiResponse: ApiResponse) => {\r\n\r\n this.isProcessing = false;\r\n\r\n\r\n if (apiResponse.success) {\r\n\r\n if (apiResponse.data.authType == 'local' && !this.appConfig.localAuth) {\r\n this.messageService.toast(\"Contact Admin: Authentication Type error\");\r\n return;\r\n }\r\n\r\n if (apiResponse.data.authType == 'AD' && !this.appConfig.ADAuth) {\r\n this.messageService.toast(\"Contact Admin: Authentication Type error\");\r\n return;\r\n }\r\n\r\n\r\n this.authService.Updateloggedin(true);\r\n\r\n this.authService.UpdateToken(apiResponse.data.token);\r\n this.storageService.store(Constants.AUTH_TOKEN, apiResponse.data.token);\r\n\r\n this.authService.UpdateTokenExpire(apiResponse.data.expiration);\r\n this.storageService.store(Constants.AUTH_TOKEN_EXPIRE, apiResponse.data.expiration);\r\n\r\n this.authService.UpdateCurrentUser(this.user.userName);\r\n this.storageService.store(Constants.AUTH_USER, this.user.userName);\r\n\r\n this.authService.updateLoggedUserFullName(apiResponse.data.firstName);\r\n this.storageService.store(Constants.AUTH_NAME, apiResponse.data.firstName);\r\n\r\n this.authService.UpdateRole(apiResponse.data.role);\r\n this.storageService.store(Constants.AUTH_ROLES, JSON.stringify(apiResponse.data.role));\r\n\r\n\r\n this.logService.info(\"logged in\");\r\n\r\n\r\n if (apiResponse.data.changePassword == true && apiResponse.data.authType == 'local') {\r\n\r\n this.router.navigate([\"home/user/change-password\"], {\r\n queryParams: { redirectTo: this.redirectPath },\r\n queryParamsHandling: 'merge',\r\n skipLocationChange: false\r\n });\r\n return\r\n }\r\n\r\n this.router.navigate([this.redirectPath]);\r\n\r\n\r\n\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n this.user.password = \"\";\r\n }\r\n },\r\n (error) => {\r\n this.isProcessing = false;\r\n\r\n this.messageService.toast(this.httpService.Error(error));\r\n }\r\n );\r\n }\r\n\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n// import { HttpService, ApiResponse } from 'tin-core';\r\nimport { MessageService } from '../../services/message.service';\r\nimport { DataServiceLib } from '../../services/data.service';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { User, Profile, Account } from '../../classes/Classes';\r\nimport { HttpService } from '../../services/http.service';\r\nimport { ApiResponse } from '../../classes/TinCore';\r\n\r\n@Component({\r\n selector: 'spa-signup',\r\n templateUrl: './signup.component.html',\r\n styleUrls: ['./signup.component.css']\r\n})\r\nexport class SignupComponent implements OnInit {\r\n\r\n\r\n constructor(private httpService: HttpService, private messageService: MessageService, private dataService: DataServiceLib, private authService: AuthService,) { }\r\n\r\n ngOnInit() {\r\n\r\n this.account.user = this.user;\r\n this.account.profile = this.profile;\r\n }\r\n\r\n isProcessing: boolean = false;\r\n user = new User();\r\n profile = new Profile();\r\n\r\n account = new Account();\r\n\r\n confirmPassword: string;\r\n\r\n\r\ncreate(){\r\n\r\n this.profile.userName = this.user.userName;\r\n\r\n this.isProcessing = true;\r\n this.dataService.RegisterAccount(this.account).subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"Account Created\");\r\n\r\n this.user = new User();\r\n this.profile = new Profile();\r\n\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n },\r\n (error) => {\r\n this.isProcessing = false;\r\n this.messageService.toast(this.httpService.Error(error));\r\n }\r\n );\r\n}\r\n\r\n\r\n\r\n}\r\n","\r\n<h4 style=\"margin-top: 1em;\">Signup</h4>\r\n\r\n<hr/>\r\nComplete the form below.\r\n\r\n<div class=\"d-flex justify-content-center row align-items-center\">\r\n\r\n <div class=\"tin-input\" style=\"font-size:14px; width: 50%;\">\r\n\r\n\r\n <div class=\"tin-input-row\">\r\n\r\n <div class=\"col\">\r\n\r\n <mat-form-field style=\"width:100%\">\r\n <mat-label>FirstName</mat-label>\r\n <input matInput autocomplete=\"off\" [(ngModel)]=\"account.profile.firstName\" placeholder=\"Enter FirstName\" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n <div class=\"col\">\r\n\r\n <mat-form-field style=\"width:100%\">\r\n <mat-label>LastName</mat-label>\r\n <input matInput autocomplete=\"off\" [(ngModel)]=\"profile.lastName\" placeholder=\"Enter LastName\" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div class=\"tin-input-row mt-3\">\r\n\r\n <div class=\"col-6\">\r\n\r\n <mat-form-field style=\"width:100%\">\r\n <mat-label>userName</mat-label>\r\n <input matInput autocomplete=\"off\" [(ngModel)]=\"user.userName\" placeholder=\"Enter userName\" />\r\n </mat-form-field>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div class=\"tin-input-row\">\r\n\r\n <div class=\"col\">\r\n\r\n <mat-form-field style=\"width:100%\">\r\n <mat-label>Password</mat-label>\r\n <input matInput autocomplete=\"off\" type=\"password\" [(ngModel)]=\"user.password\" placeholder=\"Enter Password\" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n <div class=\"col\">\r\n\r\n <mat-form-field style=\"width:100%\">\r\n <mat-label>Confirm Password</mat-label>\r\n <input matInput autocomplete=\"off\" type=\"password\" [(ngModel)]=\"confirmPassword\" placeholder=\"Enter Confirm Password\" />\r\n </mat-form-field>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n\r\n <div class=\"tin-input-row mt-3\">\r\n <button mat-raised-button color=\"primary\" (click)=\"create()\" cdkFocusInitial>Create</button>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n\r\n\r\n</div>\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DataServiceLib } from '../../services/data.service';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { MessageService } from '../../services/message.service';\r\nimport { User } from '../../classes/Classes';\r\n// import { ApiResponse } from 'tin-core';\r\nimport { Location } from '@angular/common';\r\nimport { ApiResponse } from '../../classes/TinCore';\r\n\r\n@Component({\r\n selector: 'spa-recover-account',\r\n templateUrl: './recover-account.component.html',\r\n styleUrls: ['./recover-account.component.css']\r\n})\r\nexport class RecoverAccountComponent implements OnInit {\r\n\r\n constructor(private location: Location, private dataService: DataServiceLib, public authService: AuthService, private messageService: MessageService) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n userName: string = \"\";\r\n\r\n recover(){\r\n\r\n\r\n if (this.userName == \"\") {\r\n\r\n this.messageService.toast(\"Please enter your userName\");\r\n return;\r\n } else {\r\n let u = new User();\r\n u.userName = this.userName;\r\n\r\n this.dataService.SelfReset(u).subscribe((apiResponse: ApiResponse) => {\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"The password has been sent to your email\");\r\n this.location.back();\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n });\r\n }\r\n }\r\n\r\n\r\n}\r\n","<h4 style=\"margin-top: 1em;\">Recover Account</h4>\r\n\r\n<hr/>\r\nSubmit your userName and we will send you details to your registered email address.\r\n\r\n<div class=\"mt-3\" >\r\n\r\n <div class=\"tin-input \" style=\"font-size:14px;\">\r\n\r\n <div class=\"col\">\r\n <spa-text display=\"Username\" [(value)]=\"userName\" ></spa-text>\r\n </div>\r\n\r\n <div class=\"col mt-3\">\r\n <button mat-raised-button color=\"primary\" (click)=\"recover()\" cdkFocusInitial>Submit</button>\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n","import { SpaMatModule } from \"./spa-mat.module\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { LoginComponent } from \"../components/login/login.component\";\r\nimport { SignupComponent } from \"../components/signup/signup.component\";\r\nimport { RecoverAccountComponent } from \"../components/recover-account/recover-account.component\";\r\nimport { TinSpaModule } from \"../tin-spa.module\";\r\n\r\n@NgModule({\r\n declarations: [LoginComponent, SignupComponent, RecoverAccountComponent],\r\n\r\n entryComponents: [],\r\n\r\n imports: [\r\n ReactiveFormsModule.withConfig({ warnOnNgModelWithFormControl: \"never\" }),\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SpaMatModule,\r\n TinSpaModule\r\n ],\r\n\r\n exports: [\r\n CommonModule,\r\n FormsModule,\r\n SpaMatModule,\r\n LoginComponent,\r\n SignupComponent,\r\n RecoverAccountComponent,\r\n ],\r\n})\r\nexport class SpaIndexModule {}\r\n","<h4>Change Password</h4>\r\n<hr>\r\n\r\n<div class=\"container\">\r\n\r\n <div class=\"d-flex justify-content-center row align-items-center\" >\r\n\r\n <div class=\"col\">\r\n\r\n <div class=\"tin-input \" style=\"font-size:14px;\">\r\n\r\n <div class=\"col\" *ngIf=\"changePassword.userName!=''\">\r\n <spa-text id=\"txtuserName\" display=\"Username\" [(value)]=\"changePassword.userName\" width=\"300px\" readonly=\"true\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\" *ngIf=\"!myRole[dataService.capUsers.name]\">\r\n <spa-text id=\"txtPassword\" display=\"Current Password\" [(value)]=\"changePassword.currentPassword\" width=\"300px\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtNewPassword\" display=\"New Password\" [(value)]=\"changePassword.newPassword\" width=\"300px\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtConfirmPassword\" display=\"Confirm Password\" [(value)]=\"changePassword.confirmPassword\" width=\"300px\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col mt-3\">\r\n <button id=\"btnChange\" mat-raised-button color=\"primary\" (click)=\"change()\" cdkFocusInitial>Change</button>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"col\">\r\n\r\n <div class=\"alert alert-info\" style=\"font-size: 14px;\" role=\"alert\">\r\n <b>*Please consider these requirements for your new password.</b> <br><br>\r\n\r\n At least 8 characters<br>\r\n At least 1 uppercase letter (A-Z)<br>\r\n At least 2 lowercase letters (a-z)<br>\r\n At least 1 digit (0-9)<br>\r\n At least 1 special character (~`! …)<br>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n\r\n\r\n </div>\r\n</div>\r\n\r\n","\r\nimport { ChangeUserPassword } from './../../classes/Classes';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { MessageService } from '../../services/message.service';\r\nimport { DataServiceLib } from '../../services/data.service';\r\nimport { AuthService } from '../../services/auth.service';\r\n// import { ApiResponse, HttpService } from 'tin-core';\r\nimport { Location } from '@angular/common';\r\nimport { HttpService } from '../../services/http.service';\r\nimport { ApiResponse } from '../../classes/TinCore';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'spa-change-password',\r\n templateUrl: './change-password.component.html',\r\n styleUrls: ['./change-password.component.css']\r\n})\r\nexport class ChangePasswordComponent implements OnInit {\r\n\r\n constructor(public router: Router, private location: Location, private httpService: HttpService, private messageService: MessageService, public dataService: DataServiceLib, private authService: AuthService, private route: ActivatedRoute) { }\r\n\r\n ngOnInit() {\r\n this.myRole = this.authService.currentRoleSource.value\r\n\r\n if (this.dataService.tmpProfileuserName==\"\"){\r\n this.changePassword.userName = this.authService.currentUser;\r\n\r\n }else{\r\n this.changePassword.userName = this.dataService.tmpProfileuserName;\r\n this.dataService.tmpProfileuserName = \"\";\r\n }\r\n\r\n if (this.route.snapshot.queryParams.redirectTo != undefined) {\r\n this.redirectPath = this.route.snapshot.queryParams.redirectTo\r\n } else {\r\n this.redirectPath = \"home\"\r\n }\r\n\r\n }\r\n\r\n myRole;\r\n redirectPath\r\n isProcessing: boolean = false;\r\n changePassword = new ChangeUserPassword();\r\n\r\n public change() {\r\n\r\n if (!this.myRole[this.dataService.capUsers.name]){\r\n if (this.changePassword.currentPassword == \"\") {\r\n this.messageService.toast(\"Please enter current Password\");\r\n return;\r\n }\r\n }\r\n\r\n if (this.changePassword.newPassword == \"\") {\r\n this.messageService.toast(\"Please enter new Password\");\r\n return;\r\n }\r\n\r\n if (this.changePassword.confirmPassword == \"\") {\r\n this.messageService.toast(\"Please confirm new Password\");\r\n return;\r\n }\r\n\r\n if (this.changePassword.confirmPassword != this.changePassword.newPassword ) {\r\n this.messageService.toast(\"Passwords do not match\");\r\n return;\r\n }\r\n\r\n this.isProcessing = true;\r\n\r\n if (this.myRole[this.dataService.capUsers.name]){\r\n\r\n\r\n this.dataService.ChangePasswordAdmin(this.changePassword).subscribe((apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"Password Changed\");\r\n\r\n this.router.navigate([this.redirectPath]);\r\n\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n }\r\n );\r\n\r\n }else{\r\n\r\n this.dataService.ChangePassword(this.changePassword).subscribe((apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"Password Changed\");\r\n\r\n this.router.navigate([this.redirectPath]);\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n }\r\n );\r\n\r\n }\r\n }\r\n}\r\n","\r\n<div class=\"container\">\r\n\r\n <div class=\"row mt-3\" style=\"font-size:14px;\">\r\n\r\n <div class=\"col-2 mt-3 \">\r\n\r\n <div class=\"tin-input\">\r\n\r\n <div class=\"col\">\r\n <mat-icon style=\"font-size: 70px;\">account_circle</mat-icon>\r\n <!-- <img style=\"height: 40px\"> -->\r\n </div>\r\n\r\n <div class=\"col\">\r\n <mat-label id=\"lbluserName\" style=\"font-size: 14px;\">{{profile?.userName}}</mat-label>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n <div class=\"col-8 mt-3\">\r\n\r\n <div class=\"tin-input\" style=\"width: 70%;\">\r\n\r\n <div class=\"tin-input-row\">\r\n\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtFirstName\" display=\"First Name\" [(value)]=\"profile.firstName\" [readonly]=\"selfProfile\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtLastName\" display=\"Last Name\" [(value)]=\"profile.lastName\" [readonly]=\"selfProfile\"></spa-text>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtAuth\" display=\"Authentication\" [(value)]=\"profile.authType\" [readonly]=\"true\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtEmail\" display=\"Email\" [(value)]=\"profile.email\" [readonly]=\"selfProfile\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <spa-select id=\"cboRole\" display=\"Role\" [options]=\"roles\" optionDisplay=\"roleName\" optionValue=\"roleID\" [(value)]=\"profile.roleID\" [readonly]=\"selfProfile\"></spa-select>\r\n </div>\r\n\r\n\r\n <div class=\"tin-input-row mt-2\">\r\n <button id=\"btnUpdate\" mat-raised-button color=\"primary\" *ngIf=\"!selfProfile\" [disabled]=\"isProcessing\" (click)=\"updateProfile()\" >Update Profile</button>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n <div class=\"col-2 mt-4\">\r\n\r\n <a mat-button id=\"lnkUserManager\" style=\"margin-left: 1em\" *ngIf=\"!selfProfile\" (click)=\"gotoUsers()\" >User Manager</a>\r\n <a mat-button id=\"lnkChangePassword\" style=\"margin-left: 1em\" *ngIf=\"(selfProfile || myRole[dataService.capUsers.name]) && profile.authType=='local'\" (click)=\"changePassword()\" >Change Password</a>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</div>\r\n\r\n\r\n\r\n","import { AuthService } from './../../services/auth.service';\r\nimport { MessageService } from './../../services/message.service';\r\nimport { DataServiceLib } from './../../services/data.service';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { AppConfig, Profile } from '../../classes/Classes';\r\nimport { Router } from '@angular/router';\r\nimport { HttpService } from '../../services/http.service';\r\nimport { ApiResponse } from '../../classes/TinCore';\r\n\r\n@Component({\r\n selector: 'spa-profile',\r\n templateUrl: './profile.component.html',\r\n styleUrls: ['./profile.component.css']\r\n})\r\nexport class ProfileComponent implements OnInit {\r\n\r\n constructor(public dataService: DataServiceLib, private messageService: MessageService, private httpService: HttpService, private router: Router, private authService: AuthService) { }\r\n\r\n ngOnInit() {\r\n\r\n this.myRole = this.authService.currentRoleSource.value\r\n\r\n if (this.dataService.tmpProfileuserName==\"\"){\r\n this.loadProfile(this.authService.currentUser);\r\n\r\n }else{\r\n this.loadProfile(this.dataService.tmpProfileuserName);\r\n this.dataService.tmpProfileuserName = \"\";\r\n }\r\n\r\n }\r\n\r\n isProcessing: boolean;\r\n myRole;\r\n @Input() appConfig = new AppConfig();\r\n\r\n\r\n selfProfile : boolean = false;\r\n\r\n profile = new Profile();\r\n roles;\r\n approvalRoles;\r\n employees;\r\n\r\n\r\n loadProfile(userName: string){\r\n\r\n let action = \"all\";\r\n\r\n this.dataService.GetUserByID(userName).subscribe(\r\n (apiResponse: ApiResponse) => {\r\n\r\n this.profile = apiResponse[0];\r\n\r\n if (this.profile.userName.toLocaleLowerCase() == this.authService.currentUser.toLocaleLowerCase()){\r\n this.selfProfile = true\r\n }\r\n this.loadRoles()\r\n console.log(this.profile)\r\n },\r\n (error) => {\r\n this.isProcessing = false;\r\n this.messageService.toast(this.httpService.Error(error));\r\n }\r\n );\r\n }\r\n\r\n loadRoles(){\r\n\r\n this.dataService.GetRole(\"all\", \"\").subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.roles = apiResponse;\r\n console.log(this.roles)\r\n },\r\n (error) => {\r\n this.isProcessing = false;\r\n this.messageService.toast(this.httpService.Error(error));\r\n }\r\n );\r\n\r\n }\r\n\r\n changePassword(){\r\n this.dataService.tmpProfileuserName = this.profile.userName;\r\n this.router.navigate([\"home/user/change-password\"]);\r\n }\r\n\r\n gotoUsers(){\r\n this.router.navigate([\"home/admin/users\"]);\r\n }\r\n\r\n update(){\r\n\r\n }\r\n\r\n updateProfile(){\r\n this.isProcessing = true;\r\n\r\n // console.log(this.profile)\r\n // return\r\n this.dataService.UpdateUser(this.profile).subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.success) {\r\n this.messageService.toast(\"Profile Updated\");\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n },\r\n (error) => {\r\n this.messageService.toast(\"Connection failed \");\r\n this.isProcessing = false;\r\n }\r\n );\r\n }\r\n\r\n}\r\n","import { SpaMatModule } from \"./spa-mat.module\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { ChangePasswordComponent } from \"../components/change-password/change-password.component\";\r\nimport { ProfileComponent } from \"../components/profile/profile.component\";\r\nimport { TinSpaModule } from \"../tin-spa.module\";\r\n\r\n@NgModule({\r\n declarations: [ChangePasswordComponent, ProfileComponent],\r\n\r\n entryComponents: [],\r\n\r\n imports: [\r\n ReactiveFormsModule.withConfig({ warnOnNgModelWithFormControl: \"never\" }),\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SpaMatModule,\r\n TinSpaModule\r\n ],\r\n\r\n exports: [\r\n CommonModule,\r\n FormsModule,\r\n SpaMatModule,\r\n ChangePasswordComponent,\r\n ProfileComponent,\r\n ],\r\n})\r\nexport class SpaUserModule {}\r\n","<h4>Settings</h4>\r\n<hr>\r\n\r\n<div class=\"container\">\r\n\r\n <div class=\"row justify-content-between\" style=\"padding-bottom: 10px;padding-left:10px\">\r\n\r\n <div class=\"col-2\">\r\n <!-- <button mat-raised-button (click)=\"addSetting()\">New Setting</button> -->\r\n </div>\r\n <div class=\"col-2\">\r\n <button mat-raised-button (click)=\"loadSettings()\">Refresh</button>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"row mt-1 mb-1\" style=\"margin-left:10px\" *ngFor=\"let setting of settings\">\r\n\r\n <mat-form-field style=\"width: 500px; font-size: 14px;\">\r\n <mat-label>{{setting.sName}}</mat-label>\r\n <input matInput autocomplete=\"off\" [(ngModel)]=\"setting.sValue\" >\r\n </mat-form-field>\r\n\r\n <button mat-mini-fab color=\"primary\" (click)=\"updateSetting(setting)\" style=\"margin-right:150px;\"><mat-icon>done_all</mat-icon></button>\r\n\r\n <mat-label style=\"font-size: small;\">Last Updated by {{setting.updatedBy}} on {{setting.updatedDate | date: 'dd MMM yy HH:mm'}}</mat-label>\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { DataServiceLib } from '../../services/data.service';\r\nimport { MessageService } from '../../services/message.service';\r\nimport { ApiResponse } from '../../classes/TinCore';\r\n// import { ApiResponse } from 'tin-core';\r\n\r\n@Component({\r\n selector: 'spa-settings',\r\n templateUrl: './settings.component.html',\r\n styleUrls: ['./settings.component.css']\r\n})\r\nexport class SettingsComponent implements OnInit {\r\n\r\n constructor(private dataService: DataServiceLib, private messageService: MessageService) { }\r\n\r\n ngOnInit(): void {\r\n this.loadSettings();\r\n }\r\n\r\n _filterText = \"\";\r\n settings;\r\n isProcessing = false;\r\n\r\n applyFilter(filterValue: string) {\r\n this.settings.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n loadSettings(){\r\n this.dataService.GetSetting(\"all\", \"\").subscribe((apiResponse) => {\r\n this.settings = apiResponse;\r\n }\r\n );\r\n\r\n }\r\n\r\n updateSetting(setting) {\r\n\r\n this.isProcessing = true;\r\n this.dataService.UpdateSetting(setting, \"edit\").subscribe((apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.success) {\r\n this.messageService.toast(`Setting ${setting.sName} Updated`);\r\n this.loadSettings();\r\n\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n\r\n });\r\n\r\n };\r\n\r\n addSetting() {\r\n\r\n // const dialogRef = this.dialog.open(addRoleDialog, {\r\n // width: \"1100px\",\r\n // data: \"\",\r\n // });\r\n\r\n // dialogRef.afterClosed().subscribe((result) => {\r\n // if (result == \"success\") {\r\n // this.loadRoles();\r\n // }\r\n // });\r\n this.messageService.toast(\"Feature not Available\");\r\n\r\n }\r\n\r\n}\r\n","<h4>Logs</h4>\r\n<hr />\r\n\r\n<div class=\"container-fluid\">\r\n\r\n <div class=\"row justify-content-between\" style=\"padding-bottom: 10px\">\r\n\r\n <div class=\"col-2\">\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-end\">\r\n <spa-filter [data]=\"logs\" (refreshClick)=\"loadLogs()\"></spa-filter>\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n <p *ngIf=\"!logs\"><em>Loading...</em></p>\r\n\r\n\r\n <div class=\"mat-elevation-z8\" *ngIf=\"logs\">\r\n\r\n <table id=\"tblTable\" mat-table [dataSource]=\"logs\">\r\n\r\n\r\n <ng-container matColumnDef=\"userName\">\r\n <th mat-header-cell *matHeaderCellDef> User </th>\r\n <td mat-cell *matCellDef=\"let log\"> {{log.userName}} </td>\r\n </ng-container>\r\n\r\n\r\n <ng-container matColumnDef=\"dateLogged\">\r\n <th mat-header-cell *matHeaderCellDef class=\"datetime\"> Date Logged </th>\r\n <td mat-cell *matCellDef=\"let log\"> {{log.dateLogged | date: 'dd MMM yy HH:mm:ss'}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"source\">\r\n <th mat-header-cell *matHeaderCellDef> Source </th>\r\n <td mat-cell *matCellDef=\"let log\"> {{log.source}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"details\">\r\n <th mat-header-cell *matHeaderCellDef> Details </th>\r\n <td mat-cell *matCellDef=\"let log\"> {{log.details}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"fullName\">\r\n <th mat-header-cell *matHeaderCellDef> Name </th>\r\n <td mat-cell *matCellDef=\"let log\">{{log.user.firstName}} {{log.user.lastName}}</td>\r\n </ng-container>\r\n\r\n\r\n\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\r\n\r\n\r\n </table>\r\n\r\n </div>\r\n\r\n <mat-paginator #logsPaginator [pageSizeOptions]=\"[50, 100, 200]\" showFirstLastButtons></mat-paginator>\r\n</div>\r\n\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { DataServiceLib } from \"../../services/data.service\";\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { AuthService } from '../../services/auth.service';\r\n\r\n@Component({\r\n selector: 'spa-logs',\r\n templateUrl: './logs.component.html',\r\n styleUrls: ['./logs.component.css']\r\n})\r\nexport class LogsComponent implements OnInit {\r\n constructor(private authService: AuthService, private dataService: DataServiceLib,) { }\r\n\r\n ngOnInit() {\r\n this.authService.isAuthorised(this.dataService.capLogs.name);\r\n this.loadLogs();\r\n }\r\n\r\n isProcessing: boolean = false;\r\n @ViewChild(\"logsPaginator\") logsPaginator: MatPaginator;\r\n\r\n\r\n logs;\r\n\r\n displayedColumns: string[] = [\"dateLogged\", \"userName\", \"fullName\", \"source\", \"details\"];\r\n\r\n public loadLogs() {\r\n this.dataService.GetLog(\"all\", \"\").subscribe((apiResponse) => {\r\n\r\n this.logs = new MatTableDataSource(apiResponse);\r\n this.logs.paginator = this.logsPaginator;\r\n\r\n }\r\n );\r\n }\r\n\r\n}\r\n","\r\n<h4>Users</h4>\r\n<hr />\r\n\r\n<div class=\"container\">\r\n\r\n <div class=\"row justify-content-between\" style=\"padding-bottom: 10px\">\r\n <div class=\"col-2\">\r\n <button id=\"btnCreateAccount\" mat-raised-button color=\"primary\" (click)=\"createAccount()\">Create Account</button>\r\n </div>\r\n\r\n <div class=\"d-flex justify-content-end\">\r\n <spa-filter [data]=\"users\" (refreshClick)=\"UpdateData()\"></spa-filter>\r\n </div>\r\n </div>\r\n\r\n\r\n <p *ngIf=\"!users\"><em>Loading...</em></p>\r\n\r\n\r\n <div class=\"mat-elevation-z8\" *ngIf=\"users\">\r\n\r\n <table id=\"tblTable\" mat-table [dataSource]=\"users\">\r\n\r\n <ng-container matColumnDef=\"userName\">\r\n <th mat-header-cell *matHeaderCellDef> userName </th>\r\n <td mat-cell *matCellDef=\"let user\"> {{user.userName}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"locked\">\r\n <th mat-header-cell *matHeaderCellDef> Locked </th>\r\n <td mat-cell *matCellDef=\"let user\"> {{user.locked}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"fullName\">\r\n <th mat-header-cell *matHeaderCellDef> Name </th>\r\n <td mat-cell *matCellDef=\"let user\"> {{user.firstName}} {{user.lastName}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"roleName\">\r\n <th mat-header-cell *matHeaderCellDef> Role </th>\r\n <td mat-cell *matCellDef=\"let user\"> {{user.role.roleName}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"disabled\">\r\n <th mat-header-cell *matHeaderCellDef> Disabled </th>\r\n <td mat-cell *matCellDef=\"let user\"> {{user.disabled}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"dateCreated\">\r\n <th mat-header-cell *matHeaderCellDef> Created </th>\r\n <td mat-cell *matCellDef=\"let user\"> {{user.createdDate | date: 'dd/MM/yyyy'}} </td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"dateUpdated\">\r\n <th mat-header-cell *matHeaderCellDef> Updated </th>\r\n <td mat-cell *matCellDef=\"let user\"> {{user.updatedDate | date: 'dd/MM/yyyy'}} </td>\r\n </ng-container>\r\n\r\n\r\n <ng-container matColumnDef=\"Action\">\r\n <th mat-header-cell *matHeaderCellDef> Action </th>\r\n <td mat-cell *matCellDef=\"let user\" style=\"width: 250px;\">\r\n\r\n <button mat-mini-fab color=\"primary\" (click)=\"viewProfile(user)\" style=\"margin-right:30px\" matTooltip=\"View Profile\" matTooltipPosition=\"above\"> <mat-icon>account_circle</mat-icon></button>\r\n\r\n <button *ngIf=\"user.locked=='0'\" mat-mini-fab color=\"warn\" (click)=\"lock(user)\" style=\"margin-right:10px\" matTooltip=\"Lock\" matTooltipPosition=\"above\"> <mat-icon>lock</mat-icon></button>\r\n <button *ngIf=\"user.locked=='1'\" mat-mini-fab (click)=\"unlock(user)\" style=\"margin-right:10px; background-color: green;\" matTooltip=\"Unlock\" matTooltipPosition=\"above\"> <mat-icon >lock_open</mat-icon></button>\r\n\r\n <!-- <button *ngIf=\"user.disabled=='0'\" mat-mini-fab color=\"warn\" (click)=\"disable(user)\" style=\"margin-right:10px\" matTooltip=\"Disable\" matTooltipPosition=\"above\"> <mat-icon>block</mat-icon></button>\r\n <button *ngIf=\"user.disabled=='1'\" mat-mini-fab (click)=\"enable(user)\" style=\"margin-right:10px; background-color: green\" matTooltip=\"Enable\" matTooltipPosition=\"above\"> <mat-icon>done</mat-icon></button> -->\r\n\r\n <button mat-mini-fab color=\"warn\" (click)=\"deleteUser(user)\" style=\"margin-right:10px\" matTooltip=\"Delete\" matTooltipPosition=\"above\"> <mat-icon>delete</mat-icon></button>\r\n <!-- <button mat-mini-fab color=\"primary\" (click)=\"recover(user)\" style=\"margin-right:10px\" matTooltip=\"Reset Password\" matTooltipPosition=\"above\"> <mat-icon>vpn_key</mat-icon></button> -->\r\n\r\n\r\n\r\n </td>\r\n </ng-container>\r\n\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\" [ngClass]=\"{'make-gray': row.disabled =='1'}\"></tr>\r\n\r\n </table>\r\n\r\n </div>\r\n\r\n <mat-paginator #usersPaginator [pageSizeOptions]=\"[10, 20, 50]\" showFirstLastButtons></mat-paginator>\r\n</div>\r\n","import { Component, OnInit, Inject, ViewChild } from \"@angular/core\";\r\nimport { MatTableDataSource } from \"@angular/material/table\";\r\nimport { MatPaginator } from \"@angular/material/paginator\";\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from \"@angular/material/dialog\";\r\nimport { DataServiceLib } from \"../../services/data.service\";\r\nimport { Router } from \"@angular/router\";\r\nimport { MessageService } from \"../../services/message.service\";\r\nimport { AuthService } from \"../../services/auth.service\";\r\nimport { User } from '../../classes/Classes';\r\nimport { HttpService } from \"../../services/http.service\";\r\nimport { ApiResponse } from \"../../classes/TinCore\";\r\n\r\n@Component({\r\n selector: \"spa-users\",\r\n templateUrl: \"./users.component.html\",\r\n styleUrls: [\"./users.component.css\"],\r\n})\r\nexport class UsersComponent implements OnInit {\r\n constructor(private httpService: HttpService, public router: Router, private authService: AuthService, private dataService: DataServiceLib, public dialog: MatDialog, private messageService: MessageService) { }\r\n\r\n ngOnInit() {\r\n this.authService.isAuthorised(this.dataService.capUsers.name);\r\n this.UpdateData();\r\n }\r\n\r\n isProcessing: boolean = false;\r\n @ViewChild(\"usersPaginator\") usersPaginator: MatPaginator;\r\n\r\n _filterText = \"\";\r\n\r\n users;\r\n displayedColumns: string[] = [\"userName\", \"fullName\", \"roleName\", \"locked\", \"dateCreated\", \"Action\"];\r\n\r\n public UpdateData() {\r\n this.dataService.GetUser().subscribe(\r\n (apiResponse) => {\r\n\r\n this.users = new MatTableDataSource(apiResponse);\r\n this.users.paginator = this.usersPaginator;\r\n this.applyFilter(this._filterText);\r\n\r\n },\r\n (error) => {\r\n this.isProcessing = false;\r\n this.messageService.toast(this.httpService.Error(error));\r\n }\r\n );\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.users.filter = filterValue.trim().toLowerCase();\r\n }\r\n\r\n createAccount() {\r\n this.router.navigate([\"home/admin/create-account\"]);\r\n }\r\n\r\n viewProfile(user: User) {\r\n\r\n this.dataService.tmpProfileuserName = user.userName;\r\n this.router.navigate([\"home/user/profile\"]);\r\n\r\n }\r\n\r\n lock(u) {\r\n let login = { userName: u.userName, password: \"Abcdef@123\" }\r\n\r\n this.dataService.LockUser(login).subscribe((apiResponse) => {\r\n\r\n if (apiResponse.success) {\r\n this.messageService.toast(\"User Locked\");\r\n this.UpdateData();\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse);\r\n }\r\n });\r\n }\r\n\r\n unlock(u) {\r\n let login = { userName: u.userName, password: \"Abcdef@123\" }\r\n\r\n this.dataService.UnlockUser(login).subscribe((apiResponse) => {\r\n\r\n if (apiResponse.success) {\r\n this.messageService.toast(\"User Unlocked\");\r\n this.UpdateData();\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse);\r\n }\r\n });\r\n }\r\n\r\n recover(u: User) {\r\n this.dataService.SelfReset(u).subscribe((apiResponse: ApiResponse) => {\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"The password has been sent on email\");\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n });\r\n\r\n }\r\n\r\n deleteUser(user: User) {\r\n\r\n this.messageService.confirm(`Delete ${user.userName} ?`).subscribe((result) => {\r\n\r\n if (result == \"yes\") {\r\n\r\n this.isProcessing = true;\r\n this.dataService.DeleteUser(user).subscribe(\r\n (apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.message == \"success\") {\r\n this.messageService.toast(\"User Deleted\");\r\n\r\n this.UpdateData();\r\n\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n },\r\n (error) => {\r\n this.messageService.toast(\"Connection failed \");\r\n this.isProcessing = false;\r\n }\r\n );\r\n\r\n }\r\n })\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n","<mat-form-field>\r\n <mat-label>Role Name</mat-label>\r\n <input matInput autocomplete=\"off\" [(ngModel)]=\"role.roleName\" placeholder=\"Enter Role Name\" />\r\n</mat-form-field>\r\n\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n <div class=\"row\" >\r\n\r\n <!-- <div class=\" col-4\">\r\n\r\n <div class=\"row\">\r\n <mat-checkbox color=\"primary\" style=\"margin-right:20px; font-size:14px\" [(ngModel)]=\"role.cap1\">Admin</mat-checkbox>\r\n </div>\r\n\r\n </div> -->\r\n\r\n <div class=\"row\" style=\"margin-left: 2em;margin-right: 2em;\">\r\n\r\n <div class=\"row\" style=\"margin-left: 2em;\" *ngFor=\"let capItem of capItems\">\r\n\r\n <mat-checkbox color=\"primary\" style=\"margin-right:20px; font-size:12px; width: 200px;\" [(ngModel)]=\"role[capItem.name]\">{{capItem.display}}</mat-checkbox>\r\n\r\n <div *ngFor=\"let capSubItem of capItem.capSubItems\">\r\n\r\n <mat-checkbox color=\"primary\" style=\"margin-right:20px; font-size:12px; width: 200px;\" [(ngModel)]=\"role[capSubItem.name]\">{{capSubItem.display}}</mat-checkbox>\r\n\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n <button mat-button [disabled]=\"isProcessing\" (click)=\"submit()\" cdkFocusInitial>Submit</button>\r\n <button mat-button mat-dialog-close=\"success\">Cancel</button>\r\n</mat-dialog-actions>\r\n","import { MessageService } from '../../services/message.service';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialog, MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { DataServiceLib } from '../../services/data.service';\r\n// import { AuthService } from '../../services/auth.service';\r\n// import { ApiResponse, Core } from 'tin-core';\r\nimport { Role } from '../../classes/Classes';\r\nimport { ApiResponse } from '../../classes/TinCore';\r\n\r\n@Component({\r\n selector: 'app-addRole',\r\n templateUrl: './addRoleDialog.component.html',\r\n styleUrls: ['./roles.component.css']\r\n})\r\nexport class addRoleDialog implements OnInit {\r\n\r\n constructor(private messageService: MessageService, private dataService: DataServiceLib, private authService: AuthService, private dialogRef: MatDialogRef<addRoleDialog>, @Inject(MAT_DIALOG_DATA) public data) { }\r\n ngOnInit() {\r\n this.capItems = this.data;\r\n }\r\n\r\n capItems;\r\n\r\n isProcessing: boolean;\r\n role = new Role();\r\n\r\n submit() {\r\n\r\n if (this.role.roleName == \"New Role\" || this.role.roleName == \"\"){\r\n this.messageService.toast(\"Please enter Role Name\");\r\n return;\r\n }\r\n\r\n\r\n this.isProcessing = true;\r\n this.dataService.PostRole(this.role,\"add\").subscribe((apiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.success) {\r\n this.messageService.toast(\"Role Added\");\r\n this.dialogRef.close(\"success\");\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n\r\n\r\n }, error => {\r\n this.messageService.toast(\"Connection failed\");\r\n this.isProcessing = false;\r\n });\r\n\r\n };\r\n};\r\n\r\n\r\n\r\n","<h4> Roles </h4>\r\n<hr />\r\n\r\n<div class=\"container mb-5\">\r\n\r\n <div class=\"row justify-content-between\" style=\"padding-bottom: 10px;padding-left:10px\">\r\n <div class=\"col-2\">\r\n\r\n <button id=\"btnNewRole\" mat-raised-button color=\"primary\" (click)=\"addRole()\">New Role</button>\r\n </div>\r\n <div class=\"col-1\">\r\n\r\n <button id=\"btnRefresh\" mat-mini-fab color=\"primary\" (click)=\"refresh()\" style=\"margin-right:1em;margin-top:5px\" matTooltip=\"refresh data\" matTooltipPosition=\"right\"><mat-icon class=\"refreshIcon\">refresh</mat-icon></button>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"row mt-2 mb-1\" style=\"margin-left:10px\" *ngFor=\"let role of roles\">\r\n\r\n <mat-card class=\"mat-elevation-z8\" style=\"width:100%;padding-left:2em\">\r\n\r\n <h4>{{role.roleName}}</h4>\r\n <hr />\r\n\r\n <div class=\"row\" style=\"margin-left: 2em;\">\r\n\r\n\r\n <div class=\"row\" style=\"margin-right:20px;\" *ngFor=\"let capItem of appConfig.capItems\">\r\n\r\n <mat-checkbox color=\"primary\" style=\" font-size:12px; width: 200px;\" [(ngModel)]=\"role[capItem.name]\">{{capItem.display}}</mat-checkbox>\r\n\r\n <div class=\"row\" style=\"margin-right:20px;margin-left: 0px; \" *ngFor=\"let capSubItem of capItem.capSubItems\">\r\n\r\n <mat-checkbox color=\"primary\" style=\" font-size:12px; width: 200px;\" [(ngModel)]=\"role[capSubItem.name]\">{{capSubItem.display}}</mat-checkbox>\r\n\r\n <div class=\"row\" style=\"margin-right:20px;margin-left: 0px;\" *ngFor=\"let capSubSubItem of capSubItem.capSubItems\">\r\n\r\n <mat-checkbox color=\"primary\" style=\"font-size:12px; width: 200px;\" [(ngModel)]=\"role[capSubSubItem.name]\">{{capSubSubItem.display}}</mat-checkbox>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <mat-card-actions>\r\n\r\n <button mat-mini-fab color=\"primary\" (click)=\"updateRole(role)\" style=\"margin-right:10px;\">\r\n <mat-icon>done_all</mat-icon>\r\n </button>\r\n\r\n <!-- <button mat-mini-fab color=\"warn\" (click)=\"editRole(role)\" style=\"margin-right:10px\">\r\n <mat-icon>edit</mat-icon>\r\n </button> -->\r\n\r\n <button mat-mini-fab color=\"warn\" (click)=\"deleteRole(role)\" style=\"margin-right:10px\">\r\n <mat-icon>delete</mat-icon>\r\n </button>\r\n\r\n </mat-card-actions>\r\n\r\n </mat-card>\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n","import { AppConfig } from './../../classes/Classes';\r\nimport { Component, OnInit, Input } from \"@angular/core\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\nimport { DataServiceLib } from \"../../services/data.service\";\r\nimport { Role, CapItem } from \"../../classes/Classes\";\r\nimport { addRoleDialog } from \"./addRoleDialog.component\";\r\nimport { Router } from \"@angular/router\";\r\nimport { MessageService } from '../../services/message.service';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { HttpService } from '../../services/http.service';\r\n\r\n\r\n@Component({\r\n selector: \"spa-roles\",\r\n templateUrl: \"./roles.component.html\",\r\n styleUrls: [\"./roles.component.css\"],\r\n})\r\nexport class RolesComponent implements OnInit {\r\n constructor(private httpService: HttpService, private router: Router, private authService: AuthService, private dataService: DataServiceLib, public dialog: MatDialog, private messageService: MessageService) { }\r\n\r\n ngOnInit() {\r\n this.authService.isAuthorised(this.dataService.capRoles.name);\r\n this.loadRoles();\r\n this.dataService.appConfigObserv.subscribe(x => this.appConfig = x);\r\n }\r\n\r\n isProcessing = false;\r\n roles: Role[];\r\n\r\n appConfig = new AppConfig();\r\n\r\n loadRoles() {\r\n this.dataService.GetRole(\"all\", \"\").subscribe((apiResponse) => {\r\n this.roles = apiResponse;\r\n });\r\n }\r\n\r\n refresh() {\r\n this.loadRoles();\r\n }\r\n\r\n addRole() {\r\n const dialogRef = this.dialog.open(addRoleDialog, {\r\n width: \"1100px\",\r\n data: this.appConfig.capItems,\r\n });\r\n\r\n dialogRef.afterClosed().subscribe((result) => {\r\n if (result == \"success\") {\r\n this.loadRoles();\r\n }\r\n });\r\n }\r\n\r\n updateRole(role: Role) {\r\n\r\n this.messageService.confirm(`UPDATE ${role.roleName} ?`).subscribe((result) => {\r\n\r\n if (result == \"yes\") {\r\n\r\n this.dataService.PostRole(role, \"edit\").subscribe((apiResponse) => {\r\n\r\n if (apiResponse.success) {\r\n this.messageService.toast(\"Role Updated\");\r\n this.loadRoles();\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse);\r\n }\r\n });\r\n\r\n }\r\n\r\n })\r\n\r\n\r\n };\r\n\r\n deleteRole(role: Role) {\r\n\r\n this.messageService.confirm(`DELETE ${role.roleName} ?`).subscribe((result) => {\r\n\r\n if (result == \"yes\") {\r\n\r\n this.dataService.PostRole(role, \"delete\").subscribe((apiResponse) => {\r\n if (apiResponse.success) {\r\n this.messageService.toast(\"Role Deleted\");\r\n this.loadRoles();\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse);\r\n }\r\n });\r\n\r\n }\r\n\r\n })\r\n\r\n }\r\n}\r\n","<h4>Create Account</h4>\r\n\r\n<hr/>\r\n\r\n<div class=\"container\">\r\n\r\n <div class=\"tin-input\" style=\"font-size:14px; width: 70%;\">\r\n\r\n\r\n <div class=\"tin-input-row\">\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtFirstName\" display=\"FirstName\" [(value)]=\"register.firstName\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtLastName\" display=\"LastName\" [(value)]=\"register.lastName\"></spa-text>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <div class=\"tin-input-row mt-3\">\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtUserName\" display=\"Username\" [(value)]=\"register.userName\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <spa-select id=\"cboAuth\" display=\"Authentication Type\" [options]=\"authTypes\" optionDisplay=\"name\" optionValue=\"value\" [(value)]=\"register.authType\" ></spa-select>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <div class=\"tin-input-row\" *ngIf=\"register.authType=='local'\">\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtPassword\" display=\"Password\" [(value)]=\"register.password\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n <div class=\"col\">\r\n <spa-text id=\"txtConfirmPassword\" display=\"Confirm Password\" [(value)]=\"confirmPassword\" type=\"password\"></spa-text>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n <div class=\"tin-input-row mt-3\" style=\"margin-left: 1em;\">\r\n <mat-checkbox id=\"cbkOpenAfter\" color=\"primary\" style=\"margin-right:100px; font-size:12px\" [(ngModel)]=\"openProfile\">Open profile after creation</mat-checkbox>\r\n </div>\r\n\r\n <div class=\"tin-input-row mt-3\">\r\n <button id=\"btnCreate\" [disabled]=\"register.authType ==''\" mat-raised-button color=\"primary\" (click)=\"create()\" cdkFocusInitial>Create</button>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n\r\n","import { DataServiceLib } from './../../services/data.service';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { MessageService } from '../../services/message.service';\r\nimport { AuthService } from '../../services/auth.service';\r\nimport { Profile, AppConfig, Register } from '../../classes/Classes';\r\nimport { Router } from '@angular/router';\r\nimport { HttpService } from '../../services/http.service';\r\nimport { ApiResponse } from '../../classes/TinCore';\r\n\r\n@Component({\r\n selector: 'spa-create-account',\r\n templateUrl: './create-account.component.html',\r\n styleUrls: ['./create-account.component.css']\r\n})\r\nexport class CreateAccountComponent implements OnInit {\r\n\r\n constructor(private httpService: HttpService, private messageService: MessageService, private dataService: DataServiceLib, private authService: AuthService, public router: Router) { }\r\n\r\n ngOnInit() {\r\n this.appConfig = this.dataService.appConfig;\r\n }\r\n\r\n\r\n\r\n @Input() appConfig = new AppConfig();\r\n\r\n isProcessing: boolean = false;\r\n register = new Register();\r\n confirmPassword: string;\r\n openProfile: boolean = true;\r\n\r\n authTypes = [\r\n { name: \"Local Authentication\", value: \"local\" },\r\n { name: \"AD Authentication\", value: \"AD\" }\r\n ]\r\n\r\n\r\n create() {\r\n\r\n if (this.register.authType == \"\") {\r\n this.messageService.toast(\"Choose Authentication Type\");\r\n return;\r\n }\r\n\r\n\r\n this.isProcessing = true;\r\n this.dataService.RegisterAccount(this.register).subscribe((apiResponse: ApiResponse) => {\r\n this.isProcessing = false;\r\n\r\n if (apiResponse.success) {\r\n this.messageService.toast(\"Account Created\");\r\n\r\n if (this.openProfile) {\r\n this.viewProfile(this.register.userName);\r\n } else {\r\n // this.user = new User();\r\n this.register = new Register();\r\n this.confirmPassword = \"\";\r\n }\r\n\r\n\r\n } else {\r\n this.messageService.toast(\"Error: \" + apiResponse.message);\r\n }\r\n },\r\n (error) => {\r\n this.isProcessing = false;\r\n this.messageService.toast(this.httpService.Error(error));\r\n }\r\n );\r\n }\r\n\r\n viewProfile(userName: string) {\r\n\r\n this.dataService.tmpProfileuserName = userName;\r\n this.router.navigate([\"home/user/profile\"]);\r\n\r\n }\r\n\r\n}\r\n","import { SettingsComponent } from '../components/settings/settings.component';\r\nimport { LogsComponent } from '../components/logs/logs.component';\r\nimport { SpaMatModule } from \"./spa-mat.module\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { UsersComponent } from \"../components/users/users.component\";\r\nimport { RolesComponent } from \"../components/roles/roles.component\";\r\nimport { addRoleDialog } from \"../components/roles/addRoleDialog.component\";\r\nimport { CreateAccountComponent } from \"../components/create-account/create-account.component\";\r\nimport { TinSpaModule } from '../tin-spa.module';\r\n\r\n@NgModule({\r\n declarations: [\r\n UsersComponent,\r\n RolesComponent,\r\n addRoleDialog,\r\n CreateAccountComponent,\r\n LogsComponent,\r\n SettingsComponent\r\n ],\r\n\r\n entryComponents: [\r\n addRoleDialog,\r\n ],\r\n\r\n imports: [\r\n ReactiveFormsModule.withConfig({ warnOnNgModelWithFormControl: \"never\" }),\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SpaMatModule,\r\n TinSpaModule\r\n ],\r\n\r\n exports: [\r\n CommonModule,\r\n FormsModule,\r\n SpaMatModule,\r\n UsersComponent,\r\n RolesComponent,\r\n addRoleDialog,\r\n CreateAccountComponent,\r\n LogsComponent,\r\n SettingsComponent\r\n ],\r\n})\r\nexport class SpaAdminModule {}\r\n","/*\r\n * Public API Surface of tin-spa\r\n */\r\n\r\n\r\n//Services\r\nexport * from './lib/services/tin-spa.service';\r\nexport * from './lib/services/storage.service';\r\nexport * from './lib/services/message.service';\r\nexport * from './lib/services/export.service';\r\nexport * from './lib/services/auth.service';\r\nexport * from './lib/services/data.service';\r\nexport * from './lib/services/log.service';\r\nexport * from './lib/services/http.service';\r\n\r\n\r\n//classes\r\nexport * from './lib/classes/Classes';\r\nexport * from './lib/classes/TinCore';\r\n\r\n\r\n//modules\r\nexport * from './lib/tin-spa.module';\r\nexport * from './lib/modules/spa-mat.module'\r\nexport * from './lib/modules/spa-index.module'\r\nexport * from './lib/modules/spa-user.module'\r\nexport * from './lib/modules/spa-admin.module'\r\n\r\n\r\n//components\r\nexport * from './lib/components/tin-spa.component';\r\nexport * from './lib/components/table/table.component';\r\nexport * from './lib/components/tiles/tiles.component';\r\nexport * from './lib/components/date/date.component';\r\n\r\nexport * from './lib/components/text/text.component';\r\nexport * from './lib/components/label/label.component';\r\nexport * from './lib/components/datetime/datetime.component';\r\nexport * from './lib/components/select/select.component';\r\nexport * from './lib/components/attach/attach.component';\r\nexport * from './lib/components/check/check.component';\r\nexport * from './lib/components/viewer/viewer.component';\r\nexport * from './lib/components/money/money.component';\r\nexport * from './lib/components/chips/chips.component';\r\nexport * from './lib/components/activity/activity.component';\r\nexport * from './lib/components/html/html.component';\r\nexport * from './lib/components/option/option.component';\r\nexport * from './lib/components/steps/steps.component';\r\nexport * from './lib/components/filter/filter.component';\r\n\r\nexport * from './lib/components/message/messageDialog.component';\r\nexport * from './lib/components/loader/loader.component';\r\nexport * from './lib/components/users/users.component';\r\nexport * from './lib/components/login/login.component';\r\nexport * from './lib/components/nav-menu/nav-menu.component';\r\nexport * from './lib/components/roles/roles.component';\r\nexport * from './lib/components/roles/addRoleDialog.component';\r\nexport * from './lib/components/signup/signup.component';\r\nexport * from './lib/components/change-password/change-password.component';\r\nexport * from './lib/components/profile/profile.component';\r\nexport * from './lib/components/recover-account/recover-account.component';\r\nexport * from './lib/components/create-account/create-account.component';\r\nexport * from './lib/components/timeout/timeout.component'\r\nexport * from './lib/components/logs/logs.component';\r\nexport * from './lib/components/settings/settings.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i0.ɵɵelementStart","i0.ɵɵtext","i0.ɵɵelementEnd","i0.ɵɵadvance","i0.ɵɵtextInterpolate","i0.ɵɵlistener","i0.ɵɵtemplate","i0.ɵɵproperty","XLSX.utils","XLSX.write","FileSaver.saveAs","i0.ɵɵelement","i0.ɵɵtextInterpolate1","i0.ɵɵattribute","i0.ɵɵelementContainerStart","i0.ɵɵelementContainerEnd","i0.ɵɵstyleMap","i0.ɵɵnamespaceSVG","i0.ɵɵtextInterpolate2"],"mappings":"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QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAA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"}
|