@resolveio/client-lib-core 16.0.0 → 21.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/resolveio-client-lib-core.min.mjs +1 -0
- package/package.json +10 -8
- package/types/resolveio-client-lib-core.d.ts +1904 -0
- package/esm2022/lib/account-manager.service.mjs +0 -229
- package/esm2022/lib/auth/auth-guard.service.mjs +0 -174
- package/esm2022/lib/auth/auth-permissions.service.mjs +0 -23
- package/esm2022/lib/auth/auth.service.mjs +0 -251
- package/esm2022/lib/auth/auth365.component.mjs +0 -51
- package/esm2022/lib/auth/can-deactivate-guard.service.mjs +0 -13
- package/esm2022/lib/auth/enroll.component.mjs +0 -88
- package/esm2022/lib/auth/forgot-password.component.mjs +0 -89
- package/esm2022/lib/core.component.mjs +0 -404
- package/esm2022/lib/core.module.mjs +0 -176
- package/esm2022/lib/core.service.mjs +0 -88
- package/esm2022/lib/directive/focus.mjs +0 -24
- package/esm2022/lib/directive/scroll.mjs +0 -54
- package/esm2022/lib/home/home.component.mjs +0 -84
- package/esm2022/lib/logger/logger.component.mjs +0 -229
- package/esm2022/lib/models/app-status.model.mjs +0 -2
- package/esm2022/lib/models/collection-document.model.mjs +0 -2
- package/esm2022/lib/models/cron-job.model.mjs +0 -2
- package/esm2022/lib/models/dialog.model.mjs +0 -2
- package/esm2022/lib/models/file.model.mjs +0 -2
- package/esm2022/lib/models/log-method-latency.model.mjs +0 -2
- package/esm2022/lib/models/navbar-main-tab.model.mjs +0 -2
- package/esm2022/lib/models/pagination.model.mjs +0 -2
- package/esm2022/lib/models/permission.model.mjs +0 -2
- package/esm2022/lib/models/select-data-label.model.mjs +0 -2
- package/esm2022/lib/models/subscription.model.mjs +0 -2
- package/esm2022/lib/models/support-ticket.model.mjs +0 -2
- package/esm2022/lib/models/user-group.model.mjs +0 -2
- package/esm2022/lib/models/user.model.mjs +0 -2
- package/esm2022/lib/offline-db.mjs +0 -519
- package/esm2022/lib/offline-manager.service.mjs +0 -109
- package/esm2022/lib/pipes/domsanitizor.pipe.mjs +0 -29
- package/esm2022/lib/pipes/filter.pipe.mjs +0 -36
- package/esm2022/lib/pipes/json-parse.pipe.mjs +0 -29
- package/esm2022/lib/pipes/minus-currency.pipe.mjs +0 -16
- package/esm2022/lib/pipes/phone.pipe.mjs +0 -47
- package/esm2022/lib/pipes/pipe.module.mjs +0 -54
- package/esm2022/lib/pipes/reverse-list.pipe.mjs +0 -17
- package/esm2022/lib/pipes/titlecase.pipe.mjs +0 -22
- package/esm2022/lib/report-builder.permission.mjs +0 -13
- package/esm2022/lib/resolveio-class.mjs +0 -50
- package/esm2022/lib/shared/shared.module.mjs +0 -96
- package/esm2022/lib/socket-manager.service.mjs +0 -340
- package/esm2022/lib/socket.service.mjs +0 -200
- package/esm2022/lib/super-admin.permission.mjs +0 -9
- package/esm2022/lib/support-ticket/detail/support-ticket-detail.component.mjs +0 -211
- package/esm2022/lib/support-ticket/edit/support-ticket-edit.component.mjs +0 -131
- package/esm2022/lib/support-ticket/list/support-ticket-list.component.mjs +0 -142
- package/esm2022/lib/support-ticket/new/support-ticket-new.component.mjs +0 -121
- package/esm2022/lib/support-ticket/support-ticket.component.mjs +0 -67
- package/esm2022/lib/support-ticket/support-ticket.module.mjs +0 -50
- package/esm2022/lib/support-ticket/support-ticket.routing.mjs +0 -20
- package/esm2022/lib/support-ticket/support-ticket.service.mjs +0 -16
- package/esm2022/lib/token-manager.service.mjs +0 -25
- package/esm2022/lib/user-settings/settings/users-settings.component.mjs +0 -302
- package/esm2022/lib/user-settings/user-settings.component.mjs +0 -61
- package/esm2022/lib/user-settings/user-settings.module.mjs +0 -41
- package/esm2022/lib/user-settings/user-settings.permission.mjs +0 -10
- package/esm2022/lib/user-settings/user-settings.routing.mjs +0 -14
- package/esm2022/lib/user-settings/user-settings.service.mjs +0 -16
- package/esm2022/lib/util/action-name.helper.mjs +0 -9
- package/esm2022/lib/util/aws.service.mjs +0 -80
- package/esm2022/lib/util/common.helper.mjs +0 -133
- package/esm2022/lib/util/validation.service.mjs +0 -185
- package/esm2022/lib/util/window-resize.service.mjs +0 -38
- package/esm2022/lib/util/window.service.mjs +0 -16
- package/esm2022/lib/widgets/alert/alert.model.mjs +0 -2
- package/esm2022/lib/widgets/alert/alert.service.mjs +0 -79
- package/esm2022/lib/widgets/collapse-table/collapse-table.component.mjs +0 -83
- package/esm2022/lib/widgets/collapse-table/collapse-table.module.mjs +0 -34
- package/esm2022/lib/widgets/data-table/data-table.component.mjs +0 -84
- package/esm2022/lib/widgets/data-table/data-table.model.mjs +0 -2
- package/esm2022/lib/widgets/data-table/data-table.module.mjs +0 -41
- package/esm2022/lib/widgets/date-shortcut/date-shortcut.component.mjs +0 -198
- package/esm2022/lib/widgets/date-shortcut/date-shortcut.module.mjs +0 -32
- package/esm2022/lib/widgets/dialog/dialog.confirm.content.mjs +0 -67
- package/esm2022/lib/widgets/dialog/dialog.error.content.mjs +0 -60
- package/esm2022/lib/widgets/dialog/dialog.input.content.mjs +0 -200
- package/esm2022/lib/widgets/dialog/dialog.login.content.mjs +0 -354
- package/esm2022/lib/widgets/dialog/dialog.notify.content.mjs +0 -60
- package/esm2022/lib/widgets/dialog/dialog.register.content.mjs +0 -333
- package/esm2022/lib/widgets/dialog/dialog.select-array-objs.content.mjs +0 -203
- package/esm2022/lib/widgets/dialog/dialog.select-array.content.mjs +0 -310
- package/esm2022/lib/widgets/dialog/dialog.select-data-labels.content.mjs +0 -196
- package/esm2022/lib/widgets/dialog/dialog.select-datetime.content.mjs +0 -191
- package/esm2022/lib/widgets/dialog/dialog.select-with-buttons-url.content.mjs +0 -166
- package/esm2022/lib/widgets/dialog/dialog.service.mjs +0 -98
- package/esm2022/lib/widgets/file/file-upload.component.mjs +0 -433
- package/esm2022/lib/widgets/file/file-upload.module.mjs +0 -48
- package/esm2022/lib/widgets/form-button/form-button.component.mjs +0 -97
- package/esm2022/lib/widgets/form-button/form-button.module.mjs +0 -28
- package/esm2022/lib/widgets/navbar-main/navbar-main.component.mjs +0 -222
- package/esm2022/lib/widgets/navbar-module/navbar-module.component.mjs +0 -108
- package/esm2022/lib/widgets/navbar-module/navbar-module.model.mjs +0 -2
- package/esm2022/lib/widgets/responsive-button-group/responsive-button-group.component.mjs +0 -41
- package/esm2022/lib/widgets/responsive-button-group/responsive-button-group.module.mjs +0 -24
- package/esm2022/lib/widgets/scheduler/scheduler.component.mjs +0 -186
- package/esm2022/lib/widgets/scheduler/scheduler.module.mjs +0 -37
- package/esm2022/lib/widgets/sort-table/sort-table-header.component.mjs +0 -72
- package/esm2022/lib/widgets/sort-table/sort-table-ngfor.component.mjs +0 -49
- package/esm2022/lib/widgets/sort-table/sort-table.directive.mjs +0 -177
- package/esm2022/lib/widgets/sort-table/sort-table.module.mjs +0 -38
- package/esm2022/lib/widgets/user-role/user-role.component.mjs +0 -29
- package/esm2022/lib/widgets/user-role/user-role.module.mjs +0 -24
- package/esm2022/public_api.mjs +0 -91
- package/esm2022/resolveio-client-lib-core.mjs +0 -5
- package/fesm2022/resolveio-client-lib-core.mjs +0 -9019
- package/fesm2022/resolveio-client-lib-core.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/account-manager.service.d.ts +0 -41
- package/lib/auth/auth-guard.service.d.ts +0 -26
- package/lib/auth/auth-permissions.service.d.ts +0 -10
- package/lib/auth/auth.service.d.ts +0 -30
- package/lib/auth/auth365.component.d.ts +0 -20
- package/lib/auth/can-deactivate-guard.service.d.ts +0 -10
- package/lib/auth/enroll.component.d.ts +0 -28
- package/lib/auth/forgot-password.component.d.ts +0 -28
- package/lib/core.component.d.ts +0 -63
- package/lib/core.module.d.ts +0 -34
- package/lib/core.service.d.ts +0 -49
- package/lib/directive/focus.d.ts +0 -10
- package/lib/directive/scroll.d.ts +0 -20
- package/lib/home/home.component.d.ts +0 -28
- package/lib/logger/logger.component.d.ts +0 -37
- package/lib/models/app-status.model.d.ts +0 -4
- package/lib/models/collection-document.model.d.ts +0 -6
- package/lib/models/cron-job.model.d.ts +0 -13
- package/lib/models/dialog.model.d.ts +0 -23
- package/lib/models/file.model.d.ts +0 -9
- package/lib/models/log-method-latency.model.d.ts +0 -7
- package/lib/models/navbar-main-tab.model.d.ts +0 -14
- package/lib/models/pagination.model.d.ts +0 -17
- package/lib/models/permission.model.d.ts +0 -14
- package/lib/models/select-data-label.model.d.ts +0 -9
- package/lib/models/subscription.model.d.ts +0 -19
- package/lib/models/support-ticket.model.d.ts +0 -71
- package/lib/models/user-group.model.d.ts +0 -19
- package/lib/models/user.model.d.ts +0 -70
- package/lib/offline-db.d.ts +0 -28
- package/lib/offline-manager.service.d.ts +0 -23
- package/lib/pipes/domsanitizor.pipe.d.ts +0 -10
- package/lib/pipes/filter.pipe.d.ts +0 -12
- package/lib/pipes/json-parse.pipe.d.ts +0 -7
- package/lib/pipes/minus-currency.pipe.d.ts +0 -7
- package/lib/pipes/phone.pipe.d.ts +0 -7
- package/lib/pipes/pipe.module.d.ts +0 -13
- package/lib/pipes/reverse-list.pipe.d.ts +0 -6
- package/lib/pipes/titlecase.pipe.d.ts +0 -7
- package/lib/report-builder.permission.d.ts +0 -2
- package/lib/resolveio-class.d.ts +0 -26
- package/lib/shared/shared.module.d.ts +0 -17
- package/lib/socket-manager.service.d.ts +0 -36
- package/lib/socket.service.d.ts +0 -38
- package/lib/super-admin.permission.d.ts +0 -2
- package/lib/support-ticket/detail/support-ticket-detail.component.d.ts +0 -32
- package/lib/support-ticket/edit/support-ticket-edit.component.d.ts +0 -30
- package/lib/support-ticket/list/support-ticket-list.component.d.ts +0 -26
- package/lib/support-ticket/new/support-ticket-new.component.d.ts +0 -26
- package/lib/support-ticket/support-ticket.component.d.ts +0 -20
- package/lib/support-ticket/support-ticket.module.d.ts +0 -15
- package/lib/support-ticket/support-ticket.routing.d.ts +0 -3
- package/lib/support-ticket/support-ticket.service.d.ts +0 -9
- package/lib/token-manager.service.d.ts +0 -11
- package/lib/user-settings/settings/users-settings.component.d.ts +0 -54
- package/lib/user-settings/user-settings.component.d.ts +0 -20
- package/lib/user-settings/user-settings.module.d.ts +0 -12
- package/lib/user-settings/user-settings.permission.d.ts +0 -2
- package/lib/user-settings/user-settings.routing.d.ts +0 -3
- package/lib/user-settings/user-settings.service.d.ts +0 -9
- package/lib/util/action-name.helper.d.ts +0 -1
- package/lib/util/aws.service.d.ts +0 -16
- package/lib/util/common.helper.d.ts +0 -12
- package/lib/util/validation.service.d.ts +0 -88
- package/lib/util/window-resize.service.d.ts +0 -13
- package/lib/util/window.service.d.ts +0 -6
- package/lib/widgets/alert/alert.model.d.ts +0 -1
- package/lib/widgets/alert/alert.service.d.ts +0 -11
- package/lib/widgets/collapse-table/collapse-table.component.d.ts +0 -23
- package/lib/widgets/collapse-table/collapse-table.module.d.ts +0 -9
- package/lib/widgets/data-table/data-table.component.d.ts +0 -23
- package/lib/widgets/data-table/data-table.model.d.ts +0 -13
- package/lib/widgets/data-table/data-table.module.d.ts +0 -12
- package/lib/widgets/date-shortcut/date-shortcut.component.d.ts +0 -20
- package/lib/widgets/date-shortcut/date-shortcut.module.d.ts +0 -10
- package/lib/widgets/dialog/dialog.confirm.content.d.ts +0 -12
- package/lib/widgets/dialog/dialog.error.content.d.ts +0 -11
- package/lib/widgets/dialog/dialog.input.content.d.ts +0 -18
- package/lib/widgets/dialog/dialog.login.content.d.ts +0 -17
- package/lib/widgets/dialog/dialog.notify.content.d.ts +0 -11
- package/lib/widgets/dialog/dialog.register.content.d.ts +0 -13
- package/lib/widgets/dialog/dialog.select-array-objs.content.d.ts +0 -23
- package/lib/widgets/dialog/dialog.select-array.content.d.ts +0 -31
- package/lib/widgets/dialog/dialog.select-data-labels.content.d.ts +0 -22
- package/lib/widgets/dialog/dialog.select-datetime.content.d.ts +0 -21
- package/lib/widgets/dialog/dialog.select-with-buttons-url.content.d.ts +0 -25
- package/lib/widgets/dialog/dialog.service.d.ts +0 -21
- package/lib/widgets/file/file-upload.component.d.ts +0 -49
- package/lib/widgets/file/file-upload.module.d.ts +0 -14
- package/lib/widgets/form-button/form-button.component.d.ts +0 -15
- package/lib/widgets/form-button/form-button.module.d.ts +0 -9
- package/lib/widgets/navbar-main/navbar-main.component.d.ts +0 -52
- package/lib/widgets/navbar-module/navbar-module.component.d.ts +0 -24
- package/lib/widgets/navbar-module/navbar-module.model.d.ts +0 -13
- package/lib/widgets/responsive-button-group/responsive-button-group.component.d.ts +0 -17
- package/lib/widgets/responsive-button-group/responsive-button-group.module.d.ts +0 -8
- package/lib/widgets/scheduler/scheduler.component.d.ts +0 -50
- package/lib/widgets/scheduler/scheduler.module.d.ts +0 -11
- package/lib/widgets/sort-table/sort-table-header.component.d.ts +0 -23
- package/lib/widgets/sort-table/sort-table-ngfor.component.d.ts +0 -17
- package/lib/widgets/sort-table/sort-table.directive.d.ts +0 -48
- package/lib/widgets/sort-table/sort-table.module.d.ts +0 -11
- package/lib/widgets/user-role/user-role.component.d.ts +0 -10
- package/lib/widgets/user-role/user-role.module.d.ts +0 -8
- package/public_api.d.ts +0 -87
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"resolveio-client-lib-core.mjs","sources":["../../../projects/core/src/lib/core.service.ts","../../../projects/core/src/lib/util/window-resize.service.ts","../../../projects/core/src/lib/widgets/alert/alert.service.ts","../../../projects/core/src/lib/socket.service.ts","../../../projects/core/src/lib/util/common.helper.ts","../../../projects/core/src/lib/offline-db.ts","../../../projects/core/src/lib/offline-manager.service.ts","../../../projects/core/src/lib/socket-manager.service.ts","../../../projects/core/src/lib/token-manager.service.ts","../../../projects/core/src/lib/account-manager.service.ts","../../../projects/core/src/lib/util/validation.service.ts","../../../projects/core/src/lib/util/aws.service.ts","../../../projects/core/src/lib/resolveio-class.ts","../../../projects/core/src/lib/widgets/dialog/dialog.notify.content.ts","../../../projects/core/src/lib/widgets/form-button/form-button.component.ts","../../../projects/core/src/lib/directive/focus.ts","../../../projects/core/src/lib/widgets/dialog/dialog.input.content.ts","../../../projects/core/src/lib/widgets/dialog/dialog.error.content.ts","../../../projects/core/src/lib/widgets/dialog/dialog.confirm.content.ts","../../../projects/core/src/lib/widgets/dialog/dialog.select-datetime.content.ts","../../../projects/core/src/lib/widgets/dialog/dialog.select-data-labels.content.ts","../../../projects/core/src/lib/widgets/responsive-button-group/responsive-button-group.component.ts","../../../projects/core/src/lib/widgets/responsive-button-group/responsive-button-group.component.html","../../../projects/core/src/lib/widgets/dialog/dialog.login.content.ts","../../../projects/core/src/lib/widgets/dialog/dialog.register.content.ts","../../../projects/core/src/lib/widgets/dialog/dialog.select-with-buttons-url.content.ts","../../../projects/core/src/lib/widgets/collapse-table/collapse-table.component.ts","../../../projects/core/src/lib/widgets/collapse-table/collapse-table.component.html","../../../projects/core/src/lib/widgets/dialog/dialog.select-array-objs.content.ts","../../../projects/core/src/lib/widgets/dialog/dialog.select-array.content.ts","../../../projects/core/src/lib/widgets/dialog/dialog.service.ts","../../../projects/core/src/lib/auth/auth.service.ts","../../../projects/core/src/lib/auth/auth-permissions.service.ts","../../../projects/core/src/lib/directive/scroll.ts","../../../projects/core/src/lib/widgets/navbar-main/navbar-main.component.ts","../../../projects/core/src/lib/widgets/navbar-main/navbar-main.component.html","../../../projects/core/src/lib/pipes/filter.pipe.ts","../../../projects/core/src/lib/widgets/navbar-module/navbar-module.component.ts","../../../projects/core/src/lib/widgets/navbar-module/navbar-module.component.html","../../../projects/core/src/lib/core.component.ts","../../../projects/core/src/lib/core.component.html","../../../projects/core/src/lib/pipes/json-parse.pipe.ts","../../../projects/core/src/lib/logger/logger.component.ts","../../../projects/core/src/lib/logger/logger.component.html","../../../projects/core/src/lib/auth/auth-guard.service.ts","../../../projects/core/src/lib/auth/can-deactivate-guard.service.ts","../../../projects/core/src/lib/util/window.service.ts","../../../projects/core/src/lib/widgets/user-role/user-role.component.ts","../../../projects/core/src/lib/widgets/user-role/user-role.module.ts","../../../projects/core/src/lib/widgets/form-button/form-button.module.ts","../../../projects/core/src/lib/widgets/responsive-button-group/responsive-button-group.module.ts","../../../projects/core/src/lib/widgets/collapse-table/collapse-table.module.ts","../../../projects/core/src/lib/pipes/phone.pipe.ts","../../../projects/core/src/lib/pipes/reverse-list.pipe.ts","../../../projects/core/src/lib/pipes/minus-currency.pipe.ts","../../../projects/core/src/lib/pipes/domsanitizor.pipe.ts","../../../projects/core/src/lib/pipes/titlecase.pipe.ts","../../../projects/core/src/lib/pipes/pipe.module.ts","../../../projects/core/src/lib/widgets/sort-table/sort-table.directive.ts","../../../projects/core/src/lib/widgets/sort-table/sort-table-header.component.ts","../../../projects/core/src/lib/widgets/sort-table/sort-table-header.component.html","../../../projects/core/src/lib/widgets/sort-table/sort-table-ngfor.component.ts","../../../projects/core/src/lib/widgets/sort-table/sort-table.module.ts","../../../projects/core/src/lib/shared/shared.module.ts","../../../projects/core/src/lib/auth/forgot-password.component.ts","../../../projects/core/src/lib/auth/forgot-password.component.html","../../../projects/core/src/lib/auth/enroll.component.ts","../../../projects/core/src/lib/auth/enroll.component.html","../../../projects/core/src/lib/auth/auth365.component.ts","../../../projects/core/src/lib/user-settings/user-settings.service.ts","../../../projects/core/src/lib/user-settings/user-settings.permission.ts","../../../projects/core/src/lib/user-settings/user-settings.component.ts","../../../projects/core/src/lib/user-settings/settings/users-settings.component.ts","../../../projects/core/src/lib/user-settings/settings/users-settings.component.html","../../../projects/core/src/lib/user-settings/user-settings.routing.ts","../../../projects/core/src/lib/widgets/data-table/data-table.component.ts","../../../projects/core/src/lib/widgets/data-table/data-table.component.html","../../../projects/core/src/lib/widgets/data-table/data-table.module.ts","../../../projects/core/src/lib/widgets/file/file-upload.component.ts","../../../projects/core/src/lib/widgets/file/file-upload.component.html","../../../projects/core/src/lib/widgets/file/file-upload.module.ts","../../../projects/core/src/lib/user-settings/user-settings.module.ts","../../../projects/core/src/lib/home/home.component.ts","../../../projects/core/src/lib/home/home.component.html","../../../projects/core/src/lib/core.module.ts","../../../projects/core/src/lib/support-ticket/support-ticket.service.ts","../../../projects/core/src/lib/support-ticket/support-ticket.component.ts","../../../projects/core/src/lib/support-ticket/list/support-ticket-list.component.ts","../../../projects/core/src/lib/support-ticket/list/support-ticket-list.component.html","../../../projects/core/src/lib/support-ticket/new/support-ticket-new.component.ts","../../../projects/core/src/lib/support-ticket/new/support-ticket-new.component.html","../../../projects/core/src/lib/support-ticket/detail/support-ticket-detail.component.ts","../../../projects/core/src/lib/support-ticket/detail/support-ticket-detail.component.html","../../../projects/core/src/lib/support-ticket/edit/support-ticket-edit.component.ts","../../../projects/core/src/lib/support-ticket/edit/support-ticket-edit.component.html","../../../projects/core/src/lib/support-ticket/support-ticket.routing.ts","../../../projects/core/src/lib/support-ticket/support-ticket.module.ts","../../../projects/core/src/lib/util/action-name.helper.ts","../../../projects/core/src/lib/widgets/date-shortcut/date-shortcut.component.ts","../../../projects/core/src/lib/widgets/date-shortcut/date-shortcut.module.ts","../../../projects/core/src/lib/widgets/scheduler/scheduler.component.ts","../../../projects/core/src/lib/widgets/scheduler/scheduler.component.html","../../../projects/core/src/lib/widgets/scheduler/scheduler.module.ts","../../../projects/core/src/lib/report-builder.permission.ts","../../../projects/core/src/lib/super-admin.permission.ts","../../../projects/core/src/public_api.ts","../../../projects/core/src/resolveio-client-lib-core.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { NavbarModel } from './widgets/navbar-module/navbar-module.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CoreService {\n \tisDevice = new BehaviorSubject(false);\n\tfullScreen = new BehaviorSubject(false);\n\tfsActivated = new BehaviorSubject(false);\n\thasConnected = new BehaviorSubject(false);\n\tnavbarModuleData = new BehaviorSubject({\n\t\ttitle: '',\n\t\tmodule: '',\n\t\tdescription: '',\n\t\tdescription_name: '',\n\t\ttabs: []\n\t});\n\thasStatusMessage = new BehaviorSubject(false);\n\talertData = new BehaviorSubject({\n\t\ttype: '',\n\t\tmessage: '',\n\t\ttimer: 0,\n\t\tshowing: false\n\t});\n\tisInvalidSW = new BehaviorSubject(false);\n\tenvironment = new BehaviorSubject(null);\n\tclient = new BehaviorSubject('');\n\tstandardProgram = new BehaviorSubject(false);\n\tnavTabs = new BehaviorSubject([]);\n\ttourStops = new BehaviorSubject([]);\n\ttourStarted = new BehaviorSubject(false);\n\tisDemo = new BehaviorSubject(false);\n\tisLoggingOut = new BehaviorSubject(false);\n\t// customHomePage = new BehaviorSubject(false);\n\t// logo = new BehaviorSubject('');\n\n\tconstructor() {}\n\n\tsetFullScreen(fullScreen: boolean) {\n\t\tthis.fullScreen.next(fullScreen);\n\t}\n\n\tsetFsActivated(activated: boolean) {\n\t\tthis.fsActivated.next(activated);\n\t}\n\n\tsetHasConnected(connected: boolean) {\n\t\tthis.hasConnected.next(connected);\n\t}\n\n\tsetNavbarModuleData(data: NavbarModel) {\n\t\t// data.tabs = data.tabs.filter(a => a.params === null).sort((a, b) => a.label.localeCompare(b.label)).concat(data.tabs.filter(a => a.params !== null).sort((a, b) => a.label.localeCompare(b.label)));\n\t\tdata.tabs = data.tabs.filter(a => a.params === null).concat(data.tabs.filter(a => a.params !== null));\n\t\tthis.navbarModuleData.next(data);\n\t}\n\n\tsetHasStatusMessage(data: boolean) {\n\t\tthis.hasStatusMessage.next(data);\n\t}\n\n\tsetIsDevice(data: boolean) {\n\t\tthis.isDevice.next(data);\n\t}\n\n\tsetIsInvalidSW(data: boolean) {\n\t\tthis.isInvalidSW.next(data);\n\t}\n\n\tsetEnvironment(env) {\n\t\tthis.environment.next(env);\n\t}\n\n\tsetClient(client) {\n\t\tthis.client.next(client);\n\t}\n\n\tsetStandardProgram(standardProgram) {\n\t\tthis.standardProgram.next(standardProgram);\n\t}\n\n\tsetNavTabs(navTabs) {\n\t\tthis.navTabs.next(navTabs);\n\t}\n\n\tsetTourStops(tourStops) {\n\t\tthis.tourStops.next(tourStops);\n\t}\n\n\tsetTourStarted(tourStarted) {\n\t\tthis.tourStarted.next(tourStarted);\n\t}\n\t\n\tsetDemo(isDemo: boolean) {\n\t\tthis.isDemo.next(isDemo);\n\t}\n\n\t// setCustomHomePage(data: boolean) {\n\t// \tthis.customHomePage.next(data);\n\t// }\n\n\t// setLogo(logo) {\n\t// \tthis.logo.next(logo);\n\t// }\n}\n","import { Injectable, NgZone, OnDestroy } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n \tprovidedIn: 'root'\n})\nexport class ResizeService implements OnDestroy {\n\tget onResize$(): Observable<Window> {\n\t\treturn this.resizeSubject.asObservable();\n\t}\n\n\tprivate resizeSubject = new Subject<Window>();\n\tprivate onResizeHandler: (event: UIEvent) => void;\n\n\tconstructor(private ngZone: NgZone) {\n\t\t// Create a bound onResize handler function\n\t\tthis.onResizeHandler = (event: UIEvent) => {\n\t\t\t// We need to wrap the next call in ngZone.run to re-enter Angular's zone\n\t\t\tthis.ngZone.run(() => {\n\t\t\t\tthis.resizeSubject.next(<Window>event.target);\n\t\t\t});\n\t\t};\n\n\t\t// Add event listener for 'resize' events\n\t\tthis.ngZone.runOutsideAngular(() => {\n\t\t\twindow.addEventListener('resize', this.onResizeHandler);\n\t\t});\n\t}\n\n\tngOnDestroy(): void {\n\t\t// Remove event listener when the service is destroyed\n\t\twindow.removeEventListener('resize', this.onResizeHandler);\n\t}\n}","import { Injectable } from '@angular/core';\nimport { alertType } from './alert.model';\nimport { ToastrService } from 'ngx-toastr';\n\n@Injectable()\nexport class AlertService {\n\n\tconstructor(private _toastr: ToastrService) {}\n\n\tclearAlert(id?) {\n\t\tif (id) {\n\t\t\tthis._toastr.clear(id);\n\t\t}\n\t\telse {\n\t\t\tthis._toastr.clear();\n\t\t}\n\t}\n\t\n\tsetAlert(type: alertType, message: string, timer = 5000) {\n\t\tif (type === 'success') {\n\t\t\tif (timer) {\n\t\t\t\treturn this._toastr.success(message, 'Success', {\n\t\t\t\t\ttimeOut: timer\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn this._toastr.success(message, 'Success', {\n\t\t\t\t\tdisableTimeOut: true\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\telse if (type === 'info') {\n\t\t\tif (timer) {\n\t\t\t\treturn this._toastr.info(message, 'Info', {\n\t\t\t\t\ttimeOut: timer\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn this._toastr.info(message, 'Info', {\n\t\t\t\t\tdisableTimeOut: true\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\telse if (type === 'warning') {\n\t\t\tif (timer) {\n\t\t\t\treturn this._toastr.warning(message, 'Warning', {\n\t\t\t\t\ttimeOut: timer\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn this._toastr.warning(message, 'Warning', {\n\t\t\t\t\tdisableTimeOut: true\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\telse if (type === 'error') {\n\t\t\tif (timer) {\n\t\t\t\treturn this._toastr.error(message, 'Error', {\n\t\t\t\t\ttimeOut: timer\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn this._toastr.error(message, 'Error', {\n\t\t\t\t\tdisableTimeOut: true\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\telse if (type === 'update') {\n\t\t\treturn this._toastr.warning(message, 'Update', {\n\t\t\t\tdisableTimeOut: true\n\t\t\t});\n\t\t}\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { LocalStorageService } from 'ngx-localstorage';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable()\nexport class SocketService {\n\t//These can be altered by calling code\n\tpublic debug = false;\n\n\t//Time to wait before attempting reconnect (after close)\n\tpublic reconnectInterval = 1000;\n\t\n\t//Time to wait for WebSocket to open (before aborting and retrying)\n\tpublic timeoutInterval = 5000;\n\tprivate timeout = null;\n\n\t//Should only be used to read WebSocket readyState\n\tpublic readyState: number;\n\tpublic readyState$ = new BehaviorSubject(0);\n\n\t//List of WebSocket sub-protocols\n\tprivate protocols: string[] = [];\n\n\t//The underlying WebSocket\n\tpublic ws: WebSocket;\n\tprivate url: string;\n\n\tprivate pingInterval = null;\n private pongTimeout = null;\n private pingIntervalTime = 15000; // Time between each ping (e.g., 30 seconds)\n private pongTimeoutTime = 12000; // Time to wait for pong before closing connection (e.g., 10 seconds)\n\n\t//Set up the default 'noop' event handlers\n\tpublic onopen: (ev: Event) => void = function (event: Event) {};\n\tpublic onclose: (ev: CloseEvent) => void = function (event: CloseEvent) {};\n\tpublic onconnecting: () => void = function () {};\n\tpublic onmessage: (ev: MessageEvent) => void = function (event: MessageEvent) {};\n\tpublic onerror: (ev: ErrorEvent) => void = function (event: ErrorEvent) {};\n\n\tconstructor(private _storage: LocalStorageService) {}\n\n\tpublic openSocket(environment, protocols) {\n\t\tthis.url = environment.WS_URL;\n\t\tthis.protocols = protocols;\n\t\tthis.connect();\n\t}\n\n\tprivate connect() {\n\t\tif (!this.ws && this._storage.get('accessToken')) {\n\t\t\tif (this.timeout) {\n\t\t\t\tclearTimeout(this.timeout);\n\t\t\t}\n\n\t\t\tthis.ws = new WebSocket(this.url, this.protocols);\n\t\t\t\n\t\t\tthis.readyState = WebSocket.CONNECTING;\n\t\t\tthis.readyState$.next(this.readyState);\n\t\t\tthis.onconnecting();\n\t\t\tthis.log(new Date(), 'WS', 'attempt-connect', this.url);\n\n\t\t\tthis.timeout = setTimeout(() => {\n\t\t\t\tthis.log(new Date(), 'WS', 'connection-timeout', this.url);\n\t\t\t\tthis.close();\n\t\t\t}, this.timeoutInterval);\n\n\t\t\tthis.ws.onopen = (event: Event) => {\n\t\t\t\tclearTimeout(this.timeout);\n\t\t\t\tthis.timeout = null;\n\t\t\t\tthis.log(new Date(), 'WS', 'onopen', this.url);\n\t\t\t\tthis.readyState = WebSocket.OPEN;\n\t\t\t\tthis.readyState$.next(this.readyState);\n\t\t\t\tthis.onopen(event);\n\n\t\t\t\tthis.startPinging();\n\t\t\t};\n\n\t\t\tthis.ws.onclose = (event: CloseEvent) => {\n\t\t\t\tif (this.timeout) {\n\t\t\t\t\tclearTimeout(this.timeout);\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.timeout = null;\n\n\t\t\t\tthis.ws = null;\n\n\t\t\t\tthis.readyState = WebSocket.CLOSED;\n\t\t\t\tthis.readyState$.next(this.readyState);\n\t\t\t\t\n\t\t\t\tthis.log(new Date(), 'WS', 'onclose', this.url);\n\t\t\t\tthis.onclose(event);\n\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.connect();\n\t\t\t\t}, this.reconnectInterval);\n\n\t\t\t\tthis.stopPinging();\n\t\t\t};\n\n\t\t\tthis.ws.onmessage = (event: MessageEvent) => {\n\t\t\t\tif (event.data === 'pong') {\n\t\t\t\t\tthis.log(new Date(), 'WS', 'pong received');\n\t\t\t\t\tclearTimeout(this.pongTimeout);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet messageData = JSON.parse(event.data);\n\t\t\t\t\tmessageData = this.convertUTCDateToLocalDate(messageData);\n\t\t\t\t\tthis.onmessage(messageData);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tthis.ws.onerror = (event: ErrorEvent) => {\n\t\t\t\tthis.log(new Date(), 'WS', 'onerror', this, event);\n\t\t\t\tthis.onerror(event);\n\t\t\t\tthis.reconnect();\n\t\t\t};\n\t\t}\n\t}\n\n\tprivate convertUTCDateToLocalDate(data) {\n\t\tif (Array.isArray(data)) {\n\t\t \treturn data.map(item => this.convertUTCDateToLocalDate(item));\n\t\t} \n\t\telse if (typeof data === 'object' && data !== null) {\n\t\t\tconst keys = Object.keys(data);\n\t\t\tkeys.forEach((key) => {\n\t\t\t\tdata[key] = this.convertUTCDateToLocalDate(data[key]);\n\t\t\t});\n\t\t \treturn data;\n\t\t} \n\t\telse if (typeof data === 'string') {\n\t\t\t// Check if the string is an ISO date format\n\t\t\tconst datePattern = /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d+)?Z$/;\n\t\t\tif (datePattern.test(data)) {\n\t\t\t\treturn new Date(data);\n\t\t\t}\n\t\t}\n\n\t\treturn data;\n\t}\n\n\tprivate startPinging() {\n\t\tthis.pingInterval = setInterval(() => {\n\t\t\tif (this.ws && this.ws.readyState === WebSocket.OPEN) {\n\t\t\t\tthis.send('ping');\n\n\t\t\t\tthis.pongTimeout = setTimeout(() => {\n\t\t\t\t\tthis.log(new Date(), 'WS', 'pong not received, closing connection');\n\t\t\t\t\tthis.close();\n\t\t\t\t}, this.pongTimeoutTime);\n\t\t\t}\n\t\t}, this.pingIntervalTime);\n\t}\n\n\tprivate stopPinging() {\n\t\tif (this.pingInterval) {\n\t\t\tclearInterval(this.pingInterval);\n\t\t}\n\t\t\n\t\tif (this.pongTimeout) {\n\t\t\tclearTimeout(this.pongTimeout);\n\t\t}\n\t}\n\n\tprivate convertDatesToUTC(obj) {\n\t\tfor (let key in obj) {\n\t\t\tif (obj.hasOwnProperty(key)) {\n\t\t\t\tif (obj[key] instanceof Date) {\n\t\t\t\t\t// Convert Date to UTC ISO String\n\t\t\t\t\tobj[key] = obj[key].toISOString();\n\t\t\t\t} \n\t\t\t\telse if (typeof obj[key] === 'object' && obj[key] !== null) {\n\t\t\t\t\t// Recursively look for Date objects within arrays or nested objects\n\t\t\t\t\tthis.convertDatesToUTC(obj[key]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic send(...data: any[]) {\n\t\tif (this.ws && this.ws.readyState === this.ws.OPEN) {\n\t\t\tdata.forEach(item => this.convertDatesToUTC(item));\n\t\t\tthis.ws.send(JSON.stringify(data));\n\t\t\treturn true;\n\t\t} \n\t\telse {\n\t\t\tthis.log(new Date(), 'WS', 'send error', this.readyState);\n\t\t\tthis.reconnect();\n\t\t\treturn false;\n\t\t}\n\t}\n\n\tpublic close(): boolean {\n\t\tif (this.ws) {\n\t\t\tthis.log(new Date(), 'WS', 'closing socket');\n\t\t\tthis.readyState = WebSocket.CLOSING;\n\t\t\tthis.readyState$.next(this.readyState);\n\t\t\tthis.ws.close();\n\t\t\t\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tpublic reconnect() {\n\t\tthis.log(new Date(), 'WS', 'reconnect', this.readyState);\n\t\tif (this.readyState === WebSocket.OPEN) {\n\t\t\tthis.close();\n\t\t}\n\t\telse if (this.readyState === WebSocket.CLOSING || this.readyState === WebSocket.CLOSED) {\n\t\t\tthis.connect();\n\t\t}\n\t}\n\n\tpublic getBufferAmount() {\n\t\tif (this.ws) {\n\t\t\treturn this.ws.bufferedAmount;\n\t\t}\n\t\telse {\n\t\t\treturn 20480;\n\t\t}\n\t}\n\n\tprivate log(...args: any[]) {\n\t\tif (this.debug) {\n\t\t\tconsole.log(...args);\n\t\t}\n\t}\n}\n","import { detailedDiff } from 'deep-object-diff';\nimport moment from 'moment';\n\nconst isObject = (object) => {\n\treturn object instanceof Object && object.constructor.name === 'Object';\n};\n\nexport function toTitleCase(str) {\n\treturn str.replace(/\\w\\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); });\n}\n\nexport function isUpperCase(str) {\n\treturn (/^[A-Z]*$/).test(str);\n}\n\nexport function pad(num, size) {\n\tlet s = num + '';\n\twhile (s.length < size) {\n\t\ts = '0' + s;\n\t}\n\treturn s;\n}\n\nexport function deepCopy(obj) {\n\treturn JSON.parse(JSON.stringify(obj), dateReviver);\n}\n\nexport function dateReviver(key, value) {\n\tif (typeof value === 'string') {\n\t\tlet a = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/.exec(value);\n\t\tif (a) {\n\t\t\treturn new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5], +a[6].split('.')[0], +a[6].split('.')[1]));\n\t\t}\n\t}\n\treturn value;\n}\n\nexport function b64toBlobURL(b64Data, contentType, sliceSize?) {\n\tb64Data = b64Data.replace('data:application/pdf;base64,', '');\n\tcontentType = contentType || '';\n\tsliceSize = sliceSize || 512;\n\n\tlet byteCharacters = atob(b64Data);\n\tlet byteArrays = [];\n\n\tfor (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n\t\tlet slice = byteCharacters.slice(offset, offset + sliceSize);\n\n\t\tlet byteNumbers = new Array(slice.length);\n\t\tfor (let i = 0; i < slice.length; i++) {\n\t\tbyteNumbers[i] = slice.charCodeAt(i);\n\t\t}\n\n\t\tlet byteArray = new Uint8Array(byteNumbers);\n\n\t\tbyteArrays.push(byteArray);\n\t}\n\n\tlet blob = new Blob(byteArrays, {type: contentType});\n\treturn URL.createObjectURL(blob);\n}\n\nexport function blobToFile(theBlob, fileName) : File {\n //A Blob() is almost a File() - it's just missing the two properties below which we will add\n theBlob.lastModifiedDate = new Date();\n theBlob.name = fileName;\n return (<File>theBlob);\n}\n\nexport function toDataURL(url, callback) {\n\tlet xhr = new XMLHttpRequest();\n\txhr.onload = function() {\n\t\tlet reader = new FileReader();\n\t\treader.onloadend = function() {\n\t\t\tcallback(reader.result);\n\t\t};\n\t\treader.readAsDataURL(xhr.response);\n\t};\n\txhr.open('GET', url);\n\txhr.responseType = 'blob';\n\txhr.send();\n}\n\nexport function getDeepDiffDetails(obj1: any, obj2: any): string {\n let diff = detailedDiff(obj2, obj1);\n let diffString = '';\n\n const formatObjectDiff = (obj1: any, obj2: any): string => {\n if (!obj1 || !obj2) return '';\n\n return Object.keys(obj1)\n .map(key => {\n if (Array.isArray(obj1[key]) && Array.isArray(obj2[key])) {\n const arrayDiff = obj1[key].map((item: any, index: number) => \n typeof item === 'object' && obj2[key][index] \n ? `{${formatObjectDiff(item, obj2[key][index])}}`\n : `\"${item}\" to \"${obj2[key][index]}\"`\n ).join(', ');\n\n return `${toTitleCase(key)}: [${arrayDiff}]`;\n } \n\n if (typeof obj1[key] === 'object' && obj2[key]) {\n return `${toTitleCase(key)}: {${formatObjectDiff(obj1[key], obj2[key])}}`;\n }\n\n return `${toTitleCase(key)}: \"${obj1[key]}\" to \"${obj2[key]}\"`;\n })\n .join(', ');\n };\n\n if (Object.keys(diff['updated']).length > 0) {\n diffString += 'Updated:\\n';\n\n const updates = Object.keys(diff['updated'])\n .filter(key => key.substr(0, 2) !== 'id' && diff['updated'][key] !== obj2[key])\n .map(key => \n moment.isDate(diff['updated'][key])\n ? `${toTitleCase(key)}: \"${moment(diff['updated'][key]).format('llll')}\" to \"${moment(obj2[key]).format('llll')}\"`\n : `${toTitleCase(key)}: {${formatObjectDiff(diff['updated'][key], obj2[key])}}`\n )\n .join(',\\n');\n\n diffString += updates ? `${updates}\\n` : '';\n }\n\n return diffString;\n}\n\nexport function generateCronStringFromDate(date: Date) {\n\treturn date.getSeconds() + ' ' + date.getMinutes() + ' ' + date.getHours() + ' ' + date.getDate() + ' ' + (date.getMonth() + 1) + ' ' + date.getDay();\n}\n\nexport function s2ab(s) {\n\tlet buf = new ArrayBuffer(s.length);\n\tlet view = new Uint8Array(buf);\n\t// tslint:disable-next-line:no-bitwise\n\tfor (let i = 0; i !== s.length; ++i) { view[i] = s.charCodeAt(i) & 0xFF; }\n\treturn buf; \n}\n\nexport function mergeDeep(target, ...sources) {\n\tif (!sources.length) {\n\t\treturn target;\n\t}\n\tconst source = sources.shift();\n\n\tif (isObject(target) && isObject(source)) {\n\t\tfor (const key in source) {\n\t\t\tif (isObject(source[key])) {\n\t\t\t\tif (!target[key]) {\n\t\t\t\t\tObject.assign(target, { [key]: {} });\n\t\t\t\t}\n\t\t\t\tmergeDeep(target[key], source[key]);\n\t\t\t} \n\t\t\telse {\n\t\t\t\tObject.assign(target, { [key]: source[key] });\n\t\t\t}\n\t\t}\n\t}\n\n\treturn mergeDeep(target, ...sources);\n}","import { dateReviver } from './util/common.helper';\n\nexport class StorageDB {\n\n\tstorage = null;\n\tdatabase = null;\n\tprimaryKey = null;\n\tsep = '';\n\n\tconstructor (opts) {\n\t\topts = opts || {};\n\n\t\tthis.storage = opts.storage || window && window.localStorage;\n\t\tthis.database = opts.database || 'db';\n\t\tthis.primaryKey = opts.primaryKey || '_id';\n\t\tthis.sep = opts.sep || ':';\n\n\t\tif (!isSupported(this.storage)) {\n\t\t\tthis.storage = null;\n\t\t}\n\t}\n\n\tget(name, opts) {\n\t\treturn new Collection(this, name, opts);\n\t}\n\n\tgetCollections() {\n\t\tlet collections = [];\n\n\t\tObject.keys(this.storage).filter(a => a.split(':').length > 2).forEach(key => {\n\t\t\tif (!collections.some(b => b === key.split(':')[1])) {\n\t\t\t\tcollections.push(key.split(':')[1]);\n\t\t\t}\n\t\t});\n\n\t\treturn collections;\n\t}\n\n\tcollection(name, opts) {\n\t\treturn this.get(name, opts);\n\t}\n}\n\nclass Collection {\n\n\tname = '';\n\tstorage = null;\n\tpath = '';\n\tprimaryKey = '';\n\tcache = {};\n\tcacheable = false;\n\n\tconstructor (db, name, opts) {\n\t\topts = opts || {};\n\n\t\tthis.name = name;\n\t\tthis.storage = db.storage || new MockStorage();\n\t\tthis.path = db.database + db.sep + name + db.sep;\n\t\tthis.primaryKey = opts.primaryKey || db.primaryKey;\n\t\tthis.cache = {};\n\t\tthis.cacheable = !db.storage;\n\t}\n\n\n\t_initCache () {\n\t\tlet cache = {};\n\t\tlet filterExp = new RegExp('^' + this.path);\n\n\t\tfor (let key of Object.keys(this.storage)) {\n\t\t\tif (filterExp.test(key)) {\n\t\t\t\tcache[key] = JSON.parse(this.storage.getItem(key), dateReviver);\n\t\t\t}\n\t\t}\n\n\t\tthis.cache = cache;\n\t\tthis.cacheable = true;\n\t}\n\n\n\t_filter (filter, opts) {\n\t\topts.type = opts.type || 'data'; // data, id;\n\t\topts.multi = opts.multi || false;\n\n\t\tif (!this.cacheable) {\n\t\t\tthis._initCache();\n\t\t}\n\n\t\tlet res = [];\n\t\tlet isFnFilter;\n\t\tlet isTypeId = opts.type === 'id';\n\n\t\tif (typeof filter === 'string') {\n\t\t\tfilter = new RegExp(filter);\n\t\t} else if (typeof filter === 'function') {\n\t\t\tisFnFilter = true;\n\t\t} else if (!filter) {\n\t\t\tlet ret = isTypeId ? Object.keys(this.cache) : Object.values(this.cache);\n\n\t\t\tif (opts.multi) {\n\t\t\t\treturn ret;\n\t\t\t} else {\n\t\t\t\treturn ret[0] || null;\n\t\t\t}\n\t\t}\n\n\t\tfor (let key of Object.keys(this.cache)) {\n\t\t\tlet val = this.cache[key];\n\n\t\t\tif (isFnFilter) {\n\t\t\t\tif (filter(key, val['data'])) {\n\t\t\t\t\tlet ret = isTypeId ? key : val;\n\n\t\t\t\t\tif (opts.multi) {\n\t\t\t\t\t\tres.push(ret);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn ret;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (filter.test(key)) {\n\t\t\t\t\tlet ret = isTypeId ? key : val;\n\n\t\t\t\t\tif (opts.multi) {\n\t\t\t\t\t\tres.push(ret);\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn ret;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn opts.multi ? res : null;\n\t}\n\n\n\tinsert(data, expiresDate?, opts?) {\n\t\tlet arrayInsert = data instanceof Array;\n\n\t\tif (arrayInsert) {\n\t\t\tif (data.length === 0) {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t} else {\n\t\t\tdata = [data];\n\t\t}\n\n\t\tlet pk = this.primaryKey;\n\t\tlet cacheable = this.cacheable;\n\n\t\tfor (let row of data) {\n\t\t\tif (!isObject(row)) {\n\t\t\t\tthrow new Error('TypeError: insert data must be an object or an object array');\n\t\t\t}\n\n\t\t\tif (typeof row[pk] === 'undefined') {\n\t\t\t\trow[pk] = new ID().toString();\n\t\t\t}\n\n\t\t\tlet now = new Date();\n\n\t\t\tif (cacheable) {\n\t\t\t\tthis.cache[this.path + row[pk]] = {\n\t\t\t\t\tofflineDate: now,\n\t\t\t\t\tofflineDateExpires: expiresDate ? expiresDate : new Date(now.getTime() + 604800000),\n\t\t\t\t\tdata: row\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tthis.storage.setItem(this.path + row[pk], JSON.stringify({\n\t\t\t\tofflineDate: now,\n\t\t\t\tofflineDateExpires: expiresDate ? expiresDate : new Date(now.getTime() + 604800000),\n\t\t\t\tdata: row\n\t\t\t}));\n\t\t}\n\n\t\treturn arrayInsert ? data.map(a => a._id) : data[0]._id;\n\t}\n\n\n\tfind(query, opts?, total?) {\n\t\tquery = query || {};\n\t\topts = opts || {};\n\t\topts.skip = opts.skip || 0;\n\t\topts.limit = opts.limit;\n\t\topts.sort = opts.sort;\n\n\t\tif (opts.sort instanceof Array) {\n\t\t\topts.sort = opts.sort.reduce((res, item) => {\n\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\tres[item] = 1;\n\t\t\t\t} else if (item instanceof Array && item.length) {\n\t\t\t\t\tres[item[0]] = item[1] || 1;\n\t\t\t\t}\n\t\t\t\treturn res;\n\t\t\t}, {});\n\t\t}\n\n\t\tlet data;\n\t\tlet ids = isObject(query) ? null : (query instanceof Array ? query : [query]);\n\t\tlet filterOpts = {\n\t\t\ttype: opts._filterType || 'data',\n\t\t\tmulti: true\n\t\t};\n\n\t\tif (ids) {\n\t\t\t// by id array\n\t\t\tlet filterRegExp = new RegExp('^' + this.path + '(' + ids.join('|') + ')$');\n\t\t\tdata = this._filter(filterRegExp, filterOpts);\n\n\t\t} else if (Object.keys(query).length) {\n\t\t\t// by query\n\t\t\tdata = this._filter((key, val) => {\n\t\t\t\treturn queryMatch(query, val);\n\t\t\t}, filterOpts);\n\t\t} else {\n\t\t\tdata = this._filter(null, filterOpts);\n\t\t}\n\n\t\tif (!total) {\n\t\t\tdata = data.map(a => a.data);\n\t\t}\n\n\t\t// sort\n\t\tif (opts.sort) {\n\t\t\tdata.sort((a, b) => {\n\t\t\t\treturn sortCompare(opts.sort, a, b);\n\t\t\t});\n\t\t}\n\n\t\tif (opts.limit) {\n\t\t\tdata = data.slice(opts.skip, opts.skip + opts.limit);\n\t\t} else if (opts.skip) {\n\t\t\tdata = data.slice(opts.skip);\n\t\t}\n\n\t\treturn data;\n\t}\n\n\n\tfindOne(query, opts?) {\n\t\tquery = query || {};\n\t\topts = opts || {};\n\n\t\tlet data;\n\t\tlet id = isObject(query) ? null : query;\n\t\tlet queryFields = isObject(query) ? Object.keys(query) : [];\n\t\tlet quickTarget = false;\n\t\tlet needsSort = !!opts.sort;\n\t\tlet filterOpts = {\n\t\t\ttype: opts._filterType || 'data',\n\t\t\tmulti: false\n\t\t};\n\n\t\tif (queryFields.length && queryFields.includes(this.primaryKey)) {\n\t\t\tid = query[this.primaryKey];\n\t\t\tquickTarget = true;\n\t\t}\n\n\t\tif (id) {\n\t\t\t// by id\n\t\t\tdata = this.storage.getItem(this.path + id);\n\t\t\tdata = data ? JSON.parse(data, dateReviver).data : null;\n\n\t\t\tif (data && quickTarget && !queryMatch(query, data)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t} else if (queryFields.length) {\n\t\t\t// by query\n\t\t\tif (needsSort) {\n\t\t\t\tdata = this.find(query, opts);\n\t\t\t} else {\n\t\t\t\tdata = this._filter((key, val) => {\n\t\t\t\t\treturn queryMatch(query, val);\n\t\t\t\t}, filterOpts);\n\n\t\t\t\tif (Array.isArray(data)) {\n\t\t\t\t\tdata = data.map(a => a.data);\n\t\t\t\t}\n\t\t\t\telse if (data) {\n\t\t\t\t\tdata = data.data;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (needsSort) {\n\t\t\t\tdata = this.find(query, opts);\n\t\t\t} else {\n\t\t\t\tdata = this._filter(null, filterOpts);\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (!id && needsSort && data) {\n\t\t\tdata = data[0].data || null;\n\t\t}\n\n\t\tif (data && filterOpts.type === 'id') {\n\t\t\tdata = this.path + data[this.primaryKey];\n\t\t}\n\n\t\treturn data;\n\t}\n\n\n\tremove(query, opts?) {\n\t\tif (!query) {\n\t\t\tthrow new Error('remove needs a query');\n\t\t}\n\n\t\topts = opts || {};\n\t\topts.multi = (typeof opts.multi === 'undefined') ? true : opts.multi;\n\n\t\tlet findMethod = opts.multi ? 'find' : 'findOne';\n\t\tlet ids = null;\n\t\tif (findMethod === 'find') {\n\t\t\tids = this[findMethod](query, {\n\t\t\t\t_filterType: 'id'\n\t\t\t}, true);\n\t\t}\n\t\telse {\n\t\t\tids = this[findMethod](query, {\n\t\t\t\t_filterType: 'id'\n\t\t\t});\n\t\t}\n\t\tlet cacheable = this.cacheable;\n\n\t\tif ((opts.multi && !ids.length) || (!opts.multi && !ids)) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tif (!opts.multi) {\n\t\t\tids = [ids];\n\t\t}\n\n\t\tfor (let id of ids) {\n\t\t\tif (cacheable) {\n\t\t\t\tdelete this.cache[id];\n\t\t\t}\n\n\t\t\tthis.storage.removeItem(id);\n\t\t}\n\n\t\treturn ids.length;\n\t}\n\n\n\tupdate(query, values, opts?) {\n\t\tif (!query) {\n\t\t\tthrow new Error('update needs a query');\n\t\t}\n\t\tif (!values || !isObject(values)) {\n\t\t\tthrow new Error('update needs an object');\n\t\t}\n\n\t\topts = opts || {};\n\t\topts.multi = (typeof opts.multi === 'undefined') ? false : opts.multi;\n\n\t\tlet findMethod = opts.multi ? 'find' : 'findOne';\n\t\tlet ids = this[findMethod](query, {\n\t\t\t_filterType: 'id'\n\t\t});\n\t\tlet pk = this.primaryKey;\n\t\tlet cacheable = this.cacheable;\n\n\t\tif ((opts.multi && !ids.length) || (!opts.multi && !ids)) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tif (!opts.multi) {\n\t\t\tlet id = ids;\n\t\t\tlet row = cacheable ? this.cache[id] : JSON.parse(this.storage.getItem(id), dateReviver);\n\t\t\tlet isIdUpdated = values[pk] && values[pk] !== row.data[pk];\n\t\t\tlet newId = isIdUpdated ? this.path + values[pk] : id;\n\n\t\t\t// check exist\n\t\t\tif (isIdUpdated && this.findOne(values[pk])) {\n\t\t\t\tthrow new Error('Duplicate value \\'' + values[pk] + '\\' for unique field \\'' + pk + '\\'');\n\t\t\t}\n\n\t\t\tlet data = Object.assign({}, row.data, values);\n\n\t\t\tif (cacheable) {\n\t\t\t\tthis.cache[newId] = {\n\t\t\t\t\tofflineDate: row.offlineDate,\n\t\t\t\t\tofflineDateExpires: row.offlineDateExpires,\n\t\t\t\t\tdata: data\n\t\t\t\t};\n\t\t\t\tif (isIdUpdated) {\n\t\t\t\t\tdelete this.cache[id];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.storage.setItem(newId, JSON.stringify({\n\t\t\t\tofflineDate: row.offlineDate,\n\t\t\t\tofflineDateExpires: row.offlineDateExpires,\n\t\t\t\tdata: data\n\t\t\t}));\n\n\t\t\tif (isIdUpdated) {\n\t\t\t\tthis.storage.removeItem(id);\n\t\t\t}\n\n\t\t\treturn data;\n\n\t\t} else {\n\t\t\tdelete values[pk];\n\n\t\t\tif (!Object.keys(values).length) {\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tfor (let id of ids) {\n\t\t\t\tlet row = cacheable ? this.cache[id] : JSON.parse(this.storage.getItem(id), dateReviver);\n\n\t\t\t\tlet data = Object.assign({}, row.data, values);\n\n\t\t\t\tif (cacheable) {\n\t\t\t\t\tthis.cache[id] = {\n\t\t\t\t\t\tofflineDate: row.offlineDate,\n\t\t\t\t\t\tofflineDateExpires: row.offlineDateExpires,\n\t\t\t\t\t\tdata: data\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tthis.storage.setItem(id, JSON.stringify({\n\t\t\t\t\tofflineDate: row.offlineDate,\n\t\t\t\t\tofflineDateExpires: row.offlineDateExpires,\n\t\t\t\t\tdata: data\n\t\t\t\t}));\n\t\t\t}\n\n\t\t\treturn ids.length;\n\t\t}\n\t}\n\n\tdrop() {\n\t\tthis.remove({});\n\t\treturn true;\n\t}\n}\n\nclass ID {\n\tconstructor() {\n\t}\n\n\ttoString() {\n\t\treturn (new Date().getTime() / 1000).toString(16).substr(-4) + Math.random().toString(16).substr(2, 12);\n\t}\n}\n\nclass MockStorage {\n\tlength = 0;\n\n\tconstructor () {\n\t\tthis.length = 0;\n\t}\n\n\tkey() {}\n\tsetItem() {}\n\tgetItem() {}\n\tremoveItem() {}\n}\n\nconst isSupported = (storage) => {\n\tif (!storage || !(storage instanceof Object)) {\n\t\treturn false;\n\t}\n\n\ttry {\n\t\tstorage.setItem('_supported', '1');\n\t\tstorage.removeItem('_supported');\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nconst isObject = (object) => {\n\treturn object instanceof Object && object.constructor.name === 'Object';\n};\n\nconst queryMatch = (query, target) => {\n\tif (!query || !Object.keys(query).length) {\n\t\treturn true;\n\t}\n\n\tfor (let field of Object.keys(query)) {\n\t\tlet val = query[field];\n\t\tlet tar = target[field];\n\n\t\tif (!tar) {\n\t\t\tfield.split('.').forEach(path => {\n\t\t\t\tif (!tar) {\n\t\t\t\t\ttar = target[path];\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttar = tar[path];\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (val instanceof RegExp) {\n\t\t\tif (!val.test(tar)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t} else if (isObject(val)) {\n\t\t\tfor (let op of Object.keys(val)) {\n\t\t\t\tif (Operator._checkExist(op) && !Operator[op](val[op], tar)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (val !== tar) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n};\n\nconst sortCompare = (sort, a, b, i?, fields?) => {\n\ti = i || 0;\n\tfields = fields || Object.keys(sort);\n\n\tlet field = fields[i];\n\n\tif (!field) {\n\t\treturn 0;\n\t}\n\n\tif (a[field] === b[field]) {\n\t\ti++;\n\t\treturn sortCompare(sort, a, b, i, fields);\n\t}\n\n\tif (sort[field] === 1) {\n\t\treturn a[field] - b[field];\n\t}\n\n\tif (sort[field] === -1) {\n\t\treturn b[field] - a[field];\n\t}\n};\n\n/*\n\tQuery Selectors\n\n\t$eq\t\tMatches vals that are equal to a specified val.\n\t$gt\t\tMatches vals that are greater than a specified val.\n\t$gte\tMatches vals that are greater than or equal to a specified val.\n\t$in\t\tMatches any of the vals specified in an array.\n\t$lt\t\tMatches vals that are less than a specified val.\n\t$lte\tMatches vals that are less than or equal to a specified val.\n\t$ne\t\tMatches all vals that are not equal to a specified val.\n\t$nin\tMatches none of the vals specified in an array.\n*/\n\nconst ops = ['$eq', '$gt', '$gte', '$in', '$lt', '$lte', '$ne', '$nin'];\n\nconst isNotNumber = (val) => {\n\treturn typeof val !== 'number';\n};\n\nclass Operator {\n\tstatic $eq(val, tar) {\n\t\treturn tar === val;\n\t}\n\n\tstatic $gt(val, tar) {\n\t\tif (isNotNumber(val)) {\n\t\t\tthrow new Error('\\'$gt\\' value must be a number');\n\t\t}\n\t\treturn tar > val;\n\t}\n\n\tstatic $gte(val, tar) {\n\t\tif (isNotNumber(val)) {\n\t\t\tthrow new Error('\\'$gte\\' value must be a number');\n\t\t}\n\t\treturn tar >= val;\n\t}\n\n\tstatic $in(val, tar) {\n\t\tif (!(val instanceof Array)) {\n\t\t\tthrow new Error('\\'$in\\' value must be an array');\n\t\t}\n\t\treturn val.includes(tar);\n\t}\n\n\tstatic $lt(val, tar) {\n\t\tif (isNotNumber(val)) {\n\t\t\tthrow new Error('\\'$lt\\' value must be a number');\n\t\t}\n\t\treturn tar < val;\n\t}\n\n\tstatic $lte(val, tar) {\n\t\tif (isNotNumber(val)) {\n\t\t\tthrow new Error('\\'$lte\\' value must be a number');\n\t\t}\n\t\treturn tar <= val;\n\t}\n\n\tstatic $ne(val, tar) {\n\t\treturn tar !== val;\n\t}\n\n\tstatic $nin(val, tar) {\n\t\tif (!(val instanceof Array)) {\n\t\t\tthrow new Error('\\'$nin\\' value must be an array');\n\t\t}\n\t\treturn !val.includes(tar);\n\t}\n\n\tstatic _checkExist(op) {\n\t\tif (ops.includes(op)) {\n\t\t\treturn true;\n\t\t}\n\t\tthrow new Error('unknown operator: \\'' + op + '\\'');\n\t}\n}","import { Injectable } from '@angular/core';\nimport { LocalStorageService } from 'ngx-localstorage';\nimport { UserModel } from './models/user.model';\nimport { BehaviorSubject } from 'rxjs';\nimport { StorageDB } from './offline-db';\n\n@Injectable()\nexport class OfflineManagerService {\n\n\tpublic offlineMode = new BehaviorSubject<boolean>(true);\n\n\tprivate _offlineDB;\n\n\tconstructor(private _storage: LocalStorageService) {\n\t\tthis._offlineDB = new StorageDB({\n\t\t\tstorage: window.localStorage,\n\t\t\tdatabase: 'offlineDB',\n\t\t\tprimaryKey: '_id'\n\t\t});\n\n\t\tlet now = new Date();\n\n\t\tlet collections = this._offlineDB.getCollections();\n\t\tcollections.forEach(collection => {\n\t\t\tlet entries = this.find(collection, {}, {}, true);\n\t\t\tentries.forEach(entry => {\n\t\t\t\tif (!entry.hasOwnProperty('offlineDate') || !entry.hasOwnProperty('offlineDateExpires')) {\n\t\t\t\t\tthis.removeDocument(collection, entry._id);\n\t\t\t\t}\n\t\t\t\telse if (now.getTime() >= entry.offlineDateExpires.getTime()) {\n\t\t\t\t\tthis.removeDocument(collection, entry.data._id);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tpublic setOffline(value: boolean) {\n\t\tthis.offlineMode.next(value);\n\t}\n\n\tpublic saveUser(user: UserModel) {\n\t\treturn this._storage.set('user', JSON.stringify(user));\n\t}\n\n\tpublic getUser(): string {\n\t\treturn this._storage.get('user');\n\t}\n\n\tpublic removeUser() {\n\t\tthis._storage.remove('user');\n\t}\n\n\tpublic find(collectionName: string, query: Object, options = {}, total = false) {\n\t\tconst collection = this._offlineDB.get(collectionName);\n\n\t\tif (collection) {\n\t\t\treturn collection.find(query, options, total);\n\t\t}\n\n\t\treturn [];\n\t}\n\n\tpublic findOne(collectionName: string, query: Object) {\n\t\tconst collection = this._offlineDB.get(collectionName);\n\n\t\tif (collection) {\n\t\t\treturn collection.findOne(query);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tpublic insertDocument(collectionName: string, data: Object, expiresDate?: Date) {\n\t\tconst collection = this._offlineDB.get(collectionName);\n\n\t\tlet id = '';\n\n\t\tif (collection && data && (!Array.isArray(data) || data.length)) {\n\t\t\tid = collection.insert(data, expiresDate);\n\t\t}\n\n\t\treturn id;\n\t}\n\n\tpublic updateDocument(collectionName: string, data: Object) {\n\t\tconst collection = this._offlineDB.get(collectionName);\n\n\t\tif (collection) {\n\t\t\tlet doc = collection.findOne({_id: data['_id']});\n\n\t\t\tif (doc) {\n\t\t\t\tdata['__v'] += 1;\n\t\t\t\tcollection.update(data['_id'], data);\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t}\n\n\tpublic updateDocumentProps(collectionName: string, doc_id: string, updateParams: any[], doc__v: number) {\n\t\tconst collection = this._offlineDB.get(collectionName);\n\n\t\tif (collection) {\n\t\t\tlet doc = collection.findOne({_id: doc_id});\n\n\t\t\tif (doc) {\n\t\t\t\tupdateParams.forEach(data => {\n\t\t\t\t\tdoc[data.prop] = data.data;\n\t\t\t\t});\n\n\t\t\t\tdoc.__v += 1;\n\n\t\t\t\tcollection.update({_id: doc_id}, doc);\n\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t}\n\t\n\tpublic removeDocument(collectionName: string, id: string) {\n\t\tconst collection = this._offlineDB.get(collectionName);\n\n\t\tif (collection) {\n\t\t\tcollection.remove(id);\n\t\t}\n\t}\n\n\tpublic dropCollection(collectionName) {\n\t\tconst collection = this._offlineDB.get(collectionName);\n\n\t\tcollection.drop();\n\t}\n\n\t// public saveDataWithKey(key: string, value: string) {\n\t// \tconsole.log('Saving', JSON.stringify(value));\n\t// \tthis._storage.set(key, JSON.stringify(value));\n\t// }\n\n\t// public getDataWithKey(key: string) {\n\t// \treturn JSON.parse(this._storage.get(key), dateReviver);\n\t// }\n}\n","import { SocketService } from './socket.service';\nimport { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { finalize } from 'rxjs/operators';\nimport { ActiveClientSubscriptionModel } from './models/subscription.model';\nimport { dateReviver, deepCopy } from './util/common.helper';\nimport { OfflineManagerService } from './offline-manager.service';\nimport { AlertService } from './widgets/alert/alert.service';\nimport { Router } from '@angular/router';\n\n@Injectable()\nexport class SocketManagerService {\n\tprivate socketStatus;\n\n\tprivate messageId = 0;\n\tprivate _cbArray = [];\n\tprivate _subArray: ActiveClientSubscriptionModel[] = [];\n\tprivate _sendQueue = [];\n\tprivate _offlineUpdates = [];\n\n\tprivate _runningQueue = false;\n\tprivate initConnection = false;\n\n\tprivate _connectionDelayTimeout = null;\n\n\tpublic onerror: () => void = function () {};\n\n\tconstructor(private _socket: SocketService, private _offline: OfflineManagerService, private _alert: AlertService, private _router: Router) {}\n\n\tpublic getSubArray() {\n\t\treturn this._subArray;\n\t}\n\n\tpublic initSocketManager(): void {\n\t\tthis._socket.readyState$.subscribe(socketStatus => {\n\t\t\tthis.socketStatus = socketStatus;\n\t\t});\n\n\t\tthis._socket.onmessage = (event: MessageEvent) => {\n\t\t\tthis.handleMessage(event);\n\t\t};\n\n\t\tthis._socket.onopen = (event: Event) => {\n\t\t\tthis._connectionDelayTimeout = setTimeout(() => {\n\t\t\t\tthis._connectionDelayTimeout = null;\n\n\t\t\t\tthis._offline.setOffline(false);\n\t\t\t\t\n\t\t\t\tlet collectionUpdates = this._offline.find('collectionUpdate', {});\n\n\t\t\t\tcollectionUpdates.forEach(update => {\n\t\t\t\t\tlet messageId = this.messageId++;\n\n\t\t\t\t\tthis._offlineUpdates.push({\n\t\t\t\t\t\tid_offline_doc: update._id,\n\t\t\t\t\t\tmessageId: messageId,\n\t\t\t\t\t\ttype: 'collectionUpdate'\n\t\t\t\t\t});\n\n\t\t\t\t\tupdate.data[2] = messageId;\n\n\t\t\t\t\tif (update.type === 'updateDocument') {\n\t\t\t\t\t\tupdate.data[4] = 'updateDocumentOffline';\n\t\t\t\t\t\tupdate.data[0] = 'Offline - ' + update.data[0];\n\t\t\t\t\t}\n\t\t\t\t\telse if (update.type === 'updateDocumentProps') {\n\t\t\t\t\t\tupdate.data[4] = 'updateDocumentPropsOffline';\n\t\t\t\t\t\tupdate.data[0] = 'Offline - ' + update.data[0];\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tupdate.data[0] = 'Offline - ' + update.data[0];\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (collectionUpdates.length) {\n\t\t\t\t\tthis.send('Offline Updates', new Date(), this.messageId++, 'offline', collectionUpdates.sort((a, b) => a.date.getTime() - b.date.getTime()));\n\t\t\t\t}\n\n\t\t\t\tthis._subArray.forEach(sub => {\n\t\t\t\t\tthis.send(sub.messageRoute, new Date(), sub.messageId, 'subscription', 'sub', sub.subscription, ...sub.parameters);\n\t\t\t\t});\n\n\t\t\t\tthis.initConnection = true;\n\t\t\t}, 1000);\n\t\t};\n\n\t\tthis._socket.onerror = (ev: ErrorEvent) => {\n\t\t\tif (this._connectionDelayTimeout) {\n\t\t\t\tclearTimeout(this._connectionDelayTimeout);\n\t\t\t}\n\t\t\tconsole.log(new Date(), 'SOCKET ERROR', ev);\n\t\t\tthis.onerror();\n\t\t};\n\n\t\tthis._socket.onclose = (ev: CloseEvent) => {\n\t\t\tif (this._connectionDelayTimeout) {\n\t\t\t\tclearTimeout(this._connectionDelayTimeout);\n\t\t\t}\n\t\t}\n\n\t\tsetInterval(() => {\n\t\t\tif (this.initConnection) {\n\t\t\t\tif (!this._runningQueue) {\n\t\t\t\t\tif (this._sendQueue.length) {\n\t\t\t\t\t\tthis._runningQueue = true;\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (this._socket && this._socket.ws) {\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tlet nextSendItem = this._sendQueue[this._sendQueue.length - 1];\n\t\t\t\t\t\t\tlet sendStatus = this._socket.send(...nextSendItem);\n\n\t\t\t\t\t\t\tif (sendStatus) {\n\t\t\t\t\t\t\t\tthis._sendQueue.pop();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis._runningQueue = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}, 25);\n\t}\n\n\thandleMessage(resData: any) {\n\t\tif (resData.data === 'reloadWSCommand') {\n\t\t\twindow.location.href = window.location.href + '?forceReload=true';\n\t\t}\n\t\telse if (resData.data === 'reconnectWSCommand') {\n\t\t\tthis._socket.reconnect();\n\t\t}\n\t\telse if (resData.data === 'disconnectWSCommand') {\n\t\t\tthis.closeSocket();\n\t\t}\n\n\t\tlet offlineIndex = this._offlineUpdates.findIndex(a => a.messageId === resData.messageId);\n\t\tif (offlineIndex >= 0) {\n\t\t\tthis._offline.removeDocument(this._offlineUpdates[offlineIndex].type, this._offlineUpdates[offlineIndex].id_offline_doc);\n\t\t\tthis._offlineUpdates.splice(offlineIndex, 1);\n\t\t}\n\n\t\tif (resData.data !== 'ACK' && resData.data !== 'NACK') {\n\t\t\tif (this._cbArray.map(a => a.messageId).includes(resData.messageId)) {\t\n\t\t\t\tlet index = this._cbArray.findIndex(a => a.messageId === resData.messageId);\n\t\t\t\t\n\t\t\t\tif (index >= 0) {\n\t\t\t\t\tclearInterval(this._cbArray[index].timerId);\n\n\t\t\t\t\tif (this._cbArray[index].cb) {\n\t\t\t\t\t\tthis._cbArray[index].cb(resData.hasError ? resData.data : null, resData.hasError ? null : resData.data);\n\t\t\t\t\t\tthis._cbArray[index].resolveFn(resData.hasError ? resData.data : null);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (resData.hasError) {\n\t\t\t\t\t\t\tthis._cbArray[index].rejectFn(resData.data);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis._cbArray[index].resolveFn(resData.data);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis._cbArray.splice(index, 1);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (this._subArray.map(a => a.messageId).includes(resData.messageId)) {\t\n\t\t\t\tlet index = this._subArray.findIndex(a => a.messageId === resData.messageId);\n\t\t\t\t\n\t\t\t\tif (index >= 0) {\n\t\t\t\t\tthis._subArray[index].subject.next(resData.data);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic openSocket(environment, protocols) {\n\t\tthis._socket.openSocket(environment, protocols);\n\t}\n\n\tpublic closeSocket() {\n\t\tthis._socket.close();\n\t}\n\n\tpublic call(method: string, ...parameters: any[]) {\n\t\tlet resolveFn = null;\n\t\tlet rejectFn = null;\n\n\t\tlet promise = new Promise((resolve, reject) => {\n\t\t\tresolveFn = resolve;\n\t\t\trejectFn = reject;\n\t\t});\n\n\t\tlet messageId = this.messageId++;\n\n\t\tlet timerId = setInterval(() => {\n\t\t\tif (this._cbArray.filter(a => a.messageId === messageId)[0]) {\n\t\t\t\tthis.send((this._router.url.includes('?') ? this._router.url.substring(0, this._router.url.indexOf('?')) : this._router.url), new Date(), messageId, 'methodResponse', method, ...parameters);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tclearInterval(timerId);\n\t\t\t}\n\t\t}, 5000);\n\n\t\tif (parameters[parameters.length - 1] && typeof(parameters[parameters.length - 1]) === 'function') {\n\t\t\tthis._cbArray.push({\n\t\t\t\tmessageId: messageId,\n\t\t\t\tcb: parameters.pop(),\n\t\t\t\tresolveFn: resolveFn,\n\t\t\t\trejectFn: rejectFn,\n\t\t\t\ttimerId: timerId,\n\t\t\t\tretryCnt: 0\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tthis._cbArray.push({\n\t\t\t\tmessageId: messageId,\n\t\t\t\tcb: null,\n\t\t\t\tresolveFn: resolveFn,\n\t\t\t\trejectFn: rejectFn,\n\t\t\t\ttimerId: timerId,\n\t\t\t\tretryCnt: 0\n\t\t\t});\n\t\t}\n\n\t\tlet cnt = parameters.length;\n\t\twhile ((parameters[parameters.length - 1] === undefined || parameters[parameters.length - 1] === null) && cnt > 0) {\n\t\t\tparameters.pop();\n\t\t\tcnt = parameters.length;\n\t\t}\n\n\t\tthis.send((this._router.url.includes('?') ? this._router.url.substring(0, this._router.url.indexOf('?')) : this._router.url), new Date(), messageId, 'method', method, ...parameters);\n\n\t\treturn promise;\n\t}\n\n\tpublic subscribe(subscription: string, ...parameters) {\n\t\tconst copyParameters = deepCopy(parameters);\n\t\tconst newSubject = new Subject<any>();\n\n\t\tlet messageId = this.messageId++;\n\n\t\tthis._subArray.push({\n\t\t\tmessageId: messageId,\n\t\t\tmessageRoute: (this._router.url.includes('?') ? this._router.url.substring(0, this._router.url.indexOf('?')) : this._router.url),\n\t\t\tsubscription: subscription,\n\t\t\tparameters: copyParameters,\n\t\t\tsubject: newSubject\n\t\t});\n\n\t\tconst observable = newSubject.pipe(finalize(() => {\n\t\t\tthis.unsubscribe(messageId, subscription, ...copyParameters);\n\t\t\tthis._subArray.splice(this._subArray.map(a => a.messageId).indexOf(messageId), 1);\n\t\t}));\n\n\t\tthis.send((this._router.url.includes('?') ? this._router.url.substring(0, this._router.url.indexOf('?')) : this._router.url), new Date(), messageId, 'subscription', 'sub', subscription, ...copyParameters);\n\n\t\treturn observable;\n\t}\n\n\tpublic subscribeBypassRoute(subscription: string, ...parameters) {\n\t\tconst copyParameters = deepCopy(parameters);\n\t\tconst newSubject = new Subject<any>();\n\n\t\tlet messageId = this.messageId++;\n\n\t\tthis._subArray.push({\n\t\t\tmessageId: messageId,\n\t\t\tmessageRoute: 'Bypass',\n\t\t\tsubscription: subscription,\n\t\t\tparameters: copyParameters,\n\t\t\tsubject: newSubject\n\t\t});\n\n\t\tconst observable = newSubject.pipe(finalize(() => {\n\t\t\tthis.unsubscribe(messageId, subscription, ...copyParameters);\n\t\t\tthis._subArray.splice(this._subArray.map(a => a.messageId).indexOf(messageId), 1);\n\t\t}));\n\n\t\tthis.send('Bypass', new Date(), messageId, 'subscription', 'sub', subscription, ...copyParameters);\n\n\t\treturn observable;\n\t}\n\n\tpublic unsubscribe(messageId, subscription: string, ...parameters) {\n\t\tthis.send((this._router.url.includes('?') ? this._router.url.substring(0, this._router.url.indexOf('?')) : this._router.url), new Date(), messageId, 'subscription', 'unsub', subscription, ...parameters);\n\t}\n\t\n\tprivate send(...data: any[]) {\n\t\tif (data[3] === 'subscription') {\n\t\t\tthis._socket.send(...data);\n\t\t}\n\t\telse if (data[3] === 'method') {\n\t\t\tif (this.socketStatus === WebSocket.OPEN) {\n\t\t\t\tif (!this._sendQueue.filter(a => JSON.stringify(a) === JSON.stringify(data)).length) {\n\t\t\t\t\tthis._sendQueue.splice(0, 0, data);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (data[4] === 'insertDocument') {\n\t\t\t\t\tif (data[5] !== 'driver-gps') {\n\t\t\t\t\t\tthis._alert.setAlert('warning', 'This insert command has not taken place on the server yet because you are offline. It will automatically sync up next time you are online as long as you do not clear your cache!');\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._offline.insertDocument('collectionUpdate', {\n\t\t\t\t\t\ttype: 'insert',\n\t\t\t\t\t\tdata: data,\n\t\t\t\t\t\tdate: new Date()\n\t\t\t\t\t});\n\n\t\t\t\t\tlet res = this._offline.insertDocument(data[5], data[6]);\n\n\t\t\t\t\tlet cb = this._cbArray.filter(a => a.messageId === data[2])[0];\n\t\t\t\t\tif (cb && cb.cb) {\n\t\t\t\t\t\tcb.cb(null, res);\n\n\t\t\t\t\t\tthis._cbArray.splice(this._cbArray.findIndex(a => a.messageId === data[2]), 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (data[4] === 'updateDocument') {\n\t\t\t\t\tthis._alert.setAlert('warning', 'This update command has not taken place on the server yet because you are offline. It will automatically sync up next time you are online as long as you do not clear your cache!');\n\t\t\t\t\tthis._offline.insertDocument('collectionUpdate', {\n\t\t\t\t\t\ttype: 'updateDocument',\n\t\t\t\t\t\tdata: data,\n\t\t\t\t\t\tdate: new Date()\n\t\t\t\t\t});\n\n\t\t\t\t\tif (this._offline.findOne(data[5], {_id: data[6]._id})) {\n\t\t\t\t\t\tthis._offline.updateDocument(data[5], data[6]);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tconsole.log('Could not find Offline data', data[5], data[6]);\n\t\t\t\t\t}\n\n\t\t\t\t\tlet cb = this._cbArray.filter(a => a.messageId === data[2])[0];\n\t\t\t\t\tif (cb && cb.cb) {\n\t\t\t\t\t\tcb.cb(null, 1);\n\t\t\t\t\t\tthis._cbArray.splice(this._cbArray.findIndex(a => a.messageId === data[2]), 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (data[4] === 'updateDocumentProps') {\n\t\t\t\t\tthis._alert.setAlert('warning', 'This update command has not taken place on the server yet because you are offline. It will automatically sync up next time you are online as long as you do not clear your cache!');\n\t\t\t\t\tthis._offline.insertDocument('collectionUpdate', {\n\t\t\t\t\t\ttype: 'updateDocumentProps',\n\t\t\t\t\t\tdata: data,\n\t\t\t\t\t\tdate: new Date()\n\t\t\t\t\t});\n\n\t\t\t\t\tif (this._offline.findOne(data[5], {_id: data[6]})) {\n\t\t\t\t\t\tthis._offline.updateDocumentProps(data[5], data[6], data[7], data[8]);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tconsole.log('Could not find Offline data', data[5], data[6]);\n\t\t\t\t\t}\n\n\t\t\t\t\tlet cb = this._cbArray.filter(a => a.messageId === data[2])[0];\n\t\t\t\t\tif (cb && cb.cb) {\n\t\t\t\t\t\tcb.cb(null, 1);\n\t\t\t\t\t\tthis._cbArray.splice(this._cbArray.findIndex(a => a.messageId === data[2]), 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (data[4] === 'removeDocument') {\n\t\t\t\t\tthis._alert.setAlert('warning', 'This remove command has not taken place on the server yet because you are offline. It will automatically sync up next time you are online as long as you do not clear your cache!');\n\t\t\t\t\tthis._offline.insertDocument('collectionUpdate', {\n\t\t\t\t\t\ttype: 'removeDocument',\n\t\t\t\t\t\tdata: data,\n\t\t\t\t\t\tdate: new Date()\n\t\t\t\t\t});\n\n\t\t\t\t\tif (this._offline.findOne(data[5], {_id: data[6]})) {\n\t\t\t\t\t\tthis._offline.removeDocument(data[5], data[6]);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tconsole.log('Could not find Offline data', data[5], data[6]);\n\t\t\t\t\t}\n\n\t\t\t\t\tlet cb = this._cbArray.filter(a => a.messageId === data[2])[0];\n\t\t\t\t\tif (cb && cb.cb) {\n\t\t\t\t\t\tcb.cb(null, 1);\n\t\t\t\t\t\tthis._cbArray.splice(this._cbArray.findIndex(a => a.messageId === data[2]), 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse if (data[3] === 'offline') {\n\t\t\tthis._socket.send(...data);\n\t\t}\n\t}\n\n\tgetStatus() {\n\t\treturn this._socket.readyState$;\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { LocalStorageService } from 'ngx-localstorage';\n\n@Injectable()\nexport class TokenManagerService {\n\n\tconstructor(private _storage: LocalStorageService) {}\n\n\tpublic getToken(tokenKey: string): string {\n\t\treturn this._storage.get(tokenKey);\n\t}\n\t\n\tpublic setToken(tokenKey: string, tokenValue: string) {\n\t\tthis._storage.set(tokenKey, tokenValue);\n\t}\n\n\tpublic removeToken(tokenKey: string) {\n\t\tthis._storage.remove(tokenKey);\n\t}\n}\n","import { BehaviorSubject, Subscription } from 'rxjs';\nimport { UserModel } from './models/user.model';\nimport { Injectable } from '@angular/core';\nimport { SocketManagerService } from './socket-manager.service';\nimport { TokenManagerService } from './token-manager.service';\nimport { AlertService } from './widgets/alert/alert.service';\nimport { OfflineManagerService } from './offline-manager.service';\nimport { dateReviver } from './util/common.helper';\nimport { Router } from '@angular/router';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable()\nexport class AccountManagerService {\n\n\tuser = new BehaviorSubject<UserModel>(null);\n\tinitCompleted = new BehaviorSubject<boolean>(false);\n\tloginCompleted = new BehaviorSubject<boolean>(false);\n\tuser$: Subscription;\n\n\tenvironment = null;\n\n\tconstructor(private _router: Router, private _socket: SocketManagerService, private _token: TokenManagerService, private _http: HttpClient, private _alert: AlertService, private _offline: OfflineManagerService) {\n\t\t\n\t}\n\n\tpublic initLoginManager(environment): void {\n\t\tthis.environment = environment;\n\t\t\n\t\tthis._socket.initSocketManager();\n\n\t\tlet token = this._token.getToken('refreshToken');\n\n\t\tif (token) {\n\t\t\tthis.initLogin(token);\n\n\t\t\tsetInterval(() => {\n\t\t\t\tthis.initLogin(token);\n\t\t\t}, 3000);\n\t\t}\n\t\telse {\n\t\t\tthis.initCompleted.next(true);\n\t\t}\n\t}\n\n\tprivate initLogin(token: string) {\n\t\tif (navigator.onLine) {\n\t\t\tif (this._offline.offlineMode.getValue()) {\n\t\t\t\tthis._offline.setOffline(false);\n\t\t\t\tthis.getAccessToken(token);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tif (!this._offline.offlineMode.getValue() || !this.initCompleted.getValue()) {\n\n\t\t\t\tthis.closeSocket();\n\t\t\t\tthis._offline.setOffline(true);\n\n\t\t\t\tlet user = JSON.parse(this._offline.getUser(), dateReviver);\n\n\t\t\t\tif (user) {\n\t\t\t\t\tthis.user.next(user);\n\t\t\t\t}\n\n\t\t\t\tif (!this.initCompleted.getValue()) {\n\t\t\t\t\tthis.initCompleted.next(true);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic getAccessToken(refreshToken) {\n\t\tif (refreshToken) {\n\t\t\tthis._http.post(this.environment.SERVER_URL + '/accessToken', {refreshToken: refreshToken}).toPromise().then((res: any) => {\n\t\t\t\tif (res.error) {\n\t\t\t\t\tthis.initCompleted.next(true);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis._token.setToken('accessToken', res.result.token);\n\t\t\t\t\tthis.user.next(res.result.user);\n\n\t\t\t\t\tthis.openSocket(res.result.token);\n\n\t\t\t\t\tif (this.user$) {\n\t\t\t\t\t\tthis.user$.unsubscribe();\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.user$ = this._socket.subscribeBypassRoute('userWithId', res.result.user._id).subscribe(resUser => {\n\t\t\t\t\t\tif (resUser) {\n\t\t\t\t\t\t\tif (this.user.getValue() && this.user.getValue()._id !== resUser._id) {\n\t\t\t\t\t\t\t\tthis._socket.call('incorrectUser', this.user.getValue(), resUser, this._socket.getSubArray());\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tthis.user.next(resUser);\n\t\t\t\t\t\t\t\tthis.loginCompleted.next(true);\n\t\t\t\t\t\t\t\tthis.initCompleted.next(true);\n\t\t\t\t\t\t\t\tthis._offline.saveUser(resUser);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}, err => {\n\t\t\t\tthis.initCompleted.next(true);\n\t\t\t});\n\t\t}\n\t}\n\n\tpublic logIn(username: string, password: string) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis._http.post(this.environment.SERVER_URL + '/login', {username: username, password: password}).toPromise().then((res: any) => {\t\n\t\t\t\tif (res.error) {\n\t\t\t\t\tthis._alert.setAlert('error', res.result);\n\t\t\t\t\treject(res.result);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis._token.setToken('refreshToken', res.result.token);\n\t\t\t\t\tthis.getAccessToken(res.result.token);\n\t\t\t\t\tresolve(res.result.token); //should be resolving user\n\t\t\t\t}\n\t\t\t}, err => {});\n\t\t});\n\t}\n\n\tpublic logIn365(azure_token: string) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis._http.post(this.environment.SERVER_URL + '/login365', {id_token: azure_token}).toPromise().then((res: any) => {\t\n\t\t\t\tif (res.error) {\n\t\t\t\t\tthis._alert.setAlert('error', res.result);\n\t\t\t\t\treject(res.result);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis._token.setToken('refreshToken', res.result.token);\n\t\t\t\t\tthis.getAccessToken(res.result.token);\n\t\t\t\t\tresolve(res.result.token); //should be resolving user\n\t\t\t\t}\n\t\t\t}, err => {});\n\t\t});\n\t}\n\n\tpublic resetUserPassword(username: string) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis._http.post(this.environment.SERVER_URL + '/resetPassword', {username: username}).toPromise().then((res: any) => {\t\n\t\t\t\tresolve(true);\n\t\t\t}, err => {});\n\t\t});\n\t}\n\n\tpublic logOut() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis._router.navigateByUrl('/home');\n\t\t\t\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.user.next(null);\n\t\t\t\tthis._token.removeToken('refreshToken');\n\t\t\t\tthis._token.removeToken('accessToken');\n\t\t\t\tthis._offline.removeUser();\n\t\t\t\tthis.closeSocket();\n\t\t\t\tresolve(true);\n\t\t\t}, 500);\n\t\t});\n\t}\n\n\tpublic openSocket(token) {\n\t\tthis._socket.openSocket(this.environment, [token]);\n\t}\n\n\tpublic closeSocket() {\n\t\tthis._socket.closeSocket();\n\t}\n\n\tpublic setUser(user: UserModel) {\n\t\tthis.user.next(user);\n\t}\n\n\tpublic getUser(): UserModel {\n\t\treturn this.user.getValue();\n\t}\n\n\tpublic getSocketStatus() {\n\t\treturn this._socket.getStatus();\n\t}\n\n\tpublic isUserInView(view: string) {\n\t\tlet res = false;\n\n\t\tif (this.isUserSuperAdmin()) {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet user = this.user.getValue();\n\n\t\tif (user) {\n\t\t\tuser.roles.groups.forEach(group => {\n\t\t\t\tif (group.views.filter(a => a.startsWith(view)).length) {\n\t\t\t\t\tres = true;\n\t\t\t\t}\n\t\t\t});\n\t\n\t\t\tif (user.roles.miscs.filter(a => a.startsWith(view)).length) {\n\t\t\t\tres = true;\n\t\t\t}\n\t\n\t\t\tif (user.roles.groups.filter(a => a.name === view).length) {\n\t\t\t\tres = true;\n\t\t\t}\n\t\t}\n\n\t\treturn res;\n\t}\n\n\tpublic isUserSuperAdmin() {\n\t\treturn this.user.getValue() && this.user.getValue().roles.super_admin; //Remove any later\n\t}\n\n\tpublic isInitCompleted() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (this.initCompleted.value) {\n\t\t\t\tresolve(true);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet initSub$ = this.initCompleted.subscribe((data) => {\n\t\t\t\t\tif (data) {\n\t\t\t\t\t\tinitSub$.unsubscribe();\n\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t}\n\t\t\t\t}, () => {});\n\t\t\t}\n\t\t});\n\t}\n\n\tpublic isLoginCompleted() {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tif (this.loginCompleted.value) {\n\t\t\t\tresolve(true);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tlet initSub$ = this.loginCompleted.subscribe((data) => {\n\t\t\t\t\tif (data) {\n\t\t\t\t\t\tinitSub$.unsubscribe();\n\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n}\n","import { FormControl, FormGroup, AbstractControl } from '@angular/forms';\nimport {Injectable} from '@angular/core';\n\n@Injectable()\nexport class ValidationService {\n\n\tconstructor() { }\n\n\twholeNumbersAllowNegative(c: FormControl) {\n\t\tlet regEx = /^[\\-]?\\d+$/;\n\n\t\tif (c.value === '' || c.value === null) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn regEx.test(c.value) ? null : {\n\t\t\twholeNumbersAllowNegative: { valid: false }\n\t\t};\n\t}\n\n\twholeNumbersWithZero(c: FormControl) {\n\t\tlet regEx = /^[0-9]*$/;\n\n\t\tif (c.value === '' || c.value === null) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn regEx.test(c.value) ? null : {\n\t\t\twholeNumbersWithZero: { valid: false }\n\t\t};\n\t}\n\n\twholeNumbersGreaterThanZero(c: FormControl) {\n\t\tlet regEx = /^[1-9]+[0-9]*$/;\n\n\t\tif (c.value === '' || c.value === null) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn regEx.test(c.value) ? null : {\n\t\t\twholeNumbersGreaterThanZero: { valid: false }\n\t\t};\n\t}\n\n\tdecimalWithZero(c: FormControl) {\n\t\tlet regEx = /^\\d*\\.?\\d*$/;\n\n\t\tif (c.value === '' || c.value === null) {\n\t\t\treturn null;\n\t\t}\n\t\t\n\t\treturn regEx.test(c.value) ? null : {\n\t\t\tdecimalWithZero : { valid: false }\n\t\t};\n\t}\n\n\tdecimalGreaterThanZero(c: FormControl) {\n\t\tlet regEx = /^\\s*(?=.*[1-9])\\d*(?:\\.\\d{1,10})?\\s*$/;\n\n\t\tif (c.value === '' || c.value === null) {\n\t\t\treturn null;\n\t\t}\n\t\t\n\t\treturn regEx.test(c.value) ? null : {\n\t\t\tdecimalGreaterThanZero : { valid: false }\n\t\t};\n\t}\n\n\tcurrency(c: FormControl) {\n\t\tlet regEx = /^[0-9]\\d*(\\.\\d+)?$/;\n\n\t\tif (c.value === '' || c.value === null) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn regEx.test(c.value) ? null : {\n\t\t\tcurrency: { valid: false }\n\t\t};\n\t}\n\n\tcurrencyGreaterThanZero(c: FormControl) {\n\t\tlet regEx = /^[0-9]\\d*(\\.\\d+)?$/;\n\n\t\tif (c.value === '' || c.value === null) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn regEx.test(c.value) && c.value > 0 ? null : {\n\t\t\tcurrency: { valid: false }\n\t\t};\n\t}\n\n\tcurrencyAllowNegative(c: FormControl) {\n\t\tlet regEx = /^[\\-]?[0-9]\\d*(\\.\\d+)?$/;\n\n\t\tif (c.value === '' || c.value === null) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn regEx.test(c.value) ? null : {\n\t\t\tcurrency: { valid: false }\n\t\t};\n\t}\n\n\tphoneNumber(c: FormControl) {\n\t\t//let regEx = /^(?:(?:\\+?1\\s*(?:[.-]\\s*)?)?(?:\\(\\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\\s*\\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\\s*(?:[.-]\\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\\s*(?:[.-]\\s*)?([0-9]{4})(?:\\s*(?:#|x\\.?|ext\\.?|extension)\\s*(\\d+))?$/;\n\t\tlet regEx = /^1?([2-9])(\\d{9})/;\n\n\t\tif (c.value === '' || c.value === null) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn regEx.test(c.value) ? null : {\n\t\t\tphoneNumber: { valid: false }\n\t\t};\n\t}\n\n\temail(c: FormControl) {\n\t\tlet regEx = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\n\t\tif (c.value === '' || c.value === null) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn regEx.test(c.value) ? null : {\n\t\t\temail: { valid: false }\n\t\t};\n\t}\n\n\tmatchPassword(group: FormGroup): any {\n\t\tlet password = <FormControl>group.controls['password'];\n\t\tlet confirm_password = <FormControl>group.controls['confirm_password'];\n\n\t\tif (!password.value || !confirm_password.value) {\n\t\t\treturn null;\n\t\t} \n\n\t\treturn (password.value === confirm_password.value) ? null : {\n\t\t\tmatchPassword : { isValid: false }\n\t\t};\n\t}\n\n\tdensity(c: FormControl) {\n\t\tlet regEx = /^[\\-]?\\d*\\.?\\d*$/;\n\n\t\tif (c.value === '' || c.value === null) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn regEx.test(c.value) ? null : {\n\t\t\tdensity: { valid: false }\n\t\t};\n\t}\n\n\tmaxValue(max: number) {\n\t\treturn (control: AbstractControl): {[key: string]: any} => {\n\t\t\tconst input = typeof(control.value) === 'string' ? parseFloat(control.value) : control.value;\n\t\t\tconst hasError = input > max;\n\n\t\t\tif (hasError) {\n\t\t\t\treturn { 'maxValue': {max} };\n\t\t\t}\n\t\t\t\n\t\t\treturn null;\n\t\t}; \n\t}\n\n\tminValue(min: number) {\n\t\treturn (control: AbstractControl): {[key: string]: any} => {\n\t\t\tconst input = typeof(control.value) === 'string' ? parseFloat(control.value) : control.value;\n\t\t\tconst hasError = input < min;\n\n\t\t\tif (hasError) {\n\t\t\t\treturn { 'minValue': {min} };\n\t\t\t}\n\t\t\t\n\t\t\treturn null;\n\t\t}; \n\t}\n\n\tmultipleOf(value: number) {\n\t\treturn (control: AbstractControl): {[key: string]: any} => {\n\t\t\tconst input = typeof(control.value) === 'string' ? parseFloat(control.value) : control.value;\n\t\t\tconst hasError = input % value !== 0;\n\n\t\t\tif (hasError) {\n\t\t\t\treturn { 'multipleOf': {value} };\n\t\t\t}\n\t\t\t\n\t\t\treturn null;\n\t\t}; \n\t}\n\n\tminLengthArray(min: number) {\n\t\treturn (c: AbstractControl): {[key: string]: any} => {\n\t\t\tif (c.value && c.value.length >= min) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\t\n\t\t\treturn { 'minLengthArray': {valid: false }};\n\t\t};\n\t}\n\n\tmaxLengthArray(max: number) {\n\t\treturn (c: AbstractControl): {[key: string]: any} => {\n\t\t\tif (c.value && c.value.length <= max) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\t\n\t\t\treturn { 'maxLengthArray': {valid: false }};\n\t\t};\n\t}\n\n\tvalidIPAddress(c: FormControl) {\n\t\tlet regEx = /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/;\n\n\t\tif (c.value === '' || c.value === null) {\n\t\t\treturn null;\n\t\t}\n\t\t\n\t\treturn regEx.test(c.value) ? null : {\n\t\t\tvalidIPAddress : { valid: false }\n\t\t};\n\t}\n\n\talphaNumericWithDashes(c: FormControl) {\n\t\tlet regEx = /^[a-zA-Z0-9-_]+$/;\n\n\t\tif (c.value === '' || c.value === null) {\n\t\t\treturn null;\n\t\t}\n\t\t\n\t\treturn regEx.test(c.value) ? null : {\n\t\t\talphaNumericWithDashes : { valid: false }\n\t\t};\n\t}\n}\n","import {Injectable} from '@angular/core';\nimport { SocketManagerService } from '../socket-manager.service';\n\n@Injectable()\nexport class AwsService {\n\n\tconstructor(private _socket: SocketManagerService) {}\n\n\tdataURItoFile(dataURI: string, filename: string): File {\n\t\t// convert base64 to raw binary data held in a string\n\t\t// doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this\n\t\tlet byteString = atob(dataURI.split(',')[1]);\n\n\t\t// separate out the mime component\n\t\tlet mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\n\n\t\t// write the bytes of the string to an ArrayBuffer\n\t\tlet ab = new ArrayBuffer(byteString.length);\n\t\tlet ia = new Uint8Array(ab);\n\t\tfor (let i = 0; i < byteString.length; i++) {\n\t\t\tia[i] = byteString.charCodeAt(i);\n\t\t}\n\n\t\t// write the ArrayBuffer to a blob, and you're done\n\t\tlet blob = new Blob([ab], {type: mimeString});\n\t\t\n\t\tblob['lastModifiedDate'] = new Date();\n\t\tblob['name'] = filename;\n\n\t\treturn <File>blob;\n\t}\n\n\tuploadFile(file: File, type: string, order?: number, filename?: string) {\n\t\treturn new Promise ((resolve, reject) => {\n\t\t\tif (file.size) {\n\t\t\t\tthis.getBase64(file).then(data => {\n\t\t\t\t\tthis._socket.call('uploadFileAndSave', filename ? filename : file.name, data, file.size, order ? order : -1, type, true, (err, res) => {\n\t\t\t\t\t\tif (res) {\n\t\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\treject(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\treject('Invalid File');\n\t\t\t}\n\t\t});\n\t}\n\n\tgetFileWithKey(key: string, callback: Function) {\n\t\tthis._socket.call('getFile', key, callback);\n\t}\n\n\tgetFileWithId(id: string, callback: Function) {\n\t\tthis._socket.call('findOne', 'files', {_id: id}, (err, file) => {\n\t\t\tthis.getFileWithKey(file.key, callback);\n\t\t});\n\t}\n\n\tdeleteFile(key: string, callback: Function) {\n\t\tthis._socket.call('deleteFile', key, callback);\n\t}\n\n\tdeleteFileWithId(id: string, callback: Function) {\n\t\tthis._socket.call('findOne', 'files', {_id: id}, (err, file) => {\n\t\t\tthis.deleteFile(file.key, callback);\n\t\t});\n\t}\n\n\tdeleteFilesWithKeys(keys: string[], callback: Function) {\n\t\tthis._socket.call('deleteFiles', keys, callback);\n\t}\n\n\tgetBase64(file): Promise<string> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst reader = new FileReader();\n\t\t\treader.readAsDataURL(file);\n\t\t\treader.onload = () => resolve(<string>reader.result);\n\t\t\treader.onerror = error => reject(error);\n\t\t});\n\t}\n}\n","import { FormBuilder } from '@angular/forms';\nimport { AlertService } from './widgets/alert/alert.service';\nimport { AccountManagerService } from './account-manager.service';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { SocketManagerService } from './socket-manager.service';\nimport { CoreService } from './core.service';\nimport { ValidationService } from './util/validation.service';\nimport { AwsService } from './util/aws.service';\n\nexport class BaseComponent {\n\tconstructor(protected providerService: ProviderService) {}\n}\n\n@Injectable()\nexport class ProviderService {\n\tconstructor(\n\t\tpublic _app: CoreService,\n\t\tpublic _router: Router,\n\t\tpublic _socket: SocketManagerService,\n\t\tpublic _account: AccountManagerService,\n\t\tpublic _alert: AlertService,\n\t\tpublic _vs: ValidationService,\n\t\tpublic _aws: AwsService,\n\t\tpublic _fb: FormBuilder\n\t) {}\n}","import { Component, Input, HostListener } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n\ttemplate: `\n\t\t<div class=\"modal-header\">\n\t\t\t<h4 class=\"modal-title\"><i class=\"fa fa-info-circle\" style=\"color: blue; font-size: 0.85em\" aria-hidden=\"true\"></i> {{ title }}</h4>\n\t \t\t<button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"activeModal.dismiss('Cross click')\">\n\t\t\t\t<span aria-hidden=\"true\">×</span>\n\t \t\t</button>\n\t\t</div>\n\t\t<div class=\"modal-body\">\n\t \t \t<p>{{ body }}</p>\n\t\t</div>\n\t\t<div class=\"modal-footer\">\n\t \t\t<button type=\"button\" class=\"btn btn-secondary\" (click)=\"activeModal.close('Close click')\">Ok</button>\n\t\t</div>\n `\n})\n// tslint:disable-next-line:component-class-suffix\nexport class DialogNotifyContent {\n\t@Input() title: string;\n\t@Input() body: string;\n\n\t@HostListener('document:keypress', ['$event'])\n\t\thandleKeyboardEvent(event: KeyboardEvent) { \n\t\t\tif (event.keyCode === 13) {\n\t\t\t\tthis.activeModal.close();\n\t\t\t}\n\t\t}\n\n\tconstructor(public activeModal: NgbActiveModal) {}\n}","import { Component, Input, ViewChild } from '@angular/core';\nimport { FormGroup, FormArray } from '@angular/forms';\n\nimport { ProviderService, BaseComponent } from '../../resolveio-class';\n\n@Component({\n\tproviders: [ProviderService],\n\tselector: 'form-button',\n\ttemplate: `\n\t\t<div style=\"position: relative; text-align: left; width: 100%\">\n\t\t\t<ng-template #tipContent>\n\t\t\t\t<span style=\"font-weight: bold\">Errors:<br></span>\n\t\t\t\t<ul>\n\t\t\t\t\t<li *ngFor=\"let error of getTipErrors()\">{{error}}</li>\n\t\t\t\t</ul>\n\t\t\t</ng-template>\n\t\t\t<div [ngbTooltip]=\"(getTipErrors().length ? tipContent : '')\" placement=\"top-left\" #t>\n\t\t\t\t<button [type]=\"type\" [ngClass]=\"['btn', form && form.valid ? 'btn-success' : 'btn-danger']\" [disabled]=\"!form || !form.valid || disabled\" style=\"width: 200px\" [autofocus]=\"true\" #formButton>Submit</button>\n\t\t\t</div>\n\t\t</div>\n\t`\n})\n\nexport class FormButtonComponent extends BaseComponent { \n\t@Input() form: FormGroup;\n\t@Input() disabled = false;\n\t@Input() type = 'submit';\n\n\t@ViewChild('formButton', {static: false}) public formButton;\n\n\tconstructor(private _services: ProviderService) {\n\t\tsuper(_services);\n\t}\n\n\tgetTipErrors() {\n\t\tlet res = [];\n\n\t\tif (this.form && this.form.invalid && typeof(this.form.controls) === 'object') {\n\t\t\tlet keys = Object.keys(this.form.controls);\n\n\t\t\tkeys.forEach(key => {\n\t\t\t\tlet ctrl = this.form.controls[key];\n\n\t\t\t\tif (ctrl.invalid) {\n\t\t\t\t\tres.push(key.replace('_id', '').replace('id_', '').replace('_', ' ').replace(/\\b\\S/g, function(t) { return t.toUpperCase(); }) + ' is invalid');\n\n\t\t\t\t\tif (this.isSuperAdmin()) {\n\t\t\t\t\t\tif (typeof(ctrl.value) === 'object' && Array.isArray(ctrl.value) && (<FormArray>ctrl).controls) {\n\t\t\t\t\t\t\tfor (let i = 0; i < (<FormArray>ctrl).controls.length; i++) {\n\t\t\t\t\t\t\t\tlet group = (<FormGroup>(<FormArray>ctrl).controls[i]);\n\n\t\t\t\t\t\t\t\tif (group.controls) {\n\t\t\t\t\t\t\t\t\tlet arrayKeys = Object.keys(group.controls);\n\n\t\t\t\t\t\t\t\t\tarrayKeys.forEach(arrayKey => {\n\t\t\t\t\t\t\t\t\t\tlet arrayCtrl = group.controls[arrayKey];\n\n\t\t\t\t\t\t\t\t\t\tif (arrayCtrl.invalid) {\n\t\t\t\t\t\t\t\t\t\t\tres.push('[' + i + '] -> ' + arrayKey.replace('_id', '').replace('id_', '').replace('_', ' ').replace(/\\b\\S/g, function(t) { return t.toUpperCase(); }) + ' is invalid');\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn res;\n\t}\n\n\tisSuperAdmin() {\n\t\tif (this._services._account.getUser() && this._services._account.getUser().roles.super_admin) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n}\n","import { Directive, Input, ElementRef } from '@angular/core';\n\n@Directive({\n\tselector : '[focus]'\n})\nexport class FocusDirective {\n\t@Input()\n\tfocus : boolean;\n\n\tconstructor(private element : ElementRef) {\n\t}\n\n\tprotected ngOnChanges() {\n\t\tif (this.focus)\n\t\t\tthis.element.nativeElement.focus();\n\t}\n}","import { Component, Input, OnInit } from '@angular/core';\nimport { NgbModal, NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { Validators, FormGroup, FormControl, FormBuilder } from '@angular/forms';\n\n@Component({\n\ttemplate: `\n\t\t<form [formGroup]=\"formInput\" novalidate (ngSubmit)=\"_activeModal.close(this.formInput.controls)\">\n\t\t\t<div class=\"modal-header\">\n\t\t\t\t<h4 class=\"modal-title\"><i class=\"fa fa-plus-circle\" style=\"color: green; font-size: 0.85em\" aria-hidden=\"true\"></i> {{ title }}</h4>\n\t\t\t\t<button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"_activeModal.dismiss()\">\n\t\t\t\t\t<span aria-hidden=\"true\">×</span>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<div class=\"modal-body\">\n\t\t\t\t<div *ngFor=\"let inputField of inputFields; let i = index\">\n\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t<label class=\"form-control-label\">{{inputField.label}}</label>\n\t\t\t\t\t\t<em *ngIf=\"formInput.controls[inputField.form].hasError('required') && inputField.required\">- Required</em>\n\t\t\t\t\t\t<em *ngIf=\"!formInput.controls[inputField.form].hasError('required') && formInput.controls[inputField.form].invalid\">- Invalid</em>\n\t\t\t\t\t\t<div *ngIf=\"inputField.type !== 'state' && inputField.type !== 'textarea' && inputField.type !== 'number' && inputField.type !== 'select' && inputField.type !== 'boolean'\">\n\t\t\t\t\t\t<input [autofocus]=\"i === 0 ? true : false\" [focus]=\"i === 0 ? true : false\" [formControlName]=\"inputField.form\" [ngClass]=\"['form-control', validateInput(inputField, formInput)]\" [type]=\"(inputField.type ? inputField.type : 'text')\">\n\t\t\t\t\t\t\t<ng-container *ngFor=\"let errorMsg of getErrorMessages(inputField, formInput);\">\n\t\t\t\t\t\t\t\t<div class=\"invalid-feedback\">{{errorMsg}}</div>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div *ngIf=\"inputField.type === 'select'\">\n\t\t\t\t\t\t\t<ng-select [formControlName]=\"inputField.form\" [ngClass]=\"[validateInput(inputField, formInput)]\" [placeholder]=\"inputField.placeholder\">\n\t\t\t\t\t\t\t\t<ng-option *ngFor=\"let opt of inputField.options\" [value]=\"opt.value\" [disabled]=\"opt.value === 'disabled'\">{{opt.text}}</ng-option>\n\t\t\t\t\t\t\t</ng-select>\n\t\t\t\t\t\t\t<ng-container *ngFor=\"let errorMsg of getErrorMessages(inputField, formInput);\">\n\t\t\t\t\t\t\t\t<div class=\"invalid-feedback\">{{errorMsg}}</div>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div *ngIf=\"inputField.type === 'state'\">\n\t\t\t\t\t\t\t<select [formControlName]=\"inputField.form\" [ngClass]=\"['form-control', validateInput(inputField, formInput)]\">\n\t\t\t\t\t\t\t\t<option value=\"\">Select State</option>\n\t\t\t\t\t\t\t\t<option *ngFor=\"let state of states\" [value]=\"state\">{{state}}</option>\n\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t<ng-container *ngFor=\"let errorMsg of getErrorMessages(inputField, formInput);\">\n\t\t\t\t\t\t\t\t<div class=\"invalid-feedback\">{{errorMsg}}</div>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div *ngIf=\"inputField.type === 'textarea'\">\n\t\t\t\t\t\t\t<textarea rows=\"4\" [formControlName]=\"inputField.form\" [ngClass]=\"['form-control', validateInput(inputField, formInput)]\"></textarea>\n\t\t\t\t\t\t\t<ng-container *ngFor=\"let errorMsg of getErrorMessages(inputField, formInput);\">\n\t\t\t\t\t\t\t\t<div class=\"invalid-feedback\">{{errorMsg}}</div>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div *ngIf=\"inputField.type === 'number'\">\n\t\t\t\t\t\t\t<input [formControlName]=\"inputField.form\" type=\"number\" [ngClass]=\"['form-control', validateInput(inputField, formInput)]\">\n\t\t\t\t\t\t\t<ng-container *ngFor=\"let errorMsg of getErrorMessages(inputField, formInput);\">\n\t\t\t\t\t\t\t\t<div class=\"invalid-feedback\">{{errorMsg}}</div>\n\t\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div *ngIf=\"inputField.type === 'boolean'\" (click)=\"formInput.controls[inputField.form].setValue(!formInput.controls[inputField.form].value)\">\n\t\t\t\t\t\t\t<i *ngIf=\"formInput.controls[inputField.form].value\" class=\"fa fa-check\" style=\"color: green; font-size: 24px;\" aria-hidden=\"true\"></i>\n\t\t\t\t\t\t\t<i *ngIf=\"!formInput.controls[inputField.form].value\" class=\"fa fa-times\" style=\"color: red; font-size: 24px;\" aria-hidden=\"true\"></i>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"modal-footer\">\n\t\t\t\t<form-button [form]=\"formInput\"></form-button>\n\t\t\t\t<button type=\"button\" class=\"btn btn-secondary\" (click)=\"_activeModal.dismiss()\">Cancel</button>\n\t\t\t</div>\n\t\t</form>\n\t`\n})\n// tslint:disable-next-line:component-class-suffix\nexport class DialogInputContent implements OnInit {\n\t@Input() title = '';\n\t@Input() inputFields: any[] = [];\n\n\tformInput: FormGroup;\n\n\tstates: string[] = [\n\t\t'Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California', 'Colorado', 'Connecticut', 'Delaware', 'Florida', 'Georgia', 'Hawaii', 'Idaho', 'Illinois', 'Indiana', 'Iowa', 'Kansas', 'Kentucky', 'Louisiana', 'Maine',\n\t\t'Maryland', 'Massachusetts', 'Michigan', 'Minnesota', 'Mississippi', 'Missouri', 'Montana', 'Nebraska', 'Nevada', 'New Hampshire', 'New Jersey', 'New Mexico', 'New York', 'North Carolina', 'North Dakota', 'Ohio',\n\t\t'Oklahoma', 'Oregon', 'Pennsylvania', 'Rhode Island', 'South Carolina', 'South Dakota', 'Tennessee', 'Texas', 'Utah', 'Vermont', 'Virginia', 'Washington', 'West Virginia', 'Wisconsin', 'Wyoming'];\n\n\tconstructor(public _activeModal: NgbActiveModal, private _fb: FormBuilder) {}\n\n\tngOnInit() {\n\t\tthis.formInput = this._fb.group({});\n\n\t\tfor (let i = 0; i < this.inputFields.length; i++) {\n\t\t\tif (this.inputFields[i].validators === null) {\n\t\t\t\tthis.formInput.addControl(this.inputFields[i].form, new FormControl({value: this.inputFields[i].data, disabled: this.inputFields[i].disabled}));\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.formInput.addControl(this.inputFields[i].form, new FormControl({value: this.inputFields[i].data, disabled: this.inputFields[i].disabled}, this.inputFields[i].validators));\n\t\t\t}\n\t\t}\n\t}\n\n\tvalidateInput(inputField, formInput) {\n\n\t\tif (inputField.disabled) {\n\t\t\treturn '';\n\t\t}\n\n\t\tlet valid = true;\n\n\t\tfor (let i = 0; i < inputField.validators.length; i++) {\n\t\t\tif (formInput.controls[inputField.form].hasError([inputField.validatorErrors[i]])) {\n\t\t\t\tvalid = false;\n\t\t\t}\n\t\t}\n\n\t\tif (valid && formInput.controls[inputField.form].value !== null) {\n\t\t\treturn 'is-valid';\n\t\t}\n\t\telse if (!inputField.validators.length || (!inputField.required && valid)) {\n\t\t\treturn '';\n\t\t}\n\t\t\n\t\treturn 'is-invalid';\n\t}\n\n\tgetErrorMessages(inputField, formInput) {\n\t\tlet res = [];\n\n\t\tfor (let i = 0; i < inputField.validators.length; i++) {\n\t\t\tif (formInput.controls[inputField.form].hasError([inputField.validatorErrors[i]])) {\n\t\t\t\tres.push(inputField.validatorMsg[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn res;\n\t}\n}\n","import {Component, Input, HostListener} from '@angular/core';\n\nimport {NgbModal, NgbActiveModal} from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n\ttemplate: `\n\t\t<div class=\"modal-header\">\n\t\t\t<h4 class=\"modal-title\"><i class=\"fa fa-times-circle\" style=\"color: red; font-size: 0.85em\" aria-hidden=\"true\"></i> {{ title }}</h4>\n\t\t\t<button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"activeModal.dismiss('Cross click')\">\n\t\t\t\t<span aria-hidden=\"true\">×</span>\n\t\t\t</button>\n\t\t</div>\n\t\t<div class=\"modal-body\">\n\t\t\t<p>{{ body }}</p>\n\t\t</div>\n\t\t<div class=\"modal-footer\">\n\t\t\t<button type=\"button\" class=\"btn btn-secondary\" (click)=\"activeModal.close('Close click')\">Ok</button>\n\t\t</div>\n \t`\n})\n\n// tslint:disable-next-line:component-class-suffix\nexport class DialogErrorContent {\n\t@Input() title: string;\n\t@Input() body: string;\n\n\t@HostListener('document:keypress', ['$event'])\n\thandleKeyboardEvent(event: KeyboardEvent) { \n\t\tif (event.keyCode === 13) {\n\t\t\tthis.activeModal.close();\n\t\t}\n\t}\n\n\tconstructor(public activeModal: NgbActiveModal) {}\n}","import {Component, Input, HostListener} from '@angular/core';\n\nimport {NgbActiveModal} from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n\ttemplate: `\n\t\t<div class=\"modal-header\">\n\t\t\t<h4 class=\"modal-title\"><i class=\"fa fa-question-circle\" style=\"color: blue; font-size: 0.85em\" aria-hidden=\"true\"></i> {{ title }}</h4>\n\t\t\t<button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"activeModal.dismiss('Cross click')\">\n\t\t\t\t<span aria-hidden=\"true\">×</span>\n\t\t\t</button>\n\t\t</div>\n\t\t<div class=\"modal-body\">\n\t\t\t<p>{{ body }}</p>\n\t\t\t<div [innerHTML]=\"html\"></div>\n\t\t</div>\n\t\t<div class=\"modal-footer\">\n\t\t\t<button type=\"button\" class=\"btn btn-success\" (click)=\"activeModal.close()\">Yes</button>\n\t\t\t<button type=\"button\" class=\"btn btn-danger\" (click)=\"activeModal.dismiss()\">No</button>\n\t\t</div>\n \t`\n})\n// tslint:disable-next-line:component-class-suffix\nexport class DialogConfirmContent {\n\t@Input() title: string;\n\t@Input() body: string;\n\t@Input() html: string;\n\n\t@HostListener('document:keypress', ['$event'])\n\thandleKeyboardEvent(event: KeyboardEvent) { \n\t\tif (event.keyCode === 13) {\n\t\t\tthis.activeModal.close();\n\t\t}\n\t}\n\n\tconstructor(public activeModal: NgbActiveModal) {}\n}","import { Component, Input, OnInit, ViewChild, AfterViewInit } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\n\n@Component({\n\ttemplate: `\n\t \t<style>\n\t\t \ttable {\n\t\t\t\twidth: 100%;\n\t\t\t\ttable-layout: fixed;\n\t\t\t}\n\n\t\t\ttr {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\ttd {\n\t\t\t\twidth: 100%;\n\t\t\t\ttext-align: center;\n\t\t\t}\n\t\t</style>\n\t\t<div #allElements>\n\t\t\t<form [formGroup]=\"form\" novalidate (ngSubmit)=\"submitForm()\">\n\t\t\t\t<div class=\"modal-header\">\n\t\t\t\t\t<h4 class=\"modal-title\"><i class=\"fa fa-question-circle\" style=\"color: blue; font-size: 0.85em\" aria-hidden=\"true\"></i> {{ title }}</h4>\n\t\t\t\t\t<button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"_activeModal.dismiss()\" #close>\n\t\t\t\t\t\t<span aria-hidden=\"true\">×</span>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"modal-body\">\n\t\t\t\t\t<table>\n\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t<td style=\"border: none;\">\n\t\t\t\t\t\t\t\t<div class=\"input-group\">\n\t\t\t\t\t\t\t\t\t<input class=\"form-control\" placeholder=\"yyyy-mm-dd\" name=\"dp\" formControlName=\"date\" ngbDatepicker [firstDayOfWeek]=\"7\" #d=\"ngbDatepicker\">\n\t\t\t\t\t\t\t\t\t<div class=\"input-group-append\" (click)=\"d.toggle()\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"input-group-text\">\n\t\t\t\t\t\t\t\t\t\t\t<i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t<td *ngIf=\"showTime\" style=\"border: none;\">\n\t\t\t\t\t\t\t\t<div class=\"offset-3\">\n\t\t\t\t\t\t\t\t\t<ngb-timepicker formControlName=\"time\" meridian=\"ON\"></ngb-timepicker>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t</table>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"modal-footer\">\n\t\t\t\t\t<form-button [form]=\"form\"></form-button>\n\t\t\t\t\t<button type=\"button\" class=\"btn btn-secondary\" (click)=\"_activeModal.dismiss()\">Cancel</button>\n\t\t\t\t</div>\n\t\t\t</form>\n\t\t</div>\n\t`\n})\n// tslint:disable-next-line:component-class-suffix\nexport class DialogSelectDateTimeContent implements OnInit, AfterViewInit {\n\t@Input() title = '';\n\t@Input() date: Date;\n\t@Input() showTime = true;\n\n\t@ViewChild('close', {static: false}) public close;\n\t@ViewChild('allElements', {static: false}) public allElements;\n\n\tform: FormGroup;\n\n\tconstructor(public _activeModal: NgbActiveModal, private _fb: FormBuilder) {}\n\n\tngOnInit() {\t\t\t\n\t\tif (!this.date) {\n\t\t\tthis.date = new Date();\n\t\t}\n\n\t\tthis.form = this._fb.group({\n\t\t\ttime: [{hour: this.date.getHours(), minute: this.date.getMinutes(), second: 0}, [Validators.required]],\n\t\t\tdate: [{year: this.date.getFullYear(), month: this.date.getMonth() + 1, day: this.date.getDate()}, [Validators.required]]\n\t\t});\n\t}\n\n\tngAfterViewInit() {\n\t\tsetTimeout(() => {\n\t\t\tlet foundElement = this.recursiveFindFirstElement(this.allElements.nativeElement);\n\t\t\tif (foundElement) {\n\t\t\t\tfoundElement.focus();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.close.nativeElement.focus();\n\t\t\t\tthis.close.nativeElement.blur();\n\t\t\t}\n\t\t}, 100);\n\t}\n\n\trecursiveFindFirstElement(element) {\n\t\tlet foundElement = null;\n\t\tlet htmlCol: HTMLCollection = element.children;\n\t\tfor (let i = 0; i < Object.keys(htmlCol).length; i++) {\n\t\t\tlet key = Object.keys(htmlCol)[i];\n\n\t\t\tlet htmlElem = htmlCol[key];\n\t\t\tif (htmlElem.children && htmlElem.children.length) {\n\t\t\t\tfoundElement = this.recursiveFindFirstElement(htmlElem);\n\t\t\t}\n\t\t\telse if (htmlElem.tagName === 'BUTTON' && htmlElem.classList.contains('close')) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\telse if ((htmlElem.tagName === 'BUTTON' || htmlElem.tagName === 'INPUT' || htmlElem.tagName === 'SELECT' || htmlElem.tagName === 'TEXTAREA') && !htmlElem.hidden && !htmlElem.disabled) {\n\t\t\t\treturn htmlElem;\n\t\t\t}\n\n\t\t\tif (foundElement) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn foundElement;\n\t}\n\n\tsubmitForm() {\n\t\tthis._activeModal.close(new Date(this.form.value.date.year, parseInt(this.form.value.date.month) - 1, this.form.value.date.day, this.form.value.time.hour, this.form.value.time.minute, this.form.value.time.second, 0));\n\t}\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FormGroup, FormBuilder } from '@angular/forms';\nimport { SelectDataLabelModel } from '../../models/select-data-label.model';\n\n@Component({\n\ttemplate: `\n\t\t<div class=\"modal-header\">\n\t\t\t<h4 class=\"modal-title\"><i class=\"fa fa-question-circle\" style=\"color: blue; font-size: 0.75em\" aria-hidden=\"true\"></i> {{ title }} - {{ subtitle }}</h4>\n\t\t\t<button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"_activeModal.dismiss()\">\n\t\t\t\t<span aria-hidden=\"true\">×</span>\n\t\t\t</button>\n\t\t</div>\n\t\t<div class=\"modal-body\">\n\t\t\t<div class=\"col-lg-12\">\n\t\t\t\t<div class=\"row\">\n\t\t\t\t\t<div class=\"col-lg-12\">\n\t\t\t\t\t\t<ng-container *ngFor=\"let label of dialogData\">\n\t\t\t\t\t\t\t<div class=\"row\">\n\t\t\t\t\t\t\t\t<div *ngIf=\"label.subtype === null && label.type !== 'object'\" style=\"font-size: 12px;\">\n\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" [checked]=\"label.selected\" (click)=\"changeSelected(label)\" style=\"height: 20px; width: auto;\"> {{ label.label }}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div *ngIf=\"label.subtype === null && label.type === 'object' && label.subLabel !== null\" style=\"font-size: 12px;\">\n\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" [checked]=\"label.selected\" (click)=\"changeSelected(label)\" style=\"height: 20px; width: auto;\"> {{ label.subLabel }}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div *ngIf=\"label.subtype === null && label.type === 'object' && label.subLabel === null\" style=\"font-size: 12px;\">\n\t\t\t\t\t\t\t\t\t<input type=\"checkbox\" [checked]=\"label.selected\" (click)=\"changeSelected(label)\" style=\"height: 20px; width: auto;\"> {{ label.label }}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div *ngIf=\"label.subtype !== null\" style=\"font-size: 12px;\">\n\t\t\t\t\t\t\t\t\t <input type=\"checkbox\" [checked]=\"label.selected\" (click)=\"changeSelected(label)\" style=\"height: 20px; width: auto;\"> {{ label.subLabel }}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"modal-footer\">\n\t\t\t<button type=\"button\" class=\"btn btn-success\" (click)=\"_activeModal.close(dialogData)\">Submit</button>\n\t\t\t<button type=\"button\" class=\"btn btn-secondary\" (click)=\"_activeModal.dismiss()\">Cancel</button>\n\t\t</div>\n\t`\n})\n\n// tslint:disable-next-line:component-class-suffix\nexport class DialogSelectDataLabelsContent implements OnInit {\n\t@Input() title = '';\n\t@Input() subtitle = '';\n\t@Input() data;\n\t@Input() showArraySubData;\n\n\tform: FormGroup;\n\n\tdialogData: SelectDataLabelModel[] = [];\n\n\tconstructor(public _activeModal: NgbActiveModal, private _fb: FormBuilder) {}\n\n\tngOnInit () {\n\t\tthis.getKeys();\n\t}\n\n\tgetKeys() {\n\t\tlet dataKeys = Object.keys(this.data);\n\t\tlet type = '';\n\n\t\tdataKeys.filter(a => a !== '_id' && !a.startsWith('id_') && a !== '__v' && a !== 'createdAt' && a !== 'updatedAt').forEach(key => {\n\t\t\ttype = typeof(this.data[key]);\n\t\t\tif (type === 'object') {\n\t\t\t\tif (Array.isArray(this.data[key])) {\n\t\t\t\t\ttype = 'array';\n\t\t\t\t\tthis.dialogData.push({\n\t\t\t\t\t\tlabel: key.replace(new RegExp('_', 'g'), ' ').replace('string', '').replace(/\\w\\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }),\n\t\t\t\t\t\tdata: key,\n\t\t\t\t\t\tselected: true,\n\t\t\t\t\t\ttype: type,\n\t\t\t\t\t\tsubLabel: null,\n\t\t\t\t\t\tsubData: null,\n\t\t\t\t\t\tsubtype: null\n\t\t\t\t\t});\n\t\t\t\t\tif (this.showArraySubData === true) {\n\t\t\t\t\t\tlet subDataKeys = Object.keys(this.data[key][0]);\n\t\t\t\t\t\tsubDataKeys.filter(a => a !== '_id' && !a.startsWith('id_')).forEach(subKey => {\n\t\t\t\t\t\t\tthis.dialogData.push({\n\t\t\t\t\t\t\t\tlabel: key.replace(new RegExp('_', 'g'), ' ').replace('string', '').replace(/\\w\\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }),\n\t\t\t\t\t\t\t\tsubLabel: subKey.replace(new RegExp('_', 'g'), ' ').replace('string', '').replace(/\\w\\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }),\n\t\t\t\t\t\t\t\tdata: key,\n\t\t\t\t\t\t\t\ttype: type,\n\t\t\t\t\t\t\t\tsubData: subKey,\n\t\t\t\t\t\t\t\tselected: true,\n\t\t\t\t\t\t\t\tsubtype: typeof(subKey)\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tlet subDataKeys = Object.keys(this.data[key]);\n\t\t\t\t\tif (subDataKeys.length) {\n\t\t\t\t\t\tsubDataKeys.filter(a => a !== '_id' && !a.startsWith('id_')).forEach(subKey => {\n\t\t\t\t\t\t\tthis.dialogData.push({\n\t\t\t\t\t\t\t\tlabel: key.replace(new RegExp('_', 'g'), ' ').replace('string', '').replace(/\\w\\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }),\n\t\t\t\t\t\t\t\tsubLabel: subKey.replace(new RegExp('_', 'g'), ' ').replace('string', '').replace(/\\w\\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }),\n\t\t\t\t\t\t\t\tdata: key,\n\t\t\t\t\t\t\t\tsubData: subKey,\n\t\t\t\t\t\t\t\tsubtype: null,\n\t\t\t\t\t\t\t\tselected: true,\n\t\t\t\t\t\t\t\ttype: type\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.dialogData.push({\n\t\t\t\t\t\t\tlabel: key.replace(new RegExp('_', 'g'), ' ').replace('string', '').replace(/\\w\\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }),\n\t\t\t\t\t\t\tdata: key,\n\t\t\t\t\t\t\tselected: true,\n\t\t\t\t\t\t\ttype: type,\n\t\t\t\t\t\t\tsubData: null,\n\t\t\t\t\t\t\tsubLabel: null,\n\t\t\t\t\t\t\tsubtype: null\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.dialogData.push({\n\t\t\t\t\tlabel: key.replace(new RegExp('_', 'g'), ' ').replace('string', '').replace(/\\w\\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }),\n\t\t\t\t\tdata: key,\n\t\t\t\t\tselected: true,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tsubData: null,\n\t\t\t\t\tsubLabel: null,\n\t\t\t\t\tsubtype: null\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t}\n\n\tchangeSelected(label: SelectDataLabelModel) {\n\t\tlabel.selected = !label.selected;\n\n\t\tif (label.type === 'array' && label.subtype === null) {\n\t\t\tthis.dialogData.filter(a => a.label === label.label).forEach(subtype => {\n\t\t\t\tsubtype.selected = label.selected;\n\t\t\t});\n\t\t}\n\t}\n\n\tsubmit() {\n\t\treturn this.dialogData;\n\t}\n}","import { Component, Input, ChangeDetectorRef, OnInit, OnDestroy } from '@angular/core';\nimport { ResizeService } from '../../util/window-resize.service';\n\nimport { ProviderService, BaseComponent } from '../../resolveio-class';\n\n@Component({\n\tproviders: [ProviderService],\n\tselector: 'responsive-button-group',\n\ttemplateUrl: './responsive-button-group.component.html'\n})\nexport class ResponsiveButtonGroupComponent extends BaseComponent implements OnInit, OnDestroy { \n\n\t@Input() collapseSize = 900;\n\n\twindowSize: number = window.innerWidth;\n\twindowSizeSubscription: any = null;\n\n\tconstructor(private _cdRef: ChangeDetectorRef, private _resizeService: ResizeService, private _services: ProviderService) {\n\t\tsuper(_services);\n\t}\n\n\tngOnInit() {\n\t\tthis.windowSizeSubscription = this._resizeService.onResize$.subscribe((val) => {\n\t\t\tif (val) {\n\t\t\t\tthis.windowSize = val.innerWidth;\n\t\t\t\tthis._cdRef.detectChanges();\n\t\t\t}\n\t\t});\n\t}\n\n\tngOnDestroy() {\n\t\tthis.windowSizeSubscription.unsubscribe();\n\t}\n}\n","<style>\n\t@media screen and (min-width: 900px) {\n\t\t:host /deep/ .xsBtnGroup {\n\t\t\tdisplay: none !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup {\n\t\t\tdisplay: inline-flex !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup button {\n\t\t\tmargin-left: 5px !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup a {\n\t\t\tmargin-left: 5px !important;\n\t\t}\n\t}\n\n\t@media screen and (max-width: 900px) {\n\n\t\t:host /deep/ .xsBtnGroup {\n\t\t\tdisplay: inherit !important;\n\t\t}\n\n\t\t:host /deep/ .xsBtnGroup button {\n\t\t\tmargin-top: 5px !important;\n\t\t\twidth: 100% !important;\n\t\t}\n\n\t\t:host /deep/ .xsBtnGroup a {\n\t\t\tmargin-top: 5px !important;\n\t\t}\n\n\t\t:host /deep/ .lgBtnGroup {\n\t\t\tdisplay: none !important;\n\t\t}\n\t}\n</style>\n\n<div [ngClass]=\"windowSize <= collapseSize ? ['btn-group-vertical', 'xsBtnGroup'] : ['btn-group', 'lgBtnGroup']\">\n\t<ng-content></ng-content>\n</div>\n","import { Component, Input, OnInit } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\n\n@Component({\n\ttemplate: `\n\t\t<style>\n\t\t\tcollapse-table {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t.navbar-light .navbar-nav .active>.nav-link, .navbar-light .navbar-nav .nav-link.active, .navbar-light .navbar-nav .nav-link.show, .navbar-light .navbar-nav .show>.nav-link {\n\t\t\t\tcolor: #0b4499;\n\t\t\t}\n\t\t\t.navbar-light .navbar-nav .nav-link {\n\t\t\t\tcolor:#333;\n\t\t\t}\n\t\t\ta.nav-link.loginreg {\n\t\t\t\tbackground-color: #0b4499;\n\t\t\t\tcolor: #fff !important;\n\t\t\t\tborder-radius: 40px;\n\t\t\t}\n\t\t\ta.nav-link.loginreg:hover {\n\t\t\t\tbackground: #1668e2;\n\t\t\t}\n\t\t\t.nav-link {\n\t\t\t\tcolor: #333333;\n\t\t\t\tfont-size: 150%\n\t\t\t}\n\t\t\t.nav-item a.nav-link.active {\n\t\t\t\tcolor: #0b4499;\n\t\t\t}\n\t\t\t.contactimg>img{\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t.log-box {\n\t\t\t\tpadding-top: 26px;\n\t\t\t\tpadding-bottom: 26px;\n\t\t\t}\n\t\t\t.loginform .form-control, .register-form .form-control {\n\t\t\t\tcolor: #000;\n\t\t\t\theight: 52px;\n\t\t\t}\n\t\t\t.loginform {\n\t\t\t\tmargin-top: 35px;\n\t\t\t}\n\t\t\t.loginform label {\n\t\t\t\tfont-size: 18px;\n\t\t\t\tfont-weight: 600;\n\t\t\t}\n\n\t\t\t.loginbtn {\n\t\t\t\tbackground: #0b4499;\n\t\t\t\twidth: 100%;\n\t\t\t\tmargin-top: 44px;\n\t\t\t\theight: 52px;\n\t\t\t\tfont-size: 22px;\n\t\t\t\tborder-radius: 2px;\n\t\t\t\tcolor: #fff !important;\n\t\t\t}\n\n\t\t\t.login365btn {\n\t\t\t\tbackground: orange;\n\t\t\t\twidth: 100%;\n\t\t\t\tmargin-top: 44px;\n\t\t\t\theight: 52px;\n\t\t\t\tfont-size: 22px;\n\t\t\t\tborder-radius: 2px;\n\t\t\t\tcolor: #fff !important;\n\t\t\t}\n\n\t\t\t.contactimg {\n\t\t\t\tposition: relative;\n\t\t\t}\n\t\t\t.login-logo {\n\t\t\t\tmargin-bottom: 20px;\n\t\t\t}\n\n\t\t\t.textbox {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 50%;\n\t\t\t\tcolor: #fff;\n\t\t\t\tpadding: 40px;\n\t\t\t\ttransform: translate(0%, -50%);\n\t\t\t\ttext-align: center;\n\t\t\t}\n\t\t\t.sign-btn {\n\t\t\t\tbackground: #0b4499;\n\t\t\t\twidth: 100%;\n\t\t\t\tmargin-top: 14px;\n\t\t\t\theight: 52px;\n\t\t\t\tfont-size: 22px;\n\t\t\t\tborder-radius: 2px;\n\t\t\t\tcolor: #fff !important;\n\t\t\t}\n\n\t\t\tbutton.btn.sign-btn:hover {\n\t\t\t\tbackground: #1668e2;\n\t\t\t}\n\t\t</style>\n\t\t<form [formGroup]=\"form\" novalidate>\n\t\t\t<div class=\"modal-header\">\n\t\t\t\t<h4 class=\"modal-title\"><b>Login</b></h4>\n\t\t\t\t<button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"_activeModal.dismiss()\">\n\t\t\t\t\t<span aria-hidden=\"true\">×</span>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<div class=\"modal-body\" *ngIf=\"form\">\n\t\t\t\t<div class=\"row justify-content-md-center\">\n\t\t\t\t\t<div class=\"col-lg-12\">\n\t\t\t\t\t\t<div class=\"row bg-white\">\n\t\t\t\t\t\t\t<div class=\"col-lg-6\">\n\t\t\t\t\t\t\t\t<div class=\"contactimg\">\n\t\t\t\t\t\t\t\t\t<img src=\"/assets/images/loginsignup/formimg.jpg\" alt=\"images\" class=\"img-fluid\">\n\t\t\t\t\t\t\t\t\t<div class=\"textbox\" *ngIf=\"showLoginText\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"login-logo\"><img src=\"/assets/images/loginsignup/login-logo.png\" alt=\"images\"></div>\n\t\t\t\t\t\t\t\t\t\tThe All-in-One Solution for Tracking Inventory, Ordering, POs, Management, and Much More!\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"col-lg-6\">\n\t\t\t\t\t\t\t\t<div class=\"log-box\">\n\t\t\t\t\t\t\t\t\t<div class=\"loginform\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t\t\t\t\t<label>Username/Email</label>\n\t\t\t\t\t\t\t\t\t\t\t<em *ngIf=\"form.controls.username.hasError('required')\">- Required</em>\n\t\t\t\t\t\t\t\t\t\t\t<input type=\"email\" [ngClass]=\"['form-control', form.controls.username.valid ? 'is-valid' : 'is-invalid']\" formControlName=\"username\" [autofocus]=\"true\" [focus]=\"true\" aria-describedby=\"emailHelp\" placeholder=\"Your Username/Email\" autocomplete=\"username\">\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t\t\t\t\t<label>Password</label>\n\t\t\t\t\t\t\t\t\t\t\t<em *ngIf=\"form.controls.password.hasError('required')\">- Required</em>\n\t\t\t\t\t\t\t\t\t\t\t<input type=\"password\" [ngClass]=\"['form-control', form.controls.password.enabled ? (form.controls.password.valid ? 'is-valid' : 'is-invalid') : '']\" formControlName=\"password\" placeholder=\"Your Password\" autocomplete=\"current-password\">\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"form-check text-right\">\n\t\t\t\t\t\t\t\t\t\t\t<label class=\"form-check-label\"><a href=\"javascript:void(0)\" (click)=\"toggleForgotPassword()\"> {{!form.controls.forgotPassword.value ? 'Forgot Password?' : 'Enter Password'}} </a></label>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<button type=\"submit\" class=\"btn loginbtn\" (click)=\"close('ResolveIO')\">{{!form.controls.forgotPassword.value ? 'Login' : 'Submit'}}</button>\n\t\t\t\t\t\t\t\t\t\t<button *ngIf=\"msAllowed\" type=\"submit\" class=\"btn login365btn\" (click)=\"close('MS')\">Microsoft Single-Sign-On</button>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"modal-footer\">\n\t\t\t\t<responsive-button-group>\n\t\t\t\t\t<button type=\"button\" class=\"btn btn-secondary\" (click)=\"_activeModal.dismiss()\">Cancel</button>\n\t\t\t\t</responsive-button-group>\n\t\t\t</div>\n\t\t</form>\n\t`\n})\n// tslint:disable-next-line:component-class-suffix\nexport class DialogLoginContent implements OnInit {\n\t@Input() msAllowed = false;\n\t@Input() showLoginText = true;\n\n\tform: FormGroup;\n\n\tconstructor(public _activeModal: NgbActiveModal, private _fb: FormBuilder) {}\n\n\tngOnInit() {\t\t\t\n\t\tthis.form = this._fb.group({\n\t\t\tusername: ['', [Validators.required]],\n\t\t\tpassword: ['', [Validators.required]],\n\t\t\tforgotPassword: [false],\n\t\t});\n\t}\n\n\ttoggleForgotPassword() {\n\t\tthis.form.controls.forgotPassword.setValue(!this.form.controls.forgotPassword.value);\n\n\t\tif (!this.form.controls.forgotPassword.value) {\n\t\t\tthis.form.controls.password.setValidators([Validators.required]);\n\t\t\tthis.form.controls.password.enable();\n\t\t}\n\t\telse {\n\t\t\tthis.form.controls.password.setValue('');\n\t\t\tthis.form.controls.password.clearValidators();\n\t\t\tthis.form.controls.password.disable();\n\t\t}\n\n\t\tthis.form.controls.password.updateValueAndValidity();\n\t}\n\n\tclose(type: string) {\n\t\tthis._activeModal.close({\n\t\t\tform: this.form,\n\t\t\ttype: type\n\t\t});\n\t}\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { FormGroup, FormBuilder, Validators } from '@angular/forms';\n\n@Component({\n\ttemplate: `\n\t\t<style>\n\t\t\tcollapse-table {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t.navbar-light .navbar-nav .active>.nav-link, .navbar-light .navbar-nav .nav-link.active, .navbar-light .navbar-nav .nav-link.show, .navbar-light .navbar-nav .show>.nav-link {\n\t\t\t\tcolor: #0b4499;\n\t\t\t}\n\t\t\t.navbar-light .navbar-nav .nav-link {\n\t\t\t\tcolor:#333;\n\t\t\t}\n\t\t\ta.nav-link.loginreg {\n\t\t\t\tbackground-color: #0b4499;\n\t\t\t\tcolor: #fff !important;\n\t\t\t\tborder-radius: 40px;\n\t\t\t}\n\t\t\ta.nav-link.loginreg:hover {\n\t\t\t\tbackground: #1668e2;\n\t\t\t}\n\t\t\t.nav-link {\n\t\t\t\tcolor: #333333;\n\t\t\t\tfont-size: 150%\n\t\t\t}\n\t\t\t.nav-item a.nav-link.active {\n\t\t\t\tcolor: #0b4499;\n\t\t\t}\n\t\t\t.contactimg>img{\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t.log-box {\n\t\t\t\tpadding-top: 26px;\n\t\t\t\tpadding-bottom: 26px;\n\t\t\t}\n\t\t\t.loginform .form-control, .register-form .form-control {\n\t\t\t\tcolor: #000;\n\t\t\t\theight: 52px;\n\t\t\t}\n\t\t\t.loginform {\n\t\t\t\tmargin-top: 35px;\n\t\t\t}\n\t\t\t.loginform label {\n\t\t\t\tfont-size: 18px;\n\t\t\t\tfont-weight: 600;\n\t\t\t}\n\n\t\t\t.loginbtn {\n\t\t\t\tbackground: #0b4499;\n\t\t\t\twidth: 100%;\n\t\t\t\tmargin-top: 44px;\n\t\t\t\theight: 52px;\n\t\t\t\tfont-size: 22px;\n\t\t\t\tborder-radius: 2px;\n\t\t\t\tcolor: #fff !important;\n\t\t\t}\n\n\t\t\t.contactimg {\n\t\t\t\tposition: relative;\n\t\t\t}\n\t\t\t.login-logo {\n\t\t\t\tmargin-bottom: 20px;\n\t\t\t}\n\n\t\t\t.textbox {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 50%;\n\t\t\t\tcolor: #fff;\n\t\t\t\tpadding: 40px;\n\t\t\t\ttransform: translate(0%, -50%);\n\t\t\t\ttext-align: center;\n\t\t\t}\n\t\t\t.sign-btn {\n\t\t\t\tbackground: #0b4499;\n\t\t\t\twidth: 100%;\n\t\t\t\tmargin-top: 14px;\n\t\t\t\theight: 52px;\n\t\t\t\tfont-size: 22px;\n\t\t\t\tborder-radius: 2px;\n\t\t\t\tcolor: #fff !important;\n\t\t\t}\n\n\t\t\tbutton.btn.sign-btn:hover {\n\t\t\t\tbackground: #1668e2;\n\t\t\t}\n\t\t</style>\n\t\t<form [formGroup]=\"form\" novalidate (ngSubmit)=\"_activeModal.close(form)\">\n\t\t\t<div class=\"modal-header\">\n\t\t\t\t<h4 class=\"modal-title\"><i class=\"fa fa-question-circle\" style=\"color: blue; font-size: 0.85em\" aria-hidden=\"true\"></i> Register</h4>\n\t\t\t\t<button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"_activeModal.dismiss()\">\n\t\t\t\t\t<span aria-hidden=\"true\">×</span>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<div class=\"modal-body\" *ngIf=\"form\">\n\t\t\t\t<div class=\"row justify-content-md-center\">\n\t\t\t\t\t<div class=\"col-lg-12\">\n\t\t\t\t\t\t<div class=\"row bg-white\">\n\t\t\t\t\t\t\t<div class=\"col-lg-6\">\n\t\t\t\t\t\t\t\t<div class=\"contactimg\">\n\t\t\t\t\t\t\t\t\t<img src=\"/assets/images/loginsignup/formimg.jpg\" alt=\"images\" class=\"img-fluid\">\n\t\t\t\t\t\t\t\t\t<div class=\"textbox\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"login-logo\"><img src=\"/assets/images/loginsignup/login-logo.png\" alt=\"images\"></div>\n\t\t\t\t\t\t\t\t\t\tThe All-in-One Solution for Tracking Inventory, Ordering, POs, Management, and Much More!\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"col-lg-6\">\n\t\t\t\t\t\t\t\t<div class=\"log-box\">\n\t\t\t\t\t\t\t\t\t<div class=\"register-form\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t\t\t\t\t<label>User Name</label>\n\t\t\t\t\t\t\t\t\t\t\t<em *ngIf=\"form.controls.username.hasError('required')\">- Required</em>\n\t\t\t\t\t\t\t\t\t\t\t<input type=\"text\" class=\"form-control\" [ngClass]=\"['form-control', form.controls.username.valid ? 'is-valid' : 'is-invalid']\" formControlName=\"username\" [autofocus]=\"true\" [focus]=\"true\" aria-describedby=\"emailHelp\" placeholder=\"User Name\">\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t\t\t\t\t<label>Full Name</label>\n\t\t\t\t\t\t\t\t\t\t\t<em *ngIf=\"form.controls.name.hasError('required')\">- Required</em>\n\t\t\t\t\t\t\t\t\t\t\t<input type=\"text\" class=\"form-control\" [ngClass]=\"['form-control', form.controls.name.valid ? 'is-valid' : 'is-invalid']\" formControlName=\"name\" aria-describedby=\"emailHelp\" placeholder=\"Name\">\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t\t\t\t\t<label>Phone Number</label>\n\t\t\t\t\t\t\t\t\t\t\t<em *ngIf=\"form.controls.phone.hasError('required')\">- Required</em>\n\t\t\t\t\t\t\t\t\t\t\t<input type=\"text\" class=\"form-control\" [ngClass]=\"['form-control', form.controls.phone.valid ? 'is-valid' : 'is-invalid']\" formControlName=\"phone\" placeholder=\"Phone Number\">\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t\t\t\t\t<label>Company</label>\n\t\t\t\t\t\t\t\t\t\t\t<em *ngIf=\"form.controls.company.hasError('required')\">- Required</em>\n\t\t\t\t\t\t\t\t\t\t\t<input type=\"text\" class=\"form-control\" [ngClass]=\"['form-control', form.controls.company.valid ? 'is-valid' : 'is-invalid']\" formControlName=\"company\" placeholder=\"Company Name\">\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t\t\t\t\t\t\t<label>Email</label>\n\t\t\t\t\t\t\t\t\t\t\t<em *ngIf=\"form.controls.email.hasError('required')\">- Required</em>\n\t\t\t\t\t\t\t\t\t\t\t<input type=\"email\" class=\"form-control\" [ngClass]=\"['form-control', form.controls.email.valid ? 'is-valid' : 'is-invalid']\" formControlName=\"email\" placeholder=\"Email\">\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t<button type=\"submit\" class=\"btn sign-btn\">Signup</button>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"modal-footer\">\n\t\t\t\t<responsive-button-group>\n\t\t\t\t\t<button type=\"button\" class=\"btn btn-secondary\" (click)=\"_activeModal.dismiss()\">Cancel</button>\n\t\t\t\t</responsive-button-group>\n\t\t\t</div>\n\t\t</form>\n\t`\n})\n// tslint:disable-next-line:component-class-suffix\nexport class DialogRegisterContent implements OnInit {\n\n\tform: FormGroup;\n\n\tconstructor(public _activeModal: NgbActiveModal, private _fb: FormBuilder) {}\n\n\tngOnInit() {\t\t\t\n\t\tthis.form = this._fb.group({\n\t\t\tusername: ['', [Validators.required]],\n\t\t\tname: ['', [Validators.required]],\n\t\t\tphone: ['', [Validators.required]],\n\t\t\tcompany: ['', [Validators.required]],\n\t\t\temail: ['', [Validators.required]]\n\t\t});\n\t}\n}\n","import { Component, Input, ViewChild, AfterViewInit, OnInit} from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { AccountManagerService } from '../../account-manager.service';\n\n@Component({\n\ttemplate: `\n\t\t<style>\n\t\t\tcollapse-table tr:hover {\n\t\t\t\tbackground-color: lightblue;\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\n\t\t\t.selected {\n\t\t\t\tbackground-color: lightblue;\n\t\t\t}\n\n\t\t\tcollapse-table {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t</style>\n\t\t<div #allElements>\n\t\t\t<div class=\"modal-header\">\n\t\t\t\t<h4 class=\"modal-title\"><i class=\"fa fa-question-circle\" style=\"color: blue; font-size: 0.85em\" aria-hidden=\"true\"></i> {{ title }}</h4>\n\t\t\t\t<button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"_activeModal.dismiss()\" #close>\n\t\t\t\t\t<span aria-hidden=\"true\">×</span>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<div class=\"modal-body\">\n\t\t\t\t<div class=\"row\">\n\t\t\t\t\t<div class=\"col\" *ngFor=\"let option of options\">\n\t\t\t\t\t\t<button style=\"width: 100%\" type=\"button\" [ngClass]=\"['btn', selectedType === option.value ? 'btn-success' : 'btn-warning']\" (click)=\"onSelectType(option.value)\">{{option.text}}</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t`\n})\n// tslint:disable-next-line:component-class-suffix\nexport class DialogSelectWithButtonsURLContent implements AfterViewInit, OnInit {\n\n\t@Input() url = '';\n\n\t@ViewChild ('close', {static: false}) public close;\n\t@ViewChild('allElements', {static: false}) public allElements;\n\n\ttitle = 'Select Window Type';\n\tselectedType = '';\n\n\toptions = [\t\n\t\t{value: 'same_tab', text: 'Same Tab'},\n\t\t{value: 'new_tab', text: 'New Tab'},\n\t\t{value: 'new_window', text: 'New Window'}\n\t];\n\n\tconstructor(public _activeModal: NgbActiveModal, private _account: AccountManagerService) {}\n\n\tngOnInit() {\t\n\t\tif (this._account.getUser().settings.routing_preference && this._account.getUser().settings.routing_preference !== 'alwaysAsk') {\n\t\t\tif (this._account.getUser().settings.routing_preference === 'sameTab') {\n\t\t\t\twindow.open(this.url, '_self');\n\t\t\t}\n\t\n\t\t\tif (this._account.getUser().settings.routing_preference === 'newTab') {\n\t\t\t\twindow.open(this.url, '_blank');\n\t\t\t}\n\t\n\t\t\tif (this._account.getUser().settings.routing_preference === 'newWindow') {\n\t\t\t\twindow.open(this.url, '_blank', 'toolbar=1,location=1,menubar=1');\n\t\t\t}\n\t\n\t\t\tthis._activeModal.close();\n\t\t}\n\t}\n\n\tngAfterViewInit() {\n\t\tsetTimeout(() => {\n\t\t\tlet foundElement = this.recursiveFindFirstElement(this.allElements.nativeElement);\n\t\t\tif (foundElement) {\n\t\t\t\tfoundElement.focus();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.close.nativeElement.focus();\n\t\t\t\tthis.close.nativeElement.blur();\n\t\t\t}\n\t\t}, 100);\n\t}\n\n\trecursiveFindFirstElement(element) {\n\t\tlet foundElement = null;\n\t\tlet htmlCol: HTMLCollection = element.children;\n\t\tfor (let i = 0; i < Object.keys(htmlCol).length; i++) {\n\t\t\tlet key = Object.keys(htmlCol)[i];\n\n\t\t\tlet htmlElem = htmlCol[key];\n\t\t\tif (htmlElem.children && htmlElem.children.length) {\n\t\t\t\tfoundElement = this.recursiveFindFirstElement(htmlElem);\n\t\t\t}\n\t\t\telse if (htmlElem.tagName === 'BUTTON' && htmlElem.classList.contains('close')) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\telse if ((htmlElem.tagName === 'BUTTON' || htmlElem.tagName === 'INPUT' || htmlElem.tagName === 'SELECT' || htmlElem.tagName === 'TEXTAREA') && !htmlElem.hidden && !htmlElem.disabled) {\n\t\t\t\treturn htmlElem;\n\t\t\t}\n\n\t\t\tif (foundElement) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn foundElement;\n\t}\n\n\tonSelectType(type) {\n\t\tthis.selectedType = type;\n\n\t\tthis.submit();\n\t}\n\n\tsubmit() {\n\n\t\tif (this.selectedType === 'same_tab') {\n\t\t\twindow.open(this.url, '_self');\n\t\t}\n\n\t\tif (this.selectedType === 'new_tab') {\n\t\t\twindow.open(this.url, '_blank');\n\t\t}\n\n\t\tif (this.selectedType === 'new_window') {\n\t\t\twindow.open(this.url, '_blank', 'toolbar=1,location=1,menubar=1');\n\t\t}\n\n\t\tthis._activeModal.close();\n\t}\n}\n","import { Component, Input, OnInit, OnDestroy } from '@angular/core';\nimport { ResizeService } from '../../util/window-resize.service';\nimport { AccountManagerService } from '../../account-manager.service';\n\n@Component({\n\tselector: 'collapse-table',\n\ttemplateUrl: './collapse-table.component.html'\n})\n\nexport class CollapseTableComponent implements OnInit, OnDestroy {\n\n\t@Input() collapseSize: number;\n\t@Input() tableFixed: false;\n\t@Input() headerFixed = false;\n\t@Input() secondaryColor = false;\n\t@Input() tertiaryColor = false;\n\n\twindowSize: number = window.innerWidth;\n\twindowSizeSubscription: any = null;\n\n\tconstructor(private _resizeService: ResizeService, private _account: AccountManagerService) \n\t{}\n\n\tngOnInit() {\n\t\tthis.windowSizeSubscription = this._resizeService.onResize$.subscribe((val) => {\n\t\t\tthis.windowSize = val.innerWidth;\n\t\t});\n\n\t\tif (this._account.getUser() && this._account.getUser().settings) {\n\t\t\tdocument.documentElement.style.setProperty('--primary-table-color', this._account.getUser().settings.table_color);\n\t\t\tdocument.documentElement.style.setProperty('--primary-table-font-color', this._account.getUser().settings.table_font_color);\n\t\t\tdocument.documentElement.style.setProperty('--font-size', this._account.getUser().settings.font_size + 'px');\n\t\t\tdocument.documentElement.style.setProperty('--secondary-table-color', this._account.getUser().settings.secondary_table_color);\n\t\t\tdocument.documentElement.style.setProperty('--secondary-table-font-color', this._account.getUser().settings.secondary_table_font_color);\n\t\t\tdocument.documentElement.style.setProperty('--tertiary-table-color', this._account.getUser().settings.tertiary_table_color);\n\t\t\tdocument.documentElement.style.setProperty('--tertiary-table-font-color', this._account.getUser().settings.tertiary_table_font_color);\n\t\t}\n\t}\n\n\tngOnDestroy() {\n\t\tthis.windowSizeSubscription.unsubscribe();\n\t}\n\n\tonClick(event) {\n\t\t// if (event.target.localName === 'th') {\n\t\t// \tconsole.log('You Clicked Header: ' + event.target.innerHTML);\n\t\t// }\n\t}\n\n\tgetCollapseClass() {\t\t\n\t\tlet res = ['table'];\n\n\t\tif (this.secondaryColor) {\n\t\t\tres.push('collapseTable-sec');\n\t\t}\n\t\telse if (this.tertiaryColor) {\n\t\t\tres.push('collapseTable-tert');\n\t\t}\n\t\telse {\n\t\t\tres.push('collapseTable');\n\t\t}\n\n\t\t// if (this.tableFixed) {\n\t\t// \tres.push('fixed');\n\t\t// }\n\t\t// else if (this.headerFixed) {\n\t\t// \tres.push('headerFixed');\n\t\t// }\n\n\t\treturn res;\n\t}\n\n\tgetPrimaryColor() {\n\t\treturn this._account.getUser() ? this._account.getUser().settings.table_color : '#3b3ee3';\n\t}\n}\n","<style>\n ::ng-deep :root {\n --primary-table-color: #3b3ee3;\n --primary-table-font-color: white;\n --font-size: 12px;\n --secondary-table-color: #87ceeb;\n --secondary-table-font-color: #000000;\n --tertiary-table-color: #ff4500;\n --tertiary-table-font-color: #000000;\n }\n\n\t:host /deep/ .collapseTable {\n border: 1px solid #ccc;\n margin: 0;\n padding: 0;\n width: 100%;\n /*table-layout: fixed;*/ \n }\n :host /deep/ .collapseTable tr {\n border: 1px solid #ddd;\n padding: 0.35em;\n }\n :host /deep/ .collapseTable th, :host /deep/ .collapseTable td {\n padding: 0.625em;\n text-align: center;\n vertical-align: middle;\n }\n :host /deep/ .collapseTable th {\n letter-spacing: 0.1em;\n text-transform: uppercase;\n background-color: var(--primary-table-color);\n color: var(--primary-table-font-color);\n font-size: var(--font-size);\n position: sticky;\n z-index: 10;\n top: 0;\n } \n :host /deep/ .collapseTable-sec {\n border: 1px solid #ccc;\n margin: 0;\n padding: 0;\n width: 100%;\n }\n :host /deep/ .collapseTable-sec tr {\n border: 1px solid #ddd;\n padding: 0.35em;\n }\n :host /deep/ .collapseTable-sec th, :host /deep/ .collapseTable-sec td {\n padding: 0.625em;\n text-align: center;\n }\n :host /deep/ .collapseTable-sec th {\n letter-spacing: 0.1em;\n text-transform: uppercase;\n background-color: var(--secondary-table-color);\n color: var(--secondary-table-font-color);\n font-size: var(--font-size);\n position: sticky;\n z-index: 10;\n top: 0;\n } \n :host /deep/ .collapseTable-tert {\n border: 1px solid #ccc;\n margin: 0;\n padding: 0;\n width: 100%;\n }\n :host /deep/ .collapseTable-tert tr {\n border: 1px solid #ddd;\n padding: 0.35em;\n }\n :host /deep/ .collapseTable-tert th, :host /deep/ .collapseTable-tert td {\n padding: 0.625em;\n text-align: center;\n }\n :host /deep/ .collapseTable-tert th {\n letter-spacing: 0.1em;\n text-transform: uppercase;\n background-color: var(--tertiary-table-color);\n color: var(--tertiary-table-font-color);\n font-size: var(--font-size);\n position: sticky;\n z-index: 10;\n top: 0;\n }\n \n .fixed {\n table-layout: fixed;\n }\n\n :host /deep/ .headerFixed thead, :host /deep/ .headerFixed tbody tr {\n display:table;\n width:100%;\n table-layout:fixed;\n }\n\n :host /deep/ .collapseTable,\n :host /deep/ .collapseTable-sec,\n :host /deep/ .collapseTable-tert {\n box-shadow: 0 0 15px rgba(0,0,0,0.25); \n }\n \n :host /deep/ .collapseTable > thead:first-of-type > tr:first-child > th:first-child,\n :host /deep/ .collapseTable-sec > thead:first-of-type > tr:first-child > th:first-child,\n :host /deep/ .collapseTable-tert > thead:first-of-type > tr:first-child > th:first-child {\n border-top-left-radius: 10px;\n }\n\n :host /deep/ .collapseTable > thead:first-of-type > tr:first-child > th:last-child,\n :host /deep/ .collapseTable-sec > thead:first-of-type > tr:first-child > th:last-child,\n :host /deep/ .collapseTable-tert > thead:first-of-type > tr:first-child > th:last-child {\n border-top-right-radius: 10px;\n }\n\n :host /deep/ .collapseTable > tbody:last-of-type > tr:last-child > td:first-child,\n :host /deep/ .collapseTable-sec > tbody:last-of-type > tr:last-child > td:first-child,\n :host /deep/ .collapseTable-tert > tbody:last-of-type > tr:last-child > td:first-child {\n border-bottom-left-radius: 10px;\n }\n\n :host /deep/ .collapseTable > tbody:last-of-type > tr:last-child > td:last-child,\n :host /deep/ .collapseTable-sec > tbody:last-of-type > tr:last-child > td:last-child,\n :host /deep/ .collapseTable-tert > tbody:last-of-type > tr:last-child > td:last-child {\n border-bottom-right-radius: 10px;\n }\n\n .hide {\n display: none;\n }\n</style>\n\n<div class=\"table-responsive-xl\">\n <table [ngClass]=\"getCollapseClass()\" style=\"border: none\" cellspacing=\"0\" cellpadding=\"0\">\n <ng-content></ng-content>\n </table>\n</div>","\nimport { Component, Input, ViewChild, AfterViewInit} from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { DialogSelectWithButtonsOptionModel } from '../../models/dialog.model';\n\n@Component({\n\ttemplate: `\n\t\t<style>\n\t\t\tcollapse-table tr:hover {\n\t\t\t\tbackground-color: lightblue;\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\n\t\t\t.selected {\n\t\t\t\tbackground-color: lightblue;\n\t\t\t}\n\n\t\t\tcollapse-table {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t</style>\n\t\t<div #allElements>\n\t\t\t<div class=\"modal-header\">\n\t\t\t\t<h4 class=\"modal-title\"><i class=\"fa fa-question-circle\" style=\"color: blue; font-size: 0.85em\" aria-hidden=\"true\"></i> {{ title }}</h4>\n\t\t\t\t<button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"_activeModal.dismiss()\" #close>\n\t\t\t\t\t<span aria-hidden=\"true\">×</span>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<div class=\"modal-body\">\n\t\t\t\t<div style=\"height: 60vh; overflow-y: auto\">\n\t\t\t\t\t<collapse-table collapseSize=\"900\">\n\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<th>List</th>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t<tr *ngFor=\"let object of objects; let i = index\" (click)=\"onSelectItem(i)\" [ngClass]=\"{'selected' : i === selectedIndex || selectedIndexes.includes(i)}\">\n\t\t\t\t\t\t\t\t<td>{{object.text}}</td>\n\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t</tbody>\n\t\t\t\t\t</collapse-table>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"modal-footer\">\n\t\t\t\t<ng-container *ngIf=\"!allowNone\">\n\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', (selectedItem || selectedItems.length) ? 'btn-success' : 'btn-danger']\" [disabled]=\"!selectedItem && !selectedItems.length\" (click)=\"_activeModal.close(selectedItem || selectedItems)\">Submit</button>\n\t\t\t\t</ng-container>\n\t\t\t\t<ng-container *ngIf=\"allowNone\">\n\t\t\t\t\t<button type=\"button\" class=\"btn btn-success\" (click)=\"_activeModal.close(selectedItem || selectedItems)\">Submit</button>\n\t\t\t\t</ng-container>\n\t\t\t\t<button type=\"button\" class=\"btn btn-secondary\" (click)=\"_activeModal.dismiss()\">Cancel</button>\n\t\t\t</div>\n\t\t</div>\n\t`\n})\n// tslint:disable-next-line:component-class-suffix\nexport class DialogSelectArrayObjsContent implements AfterViewInit{\n\t@Input() title = '';\n\t@Input() objects: DialogSelectWithButtonsOptionModel[] = [];\n\t@Input() multiple = false;\n\t@Input() allowNone = false;\n\n\t@ViewChild ('close', {static: false}) public close;\n\t@ViewChild('allElements', {static: false}) public allElements;\n\n\tselectedIndex: number = null;\n\tselectedItem: DialogSelectWithButtonsOptionModel = null;\n\n\tselectedIndexes: number[] = [];\n\tselectedItems: DialogSelectWithButtonsOptionModel[] = [];\n\n\tconstructor(public _activeModal: NgbActiveModal) {}\n\n\tngAfterViewInit() {\n\t\tsetTimeout(() => {\n\t\t\tlet foundElement = this.recursiveFindFirstElement(this.allElements.nativeElement);\n\t\t\tif (foundElement) {\n\t\t\t\tfoundElement.focus();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.close.nativeElement.focus();\n\t\t\t\tthis.close.nativeElement.blur();\n\t\t\t}\n\t\t}, 100);\n\n\t\tthis.objects.forEach((obj, objIdx) => {\n\t\t\tif (obj.selected) {\n\t\t\t\tthis.selectedIndexes.push(objIdx);\n\t\t\t\tthis.selectedItems.push(obj);\n\t\t\t}\n\t\t});\n\t}\n\n\trecursiveFindFirstElement(element) {\n\t\tlet foundElement = null;\n\t\tlet htmlCol: HTMLCollection = element.children;\n\t\tfor (let i = 0; i < Object.keys(htmlCol).length; i++) {\n\t\t\tlet key = Object.keys(htmlCol)[i];\n\n\t\t\tlet htmlElem = htmlCol[key];\n\t\t\tif (htmlElem.children && htmlElem.children.length) {\n\t\t\t\tfoundElement = this.recursiveFindFirstElement(htmlElem);\n\t\t\t}\n\t\t\telse if (htmlElem.tagName === 'BUTTON' && htmlElem.classList.contains('close')) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\telse if ((htmlElem.tagName === 'BUTTON' || htmlElem.tagName === 'INPUT' || htmlElem.tagName === 'SELECT' || htmlElem.tagName === 'TEXTAREA') && !htmlElem.hidden && !htmlElem.disabled) {\n\t\t\t\treturn htmlElem;\n\t\t\t}\n\n\t\t\tif (foundElement) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn foundElement;\n\t}\n\n\tonSelectItem(index: number) {\n\t\tif (!this.multiple) {\n\t\t\tif (this.objects[index] === this.selectedItem) {\n\t\t\t\tthis.selectedItem = null;\n\t\t\t\tthis.selectedIndex = null;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.selectedItem = this.objects[index];\n\t\t\t\tthis.selectedIndex = index;\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tif (this.selectedItems.some(a => a.value === this.objects[index].value)) {\n\t\t\t\tthis.selectedIndexes.splice(this.selectedIndexes.indexOf(index), 1);\n\t\t\t\tthis.selectedItems.splice(this.selectedItems.map(a => a.value).indexOf(this.objects[index].value), 1);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.selectedIndexes.push(index);\n\t\t\t\tthis.selectedItems.push(this.objects[index]);\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, Input, AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, OnInit, ViewChild} from '@angular/core';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\n\n@Component({\n\ttemplate: `\n\t\t<style>\n\t\t\tcollapse-table tr:hover {\n\t\t\t\tbackground-color: lightblue;\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\n\t\t\t.selected {\n\t\t\t\tbackground-color: lightblue;\n\t\t\t}\n\n\t\t\tcollapse-table {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t</style>\n\t\t<div #allElements>\n\t\t\t<div class=\"modal-header\">\n\t\t\t\t<h4 class=\"modal-title\"><i class=\"fa fa-question-circle\" style=\"color: blue; font-size: 0.85em\" aria-hidden=\"true\"></i> {{ title }}</h4>\n\t\t\t\t<button type=\"button\" class=\"close\" aria-label=\"Close\" (click)=\"_activeModal.dismiss()\" #close>\n\t\t\t\t\t<span aria-hidden=\"true\">×</span>\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<div class=\"modal-body\" style=\"height: 60vh;\">\n\t\t\t\t<responsive-button-group>\n\t\t\t\t\t<ng-container *ngIf=\"multiple\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn btn-primary\" (click)=\"selectAll()\">Select All</button>\n\t\t\t\t\t\t<button type=\"button\" class=\"btn btn-danger\" (click)=\"removeAll()\">Remove All</button>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', method === 'list' ? 'btn-success' : 'btn-warning']\" (click)=\"method = 'list'\">Use List</button>\n\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', method === 'dropdown' ? 'btn-success' : 'btn-warning']\" (click)=\"method = 'dropdown'\">Use Dropdown</button>\n\t\t\t\t</responsive-button-group>\n\t\t\t\t<div style=\"height: 50vh; overflow-y: auto; margin-top: 10px\">\n\t\t\t\t\t<ng-container *ngIf=\"method === 'list'\">\n\t\t\t\t\t\t<collapse-table collapseSize=\"900\">\n\t\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<th>List</th>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t<tr *ngFor=\"let data of array; let i = index\" (click)=\"onSelectItem(i)\" [ngClass]=\"{'selected' : isInSelectedIndex(i)}\">\n\t\t\t\t\t\t\t\t\t<td>{{data}}</td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t</collapse-table>\n\t\t\t\t\t</ng-container>\n\t\t\t\t\t<ng-container *ngIf=\"method === 'dropdown'\">\n\t\t\t\t\t\t<collapse-table collapseSize=\"900\">\n\t\t\t\t\t\t\t<thead>\n\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t<th>Item</th>\n\t\t\t\t\t\t\t\t\t<th>Remove</th>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</thead>\n\t\t\t\t\t\t\t<tbody>\n\t\t\t\t\t\t\t\t<tr *ngFor=\"let item of selectIndexes; let i = index\">\n\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t<ng-select placeholder=\"Select Item\" [ngModel]=\"item\" (change)=\"onSelectDropdown($event, i)\">\n\t\t\t\t\t\t\t\t\t\t\t<ng-option *ngFor=\"let data of getFilteredArray(item)\" [value]=\"data.value\">{{data.text}}</ng-option>\n\t\t\t\t\t\t\t\t\t\t</ng-select>\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t\t<td>\n\t\t\t\t\t\t\t\t\t\t<button type=\"button\" class=\"btn btn-danger\" (click)=\"onSelectItem(item)\">Remove</button>\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t</tr>\n\t\t\t\t\t\t\t</tbody>\n\t\t\t\t\t\t</collapse-table>\n\t\t\t\t\t\t<button type=\"button\" class=\"btn btn-success\" *ngIf=\"multiple || !selectIndexes.length\" (click)=\"addDropDown()\" [disabled]=\"!availableAdd()\">Add</button>\n\t\t\t\t\t</ng-container>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"modal-footer\">\n\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedIndexes.length ? 'btn-success' : 'btn-danger']\" [disabled]=\"!selectedIndexes.length || this.selectedIndexes.includes(null)\" (click)=\"_activeModal.close(this.multiple ? getArray() : array[selectedIndexes[0]])\">Submit</button>\n\t\t\t\t<button type=\"button\" class=\"btn btn-secondary\" (click)=\"_activeModal.dismiss()\">Cancel</button>\n\t\t\t</div>\n\t\t</div>\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush\n})\n// tslint:disable-next-line:component-class-suffix\nexport class DialogSelectArrayContent implements OnInit, AfterViewInit {\n\t@Input() title = '';\n\t@Input() array: any[] = [];\n\t@Input() multiple: boolean;\n\t@Input() selectedIndexes: number[] = [];\n\n\t@ViewChild ('close', {static: false}) public close;\n\t@ViewChild('allElements', {static: false}) public allElements;\n\n\tmethod = 'list';\n\tmappedArray = [];\n\tselectIndexes = [];\n\n\tconstructor(public _activeModal: NgbActiveModal, public _cdRef: ChangeDetectorRef) {}\n\n\tngOnInit() {\n\t\tthis.mappedArray = this.array.map((a, index) => {\n\t\t\treturn {\n\t\t\t\tvalue: index,\n\t\t\t\ttext: a\n\t\t\t};\n\t\t});\n\n\t\tthis.selectedIndexes.forEach(index => {\n\t\t\tthis.selectIndexes.push(index);\n\t\t});\n\t}\n\n\tngAfterViewInit() {\n\t\tsetTimeout(() => {\n\t\t\tlet foundElement = this.recursiveFindFirstElement(this.allElements.nativeElement);\n\t\t\tif (foundElement) {\n\t\t\t\tfoundElement.focus();\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.close.nativeElement.focus();\n\t\t\t\tthis.close.nativeElement.blur();\n\t\t\t}\n\t\t}, 100);\n\t}\n\n\trecursiveFindFirstElement(element) {\n\t\tlet foundElement = null;\n\t\tlet htmlCol: HTMLCollection = element.children;\n\t\tfor (let i = 0; i < Object.keys(htmlCol).length; i++) {\n\t\t\tlet key = Object.keys(htmlCol)[i];\n\n\t\t\tlet htmlElem = htmlCol[key];\n\t\t\tif (htmlElem.children && htmlElem.children.length) {\n\t\t\t\tfoundElement = this.recursiveFindFirstElement(htmlElem);\n\t\t\t}\n\t\t\telse if (htmlElem.tagName === 'BUTTON' && htmlElem.classList.contains('close')) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\telse if ((htmlElem.tagName === 'BUTTON' || htmlElem.tagName === 'INPUT' || htmlElem.tagName === 'SELECT' || htmlElem.tagName === 'TEXTAREA') && !htmlElem.hidden && !htmlElem.disabled) {\n\t\t\t\treturn htmlElem;\n\t\t\t}\n\n\t\t\tif (foundElement) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn foundElement;\n\t}\n\n\taddDropDown() {\n\t\tlet firstValue = this.array.filter((a, index) => !this.selectedIndexes.includes(index))[0];\n\t\tlet firstIndex = this.array.findIndex(a => a === firstValue);\n\t\tthis.selectedIndexes.push(firstIndex);\n\t\tthis.selectIndexes.push(firstIndex);\n\t}\n\n\tonSelectDropdown(val, index) {\n\t\tthis.onSelectItem(this.selectedIndexes[index]);\n\t\tthis.onSelectItem(val);\n\t}\n\n\tavailableAdd() {\n\t\treturn this.array.filter((a, index) => !this.selectedIndexes.includes(index))[0] ? true : false;\n\t}\n\n\tgetFilteredArray(item) {\n\t\treturn this.mappedArray.filter(a => a.value === item || !this.selectedIndexes.includes(a.value));\n\t}\n\n\tisInSelectedIndex(index: number) {\n\t\tif (this.selectedIndexes.includes(index)) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tonSelectItem(index: number) {\n\t\tif (!this.multiple) {\n\t\t\tif (this.selectedIndexes.includes(index)) {\n\t\t\t\tthis.selectedIndexes = [];\n\t\t\t\tthis.selectIndexes = [];\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.selectedIndexes = [index];\n\t\t\t\tthis.selectIndexes = [index];\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tif (this.selectedIndexes.includes(index)) {\n\t\t\t\tthis.selectedIndexes.splice(this.selectedIndexes.indexOf(index), 1);\n\t\t\t\tthis.selectIndexes.splice(this.selectIndexes.indexOf(index), 1);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.selectedIndexes.push(index);\n\t\t\t\tthis.selectIndexes.push(index);\n\t\t\t}\n\t\t}\n\t}\n\n\tgetArray() {\n\t\tlet res = [];\n\n\t\tthis.selectedIndexes.forEach(index => {\n\t\t\tres.push(this.array[index]);\n\t\t});\n\n\t\treturn res;\n\t}\n\n\tselectAll() {\n\t\tthis.selectedIndexes = [];\n\t\tthis.selectIndexes = [];\n\n\t\tthis.array.forEach((data, index) => {\n\t\t\tthis.selectedIndexes.push(index);\n\t\t\tthis.selectIndexes.push(index);\n\t\t});\n\t}\n\n\tremoveAll() {\n\t\tthis.selectedIndexes = [];\n\t\tthis.selectIndexes = [];\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { NgbModal, NgbModalOptions } from '@ng-bootstrap/ng-bootstrap';\nimport { DialogNotifyContent } from './dialog.notify.content';\nimport { DialogInputContent } from './dialog.input.content';\nimport { DialogErrorContent } from './dialog.error.content';\nimport { DialogConfirmContent } from './dialog.confirm.content';\nimport { DialogSelectDateTimeContent } from './dialog.select-datetime.content';\nimport { DialogInputFieldModel, DialogSelectWithButtonsOptionModel } from '../../models/dialog.model';\nimport { DialogSelectDataLabelsContent } from './dialog.select-data-labels.content';\nimport { DialogLoginContent } from './dialog.login.content';\nimport { DialogRegisterContent } from './dialog.register.content';\nimport { DialogSelectWithButtonsURLContent } from './dialog.select-with-buttons-url.content';\nimport { DialogSelectArrayObjsContent } from './dialog.select-array-objs.content';\nimport { UserModel } from '../../models/user.model';\nimport { DialogSelectArrayContent } from './dialog.select-array.content';\n\n@Injectable()\nexport class DialogService {\n\n\tconstructor(private modalService: NgbModal) { }\n\n\topenDialog(content, options: NgbModalOptions = {size: 'lg', backdrop: 'static'}) {\n\t\treturn this.modalService.open(content, options);\n\t}\n\n\tnotify(msg: string) {\n\t\tconst modalRef = this.openDialog(DialogNotifyContent);\n\t\tmodalRef.componentInstance.title = 'Notify';\n\t\tmodalRef.componentInstance.body = msg;\n\t}\n\n\tinput(title: string, inputFields: DialogInputFieldModel[]) {\n\t\tconst modalRef = this.openDialog(DialogInputContent);\n\t\tmodalRef.componentInstance.title = title;\n\t\tmodalRef.componentInstance.inputFields = inputFields;\n\t\treturn modalRef.result;\n\t}\n\n\terror(msg: string) {\n\t\tconst modalRef = this.openDialog(DialogErrorContent);\n\t\tmodalRef.componentInstance.title = 'Error';\n\t\tmodalRef.componentInstance.body = msg;\n\t}\n\n\tconfirm(msg: string, html?: string) {\n\t\tconst modalRef = this.openDialog(DialogConfirmContent);\n\t\tmodalRef.componentInstance.title = 'Confirm';\n\t\tmodalRef.componentInstance.body = msg;\n\t\tmodalRef.componentInstance.html = html;\n\t\treturn modalRef.result;\n\t}\n\n\tselectDateTime(date: Date, showTime = true) {\n\t\tconst modalRef = this.openDialog(DialogSelectDateTimeContent);\n\t\tmodalRef.componentInstance.title = 'Select Date' + (showTime ? ' and Time' : '');\n\t\tmodalRef.componentInstance.date = date;\n\t\tmodalRef.componentInstance.showTime = showTime;\n\t\treturn modalRef.result;\n\t}\n\t\n\tselectDataLabel(data: any, showArraySubData = true) {\n\t\tconst modalRef = this.openDialog(DialogSelectDataLabelsContent, {size: 'sm', backdrop: 'static'});\n\t\tmodalRef.componentInstance.title = 'Select Data Labels';\n\t\tmodalRef.componentInstance.data = data;\n\t\tmodalRef.componentInstance.showArraySubData = showArraySubData;\n\t\treturn modalRef.result;\n\t}\n\n\tlogin(msAllowed: boolean, showLoginText = true) {\n\t\tconst modalRef = this.openDialog(DialogLoginContent);\n\t\tmodalRef.componentInstance.msAllowed = msAllowed;\n\t\tmodalRef.componentInstance.showLoginText = showLoginText;\n\t\treturn modalRef.result;\n\t}\n\n\tregister() {\n\t\tconst modalRef = this.openDialog(DialogRegisterContent);\n\t\treturn modalRef.result;\n\t}\n\n\tselectWithButtonsURL(url: string) {\n\t\tconst modalRef = this.openDialog(DialogSelectWithButtonsURLContent);\n\t\tmodalRef.componentInstance.url = url;\n\t\treturn modalRef.result;\n\t}\n\n\tselectWithArrayObjs(title: string, objects: DialogSelectWithButtonsOptionModel[], multiple = false, allowNone = false) {\n\t\tconst modalRef = this.openDialog(DialogSelectArrayObjsContent);\n\t\tmodalRef.componentInstance.title = title;\n\t\tmodalRef.componentInstance.objects = objects;\n\t\tmodalRef.componentInstance.multiple = multiple;\n\t\tmodalRef.componentInstance.allowNone = allowNone;\n\t\treturn modalRef.result;\n\t}\n\n\tselectArray(title: string, array: any[], multiple = false, selectedIndexes = []) {\n\t\tconst modalRef = this.openDialog(DialogSelectArrayContent);\n\t\tmodalRef.componentInstance.title = title;\n\t\tmodalRef.componentInstance.array = array;\n\t\tmodalRef.componentInstance.multiple = multiple;\n\t\tmodalRef.componentInstance.selectedIndexes = selectedIndexes;\n\t\treturn modalRef.result;\n\t}\n}","import { DialogService } from '../widgets/dialog/dialog.service';\nimport { AccountManagerService } from '../account-manager.service';\nimport { AlertService } from '../widgets/alert/alert.service';\nimport { Injectable } from '@angular/core';\nimport { Validators } from '@angular/forms';\n\nimport { UserModel } from '../models/user.model';\n\nimport { ValidationService } from '../util/validation.service';\nimport { SocketManagerService } from '../socket-manager.service';\n\nimport { UserAgentApplication } from 'msal';\n\n\n@Injectable()\nexport class AuthService {\n\tenvironment = null;\n\tuserHasPhoneNumber = false;\n\n\tuserData;\n userAgentApplication;\n\n\tconstructor(private _ds: DialogService, private _vs: ValidationService, private _alert: AlertService, private _account: AccountManagerService, private _socket: SocketManagerService) {}\n\n\tsetupMSSingleSignOn(environment) {\n\t\tthis.environment = environment;\n\n\t\tif (window.location.pathname === '/auth365' && window.location.hash && window.location.hash.startsWith('#id_token=')) {\n\t\t\tthis.environment.MS_id_token = window.location.hash.replace('#', '');\n\t\t} \n\n\t\tthis.userAgentApplication = new UserAgentApplication({\n\t\t\tauth: {\n\t\t\t\tclientId: this.environment.MS_clientId, \n\t\t\t\tauthority: this.environment.MS_authority,\n\t\t\t\tredirectUri: this.environment.MS_redirectUri,\n\t\t\t\tvalidateAuthority: false,\n\t\t\t\tnavigateToLoginRequestUrl: false\n\t\t\t},\n\t\t\tframework: {isAngular: true}\n\t\t});\n\t}\n\n\tsetEnvironment(environment) {\n\t\tthis.environment = environment;\n\t}\n\n\tsetUserHasPhoneNumber(value: boolean) {\n\t\tthis.userHasPhoneNumber = value;\n\t}\n\n\tregisterUser(other: Object, sendEnrollmentEmail = true) {\n\t\treturn new Promise((resolve, reject) => {\n\n\t\t\tlet inputProps: any[] = [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'User Name',\n\t\t\t\t\tform: 'username',\n\t\t\t\t\tdata: '',\n\t\t\t\t\tvalidators: [Validators.required],\n\t\t\t\t\tvalidatorErrors: ['required'],\n\t\t\t\t\tvalidatorMsg: ['Username is required'],\n\t\t\t\t\trequired: true\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Full Name',\n\t\t\t\t\tform: 'fullname',\n\t\t\t\t\tdata: '',\n\t\t\t\t\tvalidators: [Validators.required],\n\t\t\t\t\tvalidatorErrors: ['required'],\n\t\t\t\t\tvalidatorMsg: ['Full name is required'],\n\t\t\t\t\trequired: true\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Email',\n\t\t\t\t\tform: 'email',\n\t\t\t\t\tdata: '',\n\t\t\t\t\tvalidators: [Validators.required, this._vs.email],\n\t\t\t\t\tvalidatorErrors: ['required', 'email'],\n\t\t\t\t\tvalidatorMsg: ['Email is required', 'Email is invalid'],\n\t\t\t\t\trequired: true\n\t\t\t\t}\n\t\t\t];\n\n\t\t\tif (this.userHasPhoneNumber) {\n\t\t\t\tinputProps.push({\n\t\t\t\t\tlabel: 'Phone',\n\t\t\t\t\tform: 'phonenumber',\n\t\t\t\t\tdata: '',\n\t\t\t\t\tvalidators: [this._vs.phoneNumber],\n\t\t\t\t\tvalidatorErrors: ['phoneNumber'],\n\t\t\t\t\tvalidatorMsg: ['Phone number is invalid'],\n\t\t\t\t\ttype: 'text'\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis._ds.input('Register New User', inputProps).then(close => {\n\t\t\t\tlet user: UserModel = {\n\t\t\t\t\tusername: close.username.value.trim().toLowerCase(),\n\t\t\t\t\temail: close.email.value.trim().toLowerCase(),\n\t\t\t\t\tfullname: close.fullname.value.trim(),\n\t\t\t\t\troles: {\n\t\t\t\t\t\tsuper_admin: false,\n\t\t\t\t\t\tapprovals: [],\n\t\t\t\t\t\tgroups: [],\n\t\t\t\t\t\tnotifications: [],\n\t\t\t\t\t\tmiscs: []\n\t\t\t\t\t},\n\t\t\t\t\tactive: true,\n\t\t\t\t\treadonly: false,\n\t\t\t\t\tphonenumber: close.phonenumber ? close.phonenumber.value : '',\n\t\t\t\t\tother: other,\n\t\t\t\t\tattempts: 0,\n\t\t\t\t\tsalt: '',\n\t\t\t\t\thash: ''\n\t\t\t\t};\n\n\t\t\t\tthis._socket.call('createUserAndEmailEnrollment', user, sendEnrollmentEmail, (err, res) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tthis._socket.call('insertErrorLog', 'AuthService - createUserAndEmailEnrollment', [\n\t\t\t\t\t\t\t{email: close.email.value, username: close.username.value, profile: {fullname: close.fullname.value, status: 'active'}},\n\t\t\t\t\t\t\terr\n\t\t\t\t\t\t]);\n\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresolve(res);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t\t\tdismiss => reject()\n\t\t\t);\n\t\t});\n\t}\n\n\teditUser(user: UserModel) {\n\n\t\tlet inputProps: any[] = [\n\t\t\t{\n\t\t\t\tlabel: 'User Name',\n\t\t\t\tform: 'username',\n\t\t\t\tdata: user.username,\n\t\t\t\tvalidators: [Validators.required],\n\t\t\t\tvalidatorErrors: ['required'],\n\t\t\t\tvalidatorMsg: ['Username is required'],\n\t\t\t\trequired: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Full Name',\n\t\t\t\tform: 'fullname',\n\t\t\t\tdata: user.fullname,\n\t\t\t\tvalidators: [Validators.required],\n\t\t\t\tvalidatorErrors: ['required'],\n\t\t\t\tvalidatorMsg: ['Full name is required'],\n\t\t\t\trequired: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Email',\n\t\t\t\tform: 'email',\n\t\t\t\tdata: user.email,\n\t\t\t\tvalidators: [Validators.required, this._vs.email],\n\t\t\t\tvalidatorErrors: ['required', 'email'],\n\t\t\t\tvalidatorMsg: ['Email is required', 'Email is invalid'],\n\t\t\t\trequired: true\n\t\t\t}\n\t\t];\n\n\t\tif (this.userHasPhoneNumber) {\n\t\t\tinputProps.push({\n\t\t\t\tlabel: 'Phone',\n\t\t\t\tform: 'phonenumber',\n\t\t\t\tdata: user['phonenumber'] || '',\n\t\t\t\tvalidators: [this._vs.phoneNumber],\n\t\t\t\tvalidatorErrors: ['phoneNumber'],\n\t\t\t\tvalidatorMsg: ['Phone number is invalid'],\n\t\t\t\ttype: 'text'\n\t\t\t});\n\t\t}\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis._ds.input(\n\t\t\t\t'Edit User', inputProps\n\t\t\t).then(close => {\n\n\t\t\t\tif (close.phonenumber && close.phonenumber.value) {\n\t\t\t\t\tuser['phonenumber'] = close.phonenumber.value;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tuser['phonenumber'] = '';\n\t\t\t\t}\n\n\t\t\t\tuser.email = close.email.value.trim();\n\n\t\t\t\tthis._socket.call('editUser', user._id, close.username.value.trim().toLowerCase(), close.fullname.value.trim(), close.email.value.trim().toLowerCase(), user['phonenumber'], (err, res) => {\n\t\t\t\t\t\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tthis._socket.call('insertErrorLog', 'AuthService - edituser', [\n\t\t\t\t\t\t\tuser,\n\t\t\t\t\t\t\terr\n\t\t\t\t\t\t]);\n\n\t\t\t\t\t\treject(err);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet updatedData = {\n\t\t\t\t\t\t\tusername: close.username.value.trim(),\n\t\t\t\t\t\t\tfullname: close.fullname.value.trim(),\n\t\t\t\t\t\t\temail: close.email.value.trim()\n\t\t\t\t\t\t};\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis._alert.setAlert('success', 'User has been edited');\n\t\t\t\t\t\tresolve(updatedData);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t\t\tdismiss => { resolve(true); }\n\t\t\t);\n\t\t});\n\t}\n\n\tloginUser(): Promise<any> {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis.loginModal().then(\n\t\t\t\tclose => {\n\t\t\t\t\tif (close.type === 'MS') {\n\t\t\t\t\t\tthis.microsoftSignOn();\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (!close.form.value.forgotPassword) {\n\t\t\t\t\t\t\tthis._account.logIn(close.form.value.username, close.form.value.password).then(user => {\n\t\t\t\t\t\t\t\tresolve(user);\n\t\t\t\t\t\t\t}, errUser => reject('Invalid login'));\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis._account.resetUserPassword(close.form.value.username);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tdismiss => reject()\n\t\t\t);\n\t\t});\n\t}\n\n\tprivate microsoftSignOn() {\n var graphScopes = [\"user.read\", \"mail.send\"];\n this.userAgentApplication.loginRedirect(graphScopes);\n }\n\n\tprivate loginModal() {\n\t\treturn this._ds.login(!this.environment || !this.environment.MS_ALLOWED ? false : true, !this.environment || !this.environment.HIDE_LOGIN_TEXT ? true : false);\n\t}\n\n\tremoveUser(id: string) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis._socket.call('removeDocument', 'users', id, (err, res) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tthis._ds.error('Could not remove user');\n\t\t\t\t\tthis._socket.call('insertErrorLog', 'AuthService - removeUser', [\n\t\t\t\t\t\tid,\n\t\t\t\t\t\terr\n\t\t\t\t\t]);\n\t\t\t\t\treject(err);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tresolve(true);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n}\n","import { Injectable } from '@angular/core';\nimport { ModulePermissionModel } from '../models/permission.model';\n\n@Injectable()\nexport class AuthPermissionService {\n\n\tmodules: ModulePermissionModel[] = [];\n\n\tconstructor() {}\n\t\n\tregisterModule(modulePermission: ModulePermissionModel) {\n\t\tthis.modules.push(modulePermission);\n\t\tthis.modules.sort((a, b) => {\n\t\t\tlet x = a.name;\n\t\t\tlet y = b.name;\n\t\t\treturn ((x < y) ? -1 : ((x > y ) ? 1 : 0));\n\t\t});\n\t}\n\n\tgetAllModulePermissions() {\n\t\treturn this.modules;\n\t}\n}\n","import { Directive, HostListener, Output, EventEmitter, Input } from '@angular/core';\n\nexport type ScrollEvent = {\n isReachingBottom: boolean,\n isReachingTop: boolean,\n originalEvent: Event,\n isWindowEvent: boolean\n};\n\ndeclare const window: Window;\n\n@Directive({\n selector: '[detect-scroll]'\n})\nexport class ScrollDirective {\n @Output() public onScroll = new EventEmitter<ScrollEvent>();\n @Input() public bottomOffset: number = 100;\n @Input() public topOffset: number = 100;\n\n constructor() { }\n\n // handle host scroll\n @HostListener('scroll', ['$event']) public scrolled($event: Event) {\n this.elementScrollEvent($event);\n }\n\n // handle window scroll\n @HostListener('window:scroll', ['$event']) public windowScrolled($event: Event) {\n this.windowScrollEvent($event);\n }\n\n protected windowScrollEvent($event: Event) {\n const target = <Document>$event.target;\n const scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n const isReachingTop = scrollTop < this.topOffset;\n const isReachingBottom = ( target.body.offsetHeight - (window.innerHeight + scrollTop) ) < this.bottomOffset;\n const emitValue: ScrollEvent = {isReachingBottom, isReachingTop, originalEvent: $event, isWindowEvent: true};\n this.onScroll.emit(emitValue);\n }\n\n protected elementScrollEvent($event: Event) {\n const target = <HTMLElement>$event.target;\n const scrollPosition = target.scrollHeight - target.scrollTop;\n const offsetHeight = target.offsetHeight;\n const isReachingTop = target.scrollTop < this.topOffset;\n const isReachingBottom = (scrollPosition - offsetHeight) < this.bottomOffset;\n const emitValue: ScrollEvent = {isReachingBottom, isReachingTop, originalEvent: $event, isWindowEvent: false};\n this.onScroll.emit(emitValue);\n }\n\n}","import { BaseComponent, ProviderService } from '../../resolveio-class';\nimport { UserModel } from '../../models/user.model';\nimport { Component, Input, QueryList, AfterViewInit, ViewChildren, ViewChild, ElementRef, OnInit } from '@angular/core';\n\nimport { AuthService } from '../../auth/auth.service';\nimport { Validators } from '@angular/forms';\nimport { NavbarMainTabModel } from '../../models/navbar-main-tab.model';\nimport { DialogService } from '../dialog/dialog.service';\nimport { CoreService } from '../../core.service';\n\n@Component({\n\tselector: 'navbar-main',\n\ttemplateUrl: './navbar-main.component.html',\n\tproviders: [ProviderService]\n})\nexport class NavbarMainComponent extends BaseComponent implements OnInit, AfterViewInit {\n\n\t@ViewChildren('dropdowns') dropdowns: QueryList<any>;\n\t@ViewChild('scrollable', {static: true}) scrollable: ElementRef;\n\n\t@Input('logo') logo = '';\n\t@Input('navTabs') navTabs: NavbarMainTabModel[] = [];\n\t@Input('fontSize') fontSize = 12;\n\t@Input('publicProgram') publicProgram = false;\n\n\tuser: UserModel = null;\n\tcollapseShowing = false;\n\n\tclient = '';\n\n\tisResolveIO = false;\n\tstandardProgram = false;\n\ttourStarted = false;\n\n\tscrollRightInterval = null;\n\tscrollLeftInterval = null;\n\tisDemo = false;\n\n\tconstructor(private _services: ProviderService, private auth: AuthService, private _ds: DialogService, private _app: CoreService) {\n\t\tsuper(_services);\n\t}\n\n\tngOnInit() {\n\t\tthis._services._account.user.subscribe(user => {\n\t\t\tthis.user = user;\n\t\t});\n\n\t\tthis.client = this._app.client.getValue();\n\t\tthis.standardProgram = this._app.standardProgram.getValue();\n\t\tthis.tourStarted = this._services._app.tourStarted.getValue();\n\n\t\tif (!this.client) {\n\t\t\tthis.isResolveIO = true;\n\t\t}\n\n\t\tthis._services._app.tourStarted.subscribe(tourStarted => {\n\t\t\tthis.tourStarted = tourStarted;\n\t\t});\n\n\t\tthis._services._app.isDemo.subscribe(isDemo => {\n\t\t\tthis.isDemo = isDemo;\n\t\t});\n\t}\n\n\tngAfterViewInit() {\n\t\tsetInterval(() => {\n\t\t\tthis.calculateDropdownsLeft();\n\t\t}, 500);\n\t\tdocument.documentElement.style.setProperty('--font-size', this.fontSize + 'px');\n\t}\n\n\tasync logout() {\n\t\tthis._app.isLoggingOut.next(true);\n\t\tawait this._services._account.logOut();\n\t\tthis._app.isLoggingOut.next(false);\n\t}\n\n\tlogin() {\n\t\tthis.auth.loginUser().then(() => {}, err => {});\n\t}\n\n\thasScrolled() {\n\t\tif (this.scrollable.nativeElement.scrollLeft <= 0) {\n\t\t\tthis.stopScrollRight();\n\t\t}\n\n\t\treturn this.scrollable.nativeElement.scrollLeft > 0 ? true : false;\n\t}\n\n\thasMoreScroll() {\n\t\tif (this.scrollable.nativeElement.scrollWidth <= this.scrollable.nativeElement.clientWidth + this.scrollable.nativeElement.scrollLeft) {\n\t\t\tthis.stopScrollLeft();\n\t\t}\n\n\t\treturn this.scrollable.nativeElement.scrollWidth > this.scrollable.nativeElement.clientWidth + this.scrollable.nativeElement.scrollLeft ? true : false;\n\t}\n\n\tstartScrollRight() {\n\t\tthis.scrollRightInterval = setInterval(() => {\n\t\t\tthis.scrollable.nativeElement.scrollLeft -= 2;\n\t\t}, 1);\n\t}\n\n\tstopScrollRight() {\n\t\tclearInterval(this.scrollRightInterval);\n\t}\n\n\tscrollRightOnce() {\n\t\tthis.scrollable.nativeElement.scrollLeft -= 50;\n\t}\n\n\tstartScrollLeft() {\n\t\tthis.scrollLeftInterval = setInterval(() => {\n\t\t\tthis.scrollable.nativeElement.scrollLeft += 2;\n\t\t}, 1);\n\t}\n\n\tstopScrollLeft() {\n\t\tclearInterval(this.scrollLeftInterval);\n\t}\n\n\tscrollLeftOnce() {\n\t\tthis.scrollable.nativeElement.scrollLeft += 50;\n\t}\n\t\n\tcalculateDropdownsLeft() {\n\t\tif (this.dropdowns && this.dropdowns.toArray() && this.dropdowns.toArray().length && this.scrollable) {\n\t\t\tthis.navTabs.filter(a => a.type === 'dropdown').forEach(tab => {\n\t\t\t\tlet dropDown = this.dropdowns.toArray().filter(a => a.nativeElement.innerText.split('\\n')[0].replace(/[^A-Za-z0-9]/g, '') === tab.label.replace(/[^A-Za-z0-9]/g, ''))[0];\n\n\t\t\t\tif (dropDown) {\n\t\t\t\t\ttab.left = Math.max(dropDown.nativeElement.offsetLeft - this.scrollable.nativeElement.scrollLeft, this.scrollable.nativeElement.offsetLeft);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttab.left = 0;\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tisInRole(role: any) {\n\t\tif (!role) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (this.isSuperAdmin()) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (this.user) {\n\t\t\tif ((<any>this.user.roles).groups) {\n\t\t\t\tfor (let i = 0; i < (<any>this.user.roles).groups.length; i++) {\n\t\t\t\t\tlet group = (<any>this.user.roles).groups[i];\n\t\t\t\t\tfor (let j = 0; j < group.views.length; j++) {\t\n\t\t\t\t\t\tlet view = group.views[j];\n\t\t\t\t\t\tif (view === role || view.startsWith(role + '/')) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tisSuperAdmin() {\n\t\treturn this.user && this.user.roles ? (<any>this.user.roles).super_admin : false;\n\t}\n\n\tisInOneRole(roles: string[]) {\n\t\tif (this.isSuperAdmin()) {\n\t\t\treturn true;\n\t\t}\n\n\t\tfor (let i = 0; i < roles.length; i++) {\n\t\t\tlet role = roles[i];\n\n\t\t\tif (!role) {\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (this._services._account.isUserInView(role)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tnavigateTo(route: string) {\n\t\tthis._services._router.navigateByUrl(route);\n\t}\n\n\thelp() {\n\t\tthis._ds.input('What do you need help with?', [\n\t\t\t{\n\t\t\t\tlabel: 'Title of Problem', \n\t\t\t\tform: 'problem_title', \n\t\t\t\tdata: '', \n\t\t\t\tvalidators: [Validators.required],\n\t\t\t\tvalidatorErrors: ['required'],\n\t\t\t\tvalidatorMsg: ['Problem title is required.'],\n\t\t\t\trequired: true\n\t\t\t},\n\t\t\t{\n\t\t\t\tlabel: 'Description of Problem', \n\t\t\t\tform: 'problem_desc', \n\t\t\t\tdata: '', \n\t\t\t\tvalidators: [Validators.required],\n\t\t\t\tvalidatorErrors: ['required'],\n\t\t\t\tvalidatorMsg: ['Problem description is required.'],\n\t\t\t\trequired: true,\n\t\t\t\ttype: 'textarea'\n\t\t\t}\n\t\t]).then(helpRes => {\n\t\t\tthis._services._socket.call('getHelpNotification', this._services._account.getUser().fullname, helpRes.problem_title.value, helpRes.problem_desc.value);\n\t\t}, () => {});\n\t}\n\n\tisCustomer() {\n\t\treturn this._services._account.getUser().other.customers && this._services._account.getUser().other.customers.length ? true : false;\n\t}\n\n\tgetWindowWidth() {\n\t\treturn window.innerWidth;\n\t}\n\n\t// print() {\n\t// \twindow.print();\n\t// }\n}","<style>\n\t:root {\n --font-size: 12;\n }\n\n\t:host /deep/ * {\n\t\tfont-size: var(--font-size);\n\t}\n\n @media (max-width: 1200px) {\n .navbarMain a {\n font-size: 18px !important;\n }\n }\n @media (min-width: 1200px) {\n .scrollable-x {\n max-width: 60vw;\n overflow-x: auto;\n overflow-y: visible;\n align-items: center;\n }\n\n ::-webkit-scrollbar {\n display: none;\n }\n\n .verticalAlign {\n display: flex;\n align-items: center;\n }\n\n .dropdown {\n position: static;\n }\n }\n\n .navbar li {\n cursor: pointer;\n text-align: center;\n }\n\n .navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: gray;\n }\n</style>\n\n<div class=\"row\">\n <nav class=\"navbar navbar-expand-xl navbar-dark bg-dark navbarMain\" style=\"width: 100%\">\n <a class=\"navbar-brand\" href=\"#\">\n <img [src]=\"logo\" style=\"width: auto; height: 36px;\" *ngIf=\"!isDemo\">\n </a>\n <button class=\"navbar-toggler\" type=\"button\" data-toggle=\"collapse\" data-target=\"#navbarMainNav\" aria-controls=\"navbarMainNav\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div class=\"navbar-collapse collapse\" id=\"navbarMainNav\">\n <ul class=\"navbar-nav\">\n <li class=\"nav-item\" data-toggle=\"collapse\" data-target=\"#navbarMainNav\" *ngIf=\"!standardProgram\" [style.border-right]=\"getWindowWidth() > 1200 ? '1px solid white' : ''\">\n <a class=\"nav-link\" routerLink=\"home\" [class.disabled]=\"tourStarted ? true : null\" routerLinkActive=\"active\">Home</a>\n </li>\n </ul>\n <div *ngIf=\"hasScrolled()\" (mouseover)=\"startScrollRight()\" (mouseout)=\"stopScrollRight()\" (click)=\"scrollRightOnce()\">\n <i class=\"fa fa-arrow-left\" style=\"color: white; font-size: 20px\"></i>\n </div>\n <ul [ngClass]=\"['navbar-nav', 'scrollable-x']\" #scrollable detect-scroll (onScroll)=\"calculateDropdownsLeft()\">\n <ng-container *ngFor=\"let tab of navTabs; let i = index;\">\n <ng-container *ngIf=\"tab.type === 'link'\">\n <li class=\"nav-item\" *ngIf=\"(publicProgram || user) && isInRole(tab.links[0].role)\" data-toggle=\"collapse\" [tourAnchor]=\"tab.tourAnchor\" data-target=\"#navbarMainNav\">\n <a class=\"nav-link\" [class.disabled]=\"tourStarted ? true : null\" [routerLink]=\"tab.links[0].routerLink\" routerLinkActive=\"active\">{{tab.links[0].label}}</a>\n </li>\n </ng-container>\n <ng-container *ngIf=\"tab.type === 'dropdown'\">\n <li #dropdowns class=\"nav-item dropdown\" *ngIf=\"(publicProgram || user) && isInOneRole(tab.roles)\">\n <a class=\"nav-link dropdown-toggle\" [class.disabled]=\"tourStarted ? true : null\" id=\"navbarDropdownAsset\" role=\"button\" [tourAnchor]=\"tab.tourAnchor\" data-toggle=\"dropdown\" aria-haspopup=\"true\" aria-expanded=\"false\">\n {{tab.label}}\n </a>\n <div class=\"dropdown-menu bg-dark\" aria-labelledby=\"navbarDropdownAsset\" data-toggle=\"collapse\" data-target=\"#navbarMainNav\" [style.left.px]=\"tab.left || 0\">\n <ng-container *ngFor=\"let link of tab.links\">\n <a class=\"dropdown-item nav-link\" *ngIf=\"(publicProgram || user) && isInRole(link.role)\" [routerLink]=\"link.routerLink\">{{link.label}}</a>\n </ng-container>\n </div>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n <div *ngIf=\"hasMoreScroll()\" (mouseover)=\"startScrollLeft()\" (mouseout)=\"stopScrollLeft()\" (click)=\"scrollLeftOnce()\">\n <i class=\"fa fa-arrow-right\" style=\"color: white; font-size: 20px\"></i>\n </div>\n <hr />\n <ul [ngClass]=\"['navbar-nav', getWindowWidth() > 1200 ? 'float-lg-right' : '']\">\n <!-- <li class=\"nav-item\" *ngIf=\"user\" data-toggle=\"collapse\" data-target=\"#navbarMainNav\" [style.border-left]=\"getWindowWidth() > 1200 ? '1px solid white' : ''\" style=\"height: 30px;\">\n <a class=\"nav-link\" [class.disabled]=\"tourStarted ? true : null\" (click)=\"print()\" style=\"cursor: pointer;\"><i style=\"font-size:20px; color: white;\" class=\"fa fa-print\" aria-hidden=\"true\"></i></a>\n </li> -->\n <li class=\"nav-item\" *ngIf=\"user && client\" data-toggle=\"collapse\" data-target=\"#navbarMainNav\" style=\"height: 30px;\" tourAnchor=\"supportSection\">\n <a class=\"nav-link\" [class.disabled]=\"tourStarted ? true : null\" routerLink=\"support-ticket\" routerLinkActive=\"active\">Support</a>\n </li>\n <li class=\"nav-item\" *ngIf=\"user && isInRole('super-admin')\" data-toggle=\"collapse\" data-target=\"#navbarMainNav\">\n <a class=\"nav-link\" routerLink=\"logs\" routerLinkActive=\"active\">Logs</a>\n </li>\n <li class=\"nav-item\" *ngIf=\"user && isInRole('super-admin')\" data-toggle=\"collapse\" data-target=\"#navbarMainNav\">\n <a class=\"nav-link\" routerLink=\"super-admin\" routerLinkActive=\"active\">Super Admin</a>\n </li>\n </ul>\n <hr />\n <ul [ngClass]=\"['navbar-nav', getWindowWidth() > 1200 ? 'float-lg-right' : '']\" *ngIf=\"!publicProgram\">\n <li class=\"nav-item\" *ngIf=\"!user\" data-toggle=\"collapse\" data-target=\"#navbarMainNav\">\n <a class=\"nav-link\" (click)=\"login()\" style=\"cursor: pointer;\" routerLinkActive=\"active\">Login</a>\n </li>\n <li class=\"nav-item\" *ngIf=\"user\" tourAnchor=\"userSettings\">\n <a class=\"nav-link\" [class.disabled]=\"tourStarted ? true : null\" routerLink=\"user-settings\">Hello {{user.fullname}}!</a>\n </li>\n <li class=\"nav-item\" *ngIf=\"user\" style=\"cursor: pointer\" (click)=\"logout()\" data-toggle=\"collapse\" data-target=\"#navbarMainNav\">\n <a class=\"nav-link\" [class.disabled]=\"tourStarted ? true : null\">Logout</a>\n <li>\n </ul>\n </div>\n </nav>\n</div>","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'filterEqual',\n\tpure: false\n})\nexport class FilterEqualPipe implements PipeTransform { \n\ttransform(items: any[], field: string, value: string): any[] { \n\t\tif (!items) { return []; } \n\t\treturn items.filter(it => it[field] === value);\n\t}\n}\n\n@Pipe({\n\tname: 'filterNotEqual'\n})\nexport class FilterNotEqualPipe implements PipeTransform { \n\ttransform(items: any[], field: string, value: string): any[] { \n\t\tif (!items) { return []; } \n\t\treturn items.filter(it => it[field] !== value);\n\t}\n}\n","import { Component, OnInit, OnDestroy, Input, ChangeDetectorRef } from '@angular/core';\nimport { NavigationEnd, NavigationCancel } from '@angular/router';\nimport { NavbarModel, NavbarTabModel } from './navbar-module.model';\nimport { Subscription } from 'rxjs';\n\nimport { ProviderService, BaseComponent } from '../../resolveio-class';\n\n@Component({\n\tproviders: [ProviderService],\n\tselector: 'navbar-module',\n\ttemplateUrl: './navbar-module.component.html'\n})\n\nexport class NavbarModuleComponent extends BaseComponent implements OnInit, OnDestroy { \n\n\t@Input() sideNavHeight: number;\n\t@Input() sideNavWidth: number;\n\n\tmenuData: NavbarModel = {\n\t\ttitle: '',\n\t\tmodule: null,\n\t\tdescription: null,\n\t\tdescription_name: 'Description',\n\t\ttabs: []\n\t};\n\n\tselectedTab: NavbarTabModel = null;\n\tcurrentRoute: String = '';\n\n\trouterEvents$: Subscription[] = [];\n\ttourStarted = false;\n\n\tconstructor(private _cdRef: ChangeDetectorRef, private _services: ProviderService) {\n\t\tsuper(_services);\n\t}\n\n\tngOnInit() {\n\n\t\tthis.tourStarted = this._services._app.tourStarted.getValue();\n\n\t\tthis.routerEvents$.push(this._services._router.events\n\t\t\t//.filter(event => event instanceof NavigationEnd)\n\t\t\t.subscribe((event: NavigationEnd) => {\n\t\t\t\tif (this._services._router.url.replace(/\\/[a-f0-9]{24}$/, '').replace(/\\?.+$/, '') !== this.currentRoute || !this.selectedTab) {\n\t\t\t\t\tthis.selectTabFromRouter();\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\n\t\tthis.routerEvents$.push(this._services._app.navbarModuleData.subscribe(data => {\n\t\t\tthis.menuData = data;\n\t\t\tif (this._services._router.url.replace(/\\/[a-f0-9]{24}$/, '').replace(/\\?.+$/, '') !== this.currentRoute || !this.selectedTab) {\n\t\t\t\tthis.selectTabFromRouter();\n\t\t\t}\n\t\t}));\n\n\t\tthis.routerEvents$.push(this._services._app.tourStarted.subscribe(tourStarted => {\n\t\t\tthis.tourStarted = tourStarted;\n\t\t}));\n\t}\n\n\tngOnDestroy() {\n\t\tthis.routerEvents$.forEach(sub => {\n\t\t\tsub.unsubscribe();\n\t\t});\n\t}\n\n\tselectTabFromRouter() {\n\t\tif (this.menuData) {\n\t\t\tif (this._services._router.url === '/') {\n\t\t\t\tthis.selectedTab = this.menuData.tabs[0];\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.currentRoute = this._services._router.url.replace(/\\/[a-f0-9]{24}$/, '').replace(/\\?.+$/, '');\n\t\t\t\tthis.selectedTab = null;\n\n\t\t\t\twhile (!this.selectedTab && this.currentRoute.split('/').length > 2) {\n\t\t\t\t\tfor (let i = 0; i < this.menuData.tabs.length; i++) {\n\t\t\t\t\t\tlet tab = this.menuData.tabs[i];\n\t\n\t\t\t\t\t\tif (tab.link === this.currentRoute) {\n\t\t\t\t\t\t\tthis.selectedTab = tab;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.currentRoute = this.currentRoute.replace(/(\\/[^\\/]+$)/, '');\n\t\t\t\t}\n\n\t\t\t\tif (!this.selectedTab) {\n\t\t\t\t\tthis.selectedTab = this.menuData.tabs[0];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\ttabClass(tab: NavbarTabModel) {\n\t\tif (this.selectedTab) {\n\t\t\tif (this.selectedTab.label === tab.label) {\n\t\t\t\treturn 'active';\n\t\t\t}\n\t\t}\n\n\t\treturn '';\n\t}\n\n\tnavigateTo(tab: NavbarTabModel) {\n\t\tif (this.selectedTab !== tab) {\n\t\t\tthis.selectedTab = tab;\n\n\t\t\tif (tab.params === null) {\n\t\t\t\tthis._services._router.navigateByUrl(tab.link);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._services._router.navigateByUrl(tab.link + '/' + tab.params);\n\t\t\t}\n\t\t}\n\t}\n}\n","<style>\n .navbarModule li {\n cursor: pointer;\n }\n .navbarModule li.active {\n border-left: 3px solid #d19b3d;\n }\n .navbarModule nav {\n width: 100%;\n }\n\n @media (min-width: 1200px) {\n .navbarModule {\n height: 95vh;\n margin-left: -10px;\n }\n\n hr {\n border-top: white 1px solid;\n }\n }\n\n @media (max-width: 1200px) {\n hr {\n display: none;\n }\n\n .navbarModule a {\n font-size: 18px !important;\n }\n }\n\n \n</style> \n\n<div style=\"margin-left: -15px; margin-right: -15px;\">\n <nav class=\"navbar navbar-expand-xl navbar-dark bg-dark flex-xl-column navbarModule\" [style.height]=\"sideNavHeight ? sideNavHeight + 'px' : ''\" [style.width]=\"sideNavWidth ? sideNavWidth : ''\">\n <div href=\"#\" style=\"color: white; font-size: 16px;\">\n {{ menuData.title }}\n </div>\n <button class=\"navbar-toggler\" type=\"button\" aria-controls=\"#navbarModuleNav\" data-target=\"#navbarModuleNav\" data-toggle=\"collapse\" aria-expanded=\"false\" aria-label=\"Toggle navigation\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div class=\"navbar-collapse collapse\" id=\"navbarModuleNav\" style=\"align-items:baseline; width: 100%; overflow-y: auto; overflow-x: hidden;\">\n <ul class=\"navbar-nav\" style=\"display: block; float: left; width: 100%;\">\n <div *ngFor=\"let tab of (menuData.tabs | filterNotEqual : 'params' : '0'); let i = index\">\n <div *ngIf=\"tab.params !== null && menuData.tabs[i - 1] && menuData.tabs[i - 1].params === null\">\n <hr>\n <div href=\"#\" style=\"color: white; font-size: 16px;\">\n Selected {{ menuData.module }}\n </div>\n <hr>\n <div style=\"color:white; margin-left: 5px; text-decoration: underline; font-size: 14px\">{{menuData.description_name}}:</div>\n <div style=\"color:white; margin-left: 8px; font-size: 12px\">{{menuData.description}}</div>\n <br />\n </div>\n <li [ngClass]=\"['nav-item', tabClass(tab)]\"data-toggle=\"collapse\" data-target=\"#navbarModuleNav\" [tourAnchor]=\"tab.tourAnchor\">\n <a class=\"nav-link\" [class.disabled]=\"tourStarted ? true : null\" [routerLink]=\"[tab.params ? tab.link + '/' + tab.params : tab.link]\" routerLinkActive=\"active\">{{ tab.label }}</a>\n </li>\n </div>\n </ul>\n </div>\n </nav>\n</div>\n","import { Component, OnInit, ElementRef, ViewChild, Input } from '@angular/core';\nimport { UserModel } from './models/user.model';\nimport { AppStatusModel } from './models/app-status.model';\nimport { DeviceDetectorService } from 'ngx-device-detector';\nimport { ResizeService } from './util/window-resize.service';\nimport { ProviderService, BaseComponent } from './resolveio-class';\nimport { OfflineManagerService } from './offline-manager.service';\nimport { LocalStorageService } from 'ngx-localstorage';\nimport { NavigationEnd } from '@angular/router';\nimport { AuthService } from './auth/auth.service';\nimport { AuthPermissionService } from './auth/auth-permissions.service';\nimport { DialogService } from './widgets/dialog/dialog.service';\nimport { ActiveToast } from 'ngx-toastr';\n\n@Component({\n\tproviders: [ProviderService],\n\tselector: 'resolveio-client-lib-core',\n\ttemplateUrl: './core.component.html'\n})\nexport class CoreComponent extends BaseComponent implements OnInit {\n\t@Input('environment') environment;\n\t@Input('logo') logo = '';\n\t@Input('navTabs') navTabs = '';\n\t@Input('userHasPhoneNumber') userHasPhoneNumber = false;\n\t@Input('client') client = '';\n\t@Input('showNavbarModule') showNavbarModule = true;\n\t@Input('publicProgram') publicProgram = false;\n\n\t@ViewChild('navBarMain', {read: ElementRef, static: true}) el_navBarMain: ElementRef;\n\t@ViewChild('navBarModule', {read: ElementRef, static: true}) el_navBarModule: ElementRef;\n\n\tyear: string = (new Date()).getFullYear().toString();\n\n\tfullScreen = false;\n\n\twindowSizeHeight = window.innerHeight;\n\twindowSizeWidth = window.innerWidth;\n\n\tnavbarMainHeight = 0;\n\tstatusHeight = 0;\n\tconnectedHeight = 0;\n\tisDevice = false;\n\tshowNavigationMenu = false;\n\n\tswFlagAlert: ActiveToast<any> = null;\n\t\n\tisConnected = false;\n\tisConnecting = false;\n\tsocketStatus: number;\n\n\tuser: UserModel;\n\tstatus: AppStatusModel;\n\n\tcollapsableMenu = true;\n\tfontSize = 12;\n\topenedWindow = false;\n\n\tisOffline = false;\n\tfoundUpdate = false;\n\n\torientation = 'portrait';\n\n\t// previousRouterErrorHandler = null;\n\n\tconstructor(private _deviceDet: DeviceDetectorService, private _ds: DialogService, private _resizeService: ResizeService, public _services: ProviderService, private _offline: OfflineManagerService, private _storage: LocalStorageService, private _auth: AuthService, private _aps: AuthPermissionService) {\n\t\tsuper(_services);\n\t}\n\n\tngOnInit() {\n\t\tthis._services._app.setEnvironment(this.environment);\n\t\tthis._services._app.setClient(this.client);\n\t\tthis._services._app.setNavTabs(this.navTabs);\n\n\t\tthis._services._account.initLoginManager(this.environment);\n\t\t\n\t\tif (this.environment && this.environment.MS_ALLOWED) {\n\t\t\tthis._auth.setupMSSingleSignOn(this.environment);\n\t\t}\n\t\telse if (this.environment) {\n\t\t\tthis._auth.setEnvironment(this.environment);\n\t\t}\n\n\t\tthis._auth.setUserHasPhoneNumber(this.userHasPhoneNumber);\n\n\t\t// this._services._app.setCustomHomePage(this.customHomePage);\n\n\t\t// this._services._app.setLogo(this.logo);\n\n\t\tthis._resizeService.onResize$.subscribe((val) => {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.windowSizeHeight = val.innerHeight;\n\t\t\t\tthis.windowSizeWidth = val.innerWidth;\n\t\t\t}, 100);\n\t\t});\n\t\t\n\t\tthis._services._app.fullScreen.subscribe(fullScreen => {\n\t\t\tthis.fullScreen = fullScreen;\n\t\t});\n\n\t\tthis._services._account.user.subscribe(user => {\n\t\t\tif (user && user.settings) {\n\t\t\t\tthis.collapsableMenu = user.settings.collapsable_menu;\n\t\t\t\tthis.fontSize = user.settings.font_size;\n\t\t\t\tdocument.documentElement.style.setProperty('--warning-color', user.settings.warning_color);\n\t\t\t\tdocument.documentElement.style.setProperty('--warning-font-color', user.settings.warning_font_color);\n\t\t\t\tdocument.documentElement.style.setProperty('--warning-shadow-color', '0 0 0 0.2rem ' + hexToRGB(user.settings.warning_color, 0.5));\n\t\t\t\tdocument.documentElement.style.setProperty('--warning-hover-color', user.settings.warning_hover_color);\n\t\t\t\tdocument.documentElement.style.setProperty('--success-color', user.settings.success_color);\n\t\t\t\tdocument.documentElement.style.setProperty('--success-font-color', user.settings.success_font_color);\n\t\t\t\tdocument.documentElement.style.setProperty('--success-shadow-color', '0 0 0 0.2rem ' + hexToRGB(user.settings.success_color, 0.5));\n\t\t\t\tdocument.documentElement.style.setProperty('--success-hover-color', user.settings.success_hover_color);\n\t\t\t\tdocument.documentElement.style.setProperty('--danger-color', user.settings.danger_color);\n\t\t\t\tdocument.documentElement.style.setProperty('--danger-font-color', user.settings.danger_font_color);\n\t\t\t\tdocument.documentElement.style.setProperty('--danger-shadow-color', '0 0 0 0.2rem ' + hexToRGB(user.settings.danger_color, 0.5));\n\t\t\t\tdocument.documentElement.style.setProperty('--danger-hover-color', user.settings.danger_hover_color);\n\t\t\t\tdocument.documentElement.style.setProperty('--info-color', user.settings.info_color);\n\t\t\t\tdocument.documentElement.style.setProperty('--info-font-color', user.settings.info_font_color);\n\t\t\t\tdocument.documentElement.style.setProperty('--info-shadow-color', '0 0 0 0.2rem ' + hexToRGB(user.settings.info_color, 0.5));\n\t\t\t\tdocument.documentElement.style.setProperty('--info-hover-color', user.settings.info_hover_color);\n\t\t\t\tdocument.documentElement.style.setProperty('--primary-color', user.settings.primary_color);\n\t\t\t\tdocument.documentElement.style.setProperty('--primary-font-color', user.settings.primary_font_color);\n\t\t\t\tdocument.documentElement.style.setProperty('--primary-shadow-color', '0 0 0 0.2rem ' + hexToRGB(user.settings.primary_color, 0.5));\n\t\t\t\tdocument.documentElement.style.setProperty('--primary-hover-color', user.settings.primary_hover_color);\n\t\t\t\tdocument.documentElement.style.setProperty('--secondary-color', user.settings.secondary_color);\n\t\t\t\tdocument.documentElement.style.setProperty('--secondary-font-color', user.settings.secondary_font_color);\n\t\t\t\tdocument.documentElement.style.setProperty('--secondary-shadow-color', '0 0 0 0.2rem ' + hexToRGB(user.settings.secondary_color, 0.5));\n\t\t\t\tdocument.documentElement.style.setProperty('--secondary-hover-color', user.settings.secondary_hover_color);\n\t\t\t}\n\t\t\telse if (user && (!user.other['customers'] || !user.other['customers'].length) && !user.other['id_customer'] && !user.settings && !this.openedWindow) {\n\t\t\t\tthis.openedWindow = true;\n\t\t\t\tdocument.documentElement.style.setProperty('--warning-color', '#ffc107');\n\t\t\t\tdocument.documentElement.style.setProperty('--warning-font-color', '#000000');\n\t\t\t\tdocument.documentElement.style.setProperty('--warning-shadow-color', '0 0 0 0.2rem rgba(222, 170, 12, 0.5)');\n\t\t\t\tdocument.documentElement.style.setProperty('--warning-hover-color', '#e0a800');\n\t\t\t\tdocument.documentElement.style.setProperty('--success-color', '#28a745');\n\t\t\t\tdocument.documentElement.style.setProperty('--success-font-color', '#ffffff');\n\t\t\t\tdocument.documentElement.style.setProperty('--success-shadow-color', '0 0 0 0.2rem rgba(72, 180, 97, 0.5)');\n\t\t\t\tdocument.documentElement.style.setProperty('--success-hover-color', '#218838');\n\t\t\t\tdocument.documentElement.style.setProperty('--danger-color', '#dc3545');\n\t\t\t\tdocument.documentElement.style.setProperty('--danger-font-color', '#ffffff');\n\t\t\t\tdocument.documentElement.style.setProperty('--danger-shadow-color', '0 0 0 0.2rem rgba(225, 83, 97, 0.5)');\n\t\t\t\tdocument.documentElement.style.setProperty('--danger-hover-color', '#c82333');\n\t\t\t\tdocument.documentElement.style.setProperty('--info-color', '#17a2b8');\n\t\t\t\tdocument.documentElement.style.setProperty('--info-font-color', '#ffffff');\n\t\t\t\tdocument.documentElement.style.setProperty('--info-shadow-color', '0 0 0 0.2rem rgba(58, 176, 195, 0.5)');\n\t\t\t\tdocument.documentElement.style.setProperty('--info-hover-color', '#138496');\n\t\t\t\tdocument.documentElement.style.setProperty('--primary-color', '#007bff');\n\t\t\t\tdocument.documentElement.style.setProperty('--primary-font-color', '#ffffff');\n\t\t\t\tdocument.documentElement.style.setProperty('--primary-shadow-color', '0 0 0 0.2rem rgba(38, 143, 255, 0.5)');\n\t\t\t\tdocument.documentElement.style.setProperty('--primary-hover-color', '#0069d9');\n\t\t\t\tdocument.documentElement.style.setProperty('--secondary-color', '#868e96');\n\t\t\t\tdocument.documentElement.style.setProperty('--secondary-font-color', '#ffffff');\n\t\t\t\tdocument.documentElement.style.setProperty('--secondary-shadow-color', '0 0 0 0.2rem rgba(130, 138, 145, 0.5)');\n\t\t\t\tdocument.documentElement.style.setProperty('--secondary-hover-color', '#5a6268');\n\t\t\t\tthis.fontSize = 12;\n\t\t\t\tthis._ds.notify('Hello, ' + user.fullname + ' it looks like there are no user settings saved for you. To adjust your user settings click your name at the top of the page next to the logout button, adjust any settings you want, then click submit to apply them.');\n\t\t\t\tthis._services._router.navigateByUrl(this._services._router.url.split('/')[0] + '/user-settings/settings')\n\t\t\t}\n\t\t\telse {\n\t\t\t\tdocument.documentElement.style.setProperty('--warning-color', '#ffc107');\n\t\t\t\tdocument.documentElement.style.setProperty('--warning-font-color', '#000000');\n\t\t\t\tdocument.documentElement.style.setProperty('--warning-shadow-color', '0 0 0 0.2rem rgba(222, 170, 12, 0.5)');\n\t\t\t\tdocument.documentElement.style.setProperty('--warning-hover-color', '#e0a800');\n\t\t\t\tdocument.documentElement.style.setProperty('--success-color', '#28a745');\n\t\t\t\tdocument.documentElement.style.setProperty('--success-font-color', '#ffffff');\n\t\t\t\tdocument.documentElement.style.setProperty('--success-shadow-color', '0 0 0 0.2rem rgba(72, 180, 97, 0.5)');\n\t\t\t\tdocument.documentElement.style.setProperty('--success-hover-color', '#218838');\n\t\t\t\tdocument.documentElement.style.setProperty('--danger-color', '#dc3545');\n\t\t\t\tdocument.documentElement.style.setProperty('--danger-font-color', '#ffffff');\n\t\t\t\tdocument.documentElement.style.setProperty('--danger-shadow-color', '0 0 0 0.2rem rgba(225, 83, 97, 0.5)');\n\t\t\t\tdocument.documentElement.style.setProperty('--danger-hover-color', '#c82333');\n\t\t\t\tdocument.documentElement.style.setProperty('--info-color', '#17a2b8');\n\t\t\t\tdocument.documentElement.style.setProperty('--info-font-color', '#ffffff');\n\t\t\t\tdocument.documentElement.style.setProperty('--info-shadow-color', '0 0 0 0.2rem rgba(58, 176, 195, 0.5)');\n\t\t\t\tdocument.documentElement.style.setProperty('--info-hover-color', '#138496');\n\t\t\t\tdocument.documentElement.style.setProperty('--primary-color', '#007bff');\n\t\t\t\tdocument.documentElement.style.setProperty('--primary-font-color', '#ffffff');\n\t\t\t\tdocument.documentElement.style.setProperty('--primary-shadow-color', '0 0 0 0.2rem rgba(38, 143, 255, 0.5)');\n\t\t\t\tdocument.documentElement.style.setProperty('--primary-hover-color', '#0069d9');\n\t\t\t\tdocument.documentElement.style.setProperty('--secondary-color', '#868e96');\n\t\t\t\tdocument.documentElement.style.setProperty('--secondary-font-color', '#ffffff');\n\t\t\t\tdocument.documentElement.style.setProperty('--secondary-shadow-color', '0 0 0 0.2rem rgba(130, 138, 145, 0.5)');\n\t\t\t\tdocument.documentElement.style.setProperty('--secondary-hover-color', '#5a6268');\n\t\t\t\tthis.fontSize = 12;\n\t\t\t}\n\n\t\t\tthis.user = user;\n\t\t});\n\n\t\t// if (!this.previousRouterErrorHandler) {\n\t\t// \tthis.previousRouterErrorHandler = this._services._router.errorHandler;\n\t\t// \tthis._services._router.errorHandler = function (err: any) {\t\n\t\t// \t\treturn this.previousRouterErrorHandler.apply(this.previousRouterErrorHandler, arguments);\n\t\t// \t};\n\t\t// }\n\n\t\tif (this._deviceDet.isMobile() || this._deviceDet.isTablet()) {\n\t\t\tthis._services._app.setIsDevice(true);\n\t\t\tthis.isDevice = true;\n\t\t}\n\t\telse {\n\t\t\tthis._services._app.setIsDevice(false);\n\t\t\tthis.isDevice = false;\n\t\t}\n\n\t\tif (this.environment.IS_PRODUCTION) {\n\t\t\tthis._services._socket.subscribeBypassRoute('flagWithType', 'newSW').subscribe(flag => {\n\t\t\t\tif (flag) {\n\t\t\t\t\tthis.swFlagAlert = this._services._alert.setAlert('info', 'This page will reload once new version has been downloaded', 0);\n\t\t\t\t\tthis._services._app.setIsInvalidSW(true);\n\n\t\t\t\t\tif (!navigator.serviceWorker) {\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\twindow.location.reload();\n\t\t\t\t\t\t}, 3000);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tnavigator.serviceWorker.getRegistrations().then(registrations => {\n\t\t\t\t\t\t\tif (!registrations || !registrations.length) {\n\t\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\t\twindow.location.reload();\n\t\t\t\t\t\t\t\t}, 3000);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, err => {\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\twindow.location.reload();\n\t\t\t\t\t\t\t}, 3000);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (this.swFlagAlert) {\n\t\t\t\t\tthis._services._app.setIsInvalidSW(false);\n\t\t\t\t\tthis._services._alert.clearAlert(this.swFlagAlert.toastId);\n\t\t\t\t\tthis.swFlagAlert = null;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis._offline.offlineMode.subscribe(offline => {\n\t\t\tthis.isOffline = offline;\n\t\t});\n\n\t\tthis._services._account.getSocketStatus().subscribe(status => {\n\t\t\tthis.socketStatus = status;\n\t\t\t\n\t\t\tif (!this.user) {\n\t\t\t\tthis.isConnected = false;\n\t\t\t\tthis.isConnecting = false;\n\n\t\t\t\tthis.connectedHeight = 40;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (this.socketStatus === WebSocket.OPEN) {\n\t\t\t\t\tthis.isConnected = true;\n\t\t\t\t\tthis.isConnecting = false;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.isConnected = false;\n\n\t\t\t\t\tif (this.socketStatus === WebSocket.CONNECTING) {\n\t\t\t\t\t\tthis.isConnecting = true;\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.isConnecting = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif (!this.isConnected) {\n\t\t\t\t\tthis.connectedHeight = 40;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.connectedHeight = 0;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis._services._socket.subscribeBypassRoute('appstatus').subscribe(appstatus => {\n\t\t\tthis.status = appstatus; //OK if not defined\n\t\t\tthis._services._app.setHasStatusMessage(this.status ? true : false);\n\t\t\tthis.statusHeight = this.status ? 40 : 0;\n\t\t});\n\n\t\tsetTimeout(() => {\n\t\t\tthis.navbarMainHeight = this.el_navBarMain.nativeElement.children[0].clientHeight;\n\t\t}, 100);\n\t\t\n\t\tsetTimeout(() => {\n\t\t\tthis.navbarMainHeight = this.el_navBarMain.nativeElement.children[0].clientHeight;\n\t\t}, 1000);\n\n\t\tsetTimeout(() => {\n\t\t\tthis.navbarMainHeight = this.el_navBarMain.nativeElement.children[0].clientHeight;\n\t\t}, 5000);\n\n\t\tif (this.isDevice) {\n\t\t\tlet firstRedirect = false;\n\t\t\tlet lastURL = <string>this._storage.get('lastURL');\n\n\t\t\tthis._services._router.events.subscribe((event: NavigationEnd) => {\n\t\t\t\tif (lastURL && lastURL !== '/' && !firstRedirect) {\n\t\t\t\t\tif (event.url === '' || event.url === '/') {\n\t\t\t\t\t\tthis._services._router.navigateByUrl(lastURL);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfirstRedirect = true;\n\n\t\t\t\tif (event.url) {\n\t\t\t\t\tthis._storage.set('lastURL', event.url);\n\t\t\t\t}\n\t\t\t\telse if (event.urlAfterRedirects) {\n\t\t\t\t\tthis._storage.set('lastURL', event.urlAfterRedirects);\n\t\t\t\t}\t\t\t\t\n\t\t\t});\n\t\t}\n\n\t\tif (['iPad', 'iPhone', 'iPod'].indexOf(navigator.platform) >= 0 && ('standalone' in window.navigator) && (<any>window.navigator).standalone) {\n\t\t\tthis.showNavigationMenu = true;\n\t\t}\n\n\t\twindow.addEventListener('orientationchange', () => {\n\t\t\tif (window.orientation === -90) {\n\t\t\t\tthis.orientation = 'landscape';\n\t\t\t}\n\t\t\tif (window.orientation === 90) {\n\t\t\t\tthis.orientation = 'landscape';\n\t\t\t}\n\t\t\tif (window.orientation === 0) {\n\t\t\t\tthis.orientation = 'portrait';\n\t\t\t}\n\t\t}, true);\n\n\t\tlet mousewheelEvent;\n\n document.addEventListener('focus', function() {\n if (document.activeElement instanceof HTMLElement && document.activeElement.nodeName === 'INPUT' && document.activeElement['type'] === 'number') {\n mousewheelEvent = true;\n document.addEventListener('mousewheel', handleMousewheelEvent, { passive: true });\n }\n }, true);\n\n document.addEventListener('blur', function() {\n if (mousewheelEvent) {\n mousewheelEvent = false;\n document.removeEventListener('mousewheel', handleMousewheelEvent);\n }\n\t\t}, true);\n\t\t\n\t\twindow.addEventListener('dragover', (e) => {\n\t\t\tlet ev = e || event;\n\t\t\tev.preventDefault();\n\t\t}, false);\n\t\t\n\t\twindow.addEventListener('drop', (e) => {\n\t\t\tlet ev = e || event;\n\t\t\tev.preventDefault();\n\t\t}, false);\n\t}\n\n\tgetNavbarModuleHeight() {\n\t\treturn this.el_navBarModule ? this.el_navBarModule.nativeElement.children[0].clientHeight : 0;\n\t}\n\n\tonPushBackButton() {\n\t\twindow.history.back();\n\t}\n\n\tonPushReloadButton() {\n\t\twindow.location.reload();\n\t}\n\n\tonPushForwardButton() {\n\t\twindow.history.forward();\n\t}\n\n\topenNav() {\n\t\tlet x = document.getElementById('navSid');\n\t\tlet y = document.getElementById('main_cont');\n\t\tif (x.style.width === '40px' && y.style.paddingLeft === '45px') {\n\t\t\tx.style.width = '195px';\n\t\t\ty.style.paddingLeft = '210px';\n\t\t}\n\t\telse {\n\t\t\tx.style.width = '40px';\n\t\t\ty.style.paddingLeft = '45px';\n\t\t}\n\t}\n\t\t\n\tcloseNav() {\n\t\tdocument.getElementById('navSid').style.width = '40px';\n\t\tdocument.getElementById('main_cont').style.paddingLeft = '45px';\t\n\t}\n}\n\nfunction handleMousewheelEvent() {\n\t(<any>document.activeElement).blur();\n}\n\nfunction hexToRGB(hex, alpha) {\n let r = parseInt(hex.slice(1, 3), 16),\n g = parseInt(hex.slice(3, 5), 16),\n b = parseInt(hex.slice(5, 7), 16);\n\n if (alpha) {\n return \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + alpha + \")\";\n } else {\n return \"rgb(\" + r + \", \" + g + \", \" + b + \")\";\n }\n}","<style>\n\t:root {\n --warning-color: #ffc107;\n --warning-font-color: #000000;\n --warning-hover-color: #e0a800;\n --warning-shadow-color: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n --success-color: #28a745;\n --success-font-color: #ffffff;\n --success-hover-color: #218838;\n --success-shadow-color: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n --danger-color: #dc3545;\n --danger-font-color: #ffffff;\n --danger-hover-color: #c82333;\n --danger-shadow-color: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n --info-color: #17a2b8;\n --info-font-color: #ffffff;\n --info-hover-color: #138496;\n --info-shadow-color: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n --primary-color: #007bff;\n --primary-font-color: #ffffff;\n --primary-hover-color: #0069d9;\n --primary-shadow-color: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n --secondary-color: #868e96;\n --secondary-font-color: #ffffff;\n --secondary-hover-color: #5a6268;\n --secondary-shadow-color: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n }\n\n\t:host /deep/ .btn-warning {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-color);\n\t\tborder-color: var(--warning-color);\n\t}\n\t:host /deep/ .btn-warning:focus, .btn-warning.focus {\n\t\tbox-shadow: var(--warning-shadow-color);\n\t}\n\t:host /deep/ .btn-warning:hover {\n\t\tcolor: var(--warning-font-color);\n\t\tbackground-color: var(--warning-hover-color);\n\t\tborder-color: var(--warning-hover-color);\n\t}\n\n\t:host /deep/ .btn-success {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-color);\n\t\tborder-color: var(--success-color);\n\t}\n\t:host /deep/ .btn-success:focus, .btn-success.focus {\n\t\tbox-shadow: var(--success-shadow-color);\n\t}\n\t:host /deep/ .btn-success:hover {\n\t\tcolor: var(--success-font-color);\n\t\tbackground-color: var(--success-hover-color);\n\t\tborder-color: var(--success-hover-color);\n\t}\n\n\t:host /deep/ .btn-danger {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-color);\n\t\tborder-color: var(--danger-color);\n\t}\n\t:host /deep/ .btn-danger:focus, .btn-danger.focus {\n\t\tbox-shadow: var(--danger-shadow-color);\n\t}\n\t:host /deep/ .btn-danger:hover {\n\t\tcolor: var(--danger-font-color);\n\t\tbackground-color: var(--danger-hover-color);\n\t\tborder-color: var(--danger-hover-color);\n\t}\n\n\t:host /deep/ .btn-info {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-color);\n\t\tborder-color: var(--info-color);\n\t}\n\t:host /deep/ .btn-info:focus, .btn-info.focus {\n\t\tbox-shadow: var(--info-shadow-color);\n\t}\n\t:host /deep/ .btn-info:hover {\n\t\tcolor: var(--info-font-color);\n\t\tbackground-color: var(--info-hover-color);\n\t\tborder-color: var(--info-hover-color);\n\t}\n\n\t:host /deep/ .btn-primary {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-color);\n\t\tborder-color: var(--primary-color);\n\t}\n\t:host /deep/ .btn-primary:focus, .btn-primary.focus {\n\t\tbox-shadow: var(--primary-shadow-color);\n\t}\n\t:host /deep/ .btn-primary:hover {\n\t\tcolor: var(--primary-font-color);\n\t\tbackground-color: var(--primary-hover-color);\n\t\tborder-color: var(--primary-hover-color);\n\t}\n\n\t:host /deep/ .btn-secondary {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-color);\n\t\tborder-color: var(--secondary-color);\n\t}\n\t:host /deep/ .btn-secondary:focus, .btn-secondary.focus {\n\t\tbox-shadow: var(--secondary-shadow-color);\n\t}\n\t:host /deep/ .btn-secondary:hover {\n\t\tcolor: var(--secondary-font-color);\n\t\tbackground-color: var(--secondary-hover-color);\n\t\tborder-color: var(--secondary-hover-color);\n\t}\n\t\n \t@media print {\n\t \t.dontPrint * {\n\t\t \tdisplay: none !important;\n\t \t}\n\n\t\t.myDivToPrintCs {\n\t\t\tbackground-color: white;\n\t\t\theight: 100%;\n\t\t\twidth: 100%;\n\t\t\tfont-size: 12px;\n\t\t\tline-height: 12px;\n\t\t\tpage-break-after: avoid;\n\t\t\tdisplay: initial;\n\t\t}\n\n\t\t.removeOverflow {\n\t\t\toverflow-y: hidden !important; \n\t\t\theight: 100% !important;\n\t\t}\n \t}\n\n \t.hideThis {\n\t\tdisplay: none !important;\n\t}\n\n\t.navSidbar {\n\t\twidth: 0px;\n\t\tposition: fixed;\n\t\tz-index: 1;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\tbackground-color: #343a40;\n\t\toverflow: hidden;\n\t\ttransition: 0.5s;\n\t\tpadding-top: 0px;\n\t}\n\n\t.navSidbar a {\n\t\tpadding: 8px 8px 8px 32px;\n\t\ttext-decoration: none;\n\t\tfont-size: 25px;\n\t\tcolor: #818181;\n\t\tdisplay: block;\n\t\ttransition: 0.3s;\n\t}\n\n\t.navSidbar a:hover {\n\t\tcolor: #f1f1f1;\n\t}\n\n\t.openbtn {\n\t\tbackground-color: #343a40;\n\t\tborder: none;\n\t\tcolor: #fff;\n\t\tpadding: 5px 20px;\n\t\tfont-size: 18px;\n\t\tright: 0;\n\t\ttop: 0px;\n\t\tposition: absolute;\n\t\tz-index: 999999;\n\t\tcursor: pointer;\n\t\tfloat: right;\n\t\theight: 100%;\n\t}\n\n\t.openbtn span {\n\t\tfont-size: 20px;\n\t\tdisplay: block;\n\t\theight: auto;\n\t\twidth: auto;\n\t\ttext-align: center;\n\t\tposition: absolute;\n\t\tleft: 50%;\n\t\ttop: 50%;\n\t\ttransform: translate(-50%, -50%) rotate(-90deg);\n\t\tmargin-top: -55px;\n\t\tletter-spacing: 30px;\n\t}\n\t#main_cont {\n\t\ttransition: padding-left .5s;\n\t}\n\n\t.sid_inr {\n\t\tpadding-left: 25px;\n\t}\n\n\t@keyframes shimmer {\n 0%, 50% {\n background-position: 120% 0;\n }\n 100% {\n background-position: -80% 0;\n }\n }\n\n .shimmer::before {\n content: \"\";\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: linear-gradient(\n -75deg,\n rgba(255, 255, 255, 0) 40%, \n rgba(255, 255, 255, 0.7) 50%, \n rgba(255, 255, 255, 0) 60%\n );\n background-size: 200% 100%;\n animation: shimmer 5s linear infinite;\n animation-fill-mode: forwards;\n z-index: 11;\n }\n</style>\n<div *ngIf=\"isDevice\">\n\t<link rel=\"stylesheet\" type=\"text/css\" href=\"/assets/css/tablet.css\">\n</div>\n<div #shell>\n\t<div *ngIf=\"user && (!isConnected || isOffline) && !publicProgram\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\" class=\"shimmer\">*** OFFLINE MODE ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"!user && (!isConnected || isOffline) && !publicProgram\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\" class=\"shimmer\">*** PLEASE LOGIN ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"status\">\n\t\t<div style=\"height: 40px; text-align: center; vertical-align: middle; background-color: red; color: white;\">\n\t\t\t<div style=\"padding-top: 9px; padding-bottom: 9px;\" class=\"shimmer\">*** {{ status.message }} ***</div>\n\t\t</div>\n\t</div>\n\t<div *ngIf=\"fullScreen\">\n\t\t<router-outlet name=\"jobboardfsoutlet\"></router-outlet>\n\t</div>\n\t<div [ngClass]=\"['container-fluid', fullScreen ? 'hideThis' : '']\" [style.font-size.px]=\"fontSize\">\n\t\t<div class=\"dontPrint\">\n\t\t\t<navbar-main style=\"width: 100%\" tourAnchor=\"navBarMain\" #navBarMain [logo]=\"logo\" [navTabs]=\"navTabs\" [fontSize]=\"fontSize\" [publicProgram]=\"publicProgram\"></navbar-main>\n\t\t</div>\n\t\t<ng-template ngbModalContainer></ng-template>\n\t\t<div class=\"row\">\n\t\t\t<div id=\"navSid\" *ngIf=\"showNavbarModule\" [ngClass]=\"['dontPrint', windowSizeWidth > 1200 && collapsableMenu ? 'navSidbar' : 'col-xl-1']\" [style.width]=\"windowSizeWidth > 1200 && collapsableMenu ? 40 + 'px' : 100 + '%'\" [style.margin-top.px]=\"windowSizeWidth > 1200 && collapsableMenu ? navbarMainHeight + statusHeight + connectedHeight : 0\" >\n\t\t\t\t<div class=\"openbtn\" *ngIf=\"windowSizeWidth > 1200 && collapsableMenu\" (mouseenter)=\"openNav()\"><span>MENU</span></div>\n\t\t\t\t<div [ngClass]=\"windowSizeWidth > 1200 && collapsableMenu ? 'sid_inr' : ''\">\n\t\t\t\t\t<navbar-module #navBarModule tourAnchor=\"navBarModule\" [sideNavWidth]=\"windowSizeWidth > 1200 && collapsableMenu ? '90%' : 'auto'\" [sideNavHeight]=\"windowSizeWidth > 1200 && collapsableMenu ? windowSizeHeight - navbarMainHeight - statusHeight - connectedHeight - (showNavigationMenu ? (54 + getNavbarModuleHeight()) : 0) - ((!isDevice || (isDevice && showNavigationMenu)) ? 20 : 0) : ''\"></navbar-module>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div [id]=\"windowSizeWidth > 1200 ? 'main_cont' : 'main_cont_mobile'\" [ngClass]=\"[windowSizeWidth > 1200 && collapsableMenu ? 'col-xl-12' : 'col-xl-11']\" [style.padding-left]=\"windowSizeWidth > 1200 && collapsableMenu && showNavbarModule ? 45 + 'px' : null\" [style.padding]=\"((isDevice && windowSizeWidth <= 1200) || !showNavbarModule) ? 0 + 'px' : null\" (mouseenter)=\"windowSizeWidth > 1200 && collapsableMenu && showNavbarModule ? closeNav() : null\" style=\"padding-right: 5px\">\n\t\t\t\t<div style=\"-webkit-overflow-scrolling: touch\" [style.overflow-y]=\"(isDevice && !showNavigationMenu) ? 'initial' : 'scroll'\" [style.height.px]=\"windowSizeHeight - ((isDevice && windowSizeWidth <= 1200) && !showNavigationMenu ? (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight()) : 0) - navbarMainHeight - (!publicProgram ? statusHeight : 0) - (!publicProgram ? connectedHeight : 0) - (isDevice && showNavigationMenu ? (54 + (getNavbarModuleHeight() > 100 ? 0 : getNavbarModuleHeight())) : 0) - ((!isDevice || (isDevice && showNavigationMenu)) ? 20 : 0)\" class=\"removeOverflow\">\n\t\t\t\t\t<router-outlet></router-outlet>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"isDevice && showNavigationMenu\" style=\"height: 54px; background-color: lightgray; margin-left: -15px; margin-right: -15px;\" class=\"dontPrint\">\n\t\t\t<table style=\"width: 100%\">\n\t\t\t\t<tr>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushBackButton()\"><i class=\"fa fa-arrow-left\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushReloadButton()\"><i class=\"fa fa-refresh\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t\t<td style=\"text-align: center\">\n\t\t\t\t\t\t<button type=\"button\" class=\"btn\" style=\"background-color: lightgray\" (click)=\"onPushForwardButton()\"><i class=\"fa fa-arrow-right\" style=\"color: black; font-size: 20px\"></i></button>\n\t\t\t\t\t</td>\n\t\t\t\t</tr>\n\t\t\t</table>\n\t\t</div>\n\t\t<div *ngIf=\"!isDevice\" style=\"text-align: center; height: 20px; font-style: italic; font-weight: bold; background-color: lightgray; margin-left: -15px; margin-right: -15px;\">© {{year}} RESOLVEIO ALL RIGHTS RESERVED</div>\n\t</div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { dateReviver } from '../util/common.helper';\n\n@Pipe({\n\tname: 'jsonParse',\n\tpure: false\n})\nexport class JsonParsePipe implements PipeTransform { \n\ttransform(value: string): string { \n\t\tlet parse = null;\n\t\tlet error = false;\n\n\t\ttry {\n\t\t\tparse = JSON.parse(value, dateReviver);\n\t\t}\n\t\tcatch (e) {\n\t\t\terror = true;\n\t\t}\n\n\t\tif (error) {\n\t\t\treturn value;\n\t\t}\n\t\t\n\t\treturn JSON.stringify(parse, null, 2);\n\t}\n}","import { Component, OnInit, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { ProviderService, BaseComponent } from '../resolveio-class';\nimport moment from 'moment';\nimport { DialogService } from '../widgets/dialog/dialog.service';\n\n@Component({\n\tproviders: [ProviderService],\n\ttemplateUrl: './logger.component.html',\n\tchangeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class LoggerComponent extends BaseComponent implements OnInit, OnDestroy { \n\n\tsubscription$: Subscription[] = [];\n\tlogs: any[] = [];\n\n\tentries_per_page = 25;\n\tpage_num = 1;\n\tlog_cnt = 0;\n\n\tuser = null;\n\tusers = [];\n\n\tdateStartElem;\n\tdateEndElem;\n\ttimeStartElem;\n\ttimeEndElem;\n\tdateStart: Date;\n\tdateEnd: Date;\n\n\tselectedTypes = [];\n\n\tcollection = '';\n\tmethod = '';\n\troute = '';\n\tid_document = '';\n\n\tconstructor(private _services: ProviderService, private _ds: DialogService, private _cd: ChangeDetectorRef) {\n\t\tsuper(_services);\n\t}\n\n\tngOnInit() {\n\t\tif (!this._services._account.getUser().roles.super_admin) {\n\t\t\tthis._services._router.navigateByUrl('/home');\n\t\t}\n\n\t\tthis.subscription$.push(this._services._socket.subscribe('allUsers').subscribe(users => {\n\t\t\tthis.users = users;\n\n\t\t\tthis._cd.detectChanges();\n\t\t}));\n\n\t\tlet jsDateStart = new Date();\n\t\tjsDateStart.setHours(0, 0, 0, 0);\n\t\tlet date_start = new Date(moment(jsDateStart).subtract(10, 'days').toDate());\n\t\tthis.dateStartElem = {year: date_start.getFullYear(), month: date_start.getMonth() + 1, day: date_start.getDate()};\n\t\tthis.timeStartElem = {hour: 0, minute: 0, second: 0};\n\n\t\tlet jsDateEnd = new Date();\n\t\tjsDateEnd.setHours(23, 59, 59, 999);\n\t\tlet date_end = jsDateEnd;\n\t\tthis.dateEndElem = {year: date_end.getFullYear(), month: date_end.getMonth() + 1, day: date_end.getDate()};\n\t\tthis.timeEndElem = {hour: 23, minute: 59, second: 59};\n\n\t\tthis.getLogData();\n\t}\n\n\tngOnDestroy() {\n\t\tthis.subscription$.forEach(sub => {\n\t\t\tsub.unsubscribe();\n\t\t});\n\t}\n\n\tgetLogData() {\n\t\tthis.dateStart = new Date(this.dateStartElem.year, this.dateStartElem.month - 1, this.dateStartElem.day, this.timeStartElem.hour, this.timeStartElem.minute, this.timeStartElem.second, 0);\n\t\tthis.dateEnd = new Date(this.dateEndElem.year, this.dateEndElem.month - 1, this.dateEndElem.day, this.timeEndElem.hour, this.timeEndElem.minute, this.timeEndElem.second, 999);\n\n\t\tlet query: any = {\n\t\t\t$and: [\n\t\t\t\t{createdAt: {$gte: this.dateStart}},\n\t\t\t\t{createdAt: {$lte: this.dateEnd}}\n\t\t\t]\n\t\t};\n\n\t\tif (!this.selectedTypes.length) {\n\t\t\treturn;\n\t\t}\n\t\telse {\n\t\t\tquery.$and.push({type: {$in: this.selectedTypes}});\n\t\t}\n\n\t\tif (this.collection) {\n\t\t\tif (this.collection.includes(',')) {\n\t\t\t\tlet collections = this.collection.split(',').map(a => a.trim()).filter(a => !a.startsWith('!'));\n\t\t\t\tif (collections.length) {\n\t\t\t\t\tquery.$and.push({collection: {$in: collections}});\n\t\t\t\t}\n\n\t\t\t\tlet notCollections = this.collection.split(',').map(a => a.trim()).filter(a => a.startsWith('!'));\n\t\t\t\tnotCollections.forEach(not => {\n\t\t\t\t\tquery.$and.push({collection: {$ne: not.replace('!', '')}});\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (this.collection.startsWith('!')) {\n\t\t\t\t\tquery.$and.push({collection: {$ne: this.collection.replace('!', '').trim()}});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tquery.$and.push({collection: this.collection.trim()});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.method) {\n\t\t\tif (this.method.includes(',')) {\n\t\t\t\tlet methods = this.method.split(',').map(a => a.trim()).filter(a => !a.startsWith('!'));\n\t\t\t\tif (methods.length) {\n\t\t\t\t\tquery.$and.push({method: {$in: methods}});\n\t\t\t\t}\n\n\t\t\t\tlet notMethods = this.method.split(',').map(a => a.trim()).filter(a => a.startsWith('!'));\n\t\t\t\tnotMethods.forEach(not => {\n\t\t\t\t\tquery.$and.push({method: {$ne: not.replace('!', '')}});\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (this.method.startsWith('!')) {\n\t\t\t\t\tquery.$and.push({method: {$ne: this.method.replace('!', '').trim()}});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tquery.$and.push({method: this.method.trim()});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.route) {\n\t\t\tif (this.route.includes(',')) {\n\t\t\t\tlet routes = this.route.split(',').map(a => a.trim()).filter(a => !a.startsWith('!'));\n\t\t\t\tif (routes.length) {\n\t\t\t\t\tquery.$and.push({route: {$in: routes}});\n\t\t\t\t}\n\n\t\t\t\tlet notRoutes = this.route.split(',').map(a => a.trim()).filter(a => a.startsWith('!'));\n\t\t\t\tnotRoutes.forEach(not => {\n\t\t\t\t\tquery.$and.push({route: {$ne: not.replace('!', '')}});\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (this.route.startsWith('!')) {\n\t\t\t\t\tquery.$and.push({route: {$ne: this.route.replace('!', '').trim()}});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tquery.$and.push({route: this.route.trim()});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (this.id_document) {\n\t\t\tif (this.id_document.includes(',')) {\n\t\t\t\tlet id_documents = this.id_document.split(',').map(a => a.trim()).filter(a => !a.startsWith('!'));\n\t\t\t\tif (id_documents.length) {\n\t\t\t\t\tquery.$and.push({id_document: {$in: id_documents}});\n\t\t\t\t}\n\n\t\t\t\tlet notIds = this.id_document.split(',').map(a => a.trim()).filter(a => a.startsWith('!'));\n\t\t\t\tnotIds.forEach(not => {\n\t\t\t\t\tquery.$and.push({id_document: {$ne: not.replace('!', '')}});\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (this.id_document.startsWith('!')) {\n\t\t\t\t\tquery.$and.push({id_document: {$ne: this.id_document.replace('!', '').trim()}});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tquery.$and.push({id_document: this.id_document.trim()});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (this.user) {\n\t\t\tquery.$and.push({user: this.user});\n\t\t}\n\n\t\tif (typeof(this.entries_per_page) === 'string') {\n\t\t\tthis.entries_per_page = parseInt(this.entries_per_page);\n\t\t}\n\t\t\n\t\tthis._services._socket.call('findWithOptions', 'logs', query, {sort: {createdAt: -1}, limit: this.entries_per_page, skip: this.entries_per_page * (this.page_num - 1)}, (err, res) => {\n\t\t\tthis.logs = res;\n\n\t\t\tthis._cd.detectChanges();\n\t\t});\n\n\t\tthis._services._socket.call('countCollectionWithQuery', 'logs', query, (err, res) => {\n\t\t\tthis.log_cnt = res;\n\n\t\t\tthis._cd.detectChanges();\n\t\t});\n\n\t\tthis._cd.detectChanges();\n\t}\n\n\tselectType(type: string) {\n\t\tif (type !== 'all') {\n\t\t\tif (this.selectedTypes.includes(type)) {\n\t\t\t\tthis.selectedTypes.splice(this.selectedTypes.indexOf(type), 1);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.selectedTypes.push(type);\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tif (this.selectedTypes.length === 7) {\n\t\t\t\tthis.selectedTypes = [];\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.selectedTypes = ['error', 'document', 'query', 'queryResponse', 'client-request', 'client-response', 'callMethodInternal'];\n\t\t\t}\n\t\t}\n\n\t\tthis.logs = [];\n\n\t\tif (this.selectedTypes.length) {\n\t\t\tthis.getLogData();\n\t\t}\n\t}\n\n\ticon(type) {\n\t\tif (type === 'error') {\n\t\t\treturn 'danger';\n\t\t}\n\t\telse if (type === 'document') {\n\t\t\treturn 'info';\n\t\t}\n\t\telse if (type === 'client-response') {\n\t\t\treturn 'success';\n\t\t}\n\t\telse if (type === 'client-request') {\n\t\t\treturn 'primary';\n\t\t}\n\t\telse {\n\t\t\treturn 'secondary';\n\t\t}\n\t}\n\n\tremoveAllLogs() {\n\t\tthis._ds.confirm('Are you sure you want to delete all logs?').then(() => {\n\t\t\tthis._services._socket.call('removeAllDocuments', 'logs');\n\t\t}, () => { });\n\t}\n}\n","<style>\n\t.label-accordion {\n\t\tfont-weight: bold;\n\t\tcolor: black;\n\t\tmargin-bottom: 0px;\n\t}\n\tngb-accordion {\n\t\twidth: 100%;\n\t}\n\t.hoverThis:hover {\n\t\tbackground: lightblue;\n\t\tcursor: pointer;\n\t}\n\t\n\t.fa-plus {\n\t\tcolor: black;\n\t}\n\t.fa-minus {\n\t\tcolor: black;\n\t}\n\t\n\t.selected {\n\t\tbackground-color: orange;\n\t}\n\t.selected:hover {\n\t\tcursor: pointer;\n\t}\n\t.card {\n\t\twidth: 100%;\n\t}\n</style>\n\n<div class=\"row\">\n\t<div class=\"col-lg-12\">\n\t\t<div class=\"card\">\n\t\t\t<div class=\"card-header\"><b>Filters</b></div>\n\t\t\t<div class=\"card-body\">\n\t\t\t\t<div class=\"row\">\n\t\t\t\t\t<div class=\"col-lg-12\">\n\t\t\t\t\t\t<responsive-button-group collapseSize=\"900\">\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('error') && selectedTypes.includes('document') && selectedTypes.includes('query') && selectedTypes.includes('client-request') && selectedTypes.includes('client-response') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('all')\">All</button>\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('error') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('error')\">Errors</button>\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('document') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('document')\">Document</button>\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('query') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('query')\">Query</button>\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('queryResponse') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('queryResponse')\">Query Response</button>\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('client-request') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('client-request')\">Client Requests</button>\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('client-response') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('client-response')\">Client Responses</button>\n\t\t\t\t\t\t\t<button type=\"button\" [ngClass]=\"['btn', selectedTypes.includes('callMethodInternal') ? 'btn-success' : 'btn-warning']\" (click)=\"selectType('callMethodInternal')\">Call Method Internal</button>\n\t\t\t\t\t\t\t<button type=\"button\" class=\"btn btn-danger\" (click)=\"removeAllLogs()\">REMOVE ALL LOGS</button>\n\t\t\t\t\t\t</responsive-button-group>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"row\" style=\"margin-top: 10px;\">\n\t\t\t\t\t<div class=\"col-lg-2\">\n\t\t\t\t\t\t<label class=\"form-control-label\">User</label>\n\t\t\t\t\t\t<ng-select [(ngModel)]=\"user\" (change)=\"getLogData()\" placeholder=\"Select User\">\n\t\t\t\t\t\t\t<ng-option *ngFor=\"let user of users\" [value]=\"user.fullname\">{{user.fullname}}</ng-option>\n\t\t\t\t\t\t</ng-select>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-lg-2\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Collection</label>\n\t\t\t\t\t\t<input class=\"form-control\" [(ngModel)]=\"collection\" (change)=\"getLogData()\" placeholder=\"Input Colls Sep By , & ! for !Not\">\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-lg-2\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Method</label>\n\t\t\t\t\t\t<input class=\"form-control\" [(ngModel)]=\"method\" (change)=\"getLogData()\" placeholder=\"Input Methods Sep By , & ! for !Not\">\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-lg-2\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Route</label>\n\t\t\t\t\t\t<input class=\"form-control\" [(ngModel)]=\"route\" (change)=\"getLogData()\" placeholder=\"Input Routes Sep By , & ! for !Not\">\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-lg-2\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Document</label>\n\t\t\t\t\t\t<input class=\"form-control\" [(ngModel)]=\"id_document\" (change)=\"getLogData()\" placeholder=\"Input Ids Sep By , & ! for !Not\">\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"row\" style=\"margin-top: 10px;\">\n\t\t\t\t\t<div class=\"col-lg-3\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Date Start</label>\n\t\t\t\t\t\t<div class=\"input-group\">\n\t\t\t\t\t\t\t<input class=\"form-control\" [(ngModel)]=\"dateStartElem\" ngbDatepicker #dStart=\"ngbDatepicker\" (change)=\"getLogData()\">\n\t\t\t\t\t\t\t<div class=\"input-group-append\" (click)=\"dStart.toggle()\">\n\t\t\t\t\t\t\t\t<div class=\"input-group-text\">\n\t\t\t\t\t\t\t\t\t<i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-lg-3\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Time Start</label>\n\t\t\t\t\t\t<ngb-timepicker [(ngModel)]=\"timeStartElem\" meridian=\"ON\" [seconds]=\"true\" (change)=\"getLogData()\"></ngb-timepicker>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-lg-3\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Date End</label>\n\t\t\t\t\t\t<div class=\"input-group\">\n\t\t\t\t\t\t\t<input class=\"form-control\" [(ngModel)]=\"dateEndElem\" ngbDatepicker #dEnd=\"ngbDatepicker\" (change)=\"getLogData()\">\n\t\t\t\t\t\t\t<div class=\"input-group-append\" (click)=\"dEnd.toggle()\">\n\t\t\t\t\t\t\t\t<div class=\"input-group-text\">\n\t\t\t\t\t\t\t\t\t<i class=\"fa fa-calendar\" aria-hidden=\"true\"></i>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"col-lg-3\">\n\t\t\t\t\t\t<label class=\"form-control-label\">Time End</label><br>\n\t\t\t\t\t\t<ngb-timepicker [(ngModel)]=\"timeEndElem\" meridian=\"ON\" [seconds]=\"true\" (change)=\"getLogData()\"></ngb-timepicker>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n<div class=\"row\">\n\t<div class=\"col-lg-8\">\n\t\t<label class=\"form-control-label\">Entries Per Page</label>\n\t\t<select class=\"form-control\" [(ngModel)]=\"entries_per_page\" (change)=\"getLogData()\">\n\t\t\t<option value=\"10\">10</option>\n\t\t\t<option value=\"25\">25</option>\n\t\t\t<option value=\"50\">50</option>\n\t\t\t<option value=\"100\">100</option>\n\t\t\t<option value=\"250\">250</option>\n\t\t\t<option value=\"500\">500</option>\n\t\t\t<option value=\"1000\">1000</option>\n\t\t\t<option value=\"5000\">5000</option>\n\t\t</select>\n\t</div>\n\t<div class=\"col-lg-4\">\n\t\t<ngb-pagination class=\"float-right\"\n\t\tboundaryLinks=\"true\"\n\t\t[collectionSize]=\"log_cnt\"\n\t\tdirectionLinks=\"true\"\n\t\tellipses=\"false\"\n\t\t[(page)]=\"page_num\"\n\t\tmaxSize=\"6\"\n\t\t[pageSize]=\"entries_per_page\"\n\t\trotate=\"true\"\n\t\t(pageChange)=\"getLogData()\"\n\t\t>\n\t\t</ngb-pagination>\n\t</div>\n</div>\n<div class=\"row\" style=\"margin-top: 10px\">\n\t<ngb-accordion #acc=\"ngbAccordion\" activeIds=\"\">\n\t\t<ngb-panel *ngFor=\"let log of logs; let i = index\" [id]=\"'log_' + i\">\n\t\t\t<ng-template ngbPanelTitle>\n\t\t\t\t<div> \n\t\t\t\t\t<label class=\"label-accordion\" style=\"width: 90%; height: 22px\">\n\t\t\t\t\t\t<strong class=\"pull-left\">Type: {{ log.type }}{{log.method ? ' - Method: ' + log.method : '' }}{{log.collection ? ' - Collection: ' + log.collection : '' }}{{log.user ? ' - User: ' + log.user : '' }}{{log.route ? ' - Route: ' + log.route : '' }}{{log.id_document ? ' - id_document: ' + log.id_document : '' }}{{log.messageId ? ' - messageId: ' + log.messageId : '' }}</strong>\n\t\t\t\t\t\t<p class=\"pull-right\">{{ log.createdAt | date : 'medium' }}</p>\n\t\t\t\t\t</label>\n\t\t\t\t\t<i *ngIf=\"!acc.activeIds.includes('log_' + i)\" class=\"fa fa-plus float-end\" aria-hidden=\"true\"></i>\n\t\t\t\t\t<i *ngIf=\"acc.activeIds.includes('log_' + i)\" class=\"fa fa-minus float-end\" aria-hidden=\"true\"></i>\n\t\t\t\t</div>\n\t\t\t</ng-template>\n\t\t\t<ng-template ngbPanelContent>\n\t\t\t\t<div *ngIf=\"log.payload\">\n\t\t\t\t\t<pre>{{ log.payload | jsonParse }}</pre>\n\t\t\t\t</div>\n\t\t\t\t<div *ngIf=\"!log.payload\">\n\t\t\t\t\tNo Data\n\t\t\t\t</div>\n\t\t\t</ng-template>\n\t\t</ngb-panel>\n\t</ngb-accordion>\n</div>\n<div class=\"row\" style=\"margin-top: 10px\">\n\t<div class=\"col-lg-4\">\n\t\t<div class=\"row\"> \n\t\t\t<div class=\"col-lg-8\">\n\t\t\t\t<label class=\"form-control-label\">Entries Per Page</label>\n\t\t\t\t<select class=\"form-control\" [(ngModel)]=\"entries_per_page\" (change)=\"getLogData()\">\n\t\t\t\t\t<option value=\"10\">10</option>\n\t\t\t\t\t<option value=\"25\">25</option>\n\t\t\t\t\t<option value=\"50\">50</option>\n\t\t\t\t\t<option value=\"100\">100</option>\n\t\t\t\t\t<option value=\"250\">250</option>\n\t\t\t\t\t<option value=\"500\">500</option>\n\t\t\t\t\t<option value=\"1000\">1000</option>\n\t\t\t\t\t<option value=\"5000\">5000</option>\n\t\t\t\t</select>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n\t<div class=\"col-lg-8\">\n\t\t<ngb-pagination class=\"float-right\"\n\t\tboundaryLinks=\"true\"\n\t\t[collectionSize]=\"log_cnt\"\n\t\tdirectionLinks=\"true\"\n\t\tellipses=\"false\"\n\t\t[(page)]=\"page_num\"\n\t\tmaxSize=\"6\"\n\t\t[pageSize]=\"entries_per_page\"\n\t\trotate=\"true\"\n\t\t(pageChange)=\"getLogData()\"\n\t\t>\n\t\t</ngb-pagination>\n\t</div>\n</div>","import { AccountManagerService } from '../account-manager.service';\nimport { Injectable } from '@angular/core';\nimport { Router, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { AuthService } from './auth.service';\nimport { DialogService } from '../widgets/dialog/dialog.service';\nimport { OfflineManagerService } from '../offline-manager.service';\nimport { dateReviver } from '../util/common.helper';\nimport { CoreService } from '../core.service';\nimport { AuthPermissionService } from './auth-permissions.service';\nimport { AlertService } from '../widgets/alert/alert.service';\n\n@Injectable()\nexport class AuthGuard {\n\n\tredirectUrl: string;\n\n\tconstructor(private _router: Router, \n\t\t\t\tprivate _auth: AuthService, \n\t\t\t\tprivate _ds: DialogService,\n\t\t\t\tprivate _account: AccountManagerService,\n\t\t\t\tprivate _app: CoreService,\n\t\t\t\tprivate _offline: OfflineManagerService,\n\t\t\t\tprivate _aps: AuthPermissionService,\n\t\t\t\tprivate _alert: AlertService) \n\t{}\n\t\n\tcanActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean>|boolean {\n\t\treturn new Promise((resolve) => {\n\t\t\tthis._account.isInitCompleted().then(() => {\n\t\t\t\tlet user = this._account.getUser();\n\n\t\t\t\tif (!user) {\n\t\t\t\t\tuser = JSON.parse(this._offline.getUser(), dateReviver);\n\t\t\t\t\tif (user) {\n\t\t\t\t\t\tthis._account.setUser(user);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (!user) {\n\t\t\t\t\tif (navigator.onLine) {\n\t\t\t\t\t\tthis._auth.loginUser().then(newUser => {\n\t\t\t\t\t\t\tthis._account.isLoginCompleted().then(() => {\n\t\t\t\t\t\t\t\tuser = this._account.getUser();\n\n\t\t\t\t\t\t\t\tif (!user.active) {\n\t\t\t\t\t\t\t\t\tthis._router.navigateByUrl('/home');\n\t\t\t\t\t\t\t\t\tresolve(false);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tlet pageView = state.url.replace(/\\/[a-f0-9]{24}$/, '').replace(/\\?.+$/, ''); //All but ID and Query String\n\t\t\t\t\t\t\t\t\tlet moduleView = pageView.replace(/([^\\/]+\\/?$)/, '');\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif (user.roles.super_admin) {\n\t\t\t\t\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tlet done = false;\n\n\t\t\t\t\t\t\t\t\t\twhile (!done && pageView.split('/').length > 2) {\n\t\t\t\t\t\t\t\t\t\t\tif (!this.isLinkFakeRoute(pageView)) {\n\t\t\t\t\t\t\t\t\t\t\t\tif (!user.roles.groups.some(a => a.views.some(b => b === pageView))) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tif (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tlet link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tdone = true;\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tthis._router.navigateByUrl(link);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(false);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\tdone = true;\n\t\t\t\t\t\t\t\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tmoduleView = moduleView.replace(/([^\\/]+\\/?$)/, '');\n\t\t\t\t\t\t\t\t\t\t\tpageView = pageView.replace(/(\\/[^\\/]+$)/, '');\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif (!done) {\n\t\t\t\t\t\t\t\t\t\t\tthis._router.navigateByUrl('/home');\n\t\t\t\t\t\t\t\t\t\t\tresolve(false);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}, () => {\n\t\t\t\t\t\t\tthis._router.navigateByUrl('/home');\n\t\t\t\t\t\t\tresolve(false);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (!user.active) {\n\t\t\t\t\t\tthis._router.navigateByUrl('/home');\n\t\t\t\t\t\tresolve(false);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tlet pageView = state.url.replace(/\\/[a-f0-9]{24}$/, '').replace(/\\?.+$/, ''); //All but ID and Query String\n\t\t\t\t\t\tlet moduleView = pageView.replace(/([^\\/]+\\/?$)/, '');\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (user.roles.super_admin) {\n\t\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tlet done = false;\n\n\t\t\t\t\t\t\twhile (!done && pageView.split('/').length > 2) {\n\t\t\t\t\t\t\t\tif (!this.isLinkFakeRoute(pageView)) {\n\t\t\t\t\t\t\t\t\tif (!user.roles.groups.some(a => a.views.some(b => b === pageView))) {\n\t\t\t\t\t\t\t\t\t\tif (user.roles.groups.some(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))) {\n\t\t\t\t\t\t\t\t\t\t\tlet link = user.roles.groups.filter(a => a.views.some(b => b.startsWith(moduleView) && !this.doesLinkHaveParameter(b) && !this.isLinkFakeRoute(b)))[0].views.filter(a => a.startsWith(moduleView) && !this.doesLinkHaveParameter(a) && !this.isLinkFakeRoute(a))[0];\n\t\t\t\t\t\t\t\t\t\t\tdone = true;\n\t\t\t\t\t\t\t\t\t\t\tthis._router.navigateByUrl(link);\n\t\t\t\t\t\t\t\t\t\t\tresolve(false);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\tdone = true;\n\t\t\t\t\t\t\t\t\t\tresolve(true);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tmoduleView = moduleView.replace(/([^\\/]+\\/?$)/, '');\n\t\t\t\t\t\t\t\tpageView = pageView.replace(/(\\/[^\\/]+$)/, '');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (!done) {\n\t\t\t\t\t\t\t\tthis._router.navigateByUrl('/home');\n\t\t\t\t\t\t\t\tresolve(false);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, () => {});\n\t\t});\n\t}\n\n\tdoesLinkHaveParameter(link: string) {\n\t\tlet permissions = this._aps.getAllModulePermissions();\n\n\t\tfor (let i = 0; i < permissions.length; i++) {\n\t\t\tlet permission = permissions[i];\n\t\t\tfor (let j = 0; j < permission.views.length; j++) {\n\t\t\t\tlet view = permission.views[j];\n\n\t\t\t\tif (view.link === link) {\n\t\t\t\t\treturn !!view.has_parameter;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tisLinkFakeRoute(link: string) {\n\t\tlet permissions = this._aps.getAllModulePermissions();\n\n\t\tfor (let i = 0; i < permissions.length; i++) {\n\t\t\tlet permission = permissions[i];\n\t\t\tfor (let j = 0; j < permission.views.length; j++) {\n\t\t\t\tlet view = permission.views[j];\n\n\t\t\t\tif (view.link === link) {\n\t\t\t\t\treturn !!view.fake_route;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n}","import { Injectable } from '@angular/core';\n\nimport { Observable } from 'rxjs';\n\nexport interface CanComponentDeactivate {\n\tcanDeactivate: () => Observable<boolean> | Promise<boolean> | boolean;\n}\n\n@Injectable()\nexport class CanDeactivateGuard {\n\n\tcanDeactivate(component: CanComponentDeactivate) {\n\t\treturn component.canDeactivate ? component.canDeactivate() : true;\n\t}\n}\n","import { Injectable } from '@angular/core';\n\nfunction getWindow (): any {\n\treturn window;\n}\n\n@Injectable()\nexport class WindowRefService {\n\tget nativeWindow(): any {\n\t\treturn getWindow();\n\t}\n}\n","import { Component, Input } from '@angular/core';\n\nimport { ProviderService, BaseComponent } from '../../resolveio-class';\n\n@Component({\n\tproviders: [ProviderService],\n\tselector: 'user-role',\n\ttemplate: '<ng-container *ngIf=\"userInRole()\"><ng-content></ng-content></ng-container>'\n})\n\nexport class UserRoleComponent extends BaseComponent { \n\t@Input() role: string;\n\n\tconstructor(private _services: ProviderService) {\n\t\tsuper(_services);\n\t}\n\n\tuserInRole() {\n\t\treturn this._services._account.isUserInView(this.role);\n\t}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { UserRoleComponent } from './user-role.component';\t\t\t\n\n@NgModule({\n\timports: [\n\t\tCommonModule\n\t],\n\texports: [\n\t\tUserRoleComponent\n\t],\n\tdeclarations: [\n\t\tUserRoleComponent\n\t]\n})\nexport class UserRoleModule { }\n","import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common'; \n\nimport { FormButtonComponent } from './form-button.component';\t\t\t\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tNgbTooltipModule\n\t],\n\texports: [\n\t\tFormButtonComponent\n\t],\n\tdeclarations: [\n\t\tFormButtonComponent\n\t]\n})\nexport class FormButtonModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ResponsiveButtonGroupComponent } from './responsive-button-group.component';\n\n@NgModule({\n\timports: [\n\t\tCommonModule\n\t],\n\tdeclarations: [\n\t\tResponsiveButtonGroupComponent\n\t],\n\texports: [\n\t\tResponsiveButtonGroupComponent\n\t]\n})\nexport class ResponsiveButtonGroupModule { }\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\t\nimport { CommonModule } from '@angular/common';\n\nimport { CollapseTableComponent } from './collapse-table.component';\t\n\nimport { ResizeService } from '../../util/window-resize.service';\n\n@NgModule({\n\timports: [\n\t\tFormsModule,\n\t\tCommonModule\n\t],\n\texports: [\n\t\tCollapseTableComponent\n\t],\n\tdeclarations: [\n\t\tCollapseTableComponent\n\t],\n\tproviders: [\n\t\tResizeService\n\t]\n})\nexport class CollapseTableModule { }\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'phone'\n})\nexport class PhonePipe implements PipeTransform { \n\ttransform(tel: string): string {\n\n\t\tif (!tel) {\n\t\t\treturn '';\n\t\t}\n\n\t\tlet country, city, number;\n\n\t\ttel = tel.replace(new RegExp('-', 'g'), '');\n\t\ttel = tel.replace(new RegExp(' ', 'g'), '');\n\t\ttel = tel.replace('(', '');\n\t\ttel = tel.replace(')', '');\n\n\t\tswitch (tel.length) {\n\t\t\tcase 10: // +1PPP####### -> C (PPP) ###-####\n\t\t\t\tcountry = 1;\n\t\t\t\tcity = tel.slice(0, 3);\n\t\t\t\tnumber = tel.slice(3);\n\t\t\t\tbreak;\n\n\t\t\tcase 11: // +CPPP####### -> CCC (PP) ###-####\n\t\t\t\tcountry = tel[0];\n\t\t\t\tcity = tel.slice(1, 4);\n\t\t\t\tnumber = tel.slice(4);\n\t\t\t\tbreak;\n\n\t\t\tcase 12: // +CCCPP####### -> CCC (PP) ###-####\n\t\t\t\tcountry = tel.slice(0, 3);\n\t\t\t\tcity = tel.slice(3, 5);\n\t\t\t\tnumber = tel.slice(5);\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\treturn tel;\n\t\t}\n\n\t\tif (country === 1) {\n\t\t\tcountry = '';\n\t\t}\n\n\t\tnumber = number.slice(0, 3) + '-' + number.slice(3);\n\n\t\treturn (country + ' (' + city + ') ' + number).trim();\n\t}\n}\n","import { Pipe } from '@angular/core';\n\n// tslint:disable-next-line:use-pipe-transform-interface\n@Pipe({\n\tname: 'reverse'\n})\nexport class ReversePipe { \n\ttransform(value) {\n\t\treturn value.slice(0).reverse();\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'minusCurrency'\n})\nexport class MinusCurrencyPipe implements PipeTransform { \n\ttransform(value: any, args?: any): any {\n\t\treturn value.charAt(0) === '-' ? '(' + value.substring(1, value.length) + ')' : value;\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';\n\n@Pipe({\n\tname: 'safe'\n})\nexport class DomSanitizorPipe implements PipeTransform {\n\tconstructor(private _sanitizer: DomSanitizer) {}\n\n\ttransform(value: string, type: string = 'html'): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n\t\tswitch (type) {\n\t\t\tcase 'html': return this._sanitizer.bypassSecurityTrustHtml(value);\n\t\t\tcase 'style': return this._sanitizer.bypassSecurityTrustStyle(value);\n\t\t\tcase 'script': return this._sanitizer.bypassSecurityTrustScript(value);\n\t\t\tcase 'url': return this._sanitizer.bypassSecurityTrustUrl(value);\n\t\t\tcase 'resourceUrl': return this._sanitizer.bypassSecurityTrustResourceUrl(value);\n\t\t\tdefault: throw new Error(`Invalid safe type specified: ${type}`);\n\t\t}\n\t}\n\n}","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'titleCase',\n\tpure: false\n})\nexport class TitleCaseAndUnderscorePipe implements PipeTransform { \n\ttransform(value: string): string { \n\t\tlet str = value.replace('_', ' ');\n\t\t\n\t\tlet strArray = str.toLowerCase().split(' ');\n\t\tfor (let i = 0; i < strArray.length; i++) {\n\t\t\tstrArray[i] = strArray[i].charAt(0).toUpperCase() + strArray[i].slice(1); \n\t\t}\n\t\treturn strArray.join(' ');\n\t}\n}","import { NgModule } from '@angular/core';\nimport { FilterEqualPipe, FilterNotEqualPipe } from './filter.pipe';\nimport { PhonePipe } from './phone.pipe';\nimport { ReversePipe } from './reverse-list.pipe';\nimport { MinusCurrencyPipe } from './minus-currency.pipe';\nimport { DomSanitizorPipe } from './domsanitizor.pipe';\nimport { TitleCaseAndUnderscorePipe } from './titlecase.pipe';\nimport { JsonParsePipe } from './json-parse.pipe';\n\n@NgModule({\n\tdeclarations: [\n\t\tFilterEqualPipe,\n\t\tFilterNotEqualPipe,\n\t\tPhonePipe,\n\t\tReversePipe,\n\t\tMinusCurrencyPipe,\n\t\tDomSanitizorPipe,\n\t\tTitleCaseAndUnderscorePipe,\n\t\tJsonParsePipe\n\t],\n\texports: [ \n\t\tFilterEqualPipe,\n\t\tFilterNotEqualPipe,\n\t\tPhonePipe,\n\t\tReversePipe,\n\t\tMinusCurrencyPipe,\n\t\tDomSanitizorPipe,\n\t\tTitleCaseAndUnderscorePipe,\n\t\tJsonParsePipe\n\t]\n})\nexport class PipeModule { }\n","import { Directive, Input, Output, EventEmitter, ElementRef, Renderer2, HostBinding } from '@angular/core';\nimport { Subject, BehaviorSubject, Observable } from 'rxjs';\n\nexport type SortDirectionType = 1 | 0 | -1;\n\nexport interface Sortable {\n\t/** The id of the column being sorted. */\n\tid: string;\n \n\t/** Starting sort direction. */\n\tstart: SortDirectionType;\n\n\tdisabled: boolean;\n }\n \n /** The current sort state. */\n export interface Sort {\n\t/** The id of the column being sorted. */\n\tactive: string;\n \n\t/** The sort direction. */\n\tdirection: SortDirectionType;\n }\n\n@Directive({\n\tselector : '[sortable]'\n})\nexport class SortTableDirective {\n\tsortables = new Map<string, Sortable>();\n\n\t/** Used to notify any child components listening to state changes. */\n\tpublic readonly _stateChanges = new Subject<void>();\n\n\t/** The id of the most recently sorted Sortable. */\n\t@Input('sortActive') active: string;\n\t@Input('sortStart') start: SortDirectionType = 1;\n\t@Input('sortDisabled') disabled = false;\n\t\n\t@Input() tableFixed = false;\n\t@Input() headerFixed = false;\n\t@Input() secondaryColor = false;\n\t@Input() tertiaryColor = false;\n\n\n\tget direction(): SortDirectionType { return this._direction; }\n\tset direction(direction: SortDirectionType) {\n\t if (direction && direction !== -1 && direction !== 1) {\n\t\tthrow Error(direction + ' is not a valid sort direction (0 or 1).');\n\t }\n\t this._direction = direction;\n\t}\n\tprivate _direction: SortDirectionType = 0;\n\n\tprivate _data = new BehaviorSubject([]);\n\n\t@Output('sortChange') readonly sortChange: EventEmitter<Sort> = new EventEmitter<Sort>();\n\n\t// @HostBinding('class') elementClass = '';\n\n\tconstructor(private element: ElementRef) {\n\t\t// if (this.secondaryColor) {\n\t\t// \tthis.elementClass = 'collapseTable-sec';\n\t\t// }\n\t\t// else if (this.tertiaryColor) {\n\t\t// \tthis.elementClass = 'collapseTable-tert';\n\t\t// }\n\t\t// else {\n\t\t// \tthis.elementClass = 'collapseTable';\n\t\t// }\n\t}\n\n\tregister(sortable: Sortable): void {\n\t\tif (!sortable.id) {\n\t\t \tthrow Error('CTSortHeader must be provided with a unique id');\n\t\t}\n\t\n\t\tif (this.sortables.has(sortable.id)) {\n\t\t\tthrow Error('Cannot have two CTSortables with the same id ' + sortable.id);\n\t\t}\n\n\t\t// console.log('Register', sortable);\n\t\tthis.sortables.set(sortable.id, sortable);\n\t}\n\t\n\tderegister(sortable: Sortable): void {\n\t\t// console.log('Unregister', sortable);\n\t\tthis.sortables.delete(sortable.id);\n\t}\n\n\tsort(sortable: Sortable): void {\n\t\tif (this.active != sortable.id) {\n\t\t\tthis.active = sortable.id;\n\t\t\tthis.direction = sortable.start ? sortable.start : this.start;\n\t\t} \n\t\telse {\n\t\t\tthis.direction *= -1;\n\t\t}\n\t\n\t\tthis.sortChange.emit({active: this.active, direction: this.direction});\n\n\t\tif (this._data.value.length) {\n\t\t\tlet value = null;\n\t\t\t\n\t\t\tfor (let i = 0; i < this._data.value.length; i++) {\n\t\t\t\tif (sortable.id.split('.').reduce((o, i) => o[i], this._data.value[i])) {\n\t\t\t\t\tvalue = sortable.id.split('.').reduce((o, i) => o[i], this._data.value[i]);\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (value !== null && value !== undefined) {\n\n if (typeof(value) === 'string') {\n\t\t\t\t\tlet digitRegex = new RegExp(/^[\\d.,$]+$/);\n\t\t\t\t\tif (!this._data.value.filter(a => sortable.id.split('.').reduce((o, i) => o[i], a)).some(a => !digitRegex.test(sortable.id.split('.').reduce((o, i) => o[i], a)))) {\n\t\t\t\t\t\tif (this.direction === 1) {\n\t\t\t\t\t\t\tthis._data.next(this._data.value.sort((a, b) => ((sortable.id.split('.').reduce((o, i) => o[i], a) !== null ? parseFloat((sortable.id.split('.').reduce((o, i) => o[i], a).replace(/\\$/g, '').replace(',', ''))) : 999999999999)) - ((sortable.id.split('.').reduce((o, i) => o[i], b) !== null ? parseFloat((sortable.id.split('.').reduce((o, i) => o[i], b)).replace(/\\$/g, '').replace(',', '')) : 999999999999))));\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis._data.next(this._data.value.sort((a, b) => (sortable.id.split('.').reduce((o, i) => o[i], b) !== null ? parseFloat((sortable.id.split('.').reduce((o, i) => o[i], b)).replace(/\\$/g, '').replace(',', '')) : -999999999999) - (sortable.id.split('.').reduce((o, i) => o[i], a) !== null ? parseFloat((sortable.id.split('.').reduce((o, i) => o[i], a)).replace(/\\$/g, '').replace(',', '')) : -999999999999)));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (this.direction === 1) {\n\t\t\t\t\t\t\tthis._data.next(this._data.value.sort((a, b) => (sortable.id.split('.').reduce((o, i) => o[i], a) || 'zzzzzz').localeCompare(sortable.id.split('.').reduce((o, i) => o[i], b) || 'zzzzzz')));\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tthis._data.next(this._data.value.sort((a, b) => (sortable.id.split('.').reduce((o, i) => o[i], b) || 'AAAAAAA').localeCompare(sortable.id.split('.').reduce((o, i) => o[i], a) || 'AAAAAAA')));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n }\n else if (typeof(value) === 'number') {\n if (this.direction === 1) {\n this._data.next(this._data.value.sort((a, b) => ((sortable.id.split('.').reduce((o, i) => o[i], a) !== null ? sortable.id.split('.').reduce((o, i) => o[i], a) : 999999999999)) - ((sortable.id.split('.').reduce((o, i) => o[i], b) !== null ? sortable.id.split('.').reduce((o, i) => o[i], b) : 999999999999))));\n }\n else {\n this._data.next(this._data.value.sort((a, b) => (sortable.id.split('.').reduce((o, i) => o[i], b) !== null ? sortable.id.split('.').reduce((o, i) => o[i], b) : -999999999999) - (sortable.id.split('.').reduce((o, i) => o[i], a) !== null ? sortable.id.split('.').reduce((o, i) => o[i], a) : -999999999999)));\n }\n }\n else if (value instanceof Date) {\n if (this.direction === 1) {\n this._data.next(this._data.value.sort((a, b) => (sortable.id.split('.').reduce((o, i) => o[i], a) ? sortable.id.split('.').reduce((o, i) => o[i], a).getTime() : 0) - (sortable.id.split('.').reduce((o, i) => o[i], b) ? sortable.id.split('.').reduce((o, i) => o[i], b).getTime() : 0)));\n }\n else {\n this._data.next(this._data.value.sort((a, b) => (sortable.id.split('.').reduce((o, i) => o[i], b) ? sortable.id.split('.').reduce((o, i) => o[i], b).getTime() : 0) - (sortable.id.split('.').reduce((o, i) => o[i], a) ? sortable.id.split('.').reduce((o, i) => o[i], a).getTime() : 0)));\n }\n\t\t\t\t}\n\t\t\t\telse if (typeof(value) === 'boolean') {\n\t\t\t\t\tthis._data.next(this._data.value.sort((a, b) => {\n if (sortable.id.split('.').reduce((o, i) => o[i], a) === sortable.id.split('.').reduce((o, i) => o[i], b)) {\n return 0;\n }\n else if (sortable.id.split('.').reduce((o, i) => o[i], a)) {\n if (this.direction === 1) {\n return -1;\n }\n\n return 1;\n }\n else {\n if (this.direction === 1) {\n return 1;\n }\n\n return -1;\n }\n }));\n }\n\t\t\t\telse {\n\t\t\t\t\tthis._data.next(this._data.value.sort((a, b) => sortable.id.split('.').reduce((o, i) => o[i], a) === sortable.id.split('.').reduce((o, i) => o[i], b) ? 0 : (sortable.id.split('.').reduce((o, i) => o[i], a) > sortable.id.split('.').reduce((o, i) => o[i], b) ? -1 : 1)));\n\t\t\t\t}\n }\n\t\t}\n\t}\n\n\tgetData(): Observable<any[]> {\n\t\treturn this._data.asObservable();\n\t}\n\t\n\tsetData(data) {\n\t\tthis._data.next(data);\n\t}\n\n\tngOnInit() {\n\t\t// this._markInitialized();\n\n\t\t// console.log('test');\n\n\t\t\n\t}\n\t\n\tngOnChanges() {\n\t\tthis._stateChanges.next();\n\t}\n\n\tngOnDestroy() {\n\t\tthis._stateChanges.complete();\n\t}\n}","import { Component, ViewEncapsulation, ChangeDetectionStrategy, OnDestroy, OnInit, Input, ChangeDetectorRef, Optional } from '@angular/core';\nimport { Sortable, SortDirectionType, SortTableDirective } from './sort-table.directive';\nimport { merge, Subscription } from 'rxjs';\n\n@Component({\n\tselector: '[sort-table-header]',\n\ttemplateUrl: './sort-table-header.component.html',\n\t// host: {\n\t// '(click)': '_handleClick()',\n\t// '(mouseenter)': '_setIndicatorHintVisible(true)',\n\t// '(longpress)': '_setIndicatorHintVisible(true)',\n\t// '(mouseleave)': '_setIndicatorHintVisible(false)',\n\t// '[attr.aria-sort]': '_getAriaSortAttribute()',\n\t// '[class.mat-sort-header-disabled]': '_isDisabled()',\n\t// },\n\tencapsulation: ViewEncapsulation.None,\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tinputs: ['disabled'],\n\t// animations: [\n\t// matSortAnimations.indicator,\n\t// matSortAnimations.leftPointer,\n\t// matSortAnimations.rightPointer,\n\t// matSortAnimations.arrowOpacity,\n\t// matSortAnimations.arrowPosition,\n\t// matSortAnimations.allowChildren,\n\t// ]\n})\nexport class SortTableHeaderComponent implements Sortable, OnDestroy, OnInit {\n\t_arrowDirection: SortDirectionType = 0;\n\t@Input('sort-table-header') id: string;\n\t@Input() arrowPosition: 'before' | 'after' = 'after';\n\t@Input() start: SortDirectionType;\n\t_rerenderSubscription: Subscription;\n\t@Input() disabled: boolean;\n\n\tconstructor(changeDetectorRef: ChangeDetectorRef, @Optional() public _sort: SortTableDirective) {\n\n\t\tif (!_sort) {\n\t\t\tthrow Error(`SortTableSortHeader must be placed within a parent element with the CTSortable directive.`);\n\t\t}\n\n\t\tthis._rerenderSubscription = merge(_sort.sortChange, _sort._stateChanges).subscribe(() => {\n\t\t\tif (this._isSorted()) {\n\t\t\t\tthis._updateArrowDirection();\n\t\t\t}\n\n\t\t\tchangeDetectorRef.markForCheck();\n\t\t});\n\t}\n\n\tngOnInit() {\n\t\t// console.log('Init Sort Header');\n\t\tthis._sort.register(this);\n\t}\n\n\tngOnDestroy() {\n\t\tthis._sort.deregister(this);\n\t\tthis._rerenderSubscription.unsubscribe();\n\t}\n\n\t_isSorted() {\n\t\treturn this._sort.active === this.id;\n\t}\n\n\t_getSortDirection() {\n\t\treturn this._sort.direction;\n\t}\n\n\t_updateArrowDirection() {\n\t\tthis._arrowDirection = this._isSorted() ? this._sort.direction : (this.start || this._sort.start);\n\t}\n\n\t_isDisabled() {\n\t\treturn this._sort.disabled || this.disabled;\n\t}\n\n\tonClick(event) {\n\t\t// console.log('Clicked on', this.id, event);\n\t\t\n\t\tif (this._isDisabled()) { return; }\n\n\t\tthis._sort.sort(this);\n\t}\n}","<div (click)=\"onClick($event)\">\n <ng-content></ng-content>\n <i *ngIf=\"_isSorted() && _getSortDirection() === -1\" class=\"fa fa-arrow-down\" style=\"margin-left: 10px; font-size: 14px\"></i>\n <i *ngIf=\"_isSorted() && _getSortDirection() === 1\" class=\"fa fa-arrow-up\" style=\"margin-left: 10px; font-size: 14px\"></i>\n</div>","import { Component, Input, Optional, OnChanges, OnInit, Output, EventEmitter, OnDestroy } from '@angular/core';\nimport { Subscription } from 'rxjs';\nimport { SortTableDirective } from './sort-table.directive';\n\n@Component({\n\tselector: '[sort-table-ngfor]',\n\ttemplate: '<ng-content></ng-content>'\n})\nexport class SortTableNgForComponent implements OnInit, OnChanges, OnDestroy {\n\t@Input('sort-table-ngfor') data = [];\n\t@Output() dataChanged = new EventEmitter<any[]>();\n\n\tsortSub$: Subscription = null;\n\tsortedData = [];\n\n\tconstructor(@Optional() public _sort: SortTableDirective) {\n\t\t// console.log('NgFor Const');\n\t\tif (!_sort) {\n\t\t\tthrow Error(`SortTableNgFor must be placed within a parent element with the CTSortable directive.`);\n\t\t}\n\t}\n\n\tngOnInit() {\n\t\tthis.sortSub$ = this._sort.getData().subscribe(data => {\n\t\t\tthis.sortedData = data;\n\t\t\tthis.dataChanged.emit(this.sortedData);\n\n\t\t\t// console.log('Sorted Data', this.sortedData);\n\t\t});\n\t}\n\n\tngOnChanges() {\n\t\t// console.log('NgFor Changed', this.data);\n\t\tthis._sort.setData(this.data);\n\t}\n\n\tngOnDestroy() {\n\t\tthis.sortSub$.unsubscribe();\n\t}\n}","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\t\nimport { CommonModule } from '@angular/common';\nimport { SortTableDirective } from './sort-table.directive';\nimport { SortTableHeaderComponent } from './sort-table-header.component';\nimport { SortTableNgForComponent } from './sort-table-ngfor.component';\n\n@NgModule({\n\timports: [\n\t\tFormsModule,\n\t\tCommonModule\n\t],\n\texports: [\n\t\tSortTableDirective,\n\t\tSortTableHeaderComponent,\n\t\tSortTableNgForComponent\n\t],\n\tdeclarations: [\n\t\tSortTableDirective,\n\t\tSortTableHeaderComponent,\n\t\tSortTableNgForComponent\n\t]\n})\nexport class SortTableModule { }\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { UserRoleModule } from '../widgets/user-role/user-role.module';\nimport { FormButtonModule } from '../widgets/form-button/form-button.module';\nimport { ResponsiveButtonGroupModule } from '../widgets/responsive-button-group/responsive-button-group.module';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { CollapseTableModule } from '../widgets/collapse-table/collapse-table.module';\nimport { PipeModule } from '../pipes/pipe.module';\n\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { SortTableModule } from '../widgets/sort-table/sort-table.module';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n\timports: [\n\t\tReactiveFormsModule,\n\t\tFormsModule,\n\t\tCollapseTableModule,\n\t\tRouterModule,\n\t\tNgbModule,\n\t\tFormButtonModule,\n\t\tResponsiveButtonGroupModule,\n\t\tPipeModule,\n\t\tUserRoleModule,\n\t\tNgSelectModule,\n\t\tSortTableModule,\n\t\tCommonModule\n\t],\n\texports: [\n\t\tReactiveFormsModule,\n\t\tFormsModule,\n\t\tCollapseTableModule,\n\t\tRouterModule,\n\t\tNgbModule,\n\t\tFormButtonModule,\n\t\tResponsiveButtonGroupModule,\n\t\tPipeModule,\n\t\tUserRoleModule,\n\t\tNgSelectModule,\n\t\tSortTableModule,\n\t\tCommonModule\n\t]\n})\nexport class SharedModule { }\n","import { BaseComponent } from '../resolveio-class';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { Subscription } from 'rxjs';\nimport { UserModel } from '../models/user.model';\nimport { ProviderService } from '../resolveio-class';\nimport { DialogService } from '../widgets/dialog/dialog.service';\nimport { HttpClient } from '@angular/common/http';\n\n@Component({\n\ttemplateUrl: './forgot-password.component.html',\n\tproviders: [ProviderService]\n})\nexport class ForgotPasswordComponent extends BaseComponent implements OnInit, OnDestroy {\n\t\n\tserverURL = '';\n\n\tform: FormGroup;\n\tuser: UserModel;\n\tsubscription$: Subscription[] = [];\n\ttoken: string;\n\tdisableFormButton = false;\n\t\n\tconstructor(private _route: ActivatedRoute, private _services: ProviderService, private _http: HttpClient, private _ds: DialogService) {\n\t\tsuper(_services);\n\t}\n\t\n\tngOnInit() {\n\n\t\tif (this._route.snapshot.queryParamMap.keys.length !== 2) {\n\t\t\tthis._ds.error('Invalid params');\n\t\t\tthis._services._router.navigateByUrl('/home');\n\t\t}\n\t\telse {\n\t\t\tthis.serverURL = this._route.snapshot.queryParamMap.keys[0];\n\t\t\tthis.token = this._route.snapshot.queryParamMap.keys[1];\n\t\t}\n\n\t\tthis.form = this._services._fb.group({\n\t\t\tpassword: ['', [Validators.compose([Validators.required, Validators.minLength(6)])]],\n\t\t\tconfirm_password: ['', [Validators.compose([Validators.required, Validators.minLength(6)])]]\n\t\t}, {validator: this._services._vs.matchPassword});\n\n\t\tthis._http.post(this.serverURL + '/userWithForgotPasswordToken', {forgotPasswordToken: this.token}).toPromise().then((res: any) => {\n\t\t\tif (res.error) {\n\t\t\t\tthis._ds.error('Invalid token');\n\t\t\t\tthis._services._router.navigateByUrl('/home');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.user = res.result.user;\n\t\t\t}\n\t\t}, err => {\n\t\t\tthis._ds.error('Invalid token');\n\t\t\tthis._services._router.navigateByUrl('/home');\n\t\t});\n\t}\n\n\tngOnDestroy() {\n\t\tthis.subscription$.forEach(sub => {\n\t\t\tsub.unsubscribe();\n\t\t});\n\t}\n\n\tsubmit() {\n\n\t\tthis.disableFormButton = true;\n\n\t\tthis._http.post(this.serverURL + '/setUserWithForgotPasswordToken', {forgotPasswordToken: this.token, password: this.form.value.password}).toPromise().then((res: any) => {\n\t\t\tif (res.error) {\n\t\t\t\tthis._ds.error('Could not update user');\n\t\t\t\tthis._services._router.navigateByUrl('/home');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._services._alert.setAlert('success', 'User has been updated, please log in');\n\t\t\t\tthis._services._router.navigateByUrl('/home');\n\t\t\t}\n\t\t}, err => {\n\t\t\tthis._ds.error('Invalid token');\n\t\t\tthis._services._router.navigateByUrl('/home');\n\t\t});\n\n\t\tthis._services._router.navigateByUrl('/home');\t\n\t}\n}","<style>\n input {\n width: 100%;\n }\n</style>\n\n<div *ngIf=\"user\">\n\t<h4>Welcome to ResolveIO.<br><br>Your username will be {{user.username}}. Please create a password for your account.</h4>\n\t<form [formGroup]=\"form\" novalidate (ngSubmit)=\"submit()\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-lg-12\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<label class=\"form-control-label\">Username</label>\n\t\t\t\t\t<div>{{user.username}}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-lg-12\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<label class=\"form-control-label\">Password</label>\n\t\t\t\t\t<em *ngIf=\"form.controls.password.hasError('required')\">- Required</em>\n\t\t\t\t\t<em *ngIf=\"form.controls.password.hasError('minlength') || form.hasError('matchPassword')\">- Invalid</em>\n\t\t\t\t\t<input type=\"text\" [ngClass]=\"['form-control', (form.controls.password.valid && form.valid) ? 'is-valid' : 'is-invalid']\" formControlName=\"password\" type=\"password\" autocomplete=\"new-password\">\n\t\t\t\t\t<div class=\"invalid-feedback\" *ngIf=\"form.controls.password.hasError('required')\">Password is required</div>\n\t\t\t\t\t<div class=\"invalid-feedback\" *ngIf=\"form.controls.password.hasError('minlength')\">Password must be 6 or more characters</div>\n\t\t\t\t\t<div class=\"invalid-feedback\" *ngIf=\"!form.controls.password.hasError('minlength') && form.hasError('matchPassword')\" align=\"start\">Passwords do not match</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-lg-12\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<label class=\"form-control-label\">Confirm Password</label>\n\t\t\t\t\t<em *ngIf=\"form.controls.confirm_password.hasError('required')\">- Required</em>\n\t\t\t\t\t<em *ngIf=\"form.hasError('matchPassword')\">- Invalid</em>\n\t\t\t\t\t<input type=\"text\" [ngClass]=\"['form-control', form.controls.confirm_password.valid ? 'is-valid' : 'is-invalid']\" formControlName=\"confirm_password\" type=\"password\" autocomplete=\"new-password\">\n\t\t\t\t\t<div class=\"invalid-feedback\" *ngIf=\"form.controls.confirm_password.hasError('required')\">Password is required</div>\n\t\t\t\t\t<div class=\"invalid-feedback\" *ngIf=\"form.hasError('matchPassword')\" align=\"start\">Passwords do not match</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"row\" style=\"margin-top: 30px;\">\n\t\t\t<div class=\"col-lg-12\">\n\t\t\t\t<form-button [form]=\"form\" [disabled]=\"disableFormButton\"></form-button>\n\t\t\t</div>\n\t\t</div>\n\t</form>\n</div>","import { BaseComponent } from '../resolveio-class';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { FormGroup, Validators } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\n\nimport { Subscription } from 'rxjs';\nimport { UserModel } from '../models/user.model';\nimport { ProviderService } from '../resolveio-class';\nimport { DialogService } from '../widgets/dialog/dialog.service';\nimport { HttpClient } from '@angular/common/http';\n\n@Component({\n\ttemplateUrl: './enroll.component.html',\n\tproviders: [ProviderService]\n})\nexport class EnrollComponent extends BaseComponent implements OnInit, OnDestroy {\n\n\tserverURL = '';\n\n\tform: FormGroup;\n\tuser: UserModel;\n\tsubscription$: Subscription[] = [];\n\ttoken: string;\n\tdisableFormButton = false;\n\t\n\tconstructor(private _route: ActivatedRoute, private _services: ProviderService, private _http: HttpClient, private _ds: DialogService) {\n\t\tsuper(_services);\n\t}\n\t\n\tngOnInit() {\n\t\tif (this._route.snapshot.queryParamMap.keys.length !== 2) {\n\t\t\tthis._ds.error('Invalid params');\n\t\t\tthis._services._router.navigateByUrl('/home');\n\t\t}\n\t\telse {\n\t\t\tthis.serverURL = this._route.snapshot.queryParamMap.keys[0];\n\t\t\tthis.token = this._route.snapshot.queryParamMap.keys[1];\n\t\t}\n\n\t\tthis.form = this._services._fb.group({\n\t\t\tpassword: ['', [Validators.compose([Validators.required, Validators.minLength(6)])]],\n\t\t\tconfirm_password: ['', [Validators.compose([Validators.required, Validators.minLength(6)])]]\n\t\t}, {validator: this._services._vs.matchPassword});\n\n\t\tthis._http.post(this.serverURL + '/userWithEnrollmentToken', {enrollmentToken: this.token}).toPromise().then((res: any) => {\n\t\t\tif (res.error) {\n\t\t\t\tthis._ds.error('Invalid token');\n\t\t\t\tthis._services._router.navigateByUrl('/home');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.user = res.result.user;\n\t\t\t}\n\t\t}, err => {\n\t\t\tthis._ds.error('Invalid token');\n\t\t\tthis._services._router.navigateByUrl('/home');\n\t\t});\n\t}\n\n\tngOnDestroy() {\n\t\tthis.subscription$.forEach(sub => {\n\t\t\tsub.unsubscribe();\n\t\t});\n\t}\n\n\tsubmit() {\n\n\t\tthis.disableFormButton = true;\n\n\t\tthis._http.post(this.serverURL + '/setUserWithEnrollmentToken', {enrollmentToken: this.token, password: this.form.value.password}).toPromise().then((res: any) => {\n\n\t\t\tif (res.error) {\n\t\t\t\tthis._ds.error('Could not update user');\n\t\t\t\tthis._services._router.navigateByUrl('/home');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._services._alert.setAlert('success', 'User has been updated, please log in');\n\t\t\t\tthis._services._router.navigateByUrl('/home');\n\t\t\t}\n\t\t}, err => {\n\t\t\tthis._ds.error('Invalid token');\n\t\t\tthis._services._router.navigateByUrl('/home');\n\t\t});\t\n\t}\n}","<style>\n input {\n width: 100%;\n }\n</style>\n\n<div *ngIf=\"user\">\n\t<h4>Welcome to ResolveIO.<br><br>Your username will be {{user.username}}. Please create a password for your account.</h4>\n\t<form [formGroup]=\"form\" novalidate (ngSubmit)=\"submit()\">\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-lg-12\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<label class=\"form-control-label\">Username</label>\n\t\t\t\t\t<div>{{user.username}}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-lg-12\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<label class=\"form-control-label\">Password</label>\n\t\t\t\t\t<em *ngIf=\"form.controls.password.hasError('required')\">- Required</em>\n\t\t\t\t\t<em *ngIf=\"form.controls.password.hasError('minlength') || form.hasError('matchPassword')\">- Invalid</em>\n\t\t\t\t\t<input type=\"text\" [ngClass]=\"['form-control', form.controls.password.valid && !form.hasError('matchPassword') ? 'is-valid' : 'is-invalid']\" formControlName=\"password\" type=\"password\" autocomplete=\"new-password\">\n\t\t\t\t\t<div class=\"invalid-feedback\" *ngIf=\"form.controls.password.hasError('required')\">Password is required</div>\n\t\t\t\t\t<div class=\"invalid-feedback\" *ngIf=\"form.controls.password.hasError('minlength')\">Password must be 6 or more characters</div>\n\t\t\t\t\t<div class=\"invalid-feedback\" *ngIf=\"!form.controls.password.hasError('minlength') && form.hasError('matchPassword')\" align=\"start\">Passwords do not match</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"row\">\n\t\t\t<div class=\"col-lg-12\">\n\t\t\t\t<div class=\"form-group\">\n\t\t\t\t\t<label class=\"form-control-label\">Confirm Password</label>\n\t\t\t\t\t<em *ngIf=\"form.controls.confirm_password.hasError('required')\">- Required</em>\n\t\t\t\t\t<em *ngIf=\"form.hasError('matchPassword')\">- Invalid</em>\n\t\t\t\t\t<input type=\"text\" [ngClass]=\"['form-control', form.controls.confirm_password.valid && !form.hasError('matchPassword') ? 'is-valid' : 'is-invalid']\" formControlName=\"confirm_password\" type=\"password\" autocomplete=\"new-password\">\n\t\t\t\t\t<div class=\"invalid-feedback\" *ngIf=\"form.controls.confirm_password.hasError('required')\">Password is required</div>\n\t\t\t\t\t<div class=\"invalid-feedback\" *ngIf=\"form.hasError('matchPassword')\" align=\"start\">Passwords do not match</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"row\" style=\"margin-top: 30px;\">\n\t\t\t<div class=\"col-lg-12\">\n\t\t\t\t<form-button [form]=\"form\" [disabled]=\"disableFormButton\"></form-button>\n\t\t\t</div>\n\t\t</div>\n\t</form>\n</div>","import { BaseComponent } from '../resolveio-class';\nimport { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { ProviderService } from '../resolveio-class';\nimport { DialogService } from '../widgets/dialog/dialog.service';\nimport { HttpClient } from '@angular/common/http';\nimport { SocketManagerService } from '../socket-manager.service';\nimport { CoreService } from '../core.service';\n\n@Component({\n\tproviders: [ProviderService],\n\ttemplate: '<router-outlet></router-outlet>'\n})\nexport class Auth365Component extends BaseComponent {\n\ttoken: string;\n\t\n\tconstructor(private _app: CoreService, private _route: ActivatedRoute, private _services: ProviderService, private _http: HttpClient, private _ds: DialogService, private _socket: SocketManagerService) {\n\t\tsuper(_services);\n\n\t\tif (this._app.environment.value.MS_id_token) {\n\t\t\tthis._services._account.logIn365(this._app.environment.value.MS_id_token).then(() => {\n\t\t\t\tthis._services._router.navigateByUrl('/home');\n\t\t\t}, () => {});\n\t\t}\n\t\telse {\n\t\t\tthis._services._router.navigateByUrl('/home');\n\t\t}\n\t}\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable()\nexport class UserSettingsService {\n\n\tselectedUser = new BehaviorSubject('0');\n\n\tconstructor() {}\n\n\tsetSelectedUser(id: string) {\n\t\tthis.selectedUser.next(id);\n\t}\n}\n","import { ModulePermissionModel } from '../models/permission.model';\n\nexport const UserSettingsModulePermission: ModulePermissionModel = {\n\tname: 'user-settings',\n\tviews: [\n\t\t{link: '/user-settings/settings', label: 'Settings'}\n\t],\n\tapproval: {\n\t\ttype: 'user-settings'\n\t}\n};\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { NavbarModel } from '../widgets/navbar-module/navbar-module.model';\nimport { UserSettingsService } from './user-settings.service';\nimport { Subscription } from 'rxjs';\nimport { UserSettingsModulePermission } from './user-settings.permission';\nimport { ProviderService, BaseComponent } from '../resolveio-class';\nimport { UserModel } from '../models/user.model';\n\n@Component({\n\tproviders: [ProviderService],\n\ttemplate: '<router-outlet></router-outlet>'\n})\n\nexport class UserSettingsComponent extends BaseComponent implements OnInit, OnDestroy { \n\tselectedUserSettings$: Subscription;\n\n\tmenuData: NavbarModel;\n\t\n\tconstructor(private _us: UserSettingsService, private _services: ProviderService) {\n\t\tsuper(_services);\n\t}\n\n\tngOnInit() {\n\t\tthis.selectedUserSettings$ = this._us.selectedUser.subscribe(\n\t\t\tval => this.selectedUserSettingsChanged(val)\n\t\t);\n\t}\n\n\tngOnDestroy() {\n\t\tthis._us.setSelectedUser('0');\n\n\t\tthis.selectedUserSettings$.unsubscribe();\n\t}\n\n\tselectedUserSettingsChanged(id: string) {\n\t\tthis.setUserSettingsMenuData();\n\t}\n\n\tsetUserSettingsMenuData(id?: string, user?: UserModel) {\n\t\tlet tabs = [];\n\n\t\tUserSettingsModulePermission.views.forEach(view => {\n\t\t\tif (this._services._account.isUserInView(view.link) || this._services._account.isUserSuperAdmin()) {\n\t\t\t\tswitch (view.link) {\n\t\t\t\t\tcase '/user-settings/settings': \n\t\t\t\t\t\ttabs.push({link: '/user-settings/settings', params: null, label: 'Settings'});\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis.menuData = {\n\t\t\ttitle: 'User Settings',\n\t\t\tmodule: 'User Settings',\n\t\t\tdescription_name: 'User: ',\n\t\t\tdescription: user ? user.fullname : '',\n\t\t\ttabs: tabs\n\t\t};\n\n\t\tthis._services._app.setNavbarModuleData(this.menuData);\n\t}\n}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { UserSettingsService } from '../user-settings.service';\nimport { Subscription } from 'rxjs';\nimport { ProviderService, BaseComponent } from '../../resolveio-class';\nimport { AuthPermissionService } from '../../auth/auth-permissions.service';\nimport { DialogService } from '../../widgets/dialog/dialog.service';\nimport { FormGroup, Validators } from '@angular/forms';\nimport { UserModel } from '../../models/user.model';\nimport { toTitleCase } from '../../util/common.helper';\n\n@Component({\n\tproviders: [ProviderService],\n\ttemplateUrl: './users-settings.component.html'\n})\nexport class UsersSettingsComponent extends BaseComponent implements OnInit, OnDestroy { \n\n\tsubscription$: Subscription[] = [];\n\n\tform: FormGroup;\n\n\tdisableFormButton = false;\n\tuser: UserModel;\n\tclient = '';\n\tviews = [];\n\n\thasSubmit = false;\n\n\tconstructor(private _aps: AuthPermissionService, private _us: UserSettingsService, private _services: ProviderService, private _ds: DialogService) {\n\t\tsuper(_services);\n\t}\n\n\tngOnInit() {\n\t\tthis._us.setSelectedUser('0');\n\n\t\tthis.client = this._services._app.client.getValue();\n\n\t\tthis.form = this._services._fb.group({\n\t\t\ttable_color: ['#3b3ee3', [Validators.required]],\n\t\t\ttable_font_color: ['#ffffff', [Validators.required]],\n\t\t\tfont_size: [12, [Validators.required, this._services._vs.wholeNumbersGreaterThanZero, this._services._vs.maxValue(18), this._services._vs.minValue(8)]],\n\t\t\tsecondary_table_color: ['#87ceeb', [Validators.required]],\n\t\t\tsecondary_table_font_color: ['#000000', [Validators.required]],\n\t\t\ttertiary_table_color: ['#ff4500', [Validators.required]],\n\t\t\ttertiary_table_font_color: ['#000000', [Validators.required]],\n\t\t\tcollapsable_menu: [true],\n\t\t\tentries_per_page: ['25', [Validators.required]],\n\t\t\twarning_color: ['#ffc107', [Validators.required]],\n\t\t\twarning_font_color: ['#000000', [Validators.required]],\n\t\t\twarning_hover_color: ['#e0a800', [Validators.required]],\n\t\t\tsuccess_color: ['#28a745', [Validators.required]],\n\t\t\tsuccess_font_color: ['#ffffff', [Validators.required]],\n\t\t\tsuccess_hover_color: ['#218838', [Validators.required]],\n\t\t\tdanger_color: ['#dc3545', [Validators.required]],\n\t\t\tdanger_font_color: ['#ffffff', [Validators.required]],\n\t\t\tdanger_hover_color: ['#c82333', [Validators.required]],\n\t\t\tinfo_color: ['#17a2b8', [Validators.required]],\n\t\t\tinfo_font_color: ['#ffffff', [Validators.required]],\n\t\t\tinfo_hover_color: ['#138496', [Validators.required]],\n\t\t\tprimary_color: ['#007bff', [Validators.required]],\n\t\t\tprimary_font_color: ['#ffffff', [Validators.required]],\n\t\t\tprimary_hover_color: ['#0069d9', [Validators.required]],\n\t\t\tsecondary_color: ['#868e96', [Validators.required]],\n\t\t\tsecondary_font_color: ['#ffffff', [Validators.required]],\n\t\t\tsecondary_hover_color: ['#5a6268', [Validators.required]],\n\t\t\trouting_preference: ['alwaysAsk'],\n\t\t\topening_route: ['/home']\n\t\t});\n\n\t\tif (this._services._account.getUser() && this._services._account.getUser().settings) {\n\t\t\tthis.form.patchValue(this._services._account.getUser().settings);\n\n\t\t\tthis._services._account.getUser().roles.groups.forEach(group => {\n\t\t\t\tgroup.views.forEach(view => {\n\t\t\t\t\tif (!this.views.some(a => a.value === view)) {\n\t\t\t\t\t\tthis.views.push({\n\t\t\t\t\t\t\tvalue: view,\n\t\t\t\t\t\t\tdisplay: toTitleCase(view.replace('/', '').replace(new RegExp('/', 'g'), ' - '))\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tdocument.documentElement.style.setProperty('--primary-table-color', this.form.controls.table_color.value);\n\t\tdocument.documentElement.style.setProperty('--primary-table-font-color', this.form.controls.table_font_color.value);\n\t\tdocument.documentElement.style.setProperty('--font-size', this.form.controls.font_size.value + 'px');\n\t\tdocument.documentElement.style.setProperty('--secondary-table-color', this.form.controls.secondary_table_color.value);\n\t\tdocument.documentElement.style.setProperty('--secondary-table-font-color', this.form.controls.secondary_table_font_color.value);\n\t\tdocument.documentElement.style.setProperty('--tertiary-table-color', this.form.controls.tertiary_table_color.value);\n\t\tdocument.documentElement.style.setProperty('--tertiary-table-font-color', this.form.controls.tertiary_table_font_color.value);\n\t\tdocument.documentElement.style.setProperty('--warning-color', this.form.controls.warning_color.value);\n\t\tdocument.documentElement.style.setProperty('--warning-font-color', this.form.controls.warning_font_color.value);\n\t\tdocument.documentElement.style.setProperty('--warning-shadow-color', '0 0 0 0.2rem ' + hexToRGB(this.form.controls.warning_color.value, .5));\n\t\tdocument.documentElement.style.setProperty('--warning-hover-color', this.form.controls.warning_hover_color.value);\n\t\tdocument.documentElement.style.setProperty('--success-color', this.form.controls.success_color.value);\n\t\tdocument.documentElement.style.setProperty('--success-font-color', this.form.controls.success_font_color.value);\n\t\tdocument.documentElement.style.setProperty('--success-shadow-color', '0 0 0 0.2rem ' + hexToRGB(this.form.controls.success_color.value, .5));\n\t\tdocument.documentElement.style.setProperty('--success-hover-color', this.form.controls.success_hover_color.value);\n\t\tdocument.documentElement.style.setProperty('--danger-color', this.form.controls.danger_color.value);\n\t\tdocument.documentElement.style.setProperty('--danger-font-color', this.form.controls.danger_font_color.value);\n\t\tdocument.documentElement.style.setProperty('--danger-shadow-color', '0 0 0 0.2rem ' + hexToRGB(this.form.controls.danger_color.value, .5));\n\t\tdocument.documentElement.style.setProperty('--danger-hover-color', this.form.controls.danger_hover_color.value);\n\t\tdocument.documentElement.style.setProperty('--info-color', this.form.controls.info_color.value);\n\t\tdocument.documentElement.style.setProperty('--info-font-color', this.form.controls.info_font_color.value);\n\t\tdocument.documentElement.style.setProperty('--info-shadow-color', '0 0 0 0.2rem ' + hexToRGB(this.form.controls.info_color.value, .5));\n\t\tdocument.documentElement.style.setProperty('--info-hover-color', this.form.controls.info_hover_color.value);\n\t\tdocument.documentElement.style.setProperty('--primary-color', this.form.controls.primary_color.value);\n\t\tdocument.documentElement.style.setProperty('--primary-font-color', this.form.controls.primary_font_color.value);\n\t\tdocument.documentElement.style.setProperty('--primary-shadow-color', '0 0 0 0.2rem ' + hexToRGB(this.form.controls.primary_color.value, .5));\n\t\tdocument.documentElement.style.setProperty('--primary-hover-color', this.form.controls.primary_hover_color.value);\n\t\tdocument.documentElement.style.setProperty('--secondary-color', this.form.controls.secondary_color.value);\n\t\tdocument.documentElement.style.setProperty('--secondary-font-color', this.form.controls.secondary_font_color.value);\n\t\tdocument.documentElement.style.setProperty('--secondary-shadow-color', '0 0 0 0.2rem ' + hexToRGB(this.form.controls.secondary_color.value, .5));\n\t\tdocument.documentElement.style.setProperty('--secondary-hover-color', this.form.controls.secondary_hover_color.value);\n\n\t\tthis.subscription$.push(this._services._account.user.subscribe(user => {\n\t\t\tthis.user = user;\n\t\t}));\n\t}\n\n\tngOnDestroy() {\n\t\tthis.subscription$.forEach(sub => {\n\t\t\tsub.unsubscribe();\n\t\t});\n\n\t\tif (!this.hasSubmit) {\n\t\t\tthis.submitForm(this.form);\n\t\t}\n\t}\n\n\tchangePrimaryColor() {\n\t\tdocument.documentElement.style.setProperty('--primary-table-color', this.form.controls.table_color.value);\n\t}\n\n\tchangePrimaryFontColor() {\n\t\tdocument.documentElement.style.setProperty('--primary-table-font-color', this.form.controls.table_font_color.value);\n\t}\n\n\tchangePrimaryFontSize() {\n\t\tdocument.documentElement.style.setProperty('--font-size', this.form.controls.font_size.value + 'px');\n\t}\n\n\tchangeSecondaryColor() {\n\t\tdocument.documentElement.style.setProperty('--secondary-table-color', this.form.controls.secondary_table_color.value);\n\t}\n\n\tchangeSecondaryFontColor() {\n\t\tdocument.documentElement.style.setProperty('--secondary-table-font-color', this.form.controls.secondary_table_font_color.value);\n\t}\n\n\tchangeTertiaryColor() {\n\t\tdocument.documentElement.style.setProperty('--tertiary-table-color', this.form.controls.tertiary_table_color.value);\n\t}\n\n\tchangeTertiaryFontColor() {\n\t\tdocument.documentElement.style.setProperty('--tertiary-table-font-color', this.form.controls.tertiary_table_font_color.value);\n\t}\n\n\tchangeWarningColor() {\n\t\tdocument.documentElement.style.setProperty('--warning-color', this.form.controls.warning_color.value);\n\t\tdocument.documentElement.style.setProperty('--warning-shadow-color', '0 0 0 0.2rem ' + hexToRGB(this.form.controls.warning_color.value, .5));\n\t}\n\n\tchangeWarningHoverColor() {\n\t\tdocument.documentElement.style.setProperty('--warning-hover-color', this.form.controls.warning_hover_color.value);\n\t}\n\n\tchangeWarningFontColor() {\n\t\tdocument.documentElement.style.setProperty('--warning-font-color', this.form.controls.warning_font_color.value);\n\t}\n\n\tchangeSuccessColor() {\n\t\tdocument.documentElement.style.setProperty('--success-color', this.form.controls.success_color.value);\n\t\tdocument.documentElement.style.setProperty('--success-shadow-color', '0 0 0 0.2rem ' + hexToRGB(this.form.controls.success_color.value, .5));\n\t}\n\n\tchangeSuccessHoverColor() {\n\t\tdocument.documentElement.style.setProperty('--success-hover-color', this.form.controls.success_hover_color.value);\n\t}\n\n\tchangeSuccessFontColor() {\n\t\tdocument.documentElement.style.setProperty('--success-font-color', this.form.controls.success_font_color.value);\n\t}\n\n\tchangeDangerColor() {\n\t\tdocument.documentElement.style.setProperty('--danger-color', this.form.controls.danger_color.value);\n\t\tdocument.documentElement.style.setProperty('--danger-shadow-color', '0 0 0 0.2rem ' + hexToRGB(this.form.controls.danger_color.value, .5));\n\t}\n\n\tchangeDangerHoverColor() {\n\t\tdocument.documentElement.style.setProperty('--danger-hover-color', this.form.controls.danger_hover_color.value);\n\t}\n\n\tchangeDangerFontColor() {\n\t\tdocument.documentElement.style.setProperty('--danger-font-color', this.form.controls.danger_font_color.value);\n\t}\n\n\tchangeInfoColor() {\n\t\tdocument.documentElement.style.setProperty('--info-color', this.form.controls.info_color.value);\n\t\tdocument.documentElement.style.setProperty('--info-shadow-color', '0 0 0 0.2rem ' + hexToRGB(this.form.controls.info_color.value, .5));\n\t}\n\n\tchangeInfoHoverColor() {\n\t\tdocument.documentElement.style.setProperty('--info-hover-color', this.form.controls.info_hover_color.value);\n\t}\n\n\tchangeInfoFontColor() {\n\t\tdocument.documentElement.style.setProperty('--info-font-color', this.form.controls.info_font_color.value);\n\t}\n\n\tchangePrimaryButtonColor() {\n\t\tdocument.documentElement.style.setProperty('--primary-color', this.form.controls.primary_color.value);\n\t\tdocument.documentElement.style.setProperty('--primary-shadow-color', '0 0 0 0.2rem ' + hexToRGB(this.form.controls.primary_color.value, .5));\n\t}\n\n\tchangePrimaryHoverColor() {\n\t\tdocument.documentElement.style.setProperty('--primary-hover-color', this.form.controls.primary_hover_color.value);\n\t}\n\n\tchangePrimaryButtonFontColor() {\n\t\tdocument.documentElement.style.setProperty('--primary-font-color', this.form.controls.primary_font_color.value);\n\t}\n\n\tchangeSecondaryButtonColor() {\n\t\tdocument.documentElement.style.setProperty('--secondary-color', this.form.controls.secondary_color.value);\n\t\tdocument.documentElement.style.setProperty('--secondary-shadow-color', '0 0 0 0.2rem ' + hexToRGB(this.form.controls.secondary_color.value, .5));\n\t}\n\n\tchangeSecondaryHoverColor() {\n\t\tdocument.documentElement.style.setProperty('--secondary-hover-color', this.form.controls.secondary_hover_color.value);\n\t}\n\n\tchangeSecondaryButtonFontColor() {\n\t\tdocument.documentElement.style.setProperty('--secondary-font-color', this.form.controls.secondary_font_color.value);\n\t}\n\n\treset() {\n\t\tthis.form.controls.table_color.setValue('#3b3ee3');\n\t\tthis.form.controls.table_font_color.setValue('#ffffff');\n\t\tthis.form.controls.font_size.setValue(12);\n\t\tthis.form.controls.secondary_table_color.setValue('#87ceeb');\n\t\tthis.form.controls.secondary_table_font_color.setValue('#000000');\n\t\tthis.form.controls.tertiary_table_color.setValue('#ff4500');\n\t\tthis.form.controls.tertiary_table_font_color.setValue('#000000');\n\t\tthis.form.controls.collapsable_menu.setValue(true);\n\t\tthis.form.controls.entries_per_page.setValue('25');\n\t\tthis.form.controls.warning_color.setValue('#ffc107');\n\t\tthis.form.controls.warning_font_color.setValue('#000000');\n\t\tthis.form.controls.warning_hover_color.setValue('#e0a800');\n\t\tthis.form.controls.success_color.setValue('#28a745');\n\t\tthis.form.controls.success_font_color.setValue('#ffffff');\n\t\tthis.form.controls.success_hover_color.setValue('#218838');\n\t\tthis.form.controls.danger_color.setValue('#dc3545');\n\t\tthis.form.controls.danger_font_color.setValue('#ffffff');\n\t\tthis.form.controls.danger_hover_color.setValue('#c82333');\n\t\tthis.form.controls.info_color.setValue('#17a2b8');\n\t\tthis.form.controls.info_font_color.setValue('#ffffff');\n\t\tthis.form.controls.info_hover_color.setValue('#138496');\n\t\tthis.form.controls.primary_color.setValue('#007bff');\n\t\tthis.form.controls.primary_font_color.setValue('#ffffff');\n\t\tthis.form.controls.primary_hover_color.setValue('#0069d9');\n\t\tthis.form.controls.secondary_color.setValue('#868e96');\n\t\tthis.form.controls.secondary_font_color.setValue('#ffffff');\n\t\tthis.form.controls.secondary_hover_color.setValue('#5a6268');\n\n\t\tdocument.documentElement.style.setProperty('--primary-table-color', this.form.controls.table_color.value);\n\t\tdocument.documentElement.style.setProperty('--primary-table-font-color', this.form.controls.table_font_color.value);\n\t\tdocument.documentElement.style.setProperty('--font-size', this.form.controls.font_size.value + 'px');\n\t\tdocument.documentElement.style.setProperty('--secondary-table-color', this.form.controls.secondary_table_color.value);\n\t\tdocument.documentElement.style.setProperty('--secondary-table-font-color', this.form.controls.secondary_table_font_color.value);\n\t\tdocument.documentElement.style.setProperty('--tertiary-table-color', this.form.controls.tertiary_table_color.value);\n\t\tdocument.documentElement.style.setProperty('--tertiary-table-font-color', this.form.controls.tertiary_table_font_color.value);\n\t\tdocument.documentElement.style.setProperty('--warning-color', this.form.controls.warning_color.value);\n\t\tdocument.documentElement.style.setProperty('--warning-font-color', this.form.controls.warning_font_color.value);\n\t\tdocument.documentElement.style.setProperty('--warning-shadow-color', '0 0 0 0.2rem ' + hexToRGB(this.form.controls.warning_color.value, .5));\n\t\tdocument.documentElement.style.setProperty('--warning-hover-color', this.form.controls.warning_hover_color.value);\n\t\tdocument.documentElement.style.setProperty('--success-color', this.form.controls.success_color.value);\n\t\tdocument.documentElement.style.setProperty('--success-font-color', this.form.controls.success_font_color.value);\n\t\tdocument.documentElement.style.setProperty('--success-shadow-color', '0 0 0 0.2rem ' + hexToRGB(this.form.controls.success_color.value, .5));\n\t\tdocument.documentElement.style.setProperty('--success-hover-color', this.form.controls.success_hover_color.value);\n\t\tdocument.documentElement.style.setProperty('--danger-color', this.form.controls.danger_color.value);\n\t\tdocument.documentElement.style.setProperty('--danger-font-color', this.form.controls.danger_font_color.value);\n\t\tdocument.documentElement.style.setProperty('--danger-shadow-color', '0 0 0 0.2rem ' + hexToRGB(this.form.controls.danger_color.value, .5));\n\t\tdocument.documentElement.style.setProperty('--danger-hover-color', this.form.controls.danger_hover_color.value);\n\t\tdocument.documentElement.style.setProperty('--info-color', this.form.controls.info_color.value);\n\t\tdocument.documentElement.style.setProperty('--info-font-color', this.form.controls.info_font_color.value);\n\t\tdocument.documentElement.style.setProperty('--info-shadow-color', '0 0 0 0.2rem ' + hexToRGB(this.form.controls.info_color.value, .5));\n\t\tdocument.documentElement.style.setProperty('--info-hover-color', this.form.controls.info_hover_color.value);\n\t\tdocument.documentElement.style.setProperty('--primary-color', this.form.controls.primary_color.value);\n\t\tdocument.documentElement.style.setProperty('--primary-font-color', this.form.controls.primary_font_color.value);\n\t\tdocument.documentElement.style.setProperty('--primary-shadow-color', '0 0 0 0.2rem ' + hexToRGB(this.form.controls.primary_color.value, .5));\n\t\tdocument.documentElement.style.setProperty('--primary-hover-color', this.form.controls.primary_hover_color.value);\n\t\tdocument.documentElement.style.setProperty('--secondary-color', this.form.controls.secondary_color.value);\n\t\tdocument.documentElement.style.setProperty('--secondary-font-color', this.form.controls.secondary_font_color.value);\n\t\tdocument.documentElement.style.setProperty('--secondary-shadow-color', '0 0 0 0.2rem ' + hexToRGB(this.form.controls.secondary_color.value, .5));\n\t\tdocument.documentElement.style.setProperty('--secondary-hover-color', this.form.controls.secondary_hover_color.value);\n\t}\n\n\tsubmitForm(form) {\n\t\tthis.hasSubmit = true;\n\n\t\tthis._services._socket.call('updateDocumentProps', 'users', this._services._account.getUser()._id, [\n\t\t\t{prop: 'settings', data: this.form.value}\n\t\t], this._services._account.getUser().__v, (err, res) => {\n\t\t\tif (res) {\n\t\t\t\tthis._services._alert.setAlert('success', 'Settings have been updated');\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._ds.error('Could not update settings');\n\t\t\t\tthis._services._socket.call('insertErrorLog', 'user settings - update user', [\n\t\t\t\t\tthis._services._account.getUser(), err\n\t\t\t\t]);\n\t\t\t}\n\t\t});\n\t}\n}\n\nfunction hexToRGB(hex, alpha) {\n let r = parseInt(hex.slice(1, 3), 16),\n g = parseInt(hex.slice(3, 5), 16),\n b = parseInt(hex.slice(5, 7), 16);\n\n if (alpha) {\n return \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + alpha + \")\";\n } else {\n return \"rgb(\" + r + \", \" + g + \", \" + b + \")\";\n }\n}","<style>\n ::ng-deep :root {\n --primary-table-color: #3b3ee3;\n --primary-table-font-color: #ffffff;\n --font-size: 12px;\n --secondary-table-color: #87ceeb;\n --secondary-table-font-color: #000000;\n --tertiary-table-color: #ff4500;\n --tertiary-table-font-color: #000000;\n --warning-color: #ffc107;\n --warning-font-color: #000000;\n --warning-hover-color: #e0a800;\n --warning-shadow-color: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n --success-color: #28a745;\n --success-font-color: #ffffff;\n --success-hover-color: #218838;\n --success-shadow-color: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n --danger-color: #dc3545;\n --danger-font-color: #ffffff;\n --danger-hover-color: #c82333;\n --danger-shadow-color: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n --info-color: #17a2b8;\n --info-font-color: #ffffff;\n --info-hover-color: #138496;\n --info-shadow-color: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n --primary-color: #007bff;\n --primary-font-color: #ffffff;\n --primary-hover-color: #0069d9;\n --primary-shadow-color: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n --secondary-color: #868e96;\n --secondary-font-color: #ffffff;\n --secondary-hover-color: #5a6268;\n --secondary-shadow-color: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n }\n\n .label-accordion {\n font-weight: bold;\n color: black;\n margin-bottom: 0px;\n }\n\n .fa-plus {\n color: black;\n }\n\n .fa-minus {\n color: black;\n } \n\n .btn-warning {\n color: var(--warning-font-color);\n background-color: var(--warning-color);\n border-color: var(--warning-color);\n }\n .btn-warning:focus, .btn-warning.focus {\n box-shadow: var(--warning-shadow-color);\n }\n .btn-warning:hover {\n color: var(--warning-font-color);\n background-color: var(--warning-hover-color);\n border-color: var(--warning-hover-color);\n }\n\n .btn-success {\n color: var(--success-font-color);\n background-color: var(--success-color);\n border-color: var(--success-color);\n }\n .btn-success:focus, .btn-success.focus {\n box-shadow: var(--success-shadow-color);\n }\n .btn-success:hover {\n color: var(--success-font-color);\n background-color: var(--success-hover-color);\n border-color: var(--success-hover-color);\n }\n\n .btn-danger {\n color: var(--danger-font-color);\n background-color: var(--danger-color);\n border-color: var(--danger-color);\n }\n .btn-danger:focus, .btn-danger.focus {\n box-shadow: var(--danger-shadow-color);\n }\n .btn-danger:hover {\n color: var(--danger-font-color);\n background-color: var(--danger-hover-color);\n border-color: var(--danger-hover-color);\n }\n\n .btn-info {\n color: var(--info-font-color);\n background-color: var(--info-color);\n border-color: var(--info-color);\n }\n .btn-info:focus, .btn-info.focus {\n box-shadow: var(--info-shadow-color);\n }\n .btn-info:hover {\n color: var(--info-font-color);\n background-color: var(--info-hover-color);\n border-color: var(--info-hover-color);\n }\n\n .btn-primary {\n color: var(--primary-font-color);\n background-color: var(--primary-color);\n border-color: var(--primary-color);\n }\n .btn-primary:focus, .btn-primary.focus {\n box-shadow: var(--primary-shadow-color);\n }\n .btn-primary:hover {\n color: var(--primary-font-color);\n background-color: var(--primary-hover-color);\n border-color: var(--primary-hover-color);\n }\n\n .btn-secondary {\n color: var(--secondary-font-color);\n background-color: var(--secondary-color);\n border-color: var(--secondary-color);\n }\n .btn-secondary:focus, .btn-secondary.focus {\n box-shadow: var(--secondary-shadow-color);\n }\n .btn-secondary:hover {\n color: var(--secondary-font-color);\n background-color: var(--secondary-hover-color);\n border-color: var(--secondary-hover-color);\n }\n\n .fa-minus {\n color: black;\n } \n\n :host /deep/ .card .card-body .collapseTable th {\n background-color: var(--primary-table-color);\n color: var(--primary-table-font-color);\n font-size: var(--font-size);\n }\n\n :host /deep/ .card .card-body .collapseTable-sec th {\n background-color: var(--secondary-table-color);\n color: var(--secondary-table-font-color);\n font-size: var(--font-size);\n }\n\n :host /deep/ .card .card-body .collapseTable-tert th {\n background-color: var(--tertiary-table-color);\n color: var(--tertiary-table-font-color);\n font-size: var(--font-size);\n }\n</style>\n\n<div class=\"col-lg-12\">\n <form [formGroup]=\"form\" novalidate (ngSubmit)=\"submitForm(form)\">\n <div class=\"row\">\n <ngb-accordion #acc=\"ngbAccordion\" activeIds=\"miscOptions, tableOptions, buttonOptions\">\n <ngb-panel id=\"miscOptions\">\n <ng-template ngbPanelTitle>\n <div> \n <label class=\"label-accordion\">Misc. Options</label>\n <i *ngIf=\"!acc.activeIds.includes('miscOptions')\" class=\"fa fa-plus float-end\" aria-hidden=\"true\"></i>\n <i *ngIf=\"acc.activeIds.includes('miscOptions')\" class=\"fa fa-minus float-end\" aria-hidden=\"true\"></i>\n </div>\n </ng-template>\n <ng-template ngbPanelContent>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <responsive-button-group>\n <button type=\"button\" class=\"btn btn-success\" (click)=\"reset()\">Reset Default Settings</button>\n </responsive-button-group>\n </div>\n </div>\n <br>\n <div class=\"row\">\n <div class=\"col-lg-4\">\n\t\t\t\t\t\t\t\t<b>Collapsable Menu</b><br>\n\t\t\t\t\t\t\t\t<div class=\"form-check\">\n\t\t\t\t\t\t\t\t\t<label class=\"form-check-label\">\n\t\t\t\t\t\t\t\t\t\t<input class=\"form-check-input\" type=\"checkbox\" hidden formControlName=\"collapsable_menu\">\n\t\t\t\t\t\t\t\t\t\t<i *ngIf=\"form.controls.collapsable_menu.value\" class=\"fa fa-check\" style=\"color: green; font-size: 24px;\" aria-hidden=\"true\"></i>\n\t\t\t\t\t\t\t\t\t\t<i *ngIf=\"!form.controls.collapsable_menu.value\" class=\"fa fa-times\" style=\"color: red; font-size: 24px;\" aria-hidden=\"true\"></i>\n\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t</div>\n </div>\n <div class=\"col-lg-4\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Default Entries Per Page</label>\n <em *ngIf=\"!form.controls.entries_per_page.valid\">- Required</em>\n <select [ngClass]=\"['form-control', form.controls.entries_per_page.valid ? 'is-valid' : 'is-invalid']\" formControlName=\"entries_per_page\">\n <option value=\"25\">25</option>\n <option value=\"50\">50</option>\n <option value=\"100\">100</option>\n <option value=\"250\">250</option>\n </select>\n <div class=\"invalid-feedback\" *ngIf=\"!form.controls.entries_per_page.valid\">Entries per page is required</div>\n </div>\n </div>\n <div class=\"col-lg-4\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Font Size (Recommended 11-14)</label>\n <em *ngIf=\"form.controls.font_size.hasError('required')\">- Required</em>\n <em *ngIf=\"form.controls.font_size.hasError('wholeNumbersGreaterThanZero')\">- Invalid</em>\n <em *ngIf=\"form.controls.font_size.hasError('maxValue')\">- Invalid</em>\n <em *ngIf=\"form.controls.font_size.hasError('minValue')\">- Invalid</em>\n <input [ngClass]=\"['form-control', form.controls.font_size.valid ? 'is-valid' : 'is-invalid']\" type=\"number\" formControlName=\"font_size\" (keyup)=\"changePrimaryFontSize()\">\n <div class=\"invalid-feedback\" *ngIf=\"form.controls.font_size.hasError('required')\">Font size is required</div>\n <div class=\"invalid-feedback\" *ngIf=\"form.controls.font_size.hasError('wholeNumbersGreaterThanZero')\">Font size is invalid</div>\n <div class=\"invalid-feedback\" *ngIf=\"form.controls.font_size.hasError('maxValue')\">Font size can not exceed 18</div>\n <div class=\"invalid-feedback\" *ngIf=\"form.controls.font_size.hasError('minValue')\">Font size can not be less than 8</div>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-lg-6\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Starting Page</label>\n <select [ngClass]=\"['form-control', form.controls.opening_route.valid ? 'is-valid' : '']\" formControlName=\"opening_route\">\n <option value=\"/home\">Home</option>\n <option *ngFor=\"let view of views\" [value]=\"view.value\">{{view.display | titleCase}}</option>\n </select>\n </div>\n </div>\n <div class=\"col-lg-6\" *ngIf=\"client === 'Ace Completions'\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Routing Preference</label>\n <select [ngClass]=\"['form-control', form.controls.routing_preference.valid ? 'is-valid' : '']\" formControlName=\"routing_preference\">\n <option value=\"alwaysAsk\">Always Ask</option>\n <option value=\"sameTab\">Same Tab</option>\n <option value=\"newTab\">New Tab</option>\n <option value=\"newWindow\">New Window</option>\n </select>\n </div>\n </div>\n </div>\n </ng-template>\n </ngb-panel>\n <ngb-panel id=\"tableOptions\">\n <ng-template ngbPanelTitle>\n <div> \n <label class=\"label-accordion\">Table Options</label>\n <i *ngIf=\"!acc.activeIds.includes('tableOptions')\" class=\"fa fa-plus float-end\" aria-hidden=\"true\"></i>\n <i *ngIf=\"acc.activeIds.includes('tableOptions')\" class=\"fa fa-minus float-end\" aria-hidden=\"true\"></i>\n </div>\n </ng-template>\n <ng-template ngbPanelContent>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <collapse-table> \n <thead>\n <tr>\n <th>\n Primary Table\n </th>\n </tr>\n </thead>\n </collapse-table>\n </div>\n </div>\n <br>\n <div class=\"row\">\n <div class=\"col-lg-6\">\n <dl>\n <dt>Primary Table Background:</dt>\n <dd>\n <div class=\"form-group\">\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.table_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"table_color\" (ngModelChange)=\"changePrimaryColor()\">\n </div>\n </dd>\n </dl>\n </div>\n <div class=\"col-lg-6\">\n <dl>\n <dt>Primary Table Font:</dt>\n <dd>\n <div class=\"form-group\">\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.table_font_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"table_font_color\" (ngModelChange)=\"changePrimaryFontColor()\">\n </div>\n </dd>\n </dl>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <collapse-table secondaryColor=\"true\"> \n <thead>\n <tr>\n <th>\n Secondary Table\n </th>\n </tr>\n </thead>\n </collapse-table>\n </div>\n </div>\n <br>\n <div class=\"row\">\n <div class=\"col-lg-6\">\n <dl>\n <dt>Secondary Table Background:</dt>\n <dd>\n <div class=\"form-group\">\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.secondary_table_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"secondary_table_color\" (ngModelChange)=\"changeSecondaryColor()\">\n </div>\n </dd>\n </dl>\n </div>\n <br>\n <div class=\"col-lg-6\">\n <dl>\n <dt>Secondary Table Font:</dt>\n <dd>\n <div class=\"form-group\">\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.secondary_table_font_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"secondary_table_font_color\" (ngModelChange)=\"changeSecondaryFontColor()\">\n </div>\n </dd>\n </dl>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <collapse-table tertiaryColor=\"true\"> \n <thead>\n <tr>\n <th>\n Tertiary Table\n </th>\n </tr>\n </thead>\n </collapse-table>\n </div>\n </div>\n <br>\n <div class=\"row\">\n <div class=\"col-lg-6\">\n <dl>\n <dt>Tertiary Table Background:</dt>\n <dd>\n <div class=\"form-group\">\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.tertiary_table_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"tertiary_table_color\" (ngModelChange)=\"changeTertiaryColor()\">\n </div>\n </dd>\n </dl>\n </div>\n <div class=\"col-lg-6\">\n <dl>\n <dt>Tertiary Table Font:</dt>\n <dd>\n <div class=\"form-group\">\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.tertiary_table_font_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"tertiary_table_font_color\" (ngModelChange)=\"changeTertiaryFontColor()\">\n </div>\n </dd>\n </dl>\n </div>\n </div>\n </ng-template>\n </ngb-panel>\n <ngb-panel id=\"buttonOptions\">\n <ng-template ngbPanelTitle>\n <div> \n <label class=\"label-accordion\">Button Options</label>\n <i *ngIf=\"!acc.activeIds.includes('buttonOptions')\" class=\"fa fa-plus float-end\" aria-hidden=\"true\"></i>\n <i *ngIf=\"acc.activeIds.includes('buttonOptions')\" class=\"fa fa-minus float-end\" aria-hidden=\"true\"></i>\n </div>\n </ng-template>\n <ng-template ngbPanelContent>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <button type=\"button\" class=\"btn btn-success\">Success</button>\n </div>\n </div>\n <br>\n <div class=\"row\">\n <div class=\"col-lg-4\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Success Button Background:</label>\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.success_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"success_color\" (ngModelChange)=\"changeSuccessColor()\">\n </div>\n </div>\n <div class=\"col-lg-4\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Success Button Font:</label>\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.success_font_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"success_font_color\" (ngModelChange)=\"changeSuccessFontColor()\">\n </div>\n </div>\n <div class=\"col-lg-4\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Success Button Hover:</label>\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.success_hover_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"success_hover_color\" (ngModelChange)=\"changeSuccessHoverColor()\">\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <button type=\"button\" class=\"btn btn-warning\">Warning</button>\n </div>\n </div>\n <br>\n <div class=\"row\">\n <div class=\"col-lg-4\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Warning Button Background:</label>\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.warning_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"warning_color\" (ngModelChange)=\"changeWarningColor()\">\n </div>\n </div>\n <div class=\"col-lg-4\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Warning Button Font:</label>\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.warning_font_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"warning_font_color\" (ngModelChange)=\"changeWarningFontColor()\">\n </div>\n </div>\n <div class=\"col-lg-4\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Warning Button Hover:</label>\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.warning_hover_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"warning_hover_color\" (ngModelChange)=\"changeWarningHoverColor()\">\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <button type=\"button\" class=\"btn btn-danger\">Danger</button>\n </div>\n </div>\n <br>\n <div class=\"row\">\n <div class=\"col-lg-4\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Danger Button Background:</label>\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.danger_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"danger_color\" (ngModelChange)=\"changeDangerColor()\">\n </div>\n </div>\n <div class=\"col-lg-4\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Danger Button Font:</label>\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.danger_font_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"danger_font_color\" (ngModelChange)=\"changeDangerFontColor()\">\n </div>\n </div>\n <div class=\"col-lg-4\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Danger Button Hover:</label>\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.danger_hover_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"danger_hover_color\" (ngModelChange)=\"changeDangerHoverColor()\">\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <button type=\"button\" class=\"btn btn-info\">Info</button>\n </div>\n </div>\n <br>\n <div class=\"row\">\n <div class=\"col-lg-4\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Info Button Background:</label>\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.info_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"info_color\" (ngModelChange)=\"changeInfoColor()\">\n </div>\n </div>\n <div class=\"col-lg-4\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Info Button Font:</label>\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.info_font_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"info_font_color\" (ngModelChange)=\"changeInfoFontColor()\">\n </div>\n </div>\n <div class=\"col-lg-4\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Info Button Hover:</label>\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.info_hover_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"info_hover_color\" (ngModelChange)=\"changeInfoHoverColor()\">\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <button type=\"button\" class=\"btn btn-primary\">Primary</button>\n </div>\n </div>\n <br>\n <div class=\"row\">\n <div class=\"col-lg-4\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Primary Button Background:</label>\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.primary_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"primary_color\" (ngModelChange)=\"changePrimaryButtonColor()\">\n </div>\n </div>\n <div class=\"col-lg-4\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Primary Button Font:</label>\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.primary_font_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"primary_font_color\" (ngModelChange)=\"changePrimaryButtonFontColor()\">\n </div>\n </div>\n <div class=\"col-lg-4\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Primary Button Hover:</label>\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.primary_hover_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"primary_hover_color\" (ngModelChange)=\"changePrimaryHoverColor()\">\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <button type=\"button\" class=\"btn btn-secondary\">Secondary</button>\n </div>\n </div>\n <br>\n <div class=\"row\">\n <div class=\"col-lg-4\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Secondary Button Background:</label>\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.secondary_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"secondary_color\" (ngModelChange)=\"changeSecondaryButtonColor()\">\n </div>\n </div>\n <div class=\"col-lg-4\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Secondary Button Font:</label>\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.secondary_font_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"secondary_font_color\" (ngModelChange)=\"changeSecondaryButtonFontColor()\">\n </div>\n </div>\n <div class=\"col-lg-4\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Secondary Button Hover:</label>\n <input type=\"color\" style=\"height: 40px\" [ngClass]=\"['form-control', form.controls.secondary_hover_color.value ? 'is-valid' : 'is-invalid']\" formControlName=\"secondary_hover_color\" (ngModelChange)=\"changeSecondaryHoverColor()\">\n </div>\n </div>\n </div>\n </ng-template>\n </ngb-panel>\n </ngb-accordion>\n </div>\n <div class=\"row\" style=\"padding-top: 15px;\">\n <form-button [form]=\"form\" [disabled]=\"disableFormButton\"></form-button>\n </div>\n </form>\n</div>","\nimport { ModuleWithProviders } from '@angular/core';\nimport { Routes, RouterModule, Route } from '@angular/router';\nimport { UserSettingsComponent } from './user-settings.component';\nimport { UsersSettingsComponent } from './settings/users-settings.component';\n\nconst routes: Routes = [{ \n\tpath: 'user-settings',\n\tcomponent: UserSettingsComponent,\n\tchildren: [\n\t\t{ path: 'settings', component: UsersSettingsComponent },\n\t\t{ path: '**', redirectTo: 'settings' }\n\t]}\n];\n\nexport const UserSettingsRouting: ModuleWithProviders<Route> = RouterModule.forChild(routes);\n","import { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { DatatableModel, DatatableColumn } from './data-table.model';\nimport { ProviderService, BaseComponent } from '../../resolveio-class';\n\n@Component({\n\tproviders: [ProviderService],\n\tselector: 'data-table',\n\ttemplateUrl: './data-table.component.html'\n})\n\nexport class DatatableComponent extends BaseComponent { \n\t@Input() urlClick: string;\n\t@Input() columns: Array<DatatableColumn[]>;\n\t@Input() data: any[];\n\t@Input() collapseSize: number;\n\t@Input() searchTitle: string;\n\t@Input() totalItems = 1000;\n\t@Output() onChangeTableData = new EventEmitter<Object>();\n\t@Input() tableData: DatatableModel;\n\n\tconstructor(private _services: ProviderService) {\n\t\tsuper(_services);\n\t}\n\n\tchangeTableData() {\n\t\tthis.onChangeTableData.emit();\n\t}\n\n\tsortColumn(colName) {\n\t\tif (this.tableData.sortColumn === colName) {\n\t\t\tif (this.tableData.sortOrder === 'desc') {\n\t\t\t\tthis.tableData.sortOrder = 'asc';\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.tableData.sortOrder = 'desc';\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tthis.tableData.sortOrder = 'asc';\n\t\t\tthis.tableData.sortColumn = colName;\n\t\t}\n\n\t\tthis.changeTableData();\n\t}\n\n\tnavigateTo(id: string, column: string) {\n\t\tif (column !== 'file_key' && id && this.urlClick) {\n\t\t\tthis._services._router.navigateByUrl(this.urlClick + id);\n\t\t}\n\t}\n\n\topenFile(file_key: string) {\n\t\tthis._services._socket.call('getSignedUrl', file_key, 900, (err, res) => {\n\t\t\tif (res) {\n\t\t\t\twindow.open(res);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._services._socket.call('insertErrorLog', 'Widgets-datatable - getsignedurl', [\n\t\t\t\t\tfile_key, err\n\t\t\t\t]);\n\t\t\t}\n\t\t});\n\t}\n\n\ttypeOf(data) {\n\t\treturn typeof(data);\n\t}\n}\n","<style>\n .orangeRow { \n background-color: orangered;\n }\n\n collapse-table tr:hover {\n background-color: lightblue;\n cursor: pointer;\n }\n\n collapse-table {\n width: 100%;\n }\n</style>\n\n<div class=\"row\">\n <div class=\"input-group\">\n <span class=\"input-group-btn\">\n <button class=\"btn btn-primary\" type=\"button\" (click)=\"changeTableData()\">Search!</button>\n </span>\n <input type=\"text\" class=\"form-control\" placeholder=\"{{searchTitle}}\" [(ngModel)]=\"tableData.searchString\" (keyup.enter)=\"changeTableData()\" style=\"z-index: 0\">\n </div>\n</div>\n<div class=\"row\" style=\"padding-top: 20px;\">\n <collapse-table [collapseSize]=\"collapseSize\" headerFixed=\"true\">\n <thead>\n <tr>\n <th *ngFor=\"let column of columns\" (click)=\"sortColumn(column.data)\" style=\"cursor:pointer\">\n {{column.name}}\n <i *ngIf=\"tableData.sortColumn == column.data && tableData.sortOrder === 'desc'\" class=\"fa fa-caret-down\"></i>\n <i *ngIf=\"tableData.sortColumn == column.data && tableData.sortOrder === 'asc'\" class=\"fa fa-caret-up\"></i>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let item of data\" [ngClass]=\"{'orangeRow': item['color_red']}\">\n <td *ngFor=\"let column of columns\" (click)=\"navigateTo(item['_id'], column.data)\" [attr.data-label]=\"column.name\">\n <span *ngIf=\"typeOf(item[column.data]) !== 'boolean' && column.data !== 'cost' && column.data !== 'wells' && column.data !== 'cost_total' && column.data !== 'price' && column.data !== 'date' && column.data !== 'date_created' && column.data !== 'date_delivered' && column.data !== 'quantity' && column.data !== 'quantity_string' && column.data !== 'min_stock' && column.data !== 'max_stock' && column.data !== 'file_key' && column.data !== 'date_in'\">{{column.subData ? item[column.data][column.subData] : item[column.data]}}</span>\n <span *ngIf=\"column.data === 'cost' || column.data === 'price' || column.data === 'cost_total'\">{{item[column.data] | currency:'USD':'symbol':\"1.2-2\"}}</span>\n <span *ngIf=\"column.data === 'date' || column.data === 'date_created' || column.data === 'date_delivered'\">{{item[column.data] | date:'short'}}</span>\n <span *ngIf=\"column.data === 'quantity' || column.data === 'min_stock' || column.data === 'max_stock'\">{{item[column.data] | number}}</span>\n <span *ngIf=\"column.data === 'quantity_string'\">{{item[column.data] | number}}</span>\n <span *ngIf=\"column.data === 'wells'\"><pre>{{item[column.data]}}</pre></span>\n <span *ngIf=\"column.data === 'file_key'\">\n <button type=\"button\" (click)=\"openFile(item[column.data])\" class=\"btn btn-secondary\">Open File</button>\n <!-- <button type=\"button\" class=\"btn btn-warning\" (click)=\"viewDeletedReason(item)\" *ngIf=\"item.deleted.is_deleted\">View Deleted Reason</button> -->\n </span>\n <span *ngIf=\"typeOf(item[column.data]) === 'boolean'\">\n <i *ngIf=\"item[column.data]\" class=\"fa fa-check\" style=\"color: green; font-size: 18px;\" aria-hidden=\"true\"></i>\n <i *ngIf=\"!item[column.data]\" class=\"fa fa-times\" style=\"color: red; font-size: 18px;\" aria-hidden=\"true\"></i>\n </span>\n </td>\n </tr>\n </tbody>\n </collapse-table> \n</div>\n<hr />\n<div class=\"row\">\n <div class=\"col-lg-4\">\n <div class=\"row\"> \n <div class=\"col-lg-8\">\n <label class=\"form-control-label\">Entries Per Page</label>\n <select class=\"form-control\" [(ngModel)]=\"tableData.entriesPerPage\" (ngModelChange)=\"changeTableData()\">\n <option value=\"25\">25</option>\n <option value=\"50\">50</option>\n <option value=\"100\">100</option>\n <option value=\"250\">250</option>\n </select>\n </div>\n </div>\n </div>\n <div class=\"col-lg-8\" style=\"margin-top: 16px;\">\n <ngb-pagination class=\"float-right\"\n boundaryLinks=\"true\"\n [collectionSize]=\"totalItems\"\n directionLinks=\"true\"\n ellipses=\"false\"\n [(page)]=\"tableData.pageNum\"\n maxSize=\"6\"\n [pageSize]=\"tableData.entriesPerPage\"\n rotate=\"true\"\n (pageChange)=\"changeTableData()\"\n >\n </ngb-pagination>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { FormsModule } from '@angular/forms';\t\nimport { CommonModule } from '@angular/common';\n\nimport { RouterModule } from '@angular/router';\n\nimport { CollapseTableModule } from '../collapse-table/collapse-table.module';\n\n\nimport { DatatableComponent } from './data-table.component';\t\t\t\n\n@NgModule({\n\timports: [\n\t\tNgbModule,\n\t\tFormsModule,\n\t\tCommonModule,\n\t\tRouterModule,\n\t\tCollapseTableModule\n\t],\n\texports: [\n\t\tDatatableComponent\n\t],\n\tdeclarations: [\n\t\tDatatableComponent\n\t],\n\tproviders: [ ]\n})\nexport class DatatableModule { }\n","import { Component, Input, Output, OnInit, OnDestroy, EventEmitter, ViewChild } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { DialogService } from '../dialog/dialog.service';\nimport { HttpClient } from '@angular/common/http';\nimport { FileModel } from '../../models/file.model';\nimport { BaseComponent, ProviderService } from '../../resolveio-class';\nimport { ResizeService } from '../../util/window-resize.service';\n\n@Component({\n\tselector: 'file-upload',\n\ttemplateUrl: './file-upload.component.html'\n})\nexport class FileUploadComponent extends BaseComponent implements OnInit, OnDestroy { \n\n\tconstructor(private _resize: ResizeService, private _services: ProviderService, private _ds: DialogService, private _http: HttpClient) {\n\t\tsuper(_services);\n\t}\n\n\t@Input() files: FileModel[] = [];\n\t@Input() allowDelete = false;\n\t@Input() allowReplace = false;\n\t@Input() showFileUpload = true;\n\t@Output() filesChanged = new EventEmitter();\n\t@Output() fileAdded = new EventEmitter();\n\t@Output() fileRemoved = new EventEmitter();\n\t@Input() fileType: string; \n\n\t@ViewChild('download_link', {static: true}) download_link;\n\n\tsupportedFileTypes: string[] = ['application/pdf', 'text/plain', 'image/gif', 'image/png', 'image/jpeg', 'image/bmp'];\n\n\tpdfSrc = '';\n\treplaceFileIndex = 0;\n\n\tisUploading = false;\n\tprogressMsg = '';\n\n\twindowSize$;\n\twindowSize = 0;\n\n\tngOnInit() {\n\t\tthis.windowSize$ = this._resize.onResize$.subscribe((val) => {\n\t\t\tif (val) {\n\t\t\t\tthis.windowSize = val.innerWidth;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.windowSize = window.innerWidth;\n\t\t\t}\n\t\t});\n\t}\n\n\tngOnDestroy() {\n\t\tthis.windowSize$.unsubscribe();\n\t}\n\n\tdragFileAccepted(file) {\n\t\tif (this.supportedFileTypes.indexOf(file.type) >= 0) {\n\t\t\tthis.uploadWithEmit(file, 'misc').then(() => {}, (err) => {\n\t\t\t\tthis._ds.error('Could not upload file, incorrect type');\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tthis._ds.error('Invalid format, the supported file types are: ' + this.supportedFileTypes);\n\t\t}\n\t}\n\n\tupload(file: File, type: string, order?: number, fileName?: string, status?: string) {\n\n\t\treturn new Promise ((resolve, reject) => {\n\n\t\t\tthis.progressMsg = 'Uploading ' + (fileName ? fileName : file.name);\n\n\t\t\tthis._services._aws.uploadFile(file, type, order, fileName).then((res: FileModel) => {\n\t\t\t\tconst item = {\n\t\t\t\t\t_id: res._id,\n\t\t\t\t\tname: fileName ? fileName : file.name,\n\t\t\t\t\tsize: file.size, \n\t\t\t\t\tstatus: status ? status : 'Uploaded',\n\t\t\t\t\tkey: res.key,\n\t\t\t\t\torder: order ? order : -1, \n\t\t\t\t\ttype: type\n\t\t\t\t};\n\n\t\t\t\tthis.isUploading = false;\n\n\t\t\t\tthis.files.push(item);\n\n\t\t\t\tthis.files = this.files.sort((a, b) => {\n\t\t\t\t\treturn a.order - b.order;\n\t\t\t\t});\n\n\t\t\t\tresolve(item);\n\t\t\t}, rej => {reject(rej); });\n\n\t\t\tthis.isUploading = true;\n\t\t});\n\t}\n\n\tuploadWithEmit(file: File, type: string, order?: number, fileName?: string, status?: string) {\n\n\t\treturn new Promise ((resolve, reject) => {\n\n\t\t\tthis.progressMsg = 'Uploading ' + (fileName ? fileName : file.name);\n\n\t\t\tthis._services._aws.uploadFile(file, type, order, fileName).then((res: FileModel) => {\n\n\t\t\t\tconst item = {\n\t\t\t\t\t_id: res._id,\n\t\t\t\t\tname: fileName ? fileName : file.name,\n\t\t\t\t\tsize: file.size, \n\t\t\t\t\tstatus: status ? status : 'Uploaded',\n\t\t\t\t\tkey: res.key,\n\t\t\t\t\torder: order ? order : -1, \n\t\t\t\t\ttype: type\n\t\t\t\t};\n\n\t\t\t\tthis.isUploading = false;\n\n\t\t\t\tthis.files = this.files.sort((a, b) => {\n\t\t\t\t\treturn a.order - b.order;\n\t\t\t\t});\n\n\t\t\t\tthis.fileAdded.emit(item);\n\n\t\t\t\tresolve(item);\n\t\t\t}, rej => {reject(rej); });\n\n\t\t\tthis.isUploading = true;\n\t\t});\n\t}\n\n\tdelete(index: number, confirm: boolean = true) {\n\t\tthis.pdfSrc = '';\n\t\tif (confirm) {\n\t\t\tthis._ds.confirm('Are you sure you want to delete this file?').then(yes => {\n\n\t\t\t\tthis._services._aws.deleteFile(this.files[index].key, (err, res) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tthis._ds.error('Could not delete file');\n\t\t\t\t\t\tthis._services._socket.call('insertErrorLog', 'Widgets.File-Upload - Delete File', [\n\t\t\t\t\t\t\tthis.files[index].key,\n\t\t\t\t\t\t\terr\n\t\t\t\t\t\t]);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tthis.files.splice(index, 1);\n\t\t\t}, cancel => {});\n\t\t}\n\t\telse {\n\t\t\tthis._services._aws.deleteFile(this.files[index].key, (err, res) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tthis._services._socket.call('insertErrorLog', 'Widgets.File-Upload - Delete File', [\n\t\t\t\t\t\tthis.files[index].key,\n\t\t\t\t\t\terr\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tthis.files.splice(index, 1);\n\t\t}\n\t}\n\n\tdeleteWithEmit(index: number, confirm: boolean = true) {\n\t\tthis.pdfSrc = '';\n\n\t\tlet file = Object.assign({}, this.files[index]);\n\t\t\n\t\tif (confirm) {\n\t\t\tthis._ds.confirm('Are you sure you want to delete this file?').then(yes => {\n\n\t\t\t\tthis._services._aws.deleteFile(this.files[index].key, (err, res) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tthis._ds.error('Could not delete file');\n\t\t\t\t\t\tthis._services._socket.call('insertErrorLog', 'Widgets.File-Upload - Delete File', [\n\t\t\t\t\t\t\tthis.files[index].key,\n\t\t\t\t\t\t\terr\n\t\t\t\t\t\t]);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.fileRemoved.emit(file);\n\t\t\t\t});\n\t\t\t}, cancel => {});\n\t\t}\n\t\telse {\n\t\t\tthis._services._aws.deleteFile(this.files[index].key, (err, res) => {\n\t\t\t\tif (err) {\n\t\t\t\t\tthis._services._socket.call('insertErrorLog', 'Widgets.File-Upload - Delete File', [\n\t\t\t\t\t\tthis.files[index].key,\n\t\t\t\t\t\terr\n\t\t\t\t\t]);\n\t\t\t\t}\n\n\t\t\t\tthis.fileRemoved.emit(file);\n\t\t\t});\n\t\t}\n\t}\n\n\tdeleteFileWithId(id: string) {\n\t\tthis.delete(this.files.map(a => a._id).indexOf(id), false);\n\t}\n\n\topen(file) {\n\t\tthis._services._socket.call('getSignedUrl', file.key, 900, (err, res) => {\n\t\t\tif (res) {\n\t\t\t\twindow.open(res);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._services._socket.call('insertErrorLog', 'Widgets-file - getsignedurl', [\n\t\t\t\t\tfile.key, err\n\t\t\t\t]);\n\t\t\t}\n\t\t});\n\t}\n\n\tsetPDFViewerSrc(file) {\n\t\tthis._services._socket.call('getSignedUrl', file.key, 900, (err, res) => {\n\t\t\tif (res) {\n\t\t\t\tthis.pdfSrc = res;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._ds.error('Could not get signed url for file');\n\t\t\t\tthis._services._socket.call('insertErrorLog', 'Widgets-file - getsignedurl pdfviewer', [\n\t\t\t\t\tfile.key, err\n\t\t\t\t]);\n\t\t\t}\n\t\t});\n\t}\n\n\tonFileSelect(data) {\n\t\tthis.uploadWithEmit(data.target.files[0], this.fileType ? this.fileType : 'misc').then(() => {}, () => {});\n\n\t\tdata.srcElement.value = '';\n\t}\n\n\tonFileSelectReplace(data) { // TODO: If BOL file replaced, change BOL id_file\n\t\tif (data.target.files[0]) {\n\t\t\tlet oldFileId = this.files[this.replaceFileIndex]._id;\n\t\t\t\n\t\t\tlet type = this.files[this.replaceFileIndex].type;\n\t\t\tlet order = this.files[this.replaceFileIndex].order;\n\t\t\tlet fileExtension = this.files[this.replaceFileIndex].name.replace(/\\.[^\\.]+$/, '') + '.' + data.target.files[0].name.split('.')[data.target.files[0].name.split('.').length - 1];\n\t\t\tlet status = this.files[this.replaceFileIndex].status;\n\n\t\t\tthis.deleteWithEmit(this.replaceFileIndex, false);\n\n\t\t\tif (status === 'Unsigned') {\n\t\t\t\tthis._ds.confirm('Are you replacing this file with a signed copy?').then(yes => {\n\t\t\t\t\tthis.uploadWithEmit(data.target.files[0], type, order, fileExtension, 'Signed').then(res => {\n\t\t\t\t\t\tlet newFileKey = res['key'];\n\t\t\t\t\t\tlet newFileId = res['_id'];\n\n\t\t\t\t\t\tif (type === 'BOL') {\t\t\t\t\t\t\n\t\t\t\t\t\t\t// MeteorObservable.subscribe('bolWithFileId', oldFileId).first().subscribe(() => {\n\t\t\t\t\t\t\t// \tlet bol = BOLs.findOne({id_file: oldFileId});\n\n\t\t\t\t\t\t\t// \tif (!bol) {\n\t\t\t\t\t\t\t// \t\tthis._zone.run(() => {\n\t\t\t\t\t\t\t// \t\t\tthis._ds.error('Could not find BOL to update file');\n\t\t\t\t\t\t\t// \t\t});\n\t\t\t\t\t\t\t// \t}\n\t\t\t\t\t\t\t// \telse {\n\t\t\t\t\t\t\t// \t\t// bol.id_file = newFileId;\n\t\t\t\t\t\t\t// \t\t// bol.file_key = newFileKey;\n\n\t\t\t\t\t\t\t// \t\t// Meteor.call('updateDocumentProps', 'bols', bol._id, \n\t\t\t\t\t\t\t// \t\t// [\n\t\t\t\t\t\t\t// \t\t// \t{prop: 'id_file', data: bol.id_file},\n\t\t\t\t\t\t\t// \t\t// \t{prop: 'file_key', data: bol.file_key},\n\t\t\t\t\t\t\t// \t\t// \t{prop: 'file_status', data: 'Signed'}\n\t\t\t\t\t\t\t// \t\t// ], 'BOL', (errBOL, resBOL) => {\n\t\t\t\t\t\t\t// \t\t// \tthis._zone.run(() => {\n\t\t\t\t\t\t\t// \t\t// \t\tif (resBOL) {\n\t\t\t\t\t\t\t// \t\t// \t\t\tthis._alert.setAlert('success', 'BOL file has been replaced');\n\t\t\t\t\t\t\t// \t\t// \t\t\tMeteor.call('replaceBOLNotificationJob', bol, (errNot, resNot) => {\n\t\t\t\t\t\t\t// \t\t// \t\t\t\tif (errNot) {\n\t\t\t\t\t\t\t// \t\t// \t\t\t\t\tMeteor.call('insertErrorLog', 'Widgets-file - method replacebolnotification', [\n\t\t\t\t\t\t\t// \t\t// \t\t\t\t\t\tbol, this.job, errNot\n\t\t\t\t\t\t\t// \t\t// \t\t\t\t\t]);\n\t\t\t\t\t\t\t// \t\t// \t\t\t\t}\n\t\t\t\t\t\t\t// \t\t// \t\t\t});\n\t\t\t\t\t\t\t// \t\t// \t\t\tdata.srcElement.value = '';\n\t\t\t\t\t\t\t// \t\t// \t\t}\n\t\t\t\t\t\t\t// \t\t// \t\telse {\n\t\t\t\t\t\t\t// \t\t// \t\t\tthis._ds.error('Could not update BOL file');\n\t\t\t\t\t\t\t// \t\t// \t\t\tMeteor.call('insertErrorLog', 'Widgets-file - update bol', [\n\t\t\t\t\t\t\t// \t\t// \t\t\t\t{prop: 'id_file', data: bol.id_file},\n\t\t\t\t\t\t\t// \t\t// \t\t\t\t{prop: 'file_key', data: bol.file_key},\n\t\t\t\t\t\t\t// \t\t// \t\t\t\t{prop: 'file_status', data: bol.file_status}, \n\t\t\t\t\t\t\t// \t\t// \t\t\t\terrBOL\n\t\t\t\t\t\t\t// \t\t// \t\t\t]);\n\t\t\t\t\t\t\t// \t\t// \t\t\tdata.srcElement.value = '';\n\t\t\t\t\t\t\t// \t\t// \t\t}\n\t\t\t\t\t\t\t// \t\t// \t});\n\t\t\t\t\t\t\t// \t\t// });\n\t\t\t\t\t\t\t// \t}\n\t\t\t\t\t\t\t// });\n\t\t\t\t\t\t}\n\t\t\t\t\t}, err => {});\n\t\t\t\t}, no => {\n\t\t\t\t\tthis.uploadWithEmit(data.target.files[0], type, order, fileExtension).then(res => {\n\t\t\t\t\t\tlet newFileKey = res['key'];\n\t\t\t\t\t\tlet newFileId = res['_id'];\n\n\t\t\t\t\t\tif (type === 'BOL') {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// MeteorObservable.subscribe('bolWithFileId', oldFileId).first().subscribe(() => {\n\t\t\t\t\t\t\t// \tlet bol = BOLs.findOne({id_file: oldFileId});\n\n\t\t\t\t\t\t\t// \tif (!bol) {\n\t\t\t\t\t\t\t// \t\tthis._zone.run(() => {\n\t\t\t\t\t\t\t// \t\t\tthis._ds.error('Could not find BOL to update file');\n\t\t\t\t\t\t\t// \t\t});\n\t\t\t\t\t\t\t// \t}\n\t\t\t\t\t\t\t// \telse {\n\t\t\t\t\t\t\t// \t\t// bol.id_file = newFileId;\n\t\t\t\t\t\t\t// \t\t// bol.file_key = newFileKey;\n\n\t\t\t\t\t\t\t// \t\t// Meteor.call('updateDocumentProps', 'bols', bol._id, \n\t\t\t\t\t\t\t// \t\t// [\n\t\t\t\t\t\t\t// \t\t// \t{prop: 'id_file', data: bol.id_file},\n\t\t\t\t\t\t\t// \t\t// \t{prop: 'file_key', data: bol.file_key}\n\t\t\t\t\t\t\t// \t\t// ], 'BOL', (errUpBOL, resUpBOL) => {\n\t\t\t\t\t\t\t// \t\t// \tthis._zone.run(() => {\n\t\t\t\t\t\t\t// \t\t// \t\tif (resUpBOL) {\n\t\t\t\t\t\t\t// \t\t// \t\t\tthis._alert.setAlert('success', 'BOL file has been replaced');\n\t\t\t\t\t\t\t// \t\t// \t\t\tMeteor.call('replaceBOLNotificationJob', bol, (errNot, resNot) => {\n\t\t\t\t\t\t\t// \t\t// \t\t\t\tif (errNot) {\n\t\t\t\t\t\t\t// \t\t// \t\t\t\t\tMeteor.call('insertErrorLog', 'Widgets-file - method replacebolnotification', [\n\t\t\t\t\t\t\t// \t\t// \t\t\t\t\t\tbol, this.job, errNot\n\t\t\t\t\t\t\t// \t\t// \t\t\t\t\t]);\n\t\t\t\t\t\t\t// \t\t// \t\t\t\t}\n\t\t\t\t\t\t\t// \t\t// \t\t\t});\n\t\t\t\t\t\t\t// \t\t// \t\t\tdata.srcElement.value = '';\n\t\t\t\t\t\t\t// \t\t// \t\t}\n\t\t\t\t\t\t\t// \t\t// \t\telse {\n\t\t\t\t\t\t\t// \t\t// \t\t\tthis._ds.error('Could not update BOL file');\n\t\t\t\t\t\t\t// \t\t// \t\t\tMeteor.call('insertErrorLog', 'Widgets-file - update bol', [\n\t\t\t\t\t\t\t// \t\t// \t\t\t\t{prop: 'id_file', data: bol.id_file},\n\t\t\t\t\t\t\t// \t\t// \t\t\t\t{prop: 'file_key', data: bol.file_key}, errUpBOL\n\t\t\t\t\t\t\t// \t\t// \t\t\t]);\n\t\t\t\t\t\t\t// \t\t// \t\t\tdata.srcElement.value = '';\n\t\t\t\t\t\t\t// \t\t// \t\t}\n\t\t\t\t\t\t\t// \t\t// \t});\n\t\t\t\t\t\t\t// \t\t// });\n\t\t\t\t\t\t\t// \t}\n\t\t\t\t\t\t\t// });\n\t\t\t\t\t\t}\n\t\t\t\t\t}, err => {});\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.uploadWithEmit(data.target.files[0], type, order, fileExtension).then(res => {\n\n\t\t\t\t\tlet newFileKey = res['key'];\n\t\t\t\t\tlet newFileId = res['_id'];\n\n\t\t\t\t\tif (type === 'BOL') {\n\t\t\t\t\t\t\n\t\t\t\t\t\t// MeteorObservable.publications.bolWithFileId(oldFileId).first().subscribe(() => {\n\t\t\t\t\t\t// \tlet bol = BOLs.findOne({id_file: oldFileId});\n\n\t\t\t\t\t\t// \tif (!bol) {\n\t\t\t\t\t\t// \t\tthis._zone.run(() => {\n\t\t\t\t\t\t// \t\t\tthis._ds.error('Could not find BOL to update file');\n\t\t\t\t\t\t// \t\t});\n\t\t\t\t\t\t// \t}\n\t\t\t\t\t\t// \telse {\n\t\t\t\t\t\t// \t\t// bol.id_file = newFileId;\n\t\t\t\t\t\t// \t\t// bol.file_key = newFileKey;\n\n\t\t\t\t\t\t// \t\t// Meteor.methods.updateDocumentProps('bols', bol._id, \n\t\t\t\t\t\t// \t\t// [\n\t\t\t\t\t\t// \t\t// \t{prop: 'id_file', data: bol.id_file},\n\t\t\t\t\t\t// \t\t// \t{prop: 'file_key', data: bol.file_key}\n\t\t\t\t\t\t// \t\t// ], 'BOL', (errUpBOL, resUpBOL) => {\n\t\t\t\t\t\t// \t\t// \tthis._zone.run(() => {\n\t\t\t\t\t\t// \t\t// \t\tif (resUpBOL) {\n\t\t\t\t\t\t// \t\t// \t\t\tthis._alert.setAlert('success', 'BOL file has been replaced');\n\t\t\t\t\t\t// \t\t// \t\t\tMeteor.methods.replaceBOLNotificationJob(bol, (errNot, resNot) => {\n\t\t\t\t\t\t// \t\t// \t\t\t\tif (errNot) {\n\t\t\t\t\t\t// \t\t// \t\t\t\t\tMeteor.methods.insertErrorLog('Widgets-file - method replacebolnotification', [\n\t\t\t\t\t\t// \t\t// \t\t\t\t\t\tbol, this.job, errNot\n\t\t\t\t\t\t// \t\t// \t\t\t\t\t]);\n\t\t\t\t\t\t// \t\t// \t\t\t\t}\n\t\t\t\t\t\t// \t\t// \t\t\t});\n\t\t\t\t\t\t// \t\t// \t\t\tdata.srcElement.value = '';\n\t\t\t\t\t\t// \t\t// \t\t}\n\t\t\t\t\t\t// \t\t// \t\telse {\n\t\t\t\t\t\t// \t\t// \t\t\tthis._ds.error('Could not update BOL file');\n\t\t\t\t\t\t// \t\t// \t\t\tMeteor.methods.insertErrorLog('Widgets-file - update bol', [\n\t\t\t\t\t\t// \t\t// \t\t\t\t{prop: 'id_file', data: bol.id_file},\n\t\t\t\t\t\t// \t\t// \t\t\t\t{prop: 'file_key', data: bol.file_key}, errUpBOL\n\t\t\t\t\t\t// \t\t// \t\t\t]);\n\t\t\t\t\t\t// \t\t// \t\t\tdata.srcElement.value = '';\n\t\t\t\t\t\t// \t\t// \t\t}\n\t\t\t\t\t\t// \t\t// \t});\n\t\t\t\t\t\t// \t\t// });\n\t\t\t\t\t\t// \t}\n\t\t\t\t\t\t// });\n\t\t\t\t\t}\n\t\t\t\t}, err => {});\n\t\t\t}\n\t\t}\n\t}\n\n\tuserIsInRole(role) {\n\t\treturn this._services._account.isUserInView(role);\n\t}\n\n\tisMobile() {\n\t\t// return Meteor.isCordova;\n\t}\n\n\tprivate downloadResource(url: string): Promise<Blob> {\n\t\treturn this._http.get<Blob>(url, {responseType: 'blob' as 'json'}).toPromise();\n\t}\n\t\n\tdownload(file: FileModel) {\n\t\tthis._services._socket.call('getSignedUrl', file.key, 900, async (err, res) => {\n\t\t\tif (res) {\n\t\t\t\tconst blob = await this.downloadResource(res); // this.files[\"0\"]._id\n\t\t\t\tconst url = window.URL.createObjectURL(blob);\n\n\t\t\t\tconst link = this.download_link.nativeElement;\n\t\t\t\tlink.href = url;\n\t\t\t\tlink.download = file.name;\n\t\t\t\tlink.click();\n\t\t\t\t\n\t\t\t\twindow.URL.revokeObjectURL(url);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._services._socket.call('insertErrorLog', 'Widgets-file - update bol', [\n\t\t\t\t\terr\n\t\t\t\t]);\n\t\t\t}\n\t\t});\n\t}\n\n\n\temail(file: FileModel) {\n\t\tthis._ds.input(\n\t\t\t'Email file to which address?', [\n\t\t\t\t{\n\t\t\t\t\tlabel: 'Email Address', \n\t\t\t\t\tform: 'email', \n\t\t\t\t\tdata: '', \n\t\t\t\t\tvalidators: [Validators.required, this._services._vs.email],\n\t\t\t\t\tvalidatorErrors: ['required', 'email'],\n\t\t\t\t\tvalidatorMsg: ['Email is required', 'Email is invalid'],\n\t\t\t\t\trequired: true\n\t\t\t\t}\n\t\t\t]\n\t\t).then(\n\t\t\tresultDialog => {\n\t\t\t\tthis._services._socket.call('emailFile', file._id, resultDialog.email.value, (err, res) => {\n\t\t\t\t\tif (err) {\n\t\t\t\t\t\tthis._ds.error('Could not send email: ' + err);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis._services._alert.setAlert('success', 'Email has been sent');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t\tcancelled => { }\n\t\t);\n\t}\n}\n","<style>\n \n html, body { height: 100%; }\n\n collapse-table tr:hover {\n background-color: lightblue;\n cursor: pointer;\n }\n\n collapse-table {\n width: 100%;\n }\n \n /* Label container: */\n .file {\n display: inline-block;\n padding: 0 0 0 0.5em;\n cursor: pointer;\n position: relative;\n border: .075rem solid #ddd;\n border-radius: .25rem;\n }\n \n /* The pseudo input field: */\n .file::before {\n content: \"\";\n display: block;\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n z-index: -1;\n \n /* Bootstrap appearance: */\n background-color: #fff;\n border: .075rem solid #ddd;\n border-radius: .25rem;\n -webkit-box-shadow: inset 0 .2rem .4rem rgba(0,0,0,.05);\n box-shadow: inset 0 .2rem .4rem rgba(0,0,0,.05);\n }\n \n /* The pseudo button: */\n .file::after {\n content: \"Browse\";\n display: inline-block;\n \n /* Bootstrap appearance: */\n background-color: #eee;\n border: .075rem solid #ddd;\n border-radius: 0 .25rem .25rem 0;\n padding: .5rem 1rem;\n line-height: 1.5;\n color: #555;\n }\n \n .file input[type=file] {\n cursor: pointer;\n border: 0 none;\n width: 12em;\n }\n \n /* -webkit hide the button: */\n .file input[type=file]::-webkit-file-upload-button {\n border: 0;\n padding: 0;\n margin: 0 ;\n width: 0;\n background: transparent;\n } \n \n /* IE10+ hide the button: */\n .file input[type=file]::-ms-browse {\n padding: 0;\n margin: -1px;\n width: 0;\n border: 0;\n background: transparent;\n }\n \n .file input[type=file]::-ms-value {\n background: #fff;\n border: 0;\n }\n\n card {\n width: 100%;\n }\n</style>\n\n<a style=\"display: none\" #download_link></a>\n<input hidden type=\"file\" #fileInputReplace (change)=\"onFileSelectReplace($event)\" />\n \n<div class=\"card\">\n <div class=\"card-header\">\n <strong class=\"pull-left\">Files</strong>\n </div>\n <div class=\"card-block\">\n <div class=\"row\">\n <div class=\"col-lg-6\">\n <div class=\"row\" *ngIf=\"showFileUpload\">\n <div class=\"col-lg-6\">\n <div class=\"container\">\n <div style=\"margin: 10px 0px; font-weight: bold;\">Upload File</div>\n <label class=\"file\">\n <input type=\"file\" #fileInput (change)=\"onFileSelect($event)\" />\n </label>\n <br>\n <ngx-file-drop dropZoneLabel=\"Drop files here\" style=\"width: 223px; height: 112px; border: 1px black dashed; border-radius: 5px; justify-content: center;\" class=\"vertical-align\" (onFileDrop)=\"dragFileAccepted($event)\"></ngx-file-drop>\n </div>\n </div>\n <div class=\"col-lg-6\">\n <div *ngIf=\"isUploading\">\n <b>{{progressMsg || 'N/A'}}</b>\n </div>\n </div>\n </div>\n <div class=\"row\" style=\"margin-top: 10px;\">\n <div class=\"col-lg-12\" *ngIf=\"windowSize > 980\">\n <div style=\"text-align: center;\" *ngIf=\"pdfSrc\">\n <ngx-doc-viewer [url]=\"pdfSrc\" style=\"display: block;\"></ngx-doc-viewer>\n </div>\n </div>\n </div>\n </div>\n <div class=\"col-lg-6\">\n <div *ngIf=\"files && files.length\">\n <b>Uploaded Files</b>\n <div [style.max-height]=\"windowSize > 900 ? '300px' : ''\" [style.overflow-y]=\"windowSize > 900 ? 'auto' : ''\">\n <collapse-table collapseSize=\"900\">\n <thead>\n <tr>\n <th>File Name</th>\n <th>Size</th>\n <th>Type</th>\n <th>Actions</th>\n </tr>\n </thead> \n <tbody>\n <tr *ngFor=\"let file of files; let i = index\">\n <td data-label=\"File Name\" (click)=\"setPDFViewerSrc(file)\">{{file.name}}</td>\n <td data-label=\"Size\" (click)=\"setPDFViewerSrc(file)\">{{ file.size/1024/1024 | number:'.2' }} MB</td>\n <td data-label=\"Type\" (click)=\"setPDFViewerSrc(file)\">{{file.type}}</td>\n <td data-label=\"Actions\">\n <responsive-button-group collapseSize=\"900\">\n <button type=\"button\" class=\"btn btn-success\" (click)=\"open(file)\">Open</button>\n <button type=\"button\" class=\"btn btn-primary\" (click)=\"download(file)\">Download</button>\n <button [hidden]=\"!allowDelete || (file.type !== 'misc' && !userIsInRole('super-admin'))\" type=\"button\" class=\"btn btn-danger\" (click)=\"deleteWithEmit(i)\">Delete</button>\n <button [hidden]=\"!allowDelete || (file.type !== 'misc' && !userIsInRole('super-admin'))\" type=\"button\" class=\"btn btn-danger\" (click)=\"fileInputReplace.click(); replaceFileIndex = i;\">Replace</button>\n <button type=\"button\" class=\"btn btn-warning\" (click)=\"email(file)\">Email</button>\n </responsive-button-group>\n </td>\n </tr>\n </tbody>\n </collapse-table>\n </div>\n </div>\n <div *ngIf=\"!files || !files.length\">\n <b>No Uploaded Files</b>\n </div>\n </div>\n </div>\n </div>\n</div>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { FileUploadComponent } from './file-upload.component';\nimport { CollapseTableModule } from '../collapse-table/collapse-table.module';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { ResponsiveButtonGroupModule } from '../responsive-button-group/responsive-button-group.module';\nimport { NgxFileDropModule } from 'ngx-file-drop';\nimport { NgxDocViewerModule } from 'ngx-doc-viewer';\n\n@NgModule({\n\timports: [\n\t\tCommonModule,\n\t\tFormsModule,\n\t\tCollapseTableModule,\n\t\tNgbModule,\n\t\tResponsiveButtonGroupModule,\n\t\tNgxFileDropModule,\n\t\tNgxDocViewerModule\n\t],\n\tdeclarations: [\n\t\tFileUploadComponent\n\t],\n\texports: [\n\t\tFileUploadComponent\n\t]\n})\nexport class FileModule { }","import { NgModule } from '@angular/core';\nimport { SharedModule } from '../shared/shared.module';\n\nimport { UserSettingsRouting } from './user-settings.routing';\nimport { UserSettingsComponent } from './user-settings.component';\nimport { UserSettingsService } from './user-settings.service';\nimport { DatatableModule } from '../widgets/data-table/data-table.module';\nimport { FileModule } from '../widgets/file/file-upload.module';\nimport { UsersSettingsComponent } from './settings/users-settings.component';\n\n@NgModule({\n\timports: [\n\t\tSharedModule,\n\t\tUserSettingsRouting,\n\t\tDatatableModule,\n\t\tFileModule\n\t],\n\tdeclarations: [ \n\t\tUserSettingsComponent,\n\t\tUsersSettingsComponent\n\t],\n\tproviders: [\n\t\tUserSettingsService\n\t]\n})\nexport class UserSettingsModule { }\n","import { Component, OnInit } from '@angular/core';\nimport { NavbarModel } from '../widgets/navbar-module/navbar-module.model';\nimport { AuthService } from '../auth/auth.service';\n\nimport { ProviderService, BaseComponent } from '../resolveio-class';\nimport { Subscription } from 'rxjs';\nimport { FormGroup } from '@angular/forms';\nimport { HttpClient } from '@angular/common/http';\nimport { ActivatedRoute } from '@angular/router';\nimport { CoreService } from '../core.service';\n@Component({\n\tproviders: [ProviderService],\n\ttemplateUrl: './home.component.html'\n})\nexport class HomeComponent extends BaseComponent implements OnInit {\n\tmenuData: NavbarModel = {\n\t\ttitle: 'Home',\n\t\tmodule: null,\n\t\tdescription: null,\n\t\tdescription_name: null,\n\t\ttabs: [\n\t\t\t{'link': 'home', 'params': null, 'label': 'Home'}\n\t\t]\n\t};\n\n\tselectedSolution = 'Asset';\n\tloggingOut$: Subscription = null;\n\tsubscription$: Subscription = null;\n\tisLoggedIn: boolean;\n\tform: FormGroup;\n\n\tconstructor(private _route: ActivatedRoute, private auth: AuthService, private _services: ProviderService, private _http: HttpClient, private _app: CoreService) {\n\t\tsuper(_services);\n\t}\n\n\tngOnInit() {\n\t\tthis._services._app.setNavbarModuleData(this.menuData);\n\n\t\tthis.loggingOut$ = this._app.isLoggingOut.subscribe(isLoggingOut => {\n\t\t\tif (!isLoggingOut) {\n\t\t\t\tif (this._services._account.getUser()) {\n\t\t\t\t\tif (this._services._account.getUser().settings && this._services._account.getUser().settings.opening_route && this._services._account.getUser().settings.opening_route !== '/home') {\n\t\t\t\t\t\tthis._services._router.navigateByUrl(this._services._account.getUser().settings.opening_route);\n\t\t\t\t\t}\n\t\t\t\t\telse if (this._services._router.url !== '/home') {\n\t\t\t\t\t\tthis._services._router.navigateByUrl('/home');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tif (this.subscription$) {\n\t\t\t\t\t\tthis.subscription$.unsubscribe();\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.subscription$ = this._services._account.user.subscribe(user => {\n\t\t\t\t\t\tif (user && user.settings && user.settings.opening_route && user.settings.opening_route !== '/home') {\n\t\t\t\t\t\t\tthis._services._router.navigateByUrl(user.settings.opening_route);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (this._services._router.url !== '/home') {\n\t\t\t\t\t\t\tthis._services._router.navigateByUrl('/home');\n\t\t\t\t\t\t}\n\t\t\t\t\t}, () => {});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tngOnDestroy() {\n\t\tif (this.subscription$) {\n\t\t\tthis.subscription$.unsubscribe();\n\t\t}\n\t\tif (this.loggingOut$) {\n\t\t\tthis.loggingOut$.unsubscribe();\n\t\t}\n\t}\n}\n","<div style=\"height: 100%\">\n <div class=\"row\" style=\"margin-left: 0px; margin-right: 0px; height: 100%;\">\n <div class=\"col-lg-12\" style=\"height: 100%\">\n <div class=\"jumbotron jumbotron-fluid\" style=\"height: 100%; padding-bottom: 0px;\">\n <div class=\"container text-center\" style=\"height: 100%\">\n <img src=\"/assets/images/ResolveIO.png\" class=\"img-fluid\" alt=\"Responsive image\" style=\"height: 100%; width: auto; max-width: 750px; max-height: 525px;\">\n <p style=\"font-size: 24px; font-style: italic\">The All-in-One Solution for Tracking Inventory, Ordering, POs, Management, and Much More!</p>\n </div>\n </div>\n </div>\n </div> \n</div>","import { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { NgModule } from '@angular/core';\nimport { CoreComponent } from './core.component';\nimport { AccountManagerService } from './account-manager.service';\nimport { SocketManagerService } from './socket-manager.service';\nimport { DeviceDetectorService } from 'ngx-device-detector';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { NavbarMainComponent } from './widgets/navbar-main/navbar-main.component';\nimport { NavbarModuleComponent } from './widgets/navbar-module/navbar-module.component';\nimport { LoggerComponent } from './logger/logger.component';\nimport { CoreService } from './core.service';\nimport { AuthService } from './auth/auth.service';\nimport { AuthGuard } from './auth/auth-guard.service';\nimport { CanDeactivateGuard } from './auth/can-deactivate-guard.service';\nimport { ValidationService } from './util/validation.service';\nimport { AuthPermissionService } from './auth/auth-permissions.service';\nimport { WindowRefService } from './util/window.service';\nimport { ToastrModule } from 'ngx-toastr';\nimport { AlertService } from './widgets/alert/alert.service';\nimport { AwsService } from './util/aws.service';\nimport { DialogService } from './widgets/dialog/dialog.service';\nimport { SocketService } from './socket.service';\nimport { TokenManagerService } from './token-manager.service';\nimport { SharedModule } from './shared/shared.module';\nimport { OfflineManagerService } from './offline-manager.service';\nimport { FocusDirective } from './directive/focus';\nimport { ForgotPasswordComponent } from './auth/forgot-password.component';\nimport { EnrollComponent } from './auth/enroll.component';\nimport { DialogConfirmContent } from './widgets/dialog/dialog.confirm.content';\nimport { DialogErrorContent } from './widgets/dialog/dialog.error.content';\nimport { DialogInputContent } from './widgets/dialog/dialog.input.content';\nimport { DialogNotifyContent } from './widgets/dialog/dialog.notify.content';\nimport { DialogSelectDateTimeContent } from './widgets/dialog/dialog.select-datetime.content';\nimport { DialogSelectDataLabelsContent } from './widgets/dialog/dialog.select-data-labels.content';\nimport { DialogLoginContent } from './widgets/dialog/dialog.login.content';\nimport { HttpClientModule } from '@angular/common/http';\nimport { ScrollDirective } from './directive/scroll';\nimport { DialogRegisterContent } from './widgets/dialog/dialog.register.content';\nimport { Auth365Component } from './auth/auth365.component';\nimport { UserSettingsModule } from './user-settings/user-settings.module';\nimport { HomeComponent } from './home/home.component';\nimport { CollapseTableModule } from './widgets/collapse-table/collapse-table.module';\nimport { DialogSelectWithButtonsURLContent } from './widgets/dialog/dialog.select-with-buttons-url.content';\nimport { DialogSelectArrayObjsContent } from './widgets/dialog/dialog.select-array-objs.content';\nimport { DialogSelectArrayContent } from './widgets/dialog/dialog.select-array.content';\n\n@NgModule({\n imports: [\n SharedModule,\n HttpClientModule,\n NgbModule,\n ToastrModule.forRoot(),\n UserSettingsModule,\n BrowserAnimationsModule,\n CollapseTableModule\n ],\n declarations: [\n CoreComponent,\n HomeComponent,\n LoggerComponent,\n NavbarMainComponent,\n NavbarModuleComponent,\n ForgotPasswordComponent,\n EnrollComponent,\n Auth365Component,\n FocusDirective,\n ScrollDirective,\n DialogConfirmContent,\n DialogErrorContent,\n DialogInputContent,\n DialogNotifyContent,\n DialogSelectDateTimeContent,\n DialogSelectDataLabelsContent,\n DialogLoginContent,\n DialogRegisterContent,\n DialogSelectWithButtonsURLContent,\n DialogSelectArrayObjsContent,\n DialogSelectArrayContent\n ],\n providers: [\n CoreService,\n AuthService,\n AuthGuard,\n CanDeactivateGuard,\n DialogService,\n ValidationService,\n AwsService,\n AuthPermissionService,\n WindowRefService,\n AlertService,\n SocketService,\n SocketManagerService,\n TokenManagerService,\n AccountManagerService,\n OfflineManagerService,\n DeviceDetectorService\n ],\n exports: [\n CoreComponent,\n HomeComponent,\n LoggerComponent,\n NavbarMainComponent,\n NavbarModuleComponent,\n ForgotPasswordComponent,\n EnrollComponent,\n Auth365Component,\n FocusDirective,\n ScrollDirective\n ]\n})\nexport class CoreModule { }\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable()\nexport class SupportTicketService {\n\n\tselectedSupportTicket = new BehaviorSubject('0');\n\n\tconstructor() {}\n\n\tsetSelectedSupportTicket(id: string) {\n\t\tthis.selectedSupportTicket.next(id);\n\t}\n}\n","import { Component, OnInit, OnDestroy, Input } from '@angular/core';\nimport { NavbarModel } from '../widgets/navbar-module/navbar-module.model';\nimport { SupportTicketService } from './support-ticket.service';\nimport { Subscription } from 'rxjs';\nimport { ProviderService, BaseComponent } from '../resolveio-class';\nimport { SupportTicketModel } from '../models/support-ticket.model';\n\n@Component({\n\tproviders: [ProviderService],\n\ttemplate: '<router-outlet></router-outlet>'\n})\n\nexport class SupportTicketComponent extends BaseComponent implements OnInit, OnDestroy { \n\n\tselectedResolveIOSupport$: Subscription;\n\n\tmenuData: NavbarModel;\n\t\n\tconstructor(private _sts: SupportTicketService, private _services: ProviderService) {\n\t\tsuper(_services);\n\t}\n\n\tngOnInit() {\n\t\tthis.selectedResolveIOSupport$ = this._sts.selectedSupportTicket.subscribe(\n\t\t\tval => this.selectedResolveIOSupportChanged(val)\n\t\t);\n\t}\n\n\tngOnDestroy() {\n\t\tthis._sts.setSelectedSupportTicket('0');\n\n\t\tthis.selectedResolveIOSupport$.unsubscribe();\n\t}\n\n\tselectedResolveIOSupportChanged(id: string) {\n\t\tif (id !== '0') {\n\t\t\tthis._services._socket.call('supportGetSupportTicketWithId', id, (err, res) => {\n\t\t\t\tif (!res) {\n\t\t\t\t\tthis.setResolveIOSupportModuleMenuData();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis.setResolveIOSupportModuleMenuData(id, res);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tthis.setResolveIOSupportModuleMenuData();\n\t\t}\n\t}\n\n\tsetResolveIOSupportModuleMenuData(id?: string, st?: SupportTicketModel) {\n\t\tlet tabs = [];\n\n\t\ttabs.push({link: '/support-ticket/list', params: null, label: 'List', tourAnchor: 'navBarModuleSupportList'});\n\t\ttabs.push({link: '/support-ticket/new', params: null, label: 'New', tourAnchor: 'navBarModuleSupportNew'});\n\t\ttabs.push({link: '/support-ticket/detail', params: id || '0', label: 'Details'});\n\t\tif (this._services._account.isUserSuperAdmin() || (st && st.id_user_created === this._services._account.getUser()._id)) {\n\t\t\ttabs.push({link: '/support-ticket/edit', params: id || '0', label: 'Edit'});\n\t\t}\n\n\t\tthis.menuData = {\n\t\t\ttitle: 'Support Center',\n\t\t\tmodule: 'Support Ticket',\n\t\t\tdescription_name: 'Support Ticket #',\n\t\t\tdescription: st ? st.support_ticket_number_string : '',\n\t\t\ttabs: tabs\n\t\t};\n\n\t\tthis._services._app.setNavbarModuleData(this.menuData);\n\t}\n}\n","import { Component, OnInit, OnDestroy } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { SupportTicketService } from '../support-ticket.service';\nimport { Subscription } from 'rxjs';\nimport { DatatableModel, DatatableColumn } from '../../widgets/data-table/data-table.model';\nimport { ProviderService, BaseComponent } from '../../resolveio-class';\nimport { SupportTicketModel } from '../../models/support-ticket.model';\nimport { PaginationOptions } from '../../models/pagination.model';\n\n@Component({\n\tproviders: [ProviderService],\n\ttemplateUrl: './support-ticket-list.component.html'\n})\nexport class SupportTicketListComponent extends BaseComponent implements OnInit, OnDestroy { \n\n\troute$: Subscription;\n\n\tsupport_tickets: SupportTicketModel;\n\n\tsubscription$: Subscription[] = [];\n\n\tcolumns: Array<DatatableColumn> = [\n\t\t{ name: 'Support Ticket #', data: 'support_ticket_number'},\n\t\t{ name: 'Date Created', data: 'date_created'},\n\t\t{ name: 'Type', data: 'type' },\n\t\t{ name: 'Issue', data: 'issue' },\n\t\t{ name: 'Status', data: 'status'},\n\t\t{ name: 'Created By', data: 'user_created'}\n\t];\n\n\ttableData: DatatableModel = {\n\t\tsearchString: '',\n\t\tentriesPerPage: '25',\n\t\tpageNum: 1,\n\t\tsortColumn: '',\n\t\tsortOrder: 'desc',\n\t\tfilters: {\n\t\t\tstatus: 'Opened',\n\t\t\tsubstatus: 'All'\n\t\t}\n\t};\n\n\ttotalItems = 1000;\n\n\tconstructor(private _sts: SupportTicketService, private _route: ActivatedRoute, private _services: ProviderService) {\n\t\tsuper(_services);\n\t}\n\n\tngOnInit() {\n\t\tthis._sts.setSelectedSupportTicket('0');\n\n\t\tthis.route$ = this._route.queryParams.subscribe(() => {\n\n\t\t\tlet keys = Object.keys(this.tableData);\n\t\t\tlet filterKeys = Object.keys(this.tableData.filters);\n\n\t\t\tif (this._route.snapshot.queryParamMap.keys.length) {\n\t\t\t\tkeys.splice(keys.indexOf('filters', 1));\n\n\t\t\t\tfilterKeys.forEach(key => {\n\t\t\t\t\tkeys.push('filters.' + key);\n\t\t\t\t});\n\n\t\t\t\tkeys.filter(a => a in this._route.snapshot.queryParams).forEach(key => {\n\t\t\t\t\tif (key.includes('filters.')) {\n\t\t\t\t\t\tlet tmpKey = key;\n\t\t\t\t\t\ttmpKey = tmpKey.replace('filters.', '');\n\t\t\t\t\t\tthis.tableData.filters[tmpKey] = this._route.snapshot.queryParams[key];\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tthis.tableData[key] = this._route.snapshot.queryParams[key];\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.tableData = {\n\t\t\t\t\tsearchString: '',\n\t\t\t\t\tentriesPerPage: '25',\n\t\t\t\t\tpageNum: 1,\n\t\t\t\t\tsortColumn: '',\n\t\t\t\t\tsortOrder: 'desc',\n\t\t\t\t\tfilters: {\n\t\t\t\t\t\tstatus: 'Opened',\n\t\t\t\t\t\tsubstatus: 'All'\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tthis.queryData();\n\t\t});\n\t}\n\n\tngOnDestroy() {\n\t\tthis.subscription$.forEach(sub => {\n\t\t\tsub.unsubscribe();\n\t\t});\n\n\t\tthis.route$.unsubscribe();\n\t}\n\n\tonQueryDataChanged() {\n\t\tlet queryParams = {};\n\n\t\tlet keys = Object.keys(this.tableData);\n\t\tlet filterKeys = Object.keys(this.tableData.filters);\n\n\t\tkeys.forEach(key => {\n\t\t\tif (key === 'filters') {\n\t\t\t\tfilterKeys.forEach(filterKey => {\n\t\t\t\t\tqueryParams['filters.' + filterKey] = this.tableData.filters[filterKey];\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tqueryParams[key] = this.tableData[key];\n\t\t\t}\n\t\t});\n\n\t\tthis._services._router.navigate(['/support-ticket/list'], { queryParams } );\n\t}\n\n\tqueryData() {\n\n\t\tlet fields = {};\n\n\t\tthis.columns.forEach(col => {\n\t\t\tfields[col.data] = 1;\n\t\t});\n\n\t\tconst options: PaginationOptions = {\n\t\t\tlimit: parseInt(this.tableData.entriesPerPage),\n\t\t\tskip: (this.tableData.pageNum - 1) * parseInt(this.tableData.entriesPerPage),\n\t\t\tsort: this.tableData.sortColumn ? { [this.tableData.sortColumn] : (this.tableData.sortOrder === 'asc' ? 1 : -1) } : { name: 1 },\n\t\t\tfields: fields\n\t\t};\n\n\t\tlet filters = [{prop: 'client', data: this._services._app.client.getValue()}];\n\t\tif (this.tableData.filters['status'] !== 'All') {\n\t\t\tfilters.push({prop: 'status', data: this.tableData.filters['status']});\n\t\t}\n\t\tif (this.tableData.filters['substatus'] !== 'All') {\n\t\t\tfilters.push({prop: 'substatus', data: this.tableData.filters['substatus']});\n\t\t}\n\t\t\n\t\tthis._services._socket.call('supportticketsWithOptions', options, this.tableData.searchString, filters, (err, res) => {\n\t\t\tthis.support_tickets = res;\n\t\t});\n\n\t\tthis._services._socket.call('supportticketCount', this.tableData.searchString, filters, (err, res) => {\n\t\t\tif (err) {\n\t\t\t\tthis._services._socket.call('insertErrorLog', 'countQuery - resolveioSupportList', [\n\t\t\t\t\terr\n\t\t\t\t]);\n\t\t\t} \n\t\t\telse {\n\t\t\t\tthis.totalItems = res;\n\t\t\t}\n\t\t});\n\t}\n}\n","<div class=\"row\">\n <div class=\"col-sm-6\">\n <b>Filter Support Ticket By Status</b><br>\n <select class=\"form-control\" [(ngModel)]=\"tableData.filters['status']\" (change)=\"onQueryDataChanged()\" tourAnchor=\"supportListFilter\">\n <option value=\"All\">All</option>\n <option value=\"Opened\">Opened</option>\n <option value=\"Resolved\">Resolved</option>\n </select>\n </div>\n <div class=\"col-sm-6\">\n <b>Filter Support Ticket By Sub-Status</b><br>\n <select class=\"form-control\" [(ngModel)]=\"tableData.filters['substatus']\" (change)=\"onQueryDataChanged()\">\n <option value=\"All\">All</option>\n <option value=\"Investigating\">Investigating</option>\n <option value=\"Awaiting Customer Interaction\">Awaiting Customer Interaction</option>\n <option value=\"Resolved\">Resolved</option>\n </select>\n </div>\n</div>\n<div class=\"row\">\n <div class=\"col-md-12\">\n <div style=\"padding-left: 15px; padding-right: 15px; padding-top: 15px;\">\n <data-table #dataTable\n [urlClick]=\"'/support-ticket/detail/'\"\n [columns]=\"columns\"\n [data]=\"support_tickets\"\n [collapseSize]=\"990\"\n [searchTitle]=\"'Search For Support Ticket...'\"\n [totalItems]=\"totalItems\"\n (onChangeTableData)=\"onQueryDataChanged()\"\n [tableData]=\"tableData\"\n tourAnchor=\"supportListDatatable\">\n </data-table>\n </div>\n </div>\n</div>\n ","import { Component, OnInit, OnDestroy, ChangeDetectorRef, ViewChild } from '@angular/core';\nimport { SupportTicketService } from '../support-ticket.service';\nimport { Validators, FormGroup } from '@angular/forms';\nimport { Subscription } from 'rxjs';\nimport { ProviderService, BaseComponent } from '../../resolveio-class';\nimport { pad } from '../../util/common.helper';\nimport { DialogService } from '../../widgets/dialog/dialog.service';\n\n@Component({\n\tproviders: [ProviderService],\n\ttemplateUrl: './support-ticket-new.component.html'\n})\n\nexport class SupportTicketNewComponent extends BaseComponent implements OnInit, OnDestroy { \n\n\t@ViewChild ('fileUpload', {static: true}) fileUpload;\n\t\n\tsubscription$: Subscription[] = [];\n\n\tform: FormGroup;\n\n\tdisableFormButton = false;\n\n\tsubmit = false;\n\n\tconstructor(private _sts: SupportTicketService, private _cd: ChangeDetectorRef, private _services: ProviderService, private _ds: DialogService) {\n\t\tsuper(_services);\n\t}\n\n\tngOnInit() {\n\t\tthis._sts.setSelectedSupportTicket('0');\n\n\t\tthis.form = this._services._fb.group({\n\t\t\t__v: [0],\n\t\t\ttype: ['', [Validators.required]],\n\t\t\tpriority: ['', [Validators.required]],\n\t\t\tissue: ['', [Validators.required]],\n\t\t\tsupport_ticket_number: [0],\n\t\t\tsupport_ticket_number_string: ['0'],\n\t\t\tstatus: ['Opened'],\n\t\t\tsubstatus: ['New'],\n\t\t\tclient: [this._services._app.client.getValue()],\n\t\t\tid_client: [this._services._app.client.getValue()],\n\t\t\tmessages: [[]],\n\t\t\tdate_created: [null],\n\t\t\tdate_created_string: [''],\n\t\t\tid_user_created: [this._services._account.getUser()._id],\n\t\t\tuser_created: [this._services._account.getUser().fullname],\n\t\t\tbillable: [false, [Validators.required]],\n\t\t\tdate_investigation: [null],\n\t\t\tdate_closed: [null],\n\t\t\tfiles: [[]],\n\t\t\tcurrent_watchers: [[]],\n\t\t\tclient_user: [{\n\t\t\t\tid_user: this._services._account.getUser()._id,\n\t\t\t\tuser: this._services._account.getUser().fullname,\n\t\t\t\temail: this._services._account.getUser().email ? this._services._account.getUser().email : ''\n\t\t\t}],\n\t\t\ttasks: [[]],\n\t\t\tnotes: [[]],\n\t\t\tusers_assigned: [[]],\n\t\t\tbill_description: [''],\n\t\t\tdifficulty: [1]\n\t\t});\n\t}\n\n\tngOnDestroy() {\n\t\tthis.subscription$.forEach(sub => {\n\t\t\tsub.unsubscribe();\n\t\t});\n\t}\n\n\tcanDeactivate() {\t\t\t\n\t\treturn true;\n\t}\n\n\tonTypeChange() {\n\t\tif (this.form.controls.type.value === 'System Impairment') {\n\t\t\tthis.form.controls.priority.setValue('High');\n\t\t\tthis.form.controls.billable.setValue(false);\n\t\t}\n\t\telse if (this.form.controls.type.value === 'Request New Feature') {\n\t\t\tthis.form.controls.priority.setValue('Low');\n\t\t\tthis.form.controls.billable.setValue(true);\n\t\t}\n\t\telse if (this.form.controls.type.value === 'General Inquery') {\n\t\t\tthis.form.controls.priority.setValue('Low');\n\t\t\tthis.form.controls.billable.setValue(true);\n\t\t}\n\t\telse {\n\t\t\tthis.form.controls.priority.setValue('');\n\t\t\tthis.form.controls.billable.setValue(false);\n\t\t}\n\t}\n\n\tsubmitForm(form) {\n\n\t\tthis.submit = true;\n\n\t\tthis.disableFormButton = true;\n\n\t\tlet now = new Date();\n\t\tthis.form.controls.date_created.setValue(now);\n\t\tthis.form.controls.date_created_string.setValue(now.getFullYear() + '/' + (now.getMonth() + 1) + '/' + now.getDate());\n\n\t\tthis._services._socket.call('supportInsertSupportTicket', this.form.value, (err, res) => {\n\t\t\tif (res) {\n\t\t\t\tthis._services._alert.setAlert('success', 'Support ticket has been created');\n\t\t\t\tthis._services._router.navigateByUrl('/support-ticket/detail/' + res);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._ds.error('Could not create new support ticket.');\n\t\t\t\tthis._services._socket.call('insertErrorLog', 'Support Ticket New - insert support ticket', [\n\t\t\t\t\tthis.form.value, err\n\t\t\t\t]);\n\t\t\t}\n\t\t});\n\t}\n}\n","<style>\n .label-accordion {\n font-weight: bold;\n color: black;\n margin-bottom: 0px;\n }\n\n .fa-plus {\n color: black;\n }\n\n .fa-minus {\n color: black;\n }\n</style>\n\n<div class=\"col-lg-12\">\n <form [formGroup]=\"form\" novalidate (ngSubmit)=\"submitForm(form)\">\n <div class=\"row\">\n <ngb-accordion #acc=\"ngbAccordion\" activeIds=\"supportTicketInfo\">\n <ngb-panel id=\"supportTicketInfo\">\n <ng-template ngbPanelTitle>\n <div> \n <label class=\"label-accordion\">Support Ticket Info</label>\n <i *ngIf=\"!acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-plus float-end\" aria-hidden=\"true\"></i>\n <i *ngIf=\"acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-minus float-end\" aria-hidden=\"true\"></i>\n </div>\n </ng-template>\n <ng-template ngbPanelContent>\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Support Ticket Type</label>\n <em *ngIf=\"!form.controls.type.valid\">- Required</em>\n <select [ngClass]=\"['form-control', form.controls.type.valid ? 'is-valid' : 'is-invalid']\" formControlName=\"type\" (change)=\"onTypeChange()\" tourAnchor=\"supportNewSelect\">\n <option value=\"\">Select Type</option>\n <option value=\"General Inquery\">General Inquery</option>\n <option value=\"System Impairment\">System Impairment</option>\n <option value=\"Request New Feature\">Request New Feature</option>\n </select>\n <div class=\"invalid-feedback\" *ngIf=\"!form.controls.type.valid\">Type is required</div>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Problem/Feature Description</label>\n <em *ngIf=\"!form.controls.issue.valid\">- Required</em>\n <textarea formControlName=\"issue\" [ngClass]=\"['form-control', form.controls.issue.valid ? 'is-valid' : 'is-invalid' ]\" [rows]=\"5\" style=\"overflow-x: hidden\" tourAnchor=\"supportNewInput\"></textarea>\n <div class=\"invalid-feedback\" *ngIf=\"!form.controls.issue.valid\">Description is required</div>\n </div>\n </div>\n </div>\n </ng-template>\n </ngb-panel>\n </ngb-accordion>\n </div>\n <div class=\"row\" style=\"padding-top: 15px;\">\n <form-button [form]=\"form\" [disabled]=\"disableFormButton\" tourAnchor=\"supportNewSubmit\"></form-button>\n </div>\n </form>\n</div>\n","import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { SupportTicketService } from '../support-ticket.service';\nimport { Subscription } from 'rxjs';\nimport { ProviderService, BaseComponent } from '../../resolveio-class';\nimport { Validators } from '@angular/forms';\nimport { SupportTicketModel } from '../../models/support-ticket.model';\nimport { DialogService } from '../../widgets/dialog/dialog.service';\nimport { FileModel } from '../../models/file.model';;\n\n@Component({\n\tproviders: [ProviderService],\n\ttemplateUrl: './support-ticket-detail.component.html'\n})\n\nexport class SupportTicketDetailComponent extends BaseComponent implements OnInit, OnDestroy { \n\n\t@ViewChild('fileUpload', {static: true}) fileUpload;\n\n\tsubscription$: Subscription[] = [];\n\n\tid: string;\n\tdata: SupportTicketModel;\n\n\tfiles: FileModel[] = [];\n\n\tconstructor(private _route: ActivatedRoute, private _sts: SupportTicketService, private _services: ProviderService, private _ds: DialogService) {\n\t\tsuper(_services);\n\t}\n\t\t\n\tngOnInit() {\n\t\tthis.id = this._route.snapshot.params['id'];\n\t\tthis._sts.setSelectedSupportTicket(this.id);\n\n\t\tthis._services._socket.call('supportGetSupportTicketWithId', this.id, (err, res) => {\n\t\t\tif (!res) {\n\t\t\t\tthis._services._router.navigateByUrl('/support-ticket/list');\n\t\t\t\tthis._ds.error('Could not find support ticket');\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t\n\t\t\tthis.data = res;\n\t\t});\n\t}\n\n\tngOnDestroy() {\n\t\tthis.subscription$.forEach(sub => {\n\t\t\tsub.unsubscribe();\n\t\t});\n\t}\n\n\tonFileAdded(file: FileModel) {\t\n\t\tthis.data.files.push(file._id);\n\n\t\tthis._services._socket.call('supportUpdateSupportTicket', this.data, (err, res) => {\n\t\t\tif (err || !res) {\n\t\t\t\tthis._ds.error('Could not update support ticket files');\n\t\t\t\tthis._services._socket.call('insertErrorLog', 'support-ticket-detail - update support-ticket files add', [\n\t\t\t\t\tthis.data.files, err\n\t\t\t\t]);\n\t\t\t}\n\t\t\t\n\t\t\telse {\n\t\t\t\t// this._services._alert.setAlert('info', 'Sending email(s).');\n\n\t\t\t\t// this._services._socket.callSupport('sendSupportTicketModifiedEmail', this.data, this.data.files, (errEmail, resEmail) => {\n\t\t\t\t// \tif (errEmail || !resEmail) {\n\t\t\t\t// \t\tthis._ds.error('Could not email support ticket');\n\t\t\t\t// \t\tthis._services._socket.call('insertErrorLog', 'support-ticket-detail - email support-ticket', [\n\t\t\t\t// \t\t\t{prop: 'status', data: this.data.status}, errEmail\n\t\t\t\t// \t\t]);\n\t\t\t\t// \t}\n\t\t\t\t// \telse {\n\t\t\t\t// \t\tthis._services._alert.setAlert('success', 'Support Ticket email has been sent');\n\t\t\t\t// \t}\n\t\t\t\t// });\n\t\t\t}\n\t\t});\n\t}\n\n\tonFilesRemoved(file: FileModel) {\n\t\tthis._ds.confirm('Are you sure you want to remove a file? This will email all current watchers?').then(yes => {\n\t\t\tif (this.data.files.indexOf(file._id) !== -1) {\n\t\t\t\tthis.data.files.splice(this.data.files.indexOf(file._id), 1);\n\n\t\t\t\tthis._services._socket.call('supportUpdateSupportTicket', this.data, (err, res) => {\n\t\t\t\t\tif (err || !res) {\n\t\t\t\t\t\tthis._ds.error('Could not update support-ticket files');\n\t\t\t\t\t\tthis._services._socket.call('insertErrorLog', 'support-ticket-detail - update files remove', [\n\t\t\t\t\t\t\t{prop: 'files', data: this.data.files}, err\n\t\t\t\t\t\t]);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}, () => {});\n\t}\n\n\tedit() {\n\t\tthis._services._router.navigateByUrl('/support-ticket/edit/' + this.id);\n\t}\n\n\tnewMessage() {\n\t\tthis._ds.input('Input Message', [\n\t\t\t{\n\t\t\t\tlabel: 'Message',\n\t\t\t\tform: 'message',\n\t\t\t\tdata: '',\n\t\t\t\tvalidators: [Validators.required],\n\t\t\t\tvalidatorErrors: ['required'],\n\t\t\t\tvalidatorMsg: ['Message is required'],\n\t\t\t\trequired: true,\n\t\t\t\ttype: 'textarea'\n\t\t\t}\n\t\t]).then(close => {\n\t\t\tthis.data.messages.push({\n\t\t\t\tmessage: close.message.value,\n\t\t\t\tid_user: this._services._account.getUser()._id,\n\t\t\t\tuser: this._services._account.getUser().fullname,\n\t\t\t\tdate: new Date(),\n\t\t\t\ttype: 'Client'\n\t\t\t});\n\n\t\t\tthis._services._socket.call('supportUpdateSupportTicket', this.data, (err, res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\t// this._services._alert.setAlert('success', 'Support ticket has been updated');\n\n\t\t\t\t\t// this._services._socket.callSupport('sendSupportTicketModifiedEmail', this.data, this.data.files, (errEmail, resEmail) => {\n\t\t\t\t\t// \tif (errEmail || !resEmail) {\n\t\t\t\t\t// \t\tthis._ds.error('Could not email support ticket');\n\t\t\t\t\t// \t\tthis._services._socket.call('insertErrorLog', 'support-ticket-detail - email support-ticket', [\n\t\t\t\t\t// \t\t\t{prop: 'status', data: this.data.status}, errEmail\n\t\t\t\t\t// \t\t]);\n\t\t\t\t\t// \t}\n\t\t\t\t\t// \telse {\n\t\t\t\t\t// \t\tthis._services._alert.setAlert('success', 'Support Ticket email has been sent');\n\t\t\t\t\t// \t}\n\t\t\t\t\t// });\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis._services._socket.call('insertErrorLog', 'Support Ticket Detail - Add Message');\n\t\t\t\t\tthis._ds.error('Support ticket could not update');\n\t\t\t\t}\n\t\t\t});\n\t\t}, () => {});\n\t}\n\n\teditMessage(index) {\n\t\tlet message = this.data.messages[index];\n\t\tthis._ds.input('Input Message', [\n\t\t\t{\n\t\t\t\tlabel: 'Message',\n\t\t\t\tform: 'message',\n\t\t\t\tdata: message.message,\n\t\t\t\tvalidators: [Validators.required],\n\t\t\t\tvalidatorErrors: ['required'],\n\t\t\t\tvalidatorMsg: ['Message is required'],\n\t\t\t\trequired: true,\n\t\t\t\ttype: 'textarea'\n\t\t\t}\n\t\t]).then(close => {\n\t\t\tmessage.message = close.message.value;\n\n\t\t\tthis._services._socket.call('supportUpdateSupportTicket', this.data, (err, res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\t// this._services._alert.setAlert('success', 'Support ticket has been updated');\n\n\t\t\t\t\t// this._services._socket.callSupport('sendSupportTicketModifiedEmail', this.data, this.data.files, (errEmail, resEmail) => {\n\t\t\t\t\t// \tif (errEmail || !resEmail) {\n\t\t\t\t\t// \t\tthis._ds.error('Could not email support ticket');\n\t\t\t\t\t// \t\tthis._services._socket.call('insertErrorLog', 'support-ticket-detail - email support-ticket', [\n\t\t\t\t\t// \t\t\t{prop: 'status', data: this.data.status}, errEmail\n\t\t\t\t\t// \t\t]);\n\t\t\t\t\t// \t}\n\t\t\t\t\t// \telse {\n\t\t\t\t\t// \t\tthis._services._alert.setAlert('success', 'Support Ticket email has been sent');\n\t\t\t\t\t// \t}\n\t\t\t\t\t// });\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis._services._socket.call('insertErrorLog', 'Support Ticket Detail - Add Message');\n\t\t\t\t\tthis._ds.error('Support ticket could not update');\n\t\t\t\t}\n\t\t\t});\n\t\t}, () => {});\n\t}\n\n\tdeleteMessage(index) {\n\t\tthis._ds.confirm('Are you sure you want to remove this message?').then(() => {\n\t\t\tthis.data.messages.splice(index, 1);\n\n\t\t\tthis._services._socket.call('supportUpdateSupportTicket', this.data, (err, res) => {\n\t\t\t\tif (res) {\n\t\t\t\t\t// this._services._alert.setAlert('success', 'Support ticket has been updated');\n\n\t\t\t\t\t// this._services._socket.callSupport('sendSupportTicketModifiedEmail', this.data, this.data.files, (errEmail, resEmail) => {\n\t\t\t\t\t// \tif (errEmail || !resEmail) {\n\t\t\t\t\t// \t\tthis._ds.error('Could not email support ticket');\n\t\t\t\t\t// \t\tthis._services._socket.call('insertErrorLog', 'support-ticket-detail - email support-ticket', [\n\t\t\t\t\t// \t\t\t{prop: 'status', data: this.data.status}, errEmail\n\t\t\t\t\t// \t\t]);\n\t\t\t\t\t// \t}\n\t\t\t\t\t// \telse {\n\t\t\t\t\t// \t\tthis._services._alert.setAlert('success', 'Support Ticket email has been sent');\n\t\t\t\t\t// \t}\n\t\t\t\t\t// });\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthis._services._socket.call('insertErrorLog', 'Support Ticket Detail - Add Message');\n\t\t\t\t\tthis._ds.error('Support ticket could not update');\n\t\t\t\t}\n\t\t\t});\n\t\t}, () => {});\n\t}\n\n\tisMyMessage(message) {\n\t\treturn this._services._account.getUser()._id === message.id_user;\n\t}\n}","<style>\n .label-accordion {\n font-weight: bold;\n color: black;\n margin-bottom: 0px;\n }\n\n .fa-plus {\n color: black;\n }\n\n .fa-minus {\n color: black;\n }\n\n ngb-accordion {\n width: 100%;\n }\n\n dl {\n margin-bottom: 0px;\n }\n\n .selected {\n background-color: lightblue;\n }\n</style>\n\n<div class=\"col-lg-12\" *ngIf=\"data\">\n <div class=\"row\">\n <ngb-accordion #acc=\"ngbAccordion\" activeIds=\"supportTicketInfo, supportTicketMessages, files\">\n <ngb-panel id=\"supportTicketInfo\">\n <ng-template ngbPanelTitle>\n <div> \n <label class=\"label-accordion\">Support Ticket Info</label>\n <i *ngIf=\"!acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-plus float-end\" aria-hidden=\"true\"></i>\n <i *ngIf=\"acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-minus float-end\" aria-hidden=\"true\"></i>\n </div>\n </ng-template>\n <ng-template ngbPanelContent>\n <div class=\"card\">\n <div class=\"card-header\"><b>General Info</b></div>\n <div class=\"card-body\">\n <div class=\"row\">\n <div class=\"col-lg-4\">\n <dl>\n <dt>Support Ticket #</dt>\n <dd>{{data.support_ticket_number | number}}</dd>\n <dt>Date Created</dt>\n <dd>{{data.date_created | date: 'short'}}</dd>\n </dl>\n </div>\n <div class=\"col-lg-4\">\n <dl>\n <dt>Type</dt>\n <dd>{{data.type}}</dd>\n <dt>User</dt>\n <dd>{{data.user_created}}</dd>\n </dl>\n </div>\n <div class=\"col-lg-4\">\n <dl>\n <dt>Status</dt>\n <dd>{{ data.status }}</dd>\n </dl>\n </div>\n </div>\n </div>\n </div>\n <div class=\"card\">\n <div class=\"card-header\"><b>Problem Description</b></div>\n <div class=\"card-body\">\n <pre>{{data.issue}}</pre>\n </div>\n </div>\n </ng-template>\n </ngb-panel>\n <ngb-panel id=\"supportTicketMessages\" *ngIf=\"data\">\n <ng-template ngbPanelTitle>\n <div> \n <label class=\"label-accordion\">Messages</label>\n <i *ngIf=\"!acc.activeIds.includes('supportTicketMessages')\" class=\"fa fa-plus float-end\" aria-hidden=\"true\"></i>\n <i *ngIf=\"acc.activeIds.includes('supportTicketMessages')\" class=\"fa fa-minus float-end\" aria-hidden=\"true\"></i>\n </div>\n </ng-template>\n <ng-template ngbPanelContent>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <div class=\"card\" *ngFor=\"let message of data.messages; let i = index;\">\n <div class=\"card-header\"><b>User: {{message.user}} - Date: {{message.date | date : 'short'}}</b></div>\n <div class=\"card-body\" [ngClass]=\"[message.type === 'ResolveIO' ? 'selected' : '']\">\n <div class=\"row\" style=\"width: 100%\">\n <div class=\"col-lg-10\">\n <pre>{{message.message}}</pre>\n </div>\n <div class=\"col-lg-2\">\n <responsive-button-group collapseSize=\"900\">\n <button type=\"button\" class=\"btn btn-warning\" (click)=\"editMessage(i)\" *ngIf=\"isMyMessage(message)\">Edit</button>\n <button type=\"button\" class=\"btn btn-danger\" (click)=\"deleteMessage(i)\" *ngIf=\"isMyMessage(message)\">Delete</button>\n </responsive-button-group>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div class=\"row\" style=\"margin-top: 10px;\">\n <div class=\"col-lg-12\">\n <button type=\"button\" class=\"btn btn-success\" (click)=\"newMessage()\">New Message</button>\n </div>\n </div>\n </ng-template>\n </ngb-panel>\n <ngb-panel id=\"files\">\n\t\t\t\t<ng-template ngbPanelTitle>\n\t\t\t\t\t<div> \n\t\t\t\t\t\t<label class=\"label-accordion\">Support Ticket Files</label>\n\t\t\t\t\t\t<i *ngIf=\"!acc.activeIds.includes('files')\" class=\"fa fa-plus float-end\" aria-hidden=\"true\"></i>\n\t\t\t\t\t\t<i *ngIf=\"acc.activeIds.includes('files')\" class=\"fa fa-minus float-end\" aria-hidden=\"true\"></i>\n\t\t\t\t\t</div>\n\t\t\t\t</ng-template>\n\t\t\t\t<ng-template ngbPanelContent>\n\t\t\t\t\t<file-upload #fileUpload (fileAdded)=\"onFileAdded($event)\" (fileRemoved)=\"onFilesRemoved($event)\" [files]=\"files\" [allowDelete]=\"true\" [allowReplace]=\"true\"></file-upload>\n\t\t\t\t</ng-template>\n\t\t\t</ngb-panel>\n </ngb-accordion>\n </div>\n <div class=\"row\" style=\"padding-top: 15px;\">\n <responsive-button-group collapseSize=\"900\">\n <button class=\"btn btn-warning\" type=\"button\" (click)=\"edit()\">Edit Support Ticket</button>\n </responsive-button-group>\n </div>\n</div>\n ","import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core';\nimport { SupportTicketService } from '../support-ticket.service';\nimport { Validators, FormGroup } from '@angular/forms';\nimport { ActivatedRoute } from '@angular/router';\nimport { Subscription } from 'rxjs';\nimport { ProviderService, BaseComponent } from '../../resolveio-class';\nimport { SupportTicketModel } from '../../models/support-ticket.model';\nimport { DialogService } from '../../widgets/dialog/dialog.service';\n\n@Component({\n\tproviders: [ProviderService],\n\ttemplateUrl: './support-ticket-edit.component.html'\n})\n\nexport class SupportTicketEditComponent extends BaseComponent implements OnInit, OnDestroy { \n\n\t@ViewChild ('fileUpload', {static: true}) fileUpload;\n\t@ViewChild ('selectType', {static: true}) selectType;\n\n\tid: string;\n\tdata: SupportTicketModel;\n\t\n\tsubscription$: Subscription[] = [];\n\n\tform: FormGroup;\n\n\tdisableFormButton = false;\n\n\tconstructor(private _route: ActivatedRoute, private _sts: SupportTicketService, private _services: ProviderService, private _ds: DialogService) {\n\t\tsuper(_services);\n\t}\n\n\tngOnInit() {\n\t\tthis.id = this._route.snapshot.params['id'];\n\t\tthis._sts.setSelectedSupportTicket(this.id.toString());\n\n\t\tthis.form = this._services._fb.group({\n\t\t\t_id: [''],\n\t\t\t__v: [0],\n\t\t\ttype: ['', [Validators.required]],\n\t\t\tpriority: ['', [Validators.required]],\n\t\t\tissue: ['', [Validators.required]],\n\t\t\tsupport_ticket_number: [null],\n\t\t\tsupport_ticket_number_string: [null],\n\t\t\tstatus: ['Opened'],\n\t\t\tsubstatus: ['New'],\n\t\t\tclient: [''],\n\t\t\tid_client: ['', [Validators.required]],\n\t\t\tmessages: [[]],\n\t\t\tdate_created: [null],\n\t\t\tdate_created_string: [''],\n\t\t\tid_user_created: [this._services._account.getUser()._id],\n\t\t\tuser_created: [this._services._account.getUser().fullname],\n\t\t\tbillable: [false, [Validators.required]],\n\t\t\tdate_investigation: [null],\n\t\t\tdate_closed: [null],\n\t\t\tfiles: [[]],\n\t\t\tcurrent_watchers: [[]],\n\t\t\tclient_user: [null],\n\t\t\tusers_assigned: [[]],\n\t\t\tbill_description: [''],\n\t\t\ttasks: [[]],\n\t\t\tnotes: [[]],\n\t\t\tdifficulty: [1]\n\t\t});\n\n\t\tthis._services._socket.call('supportGetSupportTicketWithId', this.id, (err, res) => {\n\t\t\tif (!res) {\n\t\t\t\tthis._services._router.navigateByUrl('/support-ticket/list');\n\t\t\t\tthis._ds.error('Could not find support ticket');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.data = res;\n\n\t\t\tthis.loadForm();\n\t\t});\n\t}\n\n\tngOnDestroy() {\n\t\tthis.subscription$.forEach(sub => {\n\t\t\tsub.unsubscribe();\n\t\t});\n\t}\n\n\tloadForm() {\n\t\tthis.form.patchValue(this.data);\n\t}\n\n\tonTypeChange() {\n\t\tif (this.form.controls.type.value === 'System Impairment') {\n\t\t\tthis.form.controls.priority.setValue('High');\n\t\t\tthis.form.controls.billable.setValue(false);\n\t\t}\n\t\telse if (this.form.controls.type.value === 'Request New Feature') {\n\t\t\tthis.form.controls.priority.setValue('Low');\n\t\t\tthis.form.controls.billable.setValue(true);\n\t\t}\n\t\telse if (this.form.controls.type.value === 'General Inquery') {\n\t\t\tthis.form.controls.priority.setValue('Low');\n\t\t\tthis.form.controls.billable.setValue(true);\n\t\t}\n\t\telse {\n\t\t\tthis.form.controls.priority.setValue('');\n\t\t\tthis.form.controls.billable.setValue(false);\n\t\t}\n\t}\n\n\tsubmitForm(form) {\n\t\tthis.disableFormButton = true;\n\n\t\tthis._services._socket.call('supportUpdateSupportTicket', this.form.value, (err, res) => {\n\t\t\tif (res) {\n\t\t\t\tthis._services._alert.setAlert('info', 'Editing support ticket, please wait');\n\t\t\t\tthis._services._router.navigateByUrl('/support-ticket/detail/' + this.id);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis._ds.error('Could not edit support ticket');\n\t\t\t\tthis._services._socket.call('insertErrorLog', 'Support-ticket-edit - update support ticket', [\n\t\t\t\t\tthis.form.value, err\n\t\t\t\t]);\n\t\t\t}\n\t\t});\n\t}\n}\n","<style>\n .label-accordion {\n font-weight: bold;\n color: black;\n margin-bottom: 0px;\n }\n\n .fa-plus {\n color: black;\n }\n\n .fa-minus {\n color: black;\n }\n</style>\n\n<div class=\"col-lg-12\">\n <form [formGroup]=\"form\" novalidate (ngSubmit)=\"submitForm(form)\">\n <div class=\"row\">\n <ngb-accordion #acc=\"ngbAccordion\" activeIds=\"supportTicketInfo\">\n <ngb-panel id=\"supportTicketInfo\">\n <ng-template ngbPanelTitle>\n <div> \n <label class=\"label-accordion\">Support Ticket Info</label>\n <i *ngIf=\"!acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-plus float-end\" aria-hidden=\"true\"></i>\n <i *ngIf=\"acc.activeIds.includes('supportTicketInfo')\" class=\"fa fa-minus float-end\" aria-hidden=\"true\"></i>\n </div>\n </ng-template>\n <ng-template ngbPanelContent>\n <div class=\"row\">\n <div class=\"col-12\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Support Ticket Type</label>\n <em *ngIf=\"!form.controls.type.valid\">- Required</em>\n <select [ngClass]=\"['form-control', form.controls.type.valid ? 'is-valid' : 'is-invalid']\" formControlName=\"type\" (change)=\"onTypeChange()\">\n <option value=\"\">Select Type</option>\n <option value=\"General Inquery\">General Inquery</option>\n <option value=\"System Impairment\">System Impairment</option>\n <option value=\"Request New Feature\">Request New Feature</option>\n </select>\n <div class=\"invalid-feedback\" *ngIf=\"!form.controls.type.valid\">Type is required</div>\n </div>\n </div>\n </div>\n <div class=\"row\">\n <div class=\"col-lg-12\">\n <div class=\"form-group\">\n <label class=\"form-control-label\">Problem Description</label>\n <em *ngIf=\"!form.controls.issue.valid\">- Required</em>\n <textarea formControlName=\"issue\" [ngClass]=\"['form-control', form.controls.issue.valid ? 'is-valid' : 'is-invalid' ]\" [rows]=\"5\" style=\"overflow-x: hidden\"></textarea>\n <div class=\"invalid-feedback\" *ngIf=\"!form.controls.issue.valid\">Problem Description is required</div>\n </div>\n </div>\n </div>\n </ng-template>\n </ngb-panel>\n </ngb-accordion>\n </div>\n <div class=\"row\" style=\"padding-top: 15px;\">\n <form-button [form]=\"form\" [disabled]=\"disableFormButton\"></form-button>\n </div>\n </form>\n</div>\n ","\nimport { ModuleWithProviders } from '@angular/core';\nimport { Routes, RouterModule, Route } from '@angular/router';\nimport { SupportTicketComponent } from './support-ticket.component';\nimport { SupportTicketListComponent } from './list/support-ticket-list.component';\nimport { SupportTicketNewComponent } from './new/support-ticket-new.component';\nimport { SupportTicketDetailComponent } from './detail/support-ticket-detail.component';\nimport { SupportTicketEditComponent } from './edit/support-ticket-edit.component';\n\nconst routes: Routes = [{ \n\tpath: '',\n\tcomponent: SupportTicketComponent,\n\tchildren: [\n\t\t{ path: 'list', component: SupportTicketListComponent },\n\t\t{ path: 'new', component: SupportTicketNewComponent },\n\t\t{ path: 'detail/:id', component: SupportTicketDetailComponent },\n\t\t{ path: 'edit/:id', component: SupportTicketEditComponent },\n\t\t{ path: '**', redirectTo: 'list' }\n\t]}\n];\n\nexport const SupportTicketRouting: ModuleWithProviders<Route> = RouterModule.forChild(routes);\n","import { NgModule } from '@angular/core';\nimport { SharedModule } from '../shared/shared.module';\nimport { SupportTicketRouting } from './support-ticket.routing';\nimport { SupportTicketComponent } from './support-ticket.component';\nimport { SupportTicketListComponent } from './list/support-ticket-list.component';\nimport { SupportTicketNewComponent } from './new/support-ticket-new.component';\nimport { SupportTicketDetailComponent } from './detail/support-ticket-detail.component';\nimport { SupportTicketEditComponent } from './edit/support-ticket-edit.component';\nimport { SupportTicketService } from './support-ticket.service';\nimport { DatatableModule } from '../widgets/data-table/data-table.module';\nimport { FileModule } from '../widgets/file/file-upload.module';\n@NgModule({\n\timports: [\n\t\tSharedModule,\n\t\tSupportTicketRouting,\n\t\tDatatableModule,\n\t\tFileModule\n\t],\n\tdeclarations: [ \n\t\tSupportTicketComponent,\n\t\tSupportTicketListComponent,\n\t\tSupportTicketNewComponent,\n\t\tSupportTicketDetailComponent,\n\t\tSupportTicketEditComponent\n\t],\n\tproviders: [\n\t\tSupportTicketService\n\t]\n})\nexport class SupportTicketModule { }\n","let typeCache: { [label: string]: boolean } = {};\nexport function type<T>(label: T | ''): T {\n\tif (typeCache[<string>label]) {\n\t\tthrow new Error(`Action type \"${label}\" is not unqiue\"`);\n\t}\n\n\ttypeCache[<string>label] = true;\n\n\treturn <T>label;\n}\n","import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, OnInit } from '@angular/core';\nimport moment from 'moment';\n\nimport { ProviderService, BaseComponent } from '../../resolveio-class';\n\n@Component({\n\tproviders: [ProviderService],\n\tselector: 'date-shortcut',\n\ttemplate: `\n\t\t<label class=\"form-control-label\">Date Shortcuts</label>\n\t\t<ng-select [(ngModel)]=\"shortcutValue\" (change)=\"onSelectShortcut()\" placeholder=\"Select Shortcut\" [clearable]=\"false\">\n\t\t\t<ng-option value=\"Today\">Today</ng-option>\n\t\t\t<ng-option value=\"Yesterday\">Yesterday</ng-option>\n\t\t\t<ng-option value=\"Week\">This Week</ng-option>\n\t\t\t<ng-option value=\"Last Week\">Last Week</ng-option>\n\t\t\t<ng-option value=\"Month\">This Month</ng-option>\n\t\t\t<ng-option value=\"Last Month\">Last Month</ng-option>\n\t\t\t<ng-option value=\"Last 30 Days\">Last 30 Days</ng-option>\n\t\t\t<ng-option value=\"Quarter\">This Quarter</ng-option>\n\t\t\t<ng-option value=\"Last Quarter\">Last Quarter</ng-option>\n\t\t\t<ng-option value=\"Year\">This Year</ng-option>\n\t\t\t<ng-option value=\"Last Year\">Last Year</ng-option>\n\t\t\t<ng-option value=\"Q1\">Q1</ng-option>\n\t\t\t<ng-option value=\"Q2\">Q2</ng-option>\n\t\t\t<ng-option value=\"Q3\">Q3</ng-option>\n\t\t\t<ng-option value=\"Q4\">Q4</ng-option>\n\t\t\t<ng-option value=\"Last Q1\">Last Q1</ng-option>\n\t\t\t<ng-option value=\"Last Q2\">Last Q2</ng-option>\n\t\t\t<ng-option value=\"Last Q3\">Last Q3</ng-option>\n\t\t\t<ng-option value=\"Last Q4\">Last Q4</ng-option>\n\t\t\t<ng-option value=\"All\">All</ng-option>\n\t\t</ng-select>\n\t`,\n\tchangeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class DateShortcutComponent extends BaseComponent implements OnInit { \n\t@Input() startDateObj;\n\t@Input() endDateObj;\n\t@Output() startDateObjChange = new EventEmitter<Object>();\n\t@Output() endDateObjChange = new EventEmitter<Object>();\n\t@Output() datesChanged = new EventEmitter();\n\t@Input() shortcutValue = null;\n\t@Output() shortcutValueChange = new EventEmitter<String>();\n\n\tconstructor(private _services: ProviderService, private _cd: ChangeDetectorRef) {\n\t\tsuper(_services);\n\t}\n\n\tngOnInit() {\n\t\tthis.onSelectShortcut();\n\t}\n\n\treset() {\n\t\tthis.shortcutValue = null;\n\t\tthis.shortcutValueChange.emit(this.shortcutValue);\n\n\t\tthis._cd.detectChanges();\n\t}\n\n\tonSelectShortcut() {\n\t\tif (this.shortcutValue) {\n\t\t\tlet startDate = moment(new Date(this.startDateObj['year'], this.startDateObj['month'] - 1, this.startDateObj['day'])).toDate();\n\t\t\tlet endDate = moment(new Date(this.endDateObj['year'], this.endDateObj['month'] - 1, this.endDateObj['day'])).toDate();\n\n\t\t\tif (this.shortcutValue === 'Q1') {\n\t\t\t\tstartDate = moment().startOf('year').toDate();\n\t\t\t\tendDate = moment().startOf('year').quarter(2).subtract(1, 'days').toDate();\n\t\t\t}\n\t\t\telse if (this.shortcutValue === 'Q2') {\n\t\t\t\tstartDate = moment().startOf('year').quarter(2).toDate();\n\t\t\t\tendDate = moment().startOf('year').quarter(3).subtract(1, 'days').toDate();\n\t\t\t}\n\t\t\telse if (this.shortcutValue === 'Q3') {\n\t\t\t\tstartDate = moment().startOf('year').quarter(3).toDate();\n\t\t\t\tendDate = moment().startOf('year').quarter(4).subtract(1, 'days').toDate();\n\t\t\t}\n\t\t\telse if (this.shortcutValue === 'Q4') {\n\t\t\t\tstartDate = moment().startOf('year').quarter(4).toDate();\n\t\t\t\tendDate = moment().endOf('year').toDate();\n\t\t\t}\n\t\t\telse if (this.shortcutValue === 'Last Q1') {\n\t\t\t\tstartDate = moment().startOf('year').subtract(1, 'year').toDate();\n\t\t\t\tendDate = moment().startOf('year').subtract(1, 'year').quarter(2).subtract(1, 'days').toDate();\n\t\t\t}\n\t\t\telse if (this.shortcutValue === 'Last Q2') {\n\t\t\t\tstartDate = moment().startOf('year').subtract(1, 'year').quarter(2).toDate();\n\t\t\t\tendDate = moment().startOf('year').subtract(1, 'year').quarter(3).subtract(1, 'days').toDate();\n\t\t\t}\n\t\t\telse if (this.shortcutValue === 'Last Q3') {\n\t\t\t\tstartDate = moment().startOf('year').subtract(1, 'year').quarter(3).toDate();\n\t\t\t\tendDate = moment().startOf('year').subtract(1, 'year').quarter(4).subtract(1, 'days').toDate();\n\t\t\t}\n\t\t\telse if (this.shortcutValue === 'Last Q4') {\n\t\t\t\tstartDate = moment().startOf('year').subtract(1, 'year').quarter(4).toDate();\n\t\t\t\tendDate = moment().endOf('year').subtract(1, 'year').toDate();\n\t\t\t}\n\t\t\telse if (this.shortcutValue === 'Today') {\n\t\t\t\tstartDate = moment().startOf('day').toDate();\n\t\t\t\tendDate = new Date();\n\t\t\t}\n\t\t\telse if (this.shortcutValue === 'Yesterday') {\n\t\t\t\tstartDate = moment().subtract(1, 'days').startOf('day').toDate();\n\t\t\t\tendDate = moment().subtract(1, 'days').endOf('day').toDate();\n\t\t\t}\n\t\t\telse if (this.shortcutValue === 'Week') {\n\t\t\t\tstartDate = moment().startOf('isoWeek').toDate();\n\t\t\t\tendDate = new Date();\n\t\t\t}\n\t\t\telse if (this.shortcutValue === 'Last Week') {\n\t\t\t\tendDate = moment().startOf('isoWeek').subtract(1, 'days').toDate();\n\t\t\t\tstartDate = moment(endDate).startOf('isoWeek').toDate();\n\t\t\t}\n\t\t\telse if (this.shortcutValue === 'Month') {\n\t\t\t\tstartDate = moment().startOf('month').toDate();\n\t\t\t\tendDate = new Date();\n\t\t\t}\n\t\t\telse if (this.shortcutValue === 'Last Month') {\n\t\t\t\tendDate = moment().startOf('month').subtract(1, 'days').endOf('day').toDate();\n\t\t\t\tstartDate = moment(endDate).startOf('month').toDate();\n\t\t\t}\n\t\t\telse if (this.shortcutValue === 'Last 30 Days') {\n\t\t\t\tendDate = new Date();\n\t\t\t\tstartDate = moment().subtract(30, 'days').startOf('day').toDate();\n\t\t\t}\n\t\t\telse if (this.shortcutValue === 'Quarter') {\n\t\t\t\tstartDate = moment().startOf('year').quarter(moment().quarter()).toDate();\n\t\t\t\tendDate = new Date();\n\t\t\t}\n\t\t\telse if (this.shortcutValue === 'Last Quarter') {\n\t\t\t\tendDate = moment().startOf('year').quarter(moment().quarter()).subtract(1, 'days').endOf('day').toDate();\n\t\t\t\tstartDate = moment(endDate).startOf('quarter').toDate();\n\t\t\t}\n\t\t\telse if (this.shortcutValue === 'Year') {\n\t\t\t\tstartDate = moment().startOf('year').toDate();\n\t\t\t\tendDate = new Date();\n\t\t\t}\n\t\t\telse if (this.shortcutValue === 'Last Year') {\n\t\t\t\tendDate = moment().startOf('year').subtract(1, 'days').endOf('day').toDate();\n\t\t\t\tstartDate = moment(endDate).startOf('year').toDate();\n\t\t\t}\n\t\t\telse if (this.shortcutValue === 'All') {\n\t\t\t\tstartDate = new Date(2017, 0, 1, 0, 0, 0, 0);\n\t\t\t\tendDate = new Date();\n\t\t\t}\n\n\t\t\tthis.startDateObj = {year: startDate.getFullYear(), month: startDate.getMonth() + 1, day: startDate.getDate()};\n\t\t\tthis.endDateObj = {year: endDate.getFullYear(), month: endDate.getMonth() + 1, day: endDate.getDate()};\n\n\t\t\tthis.startDateObjChange.emit(this.startDateObj);\n\t\t\tthis.endDateObjChange.emit(this.endDateObj);\n\n\t\t\tthis.datesChanged.emit([this.startDateObj, this.endDateObj]);\n\n\t\t\tthis.shortcutValueChange.emit(this.shortcutValue);\n\t\t}\n\n\t\tthis._cd.detectChanges();\n\t}\n}\n","import { FormsModule } from '@angular/forms';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { DateShortcutComponent } from './date-shortcut.component';\t\t\t\nimport { NgSelectModule } from '@ng-select/ng-select';\n\n@NgModule({\n\timports: [\n\t\tFormsModule,\n\t\tCommonModule,\n\t\tNgSelectModule\n\t],\n\texports: [\n\t\tDateShortcutComponent\n\t],\n\tdeclarations: [\n\t\tDateShortcutComponent\n\t]\n})\nexport class DateShortcutModule { }\n","import { Component, ViewChild, AfterViewInit, ElementRef, HostListener, OnDestroy } from '@angular/core';\nimport moment from 'moment';\nimport { ProviderService, BaseComponent } from '../../resolveio-class';\n\n@Component({\n\tproviders: [ProviderService],\n\tselector: 'scheduler',\n\ttemplateUrl: './scheduler.component.html'\n})\n\nexport class SchedulerComponent extends BaseComponent implements AfterViewInit, OnDestroy { \n\n\ttoday = new Date();\n\n\tover_forward = false;\n\tover_backwards = false;\n\t\n\tmouseDown = false;\n\tmouseLastEvent = null;\n\n\ttimer_sub = null;\n\n\tmonths = [\n\t\t'Jan',\n\t\t'Feb',\n\t\t'Mar',\n\t\t'Apr',\n\t\t'May',\n\t\t'Jun',\n\t\t'Jul',\n\t\t'Aug',\n\t\t'Sep',\n\t\t'Oct',\n\t\t'Nov',\n\t\t'Dec'\n\t];\n\n\tsize_svg = {\n\t\twidth: 0,\n\t\theight: 0\n\t};\n\n\tsize_cell = {\n\t\twidth: 30,\n\t\theight: 30\n\t};\n\t\n\t@ViewChild('svgChart', {static: true}) svgChart: ElementRef;\n\n\tconstructor(private _services: ProviderService) {\n\t\tsuper(_services);\n\t}\n\n\tngAfterViewInit() {\n\t\tthis.size_svg.width = this.svgChart.nativeElement.clientWidth;\n\t\tthis.size_svg.height = this.svgChart.nativeElement.clientHeight;\n\t}\n\n\tngOnDestroy() {\n\t\tif (this.timer_sub) {\n\t\t\tclearInterval(this.timer_sub);\n\t\t}\n\t}\n\n\t@HostListener('mouseup') onMouseup() {\n\t\tthis.mouseDown = false;\n\t}\n\n\t@HostListener('mousedown', ['$event']) onMousedown(event) {\n\t\tthis.mouseDown = true;\n\t\tthis.mouseLastEvent = event;\n\t}\n\n\t@HostListener('mousemove', ['$event']) onMousemove(event: MouseEvent) {\n\t\tif (this.mouseDown) {\n\n\t\t\tlet daysAdd = 0;\n\n\t\t\tif (this.mouseLastEvent.clientX - event.clientX > 1) {\n\t\t\t\tif (Math.floor((this.mouseLastEvent.clientX - event.clientX) / 15) > 0) {\n\t\t\t\t\tdaysAdd = Math.floor((this.mouseLastEvent.clientX - event.clientX + ((30 - this.size_cell.width) * 5)) / 20);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdaysAdd = 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (this.mouseLastEvent.clientX - event.clientX < -1) {\n\t\t\t\tif (Math.floor((this.mouseLastEvent.clientX - event.clientX) / 15) < 0) {\n\t\t\t\t\tdaysAdd = Math.floor((this.mouseLastEvent.clientX - event.clientX - ((30 - this.size_cell.width) * 5)) / 20);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdaysAdd = -1;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.today = moment(this.today).add(daysAdd, 'days').toDate();\t\t\n\t\t\tthis.mouseLastEvent = event;\n\t\t}\n\t}\n\n\t@HostListener('mouseleave', ['$event']) onMouseLeave(event: MouseEvent) {\n\t\tif (this.mouseDown) {\n\t\t\tthis.mouseDown = false;\n\t\t}\n\t}\n\n\tbuildDays() {\n\t\tlet days = [];\n\n\t\tfor (let i = 0; i < Math.floor(this.size_svg.width / this.size_cell.width); i++) {\n\t\t\tdays.push({\n\t\t\t\tindex: i,\n\t\t\t\tday: moment(this.today).add(i, 'days').toDate().getDate()\n\t\t\t});\n\t\t}\n\n\t\treturn days;\n\t}\n\n\tbuildMonths() {\n\t\tlet months = [{\n\t\t\tindex_start: 0,\n\t\t\tindex_end: null,\n\t\t\tmonth: this.months[this.today.getMonth()]\n\t\t}];\n\n\t\tfor (let i = 1; i < Math.floor(this.size_svg.width / this.size_cell.width); i++) {\n\t\t\tif (moment(this.today).add(i, 'days').toDate().getMonth() !== moment(this.today).add(i - 1, 'days').toDate().getMonth()) {\n\t\t\t\tmonths[months.length - 1].index_end = i;\n\t\t\t\tmonths.push({\n\t\t\t\t\tindex_start: i,\n\t\t\t\t\tindex_end: null,\n\t\t\t\t\tmonth: this.months[moment(this.today).add(i, 'days').toDate().getMonth()]\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tmonths[months.length - 1].index_end = Math.floor(this.size_svg.width / this.size_cell.width);\n\n\t\treturn months;\n\t}\n\n\tbuildYears() {\n\t\tlet years = [{\n\t\t\tindex_start: 0,\n\t\t\tindex_end: null,\n\t\t\tyear: this.today.getFullYear()\n\t\t}];\n\n\t\tfor (let i = 1; i < Math.floor(this.size_svg.width / this.size_cell.width); i++) {\n\t\t\tif (moment(this.today).add(i, 'days').toDate().getFullYear() !== moment(this.today).add(i - 1, 'days').toDate().getFullYear()) {\n\t\t\t\tyears[years.length - 1].index_end = i;\n\t\t\t\tyears.push({\n\t\t\t\t\tindex_start: i,\n\t\t\t\t\tindex_end: null,\n\t\t\t\t\tyear: moment(this.today).add(i, 'days').toDate().getFullYear()\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tyears[years.length - 1].index_end = Math.floor(this.size_svg.width / this.size_cell.width);\n\n\t\treturn years;\n\t}\n\n\tdecrementToday() {\n\t\tthis.today = moment(this.today).subtract(1, 'days').toDate();\n\t}\n\n\tincrementToday() {\n\t\tthis.today = moment(this.today).add(1, 'days').toDate();\n\t}\n\n\toverForward() {\n\t\tthis.timer_sub = setInterval(() => {\n\t\t\tthis.incrementToday()\n\t\t}, 50);\n\t}\n\n\tleftForward() {\n\t\tclearInterval(this.timer_sub);\n\t}\n\n\toverBackwards() {\n\t\tthis.timer_sub = setInterval(() => {\n\t\t\tthis.decrementToday()\n\t\t}, 50);\n\t}\n\n\tleftBackwards() {\n\t\tclearInterval(this.timer_sub);\n\t}\n\n\tzoomOut() {\n\t\tif (this.size_cell.width > 10) {\n\t\t\tthis.size_cell.width -= 10;\n\t\t}\n\t}\n\n\tzoomIn() {\n\t\tthis.size_cell.width += 10;\n\t}\n}\n","<style>\n\t.bar {\n\t\tfill: red; /* changes the background */\n\t\theight: 21px;\n\t\ttransition: fill .3s ease;\n\t\tcursor: pointer;\n\t\tfont-family: Helvetica, sans-serif;\n\t}\n\n\t.bar text {\n\t\tcolor: black;\n\t}\n\n\t.bar:hover,\n\t.bar:focus {\n\t\tfill: black;\n\t}\n\n\t.bar:hover text,\n\t.bar:focus text {\n\t\tfill: red;\n\t}\n\n\t.year {\n\t\tstroke:black;\n\t\tfill: white;\n\t}\n\n\t.month {\n\t\tstroke:black;\n\t\tfill: white;\n\t}\n\n\t.day {\n\t\tstroke:black;\n\t\tfill: white;\n\t}\n\n\t.smallText {\n\t\tfont-size: 4px;\n\t}\n</style>\n\n<div class=\"scheduler\">\n\n\t<button class=\"btn btn-warning\" type=\"button\" (mouseenter)=\"overBackwards()\" (mouseleave)=\"leftBackwards()\">Go Backwards</button>\n\t<button class=\"btn btn-success\" type=\"button\" (mouseenter)=\"overForward()\" (mouseleave)=\"leftForward()\">Go Forward</button>\n\n\t<button style=\"margin-left: 20px;\" class=\"btn btn-warning\" type=\"button\" (click)=\"zoomOut()\">Zoom Out</button>\n\t<button class=\"btn btn-success\" type=\"button\" (click)=\"zoomIn()\">Zoom In</button>\n\n\t<svg class=\"chart\" width=\"100%\" height=\"100%\" aria-labelledby=\"title desc\" role=\"img\" #svgChart>\n\t\t<title id=\"title\">Scheduler</title>\n\t\t<desc id=\"desc\">Scheduler</desc>\n\n\t\t<g class=\"year\">\n\t\t\t<ng-container *ngFor=\"let year of buildYears()\">\n\t\t\t\t<rect [attr.width]=\"(year.index_end - year.index_start) * size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"year.index_start * size_cell.width\"></rect>\n\t\t\t\t<svg [attr.width]=\"(year.index_end - year.index_start) * size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"year.index_start * size_cell.width\">\n\t\t\t\t\t<text x=\"50%\" y=\"50%\" alignment-baseline=\"middle\" text-anchor=\"middle\">{{year.year}}</text>\n\t\t\t\t</svg>\n\t\t\t</ng-container>\n\t\t</g>\n\t\t<g class=\"month\">\n\t\t\t<ng-container *ngFor=\"let month of buildMonths()\">\n\t\t\t\t<rect [attr.width]=\"(month.index_end - month.index_start) * size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"month.index_start * size_cell.width\" [attr.y]=\"size_cell.height\"></rect>\n\t\t\t\t<svg [attr.width]=\"(month.index_end - month.index_start) * size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"month.index_start * size_cell.width\" [attr.y]=\"size_cell.height\">\n\t\t\t\t\t<text x=\"50%\" y=\"50%\" alignment-baseline=\"middle\" text-anchor=\"middle\">{{month.month}}</text>\n\t\t\t\t</svg>\n\t\t\t</ng-container>\n\t\t</g>\n\t\t<g class=\"day\">\n\t\t\t<ng-container *ngFor=\"let day of buildDays()\">\n\t\t\t\t<rect [attr.width]=\"size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"day.index * size_cell.width\" [attr.y]=\"size_cell.height * 2\"></rect>\n\t\t\t\t<svg [attr.width]=\"size_cell.width\" [attr.height]=\"size_cell.height\" [attr.x]=\"day.index * size_cell.width\" [attr.y]=\"size_cell.height * 2\">\n\t\t\t\t\t<text x=\"50%\" y=\"50%\" alignment-baseline=\"middle\" text-anchor=\"middle\" [style.font-size.px]=\"[size_cell.width > 10 ? 12 : 6]\">{{day.day}}</text>\n\t\t\t\t</svg>\n\t\t\t</ng-container>\n\t\t</g>\n\n\n\t\t<!-- <g class=\"bar\">\n\t\t\t<rect width=\"40\" height=\"19\"></rect>\n\t\t\t<text x=\"45\" y=\"9.5\" dy=\".35em\">4 apples</text>\n\t\t</g>\n\t\t<g class=\"bar\">\n\t\t\t<rect width=\"80\" height=\"19\" y=\"20\"></rect>\n\t\t\t<text x=\"85\" y=\"28\" dy=\".35em\">8 bananas</text>\n\t\t</g>\n\t\t<g class=\"bar\">\n\t\t\t<rect width=\"150\" height=\"19\" y=\"40\"></rect>\n\t\t\t<text x=\"150\" y=\"48\" dy=\".35em\">15 kiwis</text>\n\t\t</g>\n\t\t<g class=\"bar\">\n\t\t\t<rect width=\"160\" height=\"19\" y=\"60\"></rect>\n\t\t\t<text x=\"161\" y=\"68\" dy=\".35em\">16 oranges</text>\n\t\t</g>\n\t\t<g class=\"bar\">\n\t\t\t<rect width=\"230\" height=\"19\" y=\"80\"></rect>\n\t\t\t<text x=\"235\" y=\"88\" dy=\".35em\">23 lemons</text>\n\t\t</g> -->\n\t</svg>\n</div>\n","import { NgModule } from '@angular/core';\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\nimport { FormsModule } from '@angular/forms';\t\nimport { CommonModule } from '@angular/common';\n\nimport { RouterModule } from '@angular/router';\t\n\nimport { SchedulerComponent } from './scheduler.component';\n\n@NgModule({\n\timports: [\n\t\tNgbModule,\n\t\tFormsModule,\n\t\tCommonModule,\n\t\tRouterModule\n\t],\n\texports: [\n\t\tSchedulerComponent\n\t],\n\tdeclarations: [\n\t\tSchedulerComponent\n\t],\n\tproviders: [ ]\n})\nexport class SchedulerModule { }\n","import { ModulePermissionModel } from './models/permission.model';\n\nexport const ReportBuilderModulePermission: ModulePermissionModel = {\n\tname: 'report-builder',\n\tviews: [\n\t\t{link: '/report-builder/list', label: 'List'},\n\t\t{link: '/report-builder/new', label: 'New'},\n\t\t{link: '/report-builder/scheduled-job', label: 'Scheduled Job'},\n\t\t{link: '/report-builder/dashboard-builder', label: 'Dashboard Builder'},\n\t\t{link: '/report-builder/detail', label: 'Detail', has_parameter: true},\n\t\t{link: '/report-builder/edit', label: 'Edit', has_parameter: true},\n\t\t{link: '/report-builder/delete', label: 'Delete', has_parameter: true},\n\t]\n};\n","import { ModulePermissionModel } from './models/permission.model';\n\nexport const SuperAdminModulePermission: ModulePermissionModel = {\n\tname: 'super-admin',\n\tviews: [\n\t\t{link: '/super-admin/dashboard', label: 'Dashboard'},\n\t\t{link: '/super-admin/apm', label: 'APM'},\n\t\t{link: '/super-admin/monitor', label: 'Monitor'}\n\t]\n};\n","/*\n * Public API Surface of @resolveio/client-lib-core\n */\n\nexport * from './lib/core.service';\nexport * from './lib/core.component';\nexport * from './lib/core.module';\nexport * from './lib/resolveio-class';\nexport * from './lib/auth/auth-guard.service';\nexport * from './lib/auth/auth-permissions.service';\nexport * from './lib/auth/auth.service';\nexport * from './lib/auth/auth365.component';\nexport * from './lib/auth/can-deactivate-guard.service';\nexport * from './lib/auth/enroll.component';\nexport * from './lib/auth/forgot-password.component';\nexport * from './lib/directive/focus';\nexport * from './lib/home/home.component';\nexport * from './lib/support-ticket/support-ticket.component';\nexport * from './lib/support-ticket/support-ticket.module';\nexport * from './lib/support-ticket/support-ticket.routing';\nexport * from './lib/support-ticket/support-ticket.service';\nexport * from './lib/support-ticket/detail/support-ticket-detail.component';\nexport * from './lib/support-ticket/edit/support-ticket-edit.component';\nexport * from './lib/support-ticket/list/support-ticket-list.component';\nexport * from './lib/support-ticket/new/support-ticket-new.component';\nexport * from './lib/logger/logger.component';\nexport * from './lib/pipes/filter.pipe';\nexport * from './lib/pipes/minus-currency.pipe';\nexport * from './lib/pipes/phone.pipe';\nexport * from './lib/pipes/pipe.module';\nexport * from './lib/pipes/reverse-list.pipe';\nexport * from './lib/pipes/domsanitizor.pipe';\nexport * from './lib/pipes/json-parse.pipe';\nexport * from './lib/pipes/titlecase.pipe';\nexport * from './lib/shared/shared.module';\nexport * from './lib/util/action-name.helper';\nexport * from './lib/util/aws.service';\nexport * from './lib/util/common.helper';\nexport * from './lib/util/validation.service';\nexport * from './lib/util/window-resize.service';\nexport * from './lib/util/window.service';\nexport * from './lib/widgets/alert/alert.model';\nexport * from './lib/widgets/alert/alert.service';\nexport * from './lib/widgets/collapse-table/collapse-table.component';\nexport * from './lib/widgets/collapse-table/collapse-table.module';\nexport * from './lib/widgets/data-table/data-table.model';\nexport * from './lib/widgets/data-table/data-table.module';\nexport * from './lib/widgets/data-table/data-table.component';\nexport * from './lib/widgets/date-shortcut/date-shortcut.component';\nexport * from './lib/widgets/date-shortcut/date-shortcut.module';\nexport * from './lib/widgets/form-button/form-button.component';\nexport * from './lib/widgets/form-button/form-button.module';\nexport * from './lib/widgets/navbar-main/navbar-main.component';\nexport * from './lib/widgets/navbar-module/navbar-module.component';\nexport * from './lib/widgets/navbar-module/navbar-module.model';\nexport * from './lib/widgets/responsive-button-group/responsive-button-group.component';\nexport * from './lib/widgets/responsive-button-group/responsive-button-group.module';\nexport * from './lib/widgets/scheduler/scheduler.component';\nexport * from './lib/widgets/scheduler/scheduler.module';\nexport * from './lib/widgets/sort-table/sort-table.module';\nexport * from './lib/widgets/sort-table/sort-table.directive';\nexport * from './lib/widgets/sort-table/sort-table-ngfor.component';\nexport * from './lib/widgets/sort-table/sort-table-header.component';\nexport * from './lib/widgets/user-role/user-role.component';\nexport * from './lib/widgets/user-role/user-role.module';\nexport * from './lib/account-manager.service';\nexport * from './lib/offline-db';\nexport * from './lib/offline-manager.service';\nexport * from './lib/socket-manager.service';\nexport * from './lib/socket.service';\nexport * from './lib/token-manager.service';\nexport * from './lib/directive/scroll';\nexport * from './lib/widgets/dialog/dialog.service';\nexport * from './lib/models/app-status.model';\nexport * from './lib/models/collection-document.model';\nexport * from './lib/models/cron-job.model';\nexport * from './lib/models/dialog.model';\nexport * from './lib/models/file.model';\nexport * from './lib/widgets/file/file-upload.component';\nexport * from './lib/widgets/file/file-upload.module';\nexport * from './lib/models/log-method-latency.model';\nexport * from './lib/models/navbar-main-tab.model';\nexport * from './lib/models/pagination.model';\nexport * from './lib/models/permission.model';\nexport * from './lib/models/select-data-label.model';\nexport * from './lib/models/subscription.model';\nexport * from './lib/models/support-ticket.model';\nexport * from './lib/models/user-group.model';\nexport * from './lib/models/user.model';\nexport * from './lib/report-builder.permission';\nexport * from './lib/super-admin.permission';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","isObject","i1.SocketService","i2.OfflineManagerService","i3.AlertService","i4","i2.SocketManagerService","i3.TokenManagerService","i5.AlertService","i6.OfflineManagerService","i1.SocketManagerService","i1.CoreService","i2","i3.SocketManagerService","i4.AccountManagerService","i6.ValidationService","i7.AwsService","i8","i1.ProviderService","i3","i3.FormButtonComponent","i5","i6.FocusDirective","i1.ResizeService","i2.ProviderService","i3.ResponsiveButtonGroupComponent","i5.FocusDirective","i2.AccountManagerService","i2.CollapseTableComponent","i3.CollapseTableComponent","i4.ResponsiveButtonGroupComponent","i6","i1.DialogService","i2.ValidationService","i5.SocketManagerService","i2.AuthService","i3.DialogService","i4.CoreService","i8.ScrollDirective","i5.FilterNotEqualPipe","hexToRGB","i2.DialogService","i3.ResizeService","i4.ProviderService","i5.OfflineManagerService","i7.AuthService","i8.AuthPermissionService","i9","i10","i11.NavbarMainComponent","i12.NavbarModuleComponent","i5.ResponsiveButtonGroupComponent","i8.JsonParsePipe","i5.CoreService","i7.AuthPermissionService","i8.AlertService","i1.SortTableDirective","i4.DialogService","i6.FormButtonComponent","i3.ProviderService","i5.DialogService","i6.SocketManagerService","i1.UserSettingsService","i1.AuthPermissionService","i2.UserSettingsService","i6.CollapseTableComponent","i7","i8.FormButtonComponent","i9.ResponsiveButtonGroupComponent","i11.TitleCaseAndUnderscorePipe","routes","i5.CollapseTableComponent","i7.ResponsiveButtonGroupComponent","i1.SupportTicketService","i5.DatatableComponent","i2.SupportTicketService","i6.ResponsiveButtonGroupComponent","i8.FileUploadComponent","i7.FormButtonComponent"],"mappings":"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"}
|