tin-spa 2.13.15 → 9.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bundles/tin-spa.umd.js +6694 -0
- package/bundles/tin-spa.umd.js.map +1 -0
- package/bundles/tin-spa.umd.min.js +16 -0
- package/bundles/tin-spa.umd.min.js.map +1 -0
- package/esm2015/lib/classes/Classes.js +254 -0
- package/esm2015/lib/classes/TinCore.js +137 -0
- package/esm2015/lib/components/activity/activity.component.js +92 -0
- package/esm2015/lib/components/attach/attach.component.js +181 -0
- package/esm2015/lib/components/change-password/change-password.component.js +179 -0
- package/esm2015/lib/components/check/check.component.js +69 -0
- package/esm2015/lib/components/chips/chips.component.js +107 -0
- package/esm2015/lib/components/create-account/create-account.component.js +160 -0
- package/esm2015/lib/components/date/date.component.js +66 -0
- package/esm2015/lib/components/datetime/datetime.component.js +57 -0
- package/esm2015/lib/components/filter/filter.component.js +64 -0
- package/esm2015/lib/components/html/html.component.js +102 -0
- package/esm2015/lib/components/label/label.component.js +117 -0
- package/esm2015/lib/components/loader/loader.component.js +53 -0
- package/esm2015/lib/components/login/login.component.js +240 -0
- package/esm2015/lib/components/logs/logs.component.js +195 -0
- package/esm2015/lib/components/message/messageDialog.component.js +142 -0
- package/esm2015/lib/components/money/currency-input-mask.directive.js +187 -0
- package/esm2015/lib/components/money/currency-input-mask.module.js +30 -0
- package/esm2015/lib/components/money/money.component.js +152 -0
- package/esm2015/lib/components/nav-menu/nav-menu.component.js +204 -0
- package/esm2015/lib/components/option/option.component.js +129 -0
- package/esm2015/lib/components/profile/profile.component.js +198 -0
- package/esm2015/lib/components/recover-account/recover-account.component.js +74 -0
- package/esm2015/lib/components/roles/addRoleDialog.component.js +132 -0
- package/esm2015/lib/components/roles/roles.component.js +211 -0
- package/esm2015/lib/components/select/select.component.js +133 -0
- package/esm2015/lib/components/settings/settings.component.js +118 -0
- package/esm2015/lib/components/signup/signup.component.js +139 -0
- package/esm2015/lib/components/steps/steps.component.js +114 -0
- package/esm2015/lib/components/table/table.component.js +375 -0
- package/esm2015/lib/components/text/text.component.js +240 -0
- package/esm2015/lib/components/tiles/tiles.component.js +95 -0
- package/esm2015/lib/components/timeout/timeout.component.js +133 -0
- package/esm2015/lib/components/tin-spa.component.js +26 -0
- package/esm2015/lib/components/users/users.component.js +373 -0
- package/esm2015/lib/components/viewer/viewer.component.js +92 -0
- package/esm2015/lib/components/viewer/viewerDialog.component.js +131 -0
- package/esm2015/lib/dnd.directive.js +56 -0
- package/esm2015/lib/modules/spa-admin.module.js +81 -0
- package/esm2015/lib/modules/spa-index.module.js +58 -0
- package/esm2015/lib/modules/spa-mat.module.js +68 -0
- package/esm2015/lib/modules/spa-user.module.js +55 -0
- package/esm2015/lib/services/auth.service.js +142 -0
- package/esm2015/lib/services/data.service.js +111 -0
- package/esm2015/lib/services/export.service.js +29 -0
- package/esm2015/lib/services/http.service.js +79 -0
- package/esm2015/lib/services/loader-interceptor.service.js +77 -0
- package/esm2015/lib/services/loader.service.js +17 -0
- package/esm2015/lib/services/log.service.js +76 -0
- package/esm2015/lib/services/message.service.js +52 -0
- package/esm2015/lib/services/storage.service.js +43 -0
- package/esm2015/lib/services/tin-spa.service.js +14 -0
- package/esm2015/lib/tin-spa.module.js +156 -0
- package/esm2015/public-api.js +56 -0
- package/esm2015/tin-spa.js +5 -0
- package/esm5/lib/classes/Classes.js +313 -0
- package/esm5/lib/classes/TinCore.js +164 -0
- package/esm5/lib/components/activity/activity.component.js +94 -0
- package/esm5/lib/components/attach/attach.component.js +195 -0
- package/esm5/lib/components/change-password/change-password.component.js +182 -0
- package/esm5/lib/components/check/check.component.js +71 -0
- package/esm5/lib/components/chips/chips.component.js +110 -0
- package/esm5/lib/components/create-account/create-account.component.js +163 -0
- package/esm5/lib/components/date/date.component.js +68 -0
- package/esm5/lib/components/datetime/datetime.component.js +59 -0
- package/esm5/lib/components/filter/filter.component.js +66 -0
- package/esm5/lib/components/html/html.component.js +104 -0
- package/esm5/lib/components/label/label.component.js +119 -0
- package/esm5/lib/components/loader/loader.component.js +56 -0
- package/esm5/lib/components/login/login.component.js +244 -0
- package/esm5/lib/components/logs/logs.component.js +198 -0
- package/esm5/lib/components/message/messageDialog.component.js +144 -0
- package/esm5/lib/components/money/currency-input-mask.directive.js +193 -0
- package/esm5/lib/components/money/currency-input-mask.module.js +34 -0
- package/esm5/lib/components/money/money.component.js +154 -0
- package/esm5/lib/components/nav-menu/nav-menu.component.js +207 -0
- package/esm5/lib/components/option/option.component.js +131 -0
- package/esm5/lib/components/profile/profile.component.js +203 -0
- package/esm5/lib/components/recover-account/recover-account.component.js +77 -0
- package/esm5/lib/components/roles/addRoleDialog.component.js +135 -0
- package/esm5/lib/components/roles/roles.component.js +218 -0
- package/esm5/lib/components/select/select.component.js +136 -0
- package/esm5/lib/components/settings/settings.component.js +122 -0
- package/esm5/lib/components/signup/signup.component.js +142 -0
- package/esm5/lib/components/steps/steps.component.js +128 -0
- package/esm5/lib/components/table/table.component.js +378 -0
- package/esm5/lib/components/text/text.component.js +244 -0
- package/esm5/lib/components/tiles/tiles.component.js +97 -0
- package/esm5/lib/components/timeout/timeout.component.js +136 -0
- package/esm5/lib/components/tin-spa.component.js +25 -0
- package/esm5/lib/components/users/users.component.js +380 -0
- package/esm5/lib/components/viewer/viewer.component.js +94 -0
- package/esm5/lib/components/viewer/viewerDialog.component.js +133 -0
- package/esm5/lib/dnd.directive.js +58 -0
- package/esm5/lib/modules/spa-admin.module.js +85 -0
- package/esm5/lib/modules/spa-index.module.js +62 -0
- package/esm5/lib/modules/spa-mat.module.js +72 -0
- package/esm5/lib/modules/spa-user.module.js +59 -0
- package/esm5/lib/services/auth.service.js +145 -0
- package/esm5/lib/services/data.service.js +113 -0
- package/esm5/lib/services/export.service.js +31 -0
- package/esm5/lib/services/http.service.js +81 -0
- package/esm5/lib/services/loader-interceptor.service.js +80 -0
- package/esm5/lib/services/loader.service.js +19 -0
- package/esm5/lib/services/log.service.js +114 -0
- package/esm5/lib/services/message.service.js +54 -0
- package/esm5/lib/services/storage.service.js +76 -0
- package/esm5/lib/services/tin-spa.service.js +17 -0
- package/esm5/lib/tin-spa.module.js +160 -0
- package/esm5/public-api.js +56 -0
- package/esm5/tin-spa.js +5 -0
- package/fesm2015/tin-spa.js +6204 -0
- package/fesm2015/tin-spa.js.map +1 -0
- package/fesm5/tin-spa.js +6453 -0
- package/fesm5/tin-spa.js.map +1 -0
- package/lib/classes/Classes.d.ts +228 -375
- package/lib/classes/TinCore.d.ts +11 -43
- package/lib/components/activity/activity.component.d.ts +2 -2
- package/lib/components/attach/attach.component.d.ts +27 -15
- package/lib/{pages → components}/change-password/change-password.component.d.ts +4 -4
- package/lib/components/check/check.component.d.ts +3 -8
- package/lib/components/chips/chips.component.d.ts +2 -2
- package/lib/{pages → components}/create-account/create-account.component.d.ts +4 -8
- package/lib/components/date/date.component.d.ts +12 -24
- package/lib/components/datetime/datetime.component.d.ts +2 -6
- package/lib/components/filter/filter.component.d.ts +2 -7
- package/lib/components/html/html.component.d.ts +10 -11
- package/lib/components/label/label.component.d.ts +2 -4
- package/lib/components/loader/loader.component.d.ts +2 -2
- package/lib/components/login/login.component.d.ts +32 -0
- package/lib/components/logs/logs.component.d.ts +18 -0
- package/lib/components/message/messageDialog.component.d.ts +2 -2
- package/lib/components/money/currency-input-mask.directive.d.ts +2 -2
- package/lib/components/money/currency-input-mask.module.d.ts +2 -3
- package/lib/components/money/money.component.d.ts +3 -13
- package/lib/components/nav-menu/nav-menu.component.d.ts +4 -22
- package/lib/components/option/option.component.d.ts +3 -14
- package/lib/{pages → components}/profile/profile.component.d.ts +4 -6
- package/lib/{pages → components}/recover-account/recover-account.component.d.ts +3 -3
- package/lib/components/roles/addRoleDialog.component.d.ts +22 -0
- package/lib/components/roles/roles.component.d.ts +30 -0
- package/lib/components/select/select.component.d.ts +20 -20
- package/lib/{pages → components}/settings/settings.component.d.ts +3 -3
- package/lib/{pages → components}/signup/signup.component.d.ts +4 -4
- package/lib/components/steps/steps.component.d.ts +10 -19
- package/lib/components/table/table.component.d.ts +21 -84
- package/lib/components/text/text.component.d.ts +14 -36
- package/lib/components/tiles/tiles.component.d.ts +7 -21
- package/lib/components/timeout/timeout.component.d.ts +24 -0
- package/lib/components/tin-spa.component.d.ts +6 -3
- package/lib/{pages → components}/users/users.component.d.ts +18 -11
- package/lib/components/viewer/viewer.component.d.ts +5 -11
- package/lib/components/viewer/viewerDialog.component.d.ts +4 -6
- package/lib/dnd.directive.d.ts +11 -0
- package/lib/modules/spa-admin.module.d.ts +10 -10
- package/lib/modules/spa-index.module.d.ts +7 -8
- package/lib/modules/spa-mat.module.d.ts +2 -8
- package/lib/modules/spa-user.module.d.ts +6 -6
- package/lib/services/auth.service.d.ts +4 -16
- package/lib/services/data.service.d.ts +38 -0
- package/lib/services/export.service.d.ts +6 -2
- package/lib/services/http.service.d.ts +2 -2
- package/lib/services/loader-interceptor.service.d.ts +3 -4
- package/lib/services/loader.service.d.ts +2 -2
- package/lib/services/log.service.d.ts +3 -3
- package/lib/services/message.service.d.ts +3 -4
- package/lib/services/storage.service.d.ts +2 -2
- package/lib/services/tin-spa.service.d.ts +2 -2
- package/lib/tin-spa.module.d.ts +34 -83
- package/package.json +16 -24
- package/public-api.d.ts +16 -47
- package/esm2020/lib/classes/Classes.mjs +0 -112
- package/esm2020/lib/classes/LibClasses.mjs +0 -180
- package/esm2020/lib/classes/TinCore.mjs +0 -568
- package/esm2020/lib/components/activity/activity.component.mjs +0 -24
- package/esm2020/lib/components/alert/alert.component.mjs +0 -43
- package/esm2020/lib/components/attach/attach.component.mjs +0 -102
- package/esm2020/lib/components/capsules/capsules.component.mjs +0 -63
- package/esm2020/lib/components/cards/cards.component.mjs +0 -103
- package/esm2020/lib/components/check/check.component.mjs +0 -67
- package/esm2020/lib/components/chips/chips.component.mjs +0 -58
- package/esm2020/lib/components/date/date.component.mjs +0 -103
- package/esm2020/lib/components/datetime/datetime.component.mjs +0 -55
- package/esm2020/lib/components/email/email.component.mjs +0 -133
- package/esm2020/lib/components/filter/filter.component.mjs +0 -58
- package/esm2020/lib/components/form/form.component.mjs +0 -296
- package/esm2020/lib/components/html/html.component.mjs +0 -34
- package/esm2020/lib/components/label/label.component.mjs +0 -31
- package/esm2020/lib/components/list-dialog/list-dialog.component.mjs +0 -68
- package/esm2020/lib/components/loader/loader.component.mjs +0 -25
- package/esm2020/lib/components/message/messageDialog.component.mjs +0 -33
- package/esm2020/lib/components/money/currency-input-mask.directive.mjs +0 -185
- package/esm2020/lib/components/money/currency-input-mask.module.mjs +0 -28
- package/esm2020/lib/components/money/money.component.mjs +0 -137
- package/esm2020/lib/components/multi-select/multi-select.component.mjs +0 -165
- package/esm2020/lib/components/multi-text/multi-text.component.mjs +0 -208
- package/esm2020/lib/components/nav-menu/nav-menu.component.mjs +0 -88
- package/esm2020/lib/components/notes/notes.component.mjs +0 -62
- package/esm2020/lib/components/number/number.component.mjs +0 -131
- package/esm2020/lib/components/option/option.component.mjs +0 -92
- package/esm2020/lib/components/page/page.component.mjs +0 -101
- package/esm2020/lib/components/search/search.component.mjs +0 -36
- package/esm2020/lib/components/select/select.component.mjs +0 -75
- package/esm2020/lib/components/select-bitwise/select-bitwise.component.mjs +0 -87
- package/esm2020/lib/components/select-common/select-common.component.mjs +0 -206
- package/esm2020/lib/components/select-internal/select-internal.component.mjs +0 -75
- package/esm2020/lib/components/select-lite/select-lite.component.mjs +0 -18
- package/esm2020/lib/components/statuses/statuses.component.mjs +0 -44
- package/esm2020/lib/components/steps/steps.component.mjs +0 -112
- package/esm2020/lib/components/suffix/suffix.component.mjs +0 -70
- package/esm2020/lib/components/table/detailsDialog.component.mjs +0 -406
- package/esm2020/lib/components/table/table.component.mjs +0 -440
- package/esm2020/lib/components/table-action/table-action.component.mjs +0 -80
- package/esm2020/lib/components/table-header/table-header.component.mjs +0 -148
- package/esm2020/lib/components/table-internal/detailsDialog-internal.component.mjs +0 -406
- package/esm2020/lib/components/table-internal/table-internal.component.mjs +0 -441
- package/esm2020/lib/components/table-lite/detailsDialog-lite.component.mjs +0 -404
- package/esm2020/lib/components/table-lite/table-lite.component.mjs +0 -441
- package/esm2020/lib/components/table-row/table-row.component.mjs +0 -93
- package/esm2020/lib/components/tabs/tabs.component.mjs +0 -74
- package/esm2020/lib/components/text/text.component.mjs +0 -255
- package/esm2020/lib/components/tiles/tiles.component.mjs +0 -99
- package/esm2020/lib/components/tin-spa.component.mjs +0 -19
- package/esm2020/lib/components/viewer/viewer.component.mjs +0 -83
- package/esm2020/lib/components/viewer/viewerDialog.component.mjs +0 -95
- package/esm2020/lib/modules/admin/admin-routing.module.mjs +0 -71
- package/esm2020/lib/modules/admin/admin.module.mjs +0 -26
- package/esm2020/lib/modules/index/index-routing.module.mjs +0 -27
- package/esm2020/lib/modules/index/index.module.mjs +0 -26
- package/esm2020/lib/modules/spa-admin.module.mjs +0 -71
- package/esm2020/lib/modules/spa-index.module.mjs +0 -54
- package/esm2020/lib/modules/spa-mat.module.mjs +0 -84
- package/esm2020/lib/modules/spa-user.module.mjs +0 -47
- package/esm2020/lib/modules/user/user-routing.module.mjs +0 -23
- package/esm2020/lib/modules/user/user.module.mjs +0 -26
- package/esm2020/lib/pages/accounts/accountDialog.component.mjs +0 -56
- package/esm2020/lib/pages/accounts/accounts.component.mjs +0 -70
- package/esm2020/lib/pages/app-models/app-models.component.mjs +0 -56
- package/esm2020/lib/pages/approvals/approvals.component.mjs +0 -19
- package/esm2020/lib/pages/approvals-config/approvals-config.component.mjs +0 -165
- package/esm2020/lib/pages/bug/bug.component.mjs +0 -14
- package/esm2020/lib/pages/change-password/change-password.component.mjs +0 -92
- package/esm2020/lib/pages/create-account/create-account.component.mjs +0 -110
- package/esm2020/lib/pages/customers/customers.component.mjs +0 -21
- package/esm2020/lib/pages/departments/departments.component.mjs +0 -22
- package/esm2020/lib/pages/employees/employees.component.mjs +0 -20
- package/esm2020/lib/pages/grades/grades.component.mjs +0 -14
- package/esm2020/lib/pages/inventory/inventory.component.mjs +0 -99
- package/esm2020/lib/pages/inventory/quantityDialog.component.mjs +0 -53
- package/esm2020/lib/pages/invitations-table/invitations-table.component.mjs +0 -71
- package/esm2020/lib/pages/login/login.component.mjs +0 -166
- package/esm2020/lib/pages/logs/logs.component.mjs +0 -42
- package/esm2020/lib/pages/membership/membership.component.mjs +0 -44
- package/esm2020/lib/pages/notifications/notifications.component.mjs +0 -90
- package/esm2020/lib/pages/notifications-config/notifications-config.component.mjs +0 -113
- package/esm2020/lib/pages/plans/plans.component.mjs +0 -44
- package/esm2020/lib/pages/positions/positions.component.mjs +0 -21
- package/esm2020/lib/pages/profile/profile.component.mjs +0 -94
- package/esm2020/lib/pages/recover-account/recover-account.component.mjs +0 -46
- package/esm2020/lib/pages/roles/addRoleDialog.component.mjs +0 -60
- package/esm2020/lib/pages/roles/roles.component.mjs +0 -151
- package/esm2020/lib/pages/settings/settings.component.mjs +0 -54
- package/esm2020/lib/pages/signup/signup.component.mjs +0 -50
- package/esm2020/lib/pages/suppliers/suppliers.component.mjs +0 -22
- package/esm2020/lib/pages/tasks/tasks.component.mjs +0 -86
- package/esm2020/lib/pages/tenant-settings/tenant-settings.component.mjs +0 -228
- package/esm2020/lib/pages/tenants/tenants.component.mjs +0 -47
- package/esm2020/lib/pages/transactions/transactDialog.component.mjs +0 -80
- package/esm2020/lib/pages/transactions/transactions.component.mjs +0 -101
- package/esm2020/lib/pages/users/users.component.mjs +0 -167
- package/esm2020/lib/pages/welcome/welcome.component.mjs +0 -86
- package/esm2020/lib/pipes/camelToWords.pipe.mjs +0 -17
- package/esm2020/lib/select-context.directive.mjs +0 -23
- package/esm2020/lib/services/auth.service.mjs +0 -175
- package/esm2020/lib/services/button.service.mjs +0 -162
- package/esm2020/lib/services/condition.service.mjs +0 -32
- package/esm2020/lib/services/csv.service.mjs +0 -49
- package/esm2020/lib/services/datalib.service.mjs +0 -860
- package/esm2020/lib/services/dialog.service.mjs +0 -125
- package/esm2020/lib/services/export.service.mjs +0 -16
- package/esm2020/lib/services/http.service.mjs +0 -79
- package/esm2020/lib/services/loader-interceptor.service.mjs +0 -86
- package/esm2020/lib/services/loader.service.mjs +0 -17
- package/esm2020/lib/services/log.service.mjs +0 -77
- package/esm2020/lib/services/message.service.mjs +0 -59
- package/esm2020/lib/services/notifications.service.mjs +0 -33
- package/esm2020/lib/services/storage.service.mjs +0 -34
- package/esm2020/lib/services/table-config.service.mjs +0 -78
- package/esm2020/lib/services/tin-spa.service.mjs +0 -14
- package/esm2020/lib/tin-spa.module.mjs +0 -225
- package/esm2020/public-api.mjs +0 -90
- package/esm2020/tin-spa.mjs +0 -5
- package/fesm2015/tin-spa.mjs +0 -11736
- package/fesm2015/tin-spa.mjs.map +0 -1
- package/fesm2020/tin-spa.mjs +0 -11738
- package/fesm2020/tin-spa.mjs.map +0 -1
- package/lib/classes/LibClasses.d.ts +0 -173
- package/lib/components/alert/alert.component.d.ts +0 -15
- package/lib/components/capsules/capsules.component.d.ts +0 -26
- package/lib/components/cards/cards.component.d.ts +0 -39
- package/lib/components/email/email.component.d.ts +0 -40
- package/lib/components/form/form.component.d.ts +0 -47
- package/lib/components/list-dialog/list-dialog.component.d.ts +0 -23
- package/lib/components/multi-select/multi-select.component.d.ts +0 -47
- package/lib/components/multi-text/multi-text.component.d.ts +0 -56
- package/lib/components/notes/notes.component.d.ts +0 -19
- package/lib/components/number/number.component.d.ts +0 -41
- package/lib/components/page/page.component.d.ts +0 -38
- package/lib/components/search/search.component.d.ts +0 -15
- package/lib/components/select-bitwise/select-bitwise.component.d.ts +0 -31
- package/lib/components/select-common/select-common.component.d.ts +0 -53
- package/lib/components/select-internal/select-internal.component.d.ts +0 -23
- package/lib/components/select-lite/select-lite.component.d.ts +0 -8
- package/lib/components/statuses/statuses.component.d.ts +0 -12
- package/lib/components/suffix/suffix.component.d.ts +0 -23
- package/lib/components/table/detailsDialog.component.d.ts +0 -86
- package/lib/components/table-action/table-action.component.d.ts +0 -25
- package/lib/components/table-header/table-header.component.d.ts +0 -46
- package/lib/components/table-internal/detailsDialog-internal.component.d.ts +0 -86
- package/lib/components/table-internal/table-internal.component.d.ts +0 -91
- package/lib/components/table-lite/detailsDialog-lite.component.d.ts +0 -86
- package/lib/components/table-lite/table-lite.component.d.ts +0 -91
- package/lib/components/table-row/table-row.component.d.ts +0 -31
- package/lib/components/tabs/tabs.component.d.ts +0 -32
- package/lib/modules/admin/admin-routing.module.d.ts +0 -7
- package/lib/modules/admin/admin.module.d.ts +0 -9
- package/lib/modules/index/index-routing.module.d.ts +0 -7
- package/lib/modules/index/index.module.d.ts +0 -9
- package/lib/modules/user/user-routing.module.d.ts +0 -7
- package/lib/modules/user/user.module.d.ts +0 -9
- package/lib/pages/accounts/accountDialog.component.d.ts +0 -27
- package/lib/pages/accounts/accounts.component.d.ts +0 -25
- package/lib/pages/app-models/app-models.component.d.ts +0 -15
- package/lib/pages/approvals/approvals.component.d.ts +0 -10
- package/lib/pages/approvals-config/approvals-config.component.d.ts +0 -24
- package/lib/pages/bug/bug.component.d.ts +0 -8
- package/lib/pages/customers/customers.component.d.ts +0 -12
- package/lib/pages/departments/departments.component.d.ts +0 -14
- package/lib/pages/employees/employees.component.d.ts +0 -12
- package/lib/pages/grades/grades.component.d.ts +0 -8
- package/lib/pages/inventory/inventory.component.d.ts +0 -25
- package/lib/pages/inventory/quantityDialog.component.d.ts +0 -23
- package/lib/pages/invitations-table/invitations-table.component.d.ts +0 -19
- package/lib/pages/login/login.component.d.ts +0 -46
- package/lib/pages/logs/logs.component.d.ts +0 -14
- package/lib/pages/membership/membership.component.d.ts +0 -13
- package/lib/pages/notifications/notifications.component.d.ts +0 -16
- package/lib/pages/notifications-config/notifications-config.component.d.ts +0 -17
- package/lib/pages/plans/plans.component.d.ts +0 -13
- package/lib/pages/positions/positions.component.d.ts +0 -12
- package/lib/pages/roles/addRoleDialog.component.d.ts +0 -24
- package/lib/pages/roles/roles.component.d.ts +0 -42
- package/lib/pages/suppliers/suppliers.component.d.ts +0 -14
- package/lib/pages/tasks/tasks.component.d.ts +0 -27
- package/lib/pages/tenant-settings/tenant-settings.component.d.ts +0 -47
- package/lib/pages/tenants/tenants.component.d.ts +0 -17
- package/lib/pages/transactions/transactDialog.component.d.ts +0 -26
- package/lib/pages/transactions/transactions.component.d.ts +0 -31
- package/lib/pages/welcome/welcome.component.d.ts +0 -25
- package/lib/pipes/camelToWords.pipe.d.ts +0 -7
- package/lib/select-context.directive.d.ts +0 -10
- package/lib/services/button.service.d.ts +0 -30
- package/lib/services/condition.service.d.ts +0 -10
- package/lib/services/csv.service.d.ts +0 -10
- package/lib/services/datalib.service.d.ts +0 -125
- package/lib/services/dialog.service.d.ts +0 -20
- package/lib/services/notifications.service.d.ts +0 -12
- package/lib/services/table-config.service.d.ts +0 -17
- /package/{index.d.ts → tin-spa.d.ts} +0 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "../../services/loader.service";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
function LoaderComponent_img_2_Template(rf, ctx) { if (rf & 1) {
|
|
6
|
+
i0.ɵɵelement(0, "img", 5);
|
|
7
|
+
} }
|
|
8
|
+
function LoaderComponent_img_3_Template(rf, ctx) { if (rf & 1) {
|
|
9
|
+
i0.ɵɵelement(0, "img", 6);
|
|
10
|
+
} if (rf & 2) {
|
|
11
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
12
|
+
i0.ɵɵproperty("src", ctx_r1.logo, i0.ɵɵsanitizeUrl);
|
|
13
|
+
} }
|
|
14
|
+
export class LoaderComponent {
|
|
15
|
+
constructor(loaderService) {
|
|
16
|
+
this.loaderService = loaderService;
|
|
17
|
+
this.logo = "";
|
|
18
|
+
this.loaderService.isLoading.subscribe((v) => {
|
|
19
|
+
this.loading = v;
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
ngOnInit() {
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
LoaderComponent.ɵfac = function LoaderComponent_Factory(t) { return new (t || LoaderComponent)(i0.ɵɵdirectiveInject(i1.LoaderService)); };
|
|
26
|
+
LoaderComponent.ɵcmp = i0.ɵɵdefineComponent({ type: LoaderComponent, selectors: [["spa-loader"]], inputs: { logo: "logo" }, decls: 6, vars: 3, consts: [[1, "progress-loader", 2, "z-index", "9999", 3, "hidden"], [1, "loading-spinner"], ["style", "width: 100px;", "src", "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==", 4, "ngIf"], ["style", "width: 100px;", 3, "src", 4, "ngIf"], ["id", "loadingMessage", 1, "loading-message"], ["src", "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIj4KICAgIDxwYXRoIGZpbGw9IiNERDAwMzEiIGQ9Ik0xMjUgMzBMMzEuOSA2My4ybDE0LjIgMTIzLjFMMTI1IDIzMGw3OC45LTQzLjcgMTQuMi0xMjMuMXoiIC8+CiAgICA8cGF0aCBmaWxsPSIjQzMwMDJGIiBkPSJNMTI1IDMwdjIyLjItLjFWMjMwbDc4LjktNDMuNyAxNC4yLTEyMy4xTDEyNSAzMHoiIC8+CiAgICA8cGF0aCAgZmlsbD0iI0ZGRkZGRiIgZD0iTTEyNSA1Mi4xTDY2LjggMTgyLjZoMjEuN2wxMS43LTI5LjJoNDkuNGwxMS43IDI5LjJIMTgzTDEyNSA1Mi4xem0xNyA4My4zaC0zNGwxNy00MC45IDE3IDQwLjl6IiAvPgogIDwvc3ZnPg==", 2, "width", "100px"], [2, "width", "100px", 3, "src"]], template: function LoaderComponent_Template(rf, ctx) { if (rf & 1) {
|
|
27
|
+
i0.ɵɵelementStart(0, "div", 0);
|
|
28
|
+
i0.ɵɵelementStart(1, "div", 1);
|
|
29
|
+
i0.ɵɵtemplate(2, LoaderComponent_img_2_Template, 1, 0, "img", 2);
|
|
30
|
+
i0.ɵɵtemplate(3, LoaderComponent_img_3_Template, 1, 1, "img", 3);
|
|
31
|
+
i0.ɵɵelementStart(4, "span", 4);
|
|
32
|
+
i0.ɵɵtext(5, "Please wait...");
|
|
33
|
+
i0.ɵɵelementEnd();
|
|
34
|
+
i0.ɵɵelementEnd();
|
|
35
|
+
i0.ɵɵelementEnd();
|
|
36
|
+
} if (rf & 2) {
|
|
37
|
+
i0.ɵɵproperty("hidden", !ctx.loading);
|
|
38
|
+
i0.ɵɵadvance(2);
|
|
39
|
+
i0.ɵɵproperty("ngIf", ctx.logo == "");
|
|
40
|
+
i0.ɵɵadvance(1);
|
|
41
|
+
i0.ɵɵproperty("ngIf", ctx.logo != "");
|
|
42
|
+
} }, directives: [i2.NgIf], styles: [".loading-spinner[_ngcontent-%COMP%]{background-color:#0000001f;position:absolute;width:100%;top:0;left:0;height:100vh;align-items:center;justify-content:center;display:-ms-grid;display:grid}.loading-spinner[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{-ms-grid-row-align:end;align-self:end}.loading-message[_ngcontent-%COMP%]{text-align:center;-ms-grid-row-align:start;align-self:start}"] });
|
|
43
|
+
/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(LoaderComponent, [{
|
|
44
|
+
type: Component,
|
|
45
|
+
args: [{
|
|
46
|
+
selector: 'spa-loader',
|
|
47
|
+
templateUrl: './loader.component.html',
|
|
48
|
+
styleUrls: ['./loader.component.css']
|
|
49
|
+
}]
|
|
50
|
+
}], function () { return [{ type: i1.LoaderService }]; }, { logo: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}] }); })();
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL3Rpbi1zcGEvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudC50cyIsImxpYi9jb21wb25lbnRzL2xvYWRlci9sb2FkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0lDR25ELHlCQUtBOzs7SUFBQSx5QkFHQTs7O0lBSHNCLG1EQUFZOztBREF4QyxNQUFNLE9BQU8sZUFBZTtJQUUxQixZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVV2QyxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBUmpCLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzNDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQztJQUNELFFBQVE7SUFDUixDQUFDOzs4RUFWVSxlQUFlO29EQUFmLGVBQWU7UUNSNUIsOEJBQ0U7UUFBQSw4QkFFSTtRQUFBLGdFQUtBO1FBQUEsZ0VBR0E7UUFBQSwrQkFBa0Q7UUFBQSw4QkFBYztRQUFBLGlCQUFPO1FBQzNFLGlCQUFNO1FBQ1IsaUJBQU07O1FBYjhDLHFDQUFtQjtRQUc1RCxlQUFnQjtRQUFoQixxQ0FBZ0I7UUFLaEIsZUFBZ0I7UUFBaEIscUNBQWdCOztrRERBZCxlQUFlO2NBTDNCLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsV0FBVyxFQUFFLHlCQUF5QjtnQkFDdEMsU0FBUyxFQUFFLENBQUMsd0JBQXdCLENBQUM7YUFDdEM7O2tCQWFFLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTG9hZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xvYWRlci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BhLWxvYWRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xvYWRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbG9hZGVyLmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9hZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBsb2FkZXJTZXJ2aWNlOiBMb2FkZXJTZXJ2aWNlKSB7XHJcblxyXG4gICAgdGhpcy5sb2FkZXJTZXJ2aWNlLmlzTG9hZGluZy5zdWJzY3JpYmUoKHYpID0+IHtcclxuICAgICAgdGhpcy5sb2FkaW5nID0gdjtcclxuICAgIH0pO1xyXG5cclxuICB9XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSBsb2dvID0gXCJcIjtcclxuICBsb2FkaW5nOiBib29sZWFuO1xyXG5cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwicHJvZ3Jlc3MtbG9hZGVyXCIgc3R5bGU9XCJ6LWluZGV4OiA5OTk5O1wiIFtoaWRkZW5dPVwiIWxvYWRpbmdcIj5cclxuICA8ZGl2IGNsYXNzPVwibG9hZGluZy1zcGlubmVyXCI+XHJcblxyXG4gICAgICA8aW1nICpuZ0lmPVwibG9nbz09JydcIiBzdHlsZT1cIndpZHRoOiAxMDBweDtcIlxyXG4gICAgICBzcmM9XCJkYXRhOmltYWdlL3N2Zyt4bWw7YmFzZTY0LFBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSFpwWlhkQ2IzZzlJakFnTUNBeU5UQWdNalV3SWo0S0lDQWdJRHh3WVhSb0lHWnBiR3c5SWlORVJEQXdNekVpSUdROUlrMHhNalVnTXpCTU16RXVPU0EyTXk0eWJERTBMaklnTVRJekxqRk1NVEkxSURJek1HdzNPQzQ1TFRRekxqY2dNVFF1TWkweE1qTXVNWG9pSUM4K0NpQWdJQ0E4Y0dGMGFDQm1hV3hzUFNJalF6TXdNREpHSWlCa1BTSk5NVEkxSURNd2RqSXlMakl0TGpGV01qTXdiRGM0TGprdE5ETXVOeUF4TkM0eUxURXlNeTR4VERFeU5TQXpNSG9pSUM4K0NpQWdJQ0E4Y0dGMGFDQWdabWxzYkQwaUkwWkdSa1pHUmlJZ1pEMGlUVEV5TlNBMU1pNHhURFkyTGpnZ01UZ3lMalpvTWpFdU4yd3hNUzQzTFRJNUxqSm9ORGt1Tkd3eE1TNDNJREk1TGpKSU1UZ3pUREV5TlNBMU1pNHhlbTB4TnlBNE15NHphQzB6Tkd3eE55MDBNQzQ1SURFM0lEUXdMamw2SWlBdlBnb2dJRHd2YzNablBnPT1cIlxyXG5cclxuICAgICAgPlxyXG5cclxuICAgICAgPGltZyAqbmdJZj1cImxvZ28hPScnXCIgW3NyY109XCJsb2dvXCIgc3R5bGU9XCJ3aWR0aDogMTAwcHg7XCIgLz5cclxuXHJcblxyXG4gICAgICA8c3BhbiBpZD1cImxvYWRpbmdNZXNzYWdlXCIgY2xhc3M9XCJsb2FkaW5nLW1lc3NhZ2VcIj5QbGVhc2Ugd2FpdC4uLjwvc3Bhbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import { Component } from "@angular/core";
|
|
2
|
+
import { User, AppConfig } from "../../classes/Classes";
|
|
3
|
+
import { Constants } from "../../classes/TinCore";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../services/http.service";
|
|
6
|
+
import * as i2 from "../../services/storage.service";
|
|
7
|
+
import * as i3 from "@angular/router";
|
|
8
|
+
import * as i4 from "../../services/message.service";
|
|
9
|
+
import * as i5 from "../../services/data.service";
|
|
10
|
+
import * as i6 from "../../services/auth.service";
|
|
11
|
+
import * as i7 from "./../../services/log.service";
|
|
12
|
+
import * as i8 from "@angular/common";
|
|
13
|
+
import * as i9 from "@angular/material/card";
|
|
14
|
+
import * as i10 from "../text/text.component";
|
|
15
|
+
import * as i11 from "@angular/material/form-field";
|
|
16
|
+
import * as i12 from "@angular/material/input";
|
|
17
|
+
import * as i13 from "@angular/forms";
|
|
18
|
+
import * as i14 from "@angular/material/button";
|
|
19
|
+
import * as i15 from "@angular/material/icon";
|
|
20
|
+
function LoginComponent_div_1_img_1_Template(rf, ctx) { if (rf & 1) {
|
|
21
|
+
i0.ɵɵelement(0, "img", 21);
|
|
22
|
+
} if (rf & 2) {
|
|
23
|
+
const ctx_r4 = i0.ɵɵnextContext(2);
|
|
24
|
+
i0.ɵɵproperty("src", ctx_r4.appConfig.logo, i0.ɵɵsanitizeUrl);
|
|
25
|
+
} }
|
|
26
|
+
function LoginComponent_div_1_img_2_Template(rf, ctx) { if (rf & 1) {
|
|
27
|
+
i0.ɵɵelement(0, "img", 22);
|
|
28
|
+
} if (rf & 2) {
|
|
29
|
+
const ctx_r5 = i0.ɵɵnextContext(2);
|
|
30
|
+
i0.ɵɵproperty("src", ctx_r5.appConfig.logo, i0.ɵɵsanitizeUrl);
|
|
31
|
+
} }
|
|
32
|
+
function LoginComponent_div_1_img_3_Template(rf, ctx) { if (rf & 1) {
|
|
33
|
+
i0.ɵɵelement(0, "img", 23);
|
|
34
|
+
} if (rf & 2) {
|
|
35
|
+
const ctx_r6 = i0.ɵɵnextContext(2);
|
|
36
|
+
i0.ɵɵproperty("src", ctx_r6.appConfig.logo, i0.ɵɵsanitizeUrl);
|
|
37
|
+
} }
|
|
38
|
+
function LoginComponent_div_1_Template(rf, ctx) { if (rf & 1) {
|
|
39
|
+
i0.ɵɵelementStart(0, "div", 17);
|
|
40
|
+
i0.ɵɵtemplate(1, LoginComponent_div_1_img_1_Template, 1, 1, "img", 18);
|
|
41
|
+
i0.ɵɵtemplate(2, LoginComponent_div_1_img_2_Template, 1, 1, "img", 19);
|
|
42
|
+
i0.ɵɵtemplate(3, LoginComponent_div_1_img_3_Template, 1, 1, "img", 20);
|
|
43
|
+
i0.ɵɵelementEnd();
|
|
44
|
+
} if (rf & 2) {
|
|
45
|
+
const ctx_r0 = i0.ɵɵnextContext();
|
|
46
|
+
i0.ɵɵadvance(1);
|
|
47
|
+
i0.ɵɵproperty("ngIf", ctx_r0.appConfig.logoSize == "normal");
|
|
48
|
+
i0.ɵɵadvance(1);
|
|
49
|
+
i0.ɵɵproperty("ngIf", ctx_r0.appConfig.logoSize == "medium");
|
|
50
|
+
i0.ɵɵadvance(1);
|
|
51
|
+
i0.ɵɵproperty("ngIf", ctx_r0.appConfig.logoSize == "large");
|
|
52
|
+
} }
|
|
53
|
+
function LoginComponent_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
54
|
+
i0.ɵɵelement(0, "div", 24);
|
|
55
|
+
} }
|
|
56
|
+
function LoginComponent_div_25_Template(rf, ctx) { if (rf & 1) {
|
|
57
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
58
|
+
i0.ɵɵelementStart(0, "div", 13);
|
|
59
|
+
i0.ɵɵelementStart(1, "button", 25);
|
|
60
|
+
i0.ɵɵlistener("click", function LoginComponent_div_25_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r8); const ctx_r7 = i0.ɵɵnextContext(); return ctx_r7.signup(); });
|
|
61
|
+
i0.ɵɵtext(2, "Signup");
|
|
62
|
+
i0.ɵɵelementEnd();
|
|
63
|
+
i0.ɵɵelementEnd();
|
|
64
|
+
} }
|
|
65
|
+
function LoginComponent_div_26_Template(rf, ctx) { if (rf & 1) {
|
|
66
|
+
const _r10 = i0.ɵɵgetCurrentView();
|
|
67
|
+
i0.ɵɵelementStart(0, "div");
|
|
68
|
+
i0.ɵɵelement(1, "br");
|
|
69
|
+
i0.ɵɵelementStart(2, "a", 26);
|
|
70
|
+
i0.ɵɵlistener("click", function LoginComponent_div_26_Template_a_click_2_listener() { i0.ɵɵrestoreView(_r10); const ctx_r9 = i0.ɵɵnextContext(); return ctx_r9.recoverAccount(); });
|
|
71
|
+
i0.ɵɵtext(3, "Forgot your password ?");
|
|
72
|
+
i0.ɵɵelementEnd();
|
|
73
|
+
i0.ɵɵelementEnd();
|
|
74
|
+
} }
|
|
75
|
+
export class LoginComponent {
|
|
76
|
+
constructor(httpService, storageService, router, messageService, dataService, authService, logService, route) {
|
|
77
|
+
this.httpService = httpService;
|
|
78
|
+
this.storageService = storageService;
|
|
79
|
+
this.router = router;
|
|
80
|
+
this.messageService = messageService;
|
|
81
|
+
this.dataService = dataService;
|
|
82
|
+
this.authService = authService;
|
|
83
|
+
this.logService = logService;
|
|
84
|
+
this.route = route;
|
|
85
|
+
this.user = new User();
|
|
86
|
+
this.hide = true;
|
|
87
|
+
this.isProcessing = false;
|
|
88
|
+
this.appConfig = new AppConfig();
|
|
89
|
+
}
|
|
90
|
+
ngOnInit() {
|
|
91
|
+
this.authService.Updateloggedin(false);
|
|
92
|
+
this.authService.UpdateRole(null);
|
|
93
|
+
this.storageService.clear();
|
|
94
|
+
this.dataService.appConfigObserv.subscribe(x => this.appConfig = x);
|
|
95
|
+
if (this.route.snapshot.queryParams.redirectTo != undefined) {
|
|
96
|
+
this.redirectPath = this.route.snapshot.queryParams.redirectTo;
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
this.redirectPath = "home";
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
signup() {
|
|
103
|
+
this.router.navigate(["signup"]);
|
|
104
|
+
}
|
|
105
|
+
recoverAccount() {
|
|
106
|
+
this.router.navigate(["recover-account"]);
|
|
107
|
+
}
|
|
108
|
+
login() {
|
|
109
|
+
if (this.user.userName == "" || this.user.password == "") {
|
|
110
|
+
this.messageService.toast("Please enter your credentials");
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
this.logService.info("logging in");
|
|
114
|
+
this.isProcessing = true;
|
|
115
|
+
this.user.userName = this.user.userName;
|
|
116
|
+
this.dataService.Login(this.user).subscribe((apiResponse) => {
|
|
117
|
+
this.isProcessing = false;
|
|
118
|
+
if (apiResponse.success) {
|
|
119
|
+
if (apiResponse.data.authType == 'local' && !this.appConfig.localAuth) {
|
|
120
|
+
this.messageService.toast("Contact Admin: Authentication Type error");
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
if (apiResponse.data.authType == 'AD' && !this.appConfig.ADAuth) {
|
|
124
|
+
this.messageService.toast("Contact Admin: Authentication Type error");
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
this.authService.Updateloggedin(true);
|
|
128
|
+
this.authService.UpdateToken(apiResponse.data.token);
|
|
129
|
+
this.storageService.store(Constants.AUTH_TOKEN, apiResponse.data.token);
|
|
130
|
+
this.authService.UpdateTokenExpire(apiResponse.data.expiration);
|
|
131
|
+
this.storageService.store(Constants.AUTH_TOKEN_EXPIRE, apiResponse.data.expiration);
|
|
132
|
+
this.authService.UpdateCurrentUser(this.user.userName);
|
|
133
|
+
this.storageService.store(Constants.AUTH_USER, this.user.userName);
|
|
134
|
+
this.authService.updateLoggedUserFullName(apiResponse.data.firstName);
|
|
135
|
+
this.storageService.store(Constants.AUTH_NAME, apiResponse.data.firstName);
|
|
136
|
+
this.authService.UpdateRole(apiResponse.data.role);
|
|
137
|
+
this.storageService.store(Constants.AUTH_ROLES, JSON.stringify(apiResponse.data.role));
|
|
138
|
+
this.logService.info("logged in");
|
|
139
|
+
if (apiResponse.data.changePassword == true && apiResponse.data.authType == 'local') {
|
|
140
|
+
this.router.navigate(["home/user/change-password"], {
|
|
141
|
+
queryParams: { redirectTo: this.redirectPath },
|
|
142
|
+
queryParamsHandling: 'merge',
|
|
143
|
+
skipLocationChange: false
|
|
144
|
+
});
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
this.router.navigate([this.redirectPath]);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
this.messageService.toast("Error: " + apiResponse.message);
|
|
151
|
+
this.user.password = "";
|
|
152
|
+
}
|
|
153
|
+
}, (error) => {
|
|
154
|
+
this.isProcessing = false;
|
|
155
|
+
this.messageService.toast(this.httpService.Error(error));
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
LoginComponent.ɵfac = function LoginComponent_Factory(t) { return new (t || LoginComponent)(i0.ɵɵdirectiveInject(i1.HttpService), i0.ɵɵdirectiveInject(i2.StorageService), i0.ɵɵdirectiveInject(i3.Router), i0.ɵɵdirectiveInject(i4.MessageService), i0.ɵɵdirectiveInject(i5.DataServiceLib), i0.ɵɵdirectiveInject(i6.AuthService), i0.ɵɵdirectiveInject(i7.LogService), i0.ɵɵdirectiveInject(i3.ActivatedRoute)); };
|
|
160
|
+
LoginComponent.ɵcmp = i0.ɵɵdefineComponent({ type: LoginComponent, selectors: [["spa-login"]], decls: 27, vars: 12, consts: [[1, "tin-bg-login", "login-page"], ["class", "d-flex justify-content-center row align-items-center", "style", "margin-top:3em;margin-bottom:1em", 4, "ngIf"], ["style", "margin-top:2em", 4, "ngIf"], [1, "d-flex", "justify-content-center", "row", "align-items-center", 2, "margin-top", "3em"], [1, "d-none", "d-sm-block"], [2, "margin-left", "1em"], [1, "mat-elevation-z3", 2, "width", "400px"], [1, "tin-input", "mt-2"], ["id", "txtuserName", "display", "Username", 3, "value", "valueChange"], ["id", "txtPassword", "matInput", "", "autocomplete", "off", 3, "type", "ngModel", "keyup.enter", "ngModelChange"], ["mat-icon-button", "", "matSuffix", "", 3, "click"], [2, "font-size", "18px"], [1, "row"], [1, "col", "d-flex", "justify-content-center"], ["id", "btnLogin", "mat-raised-button", "", "color", "primary", 2, "width", "100px", 3, "disabled", "click"], ["class", "col d-flex justify-content-center", 4, "ngIf"], [4, "ngIf"], [1, "d-flex", "justify-content-center", "row", "align-items-center", 2, "margin-top", "3em", "margin-bottom", "1em"], ["style", "height:100px;margin-right:3em;margin-left:3em", 3, "src", 4, "ngIf"], ["style", "height:150px;margin-right:3em;margin-left:3em", 3, "src", 4, "ngIf"], ["style", "height:250px;margin-right:3em;margin-left:3em", 3, "src", 4, "ngIf"], [2, "height", "100px", "margin-right", "3em", "margin-left", "3em", 3, "src"], [2, "height", "150px", "margin-right", "3em", "margin-left", "3em", 3, "src"], [2, "height", "250px", "margin-right", "3em", "margin-left", "3em", 3, "src"], [2, "margin-top", "2em"], ["id", "btnSignup", "mat-stroked-button", "", "color", "primary", 2, "width", "100px", 3, "click"], ["mat-button", "", "id", "lnkRecover", 2, "margin-left", "1em", 3, "click"]], template: function LoginComponent_Template(rf, ctx) { if (rf & 1) {
|
|
161
|
+
i0.ɵɵelementStart(0, "div", 0);
|
|
162
|
+
i0.ɵɵtemplate(1, LoginComponent_div_1_Template, 4, 3, "div", 1);
|
|
163
|
+
i0.ɵɵtemplate(2, LoginComponent_div_2_Template, 1, 0, "div", 2);
|
|
164
|
+
i0.ɵɵelementStart(3, "div", 3);
|
|
165
|
+
i0.ɵɵelement(4, "div", 4);
|
|
166
|
+
i0.ɵɵelementStart(5, "div", 5);
|
|
167
|
+
i0.ɵɵelementStart(6, "mat-card", 6);
|
|
168
|
+
i0.ɵɵelementStart(7, "mat-card-header");
|
|
169
|
+
i0.ɵɵelementStart(8, "mat-card-title");
|
|
170
|
+
i0.ɵɵtext(9);
|
|
171
|
+
i0.ɵɵelementEnd();
|
|
172
|
+
i0.ɵɵelementEnd();
|
|
173
|
+
i0.ɵɵelementStart(10, "mat-card-content");
|
|
174
|
+
i0.ɵɵelementStart(11, "div", 7);
|
|
175
|
+
i0.ɵɵelementStart(12, "spa-text", 8);
|
|
176
|
+
i0.ɵɵlistener("valueChange", function LoginComponent_Template_spa_text_valueChange_12_listener($event) { return ctx.user.userName = $event; });
|
|
177
|
+
i0.ɵɵelementEnd();
|
|
178
|
+
i0.ɵɵelementStart(13, "mat-form-field");
|
|
179
|
+
i0.ɵɵelementStart(14, "mat-label");
|
|
180
|
+
i0.ɵɵtext(15, "Password");
|
|
181
|
+
i0.ɵɵelementEnd();
|
|
182
|
+
i0.ɵɵelementStart(16, "input", 9);
|
|
183
|
+
i0.ɵɵlistener("keyup.enter", function LoginComponent_Template_input_keyup_enter_16_listener() { return ctx.login(); })("ngModelChange", function LoginComponent_Template_input_ngModelChange_16_listener($event) { return ctx.user.password = $event; });
|
|
184
|
+
i0.ɵɵelementEnd();
|
|
185
|
+
i0.ɵɵelementStart(17, "button", 10);
|
|
186
|
+
i0.ɵɵlistener("click", function LoginComponent_Template_button_click_17_listener() { return ctx.hide = !ctx.hide; });
|
|
187
|
+
i0.ɵɵelementStart(18, "mat-icon", 11);
|
|
188
|
+
i0.ɵɵtext(19);
|
|
189
|
+
i0.ɵɵelementEnd();
|
|
190
|
+
i0.ɵɵelementEnd();
|
|
191
|
+
i0.ɵɵelementEnd();
|
|
192
|
+
i0.ɵɵelementEnd();
|
|
193
|
+
i0.ɵɵelementEnd();
|
|
194
|
+
i0.ɵɵelementStart(20, "mat-card-actions");
|
|
195
|
+
i0.ɵɵelementStart(21, "div", 12);
|
|
196
|
+
i0.ɵɵelementStart(22, "div", 13);
|
|
197
|
+
i0.ɵɵelementStart(23, "button", 14);
|
|
198
|
+
i0.ɵɵlistener("click", function LoginComponent_Template_button_click_23_listener() { return ctx.login(); });
|
|
199
|
+
i0.ɵɵtext(24, "Login");
|
|
200
|
+
i0.ɵɵelementEnd();
|
|
201
|
+
i0.ɵɵelementEnd();
|
|
202
|
+
i0.ɵɵtemplate(25, LoginComponent_div_25_Template, 3, 0, "div", 15);
|
|
203
|
+
i0.ɵɵelementEnd();
|
|
204
|
+
i0.ɵɵelementEnd();
|
|
205
|
+
i0.ɵɵelementEnd();
|
|
206
|
+
i0.ɵɵtemplate(26, LoginComponent_div_26_Template, 4, 0, "div", 16);
|
|
207
|
+
i0.ɵɵelementEnd();
|
|
208
|
+
i0.ɵɵelementEnd();
|
|
209
|
+
i0.ɵɵelementEnd();
|
|
210
|
+
} if (rf & 2) {
|
|
211
|
+
i0.ɵɵadvance(1);
|
|
212
|
+
i0.ɵɵproperty("ngIf", ctx.appConfig.logo != "");
|
|
213
|
+
i0.ɵɵadvance(1);
|
|
214
|
+
i0.ɵɵproperty("ngIf", ctx.appConfig.logo == "");
|
|
215
|
+
i0.ɵɵadvance(7);
|
|
216
|
+
i0.ɵɵtextInterpolate(ctx.appConfig.appName);
|
|
217
|
+
i0.ɵɵadvance(3);
|
|
218
|
+
i0.ɵɵproperty("value", ctx.user.userName);
|
|
219
|
+
i0.ɵɵadvance(4);
|
|
220
|
+
i0.ɵɵproperty("type", ctx.hide ? "password" : "text")("ngModel", ctx.user.password);
|
|
221
|
+
i0.ɵɵadvance(1);
|
|
222
|
+
i0.ɵɵattribute("aria-label", "Hide password")("aria-pressed", ctx.hide);
|
|
223
|
+
i0.ɵɵadvance(2);
|
|
224
|
+
i0.ɵɵtextInterpolate(ctx.hide ? "visibility_off" : "visibility");
|
|
225
|
+
i0.ɵɵadvance(4);
|
|
226
|
+
i0.ɵɵproperty("disabled", ctx.isProcessing);
|
|
227
|
+
i0.ɵɵadvance(2);
|
|
228
|
+
i0.ɵɵproperty("ngIf", ctx.appConfig.selfService);
|
|
229
|
+
i0.ɵɵadvance(1);
|
|
230
|
+
i0.ɵɵproperty("ngIf", ctx.appConfig.selfService);
|
|
231
|
+
} }, directives: [i8.NgIf, i9.MatCard, i9.MatCardHeader, i9.MatCardTitle, i9.MatCardContent, i10.TextComponent, i11.MatFormField, i11.MatLabel, i12.MatInput, i13.DefaultValueAccessor, i13.NgControlStatus, i13.NgModel, i14.MatButton, i11.MatSuffix, i15.MatIcon, i9.MatCardActions, i14.MatAnchor], styles: [".login-page[_ngcontent-%COMP%]{position:absolute;top:0;left:0;right:0;bottom:0;overflow:auto}.tin-bg-login[_ngcontent-%COMP%]{background-image:url(~/assets/login-bg.jpg);background-size:100%}"] });
|
|
232
|
+
/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(LoginComponent, [{
|
|
233
|
+
type: Component,
|
|
234
|
+
args: [{
|
|
235
|
+
selector: "spa-login",
|
|
236
|
+
templateUrl: "./login.component.html",
|
|
237
|
+
styleUrls: ["./login.component.scss"],
|
|
238
|
+
}]
|
|
239
|
+
}], function () { return [{ type: i1.HttpService }, { type: i2.StorageService }, { type: i3.Router }, { type: i4.MessageService }, { type: i5.DataServiceLib }, { type: i6.AuthService }, { type: i7.LogService }, { type: i3.ActivatedRoute }]; }, null); })();
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vdGluLXNwYS8iLCJzb3VyY2VzIjpbImxpYi9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudC50cyIsImxpYi9jb21wb25lbnRzL2xvZ2luL2xvZ2luLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxTQUFTLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBSXpELE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFeEQsT0FBTyxFQUFlLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNKekQsMEJBQ0E7OztJQUQyQyw2REFBc0I7OztJQUNqRSwwQkFDQTs7O0lBRDJDLDZEQUFzQjs7O0lBQ2pFLDBCQUVGOzs7SUFGNEMsNkRBQXNCOzs7SUFKbEUsK0JBRUU7SUFBQSxzRUFDQTtJQUFBLHNFQUNBO0lBQUEsc0VBRUY7SUFBQSxpQkFBTTs7O0lBSkMsZUFBb0M7SUFBcEMsNERBQW9DO0lBQ3BDLGVBQW9DO0lBQXBDLDREQUFvQztJQUNwQyxlQUFtQztJQUFuQywyREFBbUM7OztJQUsxQywwQkFFTTs7OztJQTJDSSwrQkFDRTtJQUFBLGtDQUFvRztJQUFuQiwrS0FBa0I7SUFBQyxzQkFBTTtJQUFBLGlCQUFTO0lBQ3JILGlCQUFNOzs7O0lBUVosMkJBQ0U7SUFBQSxxQkFDQTtJQUFBLDZCQUFtRjtJQUEzQixtTEFBMEI7SUFBQyxzQ0FBc0I7SUFBQSxpQkFBSTtJQUMvRyxpQkFBTTs7QUR0RGQsTUFBTSxPQUFPLGNBQWM7SUFFekIsWUFBb0IsV0FBd0IsRUFBVSxjQUE4QixFQUFTLE1BQWMsRUFBVSxjQUE4QixFQUFTLFdBQTJCLEVBQzlLLFdBQXdCLEVBQVUsVUFBc0IsRUFBVSxLQUFxQjtRQUQ1RSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLG1CQUFjLEdBQWQsY0FB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QUFXO1FBQUEseUJBQVE7UUFBQSxpQkFBWTtRQUMvQixpQ0FDQTtRQURzRSx1R0FBZSxXQUFPLElBQUMsa0lBQUE7UUFBN0YsaUJBQ0E7UUFBQSxtQ0FDRTtRQURnQyxvSEFBc0I7UUFDdEQscUNBQW1DO1FBQUEsYUFBMEM7UUFBQSxpQkFBVztRQUMxRixpQkFBUztRQUNYLGlCQUFpQjtRQUVuQixpQkFBTTtRQUVSLGlCQUFtQjtRQUduQix5Q0FFRTtRQUFBLGdDQUVFO1FBQUEsZ0NBQ0U7UUFBQSxtQ0FBMkg7UUFBbEMsNEZBQVMsV0FBTyxJQUFDO1FBQWlCLHNCQUFLO1FBQUEsaUJBQVM7UUFDM0ksaUJBQU07UUFFTixrRUFDRTtRQUdKLGlCQUFNO1FBRVIsaUJBQW1CO1FBRXJCLGlCQUFXO1FBRVgsa0VBQ0U7UUFJSixpQkFBTTtRQUVSLGlCQUFNO1FBRVIsaUJBQU07O1FBekVDLGVBQTBCO1FBQTFCLCtDQUEwQjtRQVMxQixlQUEyQjtRQUEzQiwrQ0FBMkI7UUFlUixlQUFxQjtRQUFyQiwyQ0FBcUI7UUFPVyxlQUF5QjtRQUF6Qix5Q0FBeUI7UUFJcEMsZUFBbUM7UUFBbkMscURBQW1DLDhCQUFBO1FBQ1gsZUFBbUM7UUFBbkMsNkNBQW1DLDBCQUFBO1FBQ3ZELGVBQTBDO1FBQTFDLGdFQUEwQztRQWN0QyxlQUF5QjtRQUF6QiwyQ0FBeUI7UUFHckIsZUFBNkI7UUFBN0IsZ0RBQTZCO1FBVTdFLGVBQTZCO1FBQTdCLGdEQUE2Qjs7a0REbkQ3QixjQUFjO2NBTDFCLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsV0FBVztnQkFDckIsV0FBVyxFQUFFLHdCQUF3QjtnQkFDckMsU0FBUyxFQUFFLENBQUMsd0JBQXdCLENBQUM7YUFDdEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZUxpYiB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9kYXRhLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTG9nU2VydmljZSB9IGZyb20gXCIuLy4uLy4uL3NlcnZpY2VzL2xvZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFVzZXIsIEFwcENvbmZpZyB9IGZyb20gXCIuLi8uLi9jbGFzc2VzL0NsYXNzZXNcIjtcclxuaW1wb3J0IHsgSHR0cFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvaHR0cC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEFwaVJlc3BvbnNlLCBDb25zdGFudHMgfSBmcm9tIFwiLi4vLi4vY2xhc3Nlcy9UaW5Db3JlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJzcGEtbG9naW5cIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2xvZ2luLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2xvZ2luLmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTG9naW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSwgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsIHB1YmxpYyByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsIHB1YmxpYyBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VMaWIsXHJcbiAgICBwdWJsaWMgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBwcml2YXRlIGxvZ1NlcnZpY2U6IExvZ1NlcnZpY2UsIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLlVwZGF0ZWxvZ2dlZGluKGZhbHNlKTtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UuVXBkYXRlUm9sZShudWxsKTtcclxuICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UuY2xlYXIoKTtcclxuXHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLmFwcENvbmZpZ09ic2Vydi5zdWJzY3JpYmUoeCA9PiB0aGlzLmFwcENvbmZpZyA9IHgpO1xyXG5cclxuICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnJlZGlyZWN0VG8gIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMucmVkaXJlY3RQYXRoID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy5yZWRpcmVjdFRvXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5yZWRpcmVjdFBhdGggPSBcImhvbWVcIlxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHJlZGlyZWN0UGF0aFxyXG5cclxuICBwdWJsaWMgdXNlciA9IG5ldyBVc2VyKCk7XHJcbiAgaGlkZSA9IHRydWU7XHJcbiAgaXNQcm9jZXNzaW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGFwcENvbmZpZyA9IG5ldyBBcHBDb25maWcoKTtcclxuXHJcbiAgcHVibGljIHNpZ251cCgpIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcInNpZ251cFwiXSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVjb3ZlckFjY291bnQoKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbXCJyZWNvdmVyLWFjY291bnRcIl0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGxvZ2luKCkge1xyXG5cclxuICAgIGlmICh0aGlzLnVzZXIudXNlck5hbWUgPT0gXCJcIiB8fCB0aGlzLnVzZXIucGFzc3dvcmQgPT0gXCJcIikge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiUGxlYXNlIGVudGVyIHlvdXIgY3JlZGVudGlhbHNcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcblxyXG4gICAgdGhpcy5sb2dTZXJ2aWNlLmluZm8oXCJsb2dnaW5nIGluXCIpO1xyXG5cclxuICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gdHJ1ZTtcclxuXHJcblxyXG4gICAgdGhpcy51c2VyLnVzZXJOYW1lID0gdGhpcy51c2VyLnVzZXJOYW1lXHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLkxvZ2luKHRoaXMudXNlcikuc3Vic2NyaWJlKChhcGlSZXNwb25zZTogQXBpUmVzcG9uc2UpID0+IHtcclxuXHJcbiAgICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gZmFsc2U7XHJcblxyXG5cclxuICAgICAgaWYgKGFwaVJlc3BvbnNlLnN1Y2Nlc3MpIHtcclxuXHJcbiAgICAgICAgaWYgKGFwaVJlc3BvbnNlLmRhdGEuYXV0aFR5cGUgPT0gJ2xvY2FsJyAmJiAhdGhpcy5hcHBDb25maWcubG9jYWxBdXRoKSB7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KFwiQ29udGFjdCBBZG1pbjogQXV0aGVudGljYXRpb24gVHlwZSBlcnJvclwiKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChhcGlSZXNwb25zZS5kYXRhLmF1dGhUeXBlID09ICdBRCcgJiYgIXRoaXMuYXBwQ29uZmlnLkFEQXV0aCkge1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS50b2FzdChcIkNvbnRhY3QgQWRtaW46IEF1dGhlbnRpY2F0aW9uIFR5cGUgZXJyb3JcIik7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuXHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5VcGRhdGVsb2dnZWRpbih0cnVlKTtcclxuXHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5VcGRhdGVUb2tlbihhcGlSZXNwb25zZS5kYXRhLnRva2VuKTtcclxuICAgICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnN0b3JlKENvbnN0YW50cy5BVVRIX1RPS0VOLCBhcGlSZXNwb25zZS5kYXRhLnRva2VuKTtcclxuXHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5VcGRhdGVUb2tlbkV4cGlyZShhcGlSZXNwb25zZS5kYXRhLmV4cGlyYXRpb24pO1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc3RvcmUoQ29uc3RhbnRzLkFVVEhfVE9LRU5fRVhQSVJFLCBhcGlSZXNwb25zZS5kYXRhLmV4cGlyYXRpb24pO1xyXG5cclxuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLlVwZGF0ZUN1cnJlbnRVc2VyKHRoaXMudXNlci51c2VyTmFtZSk7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zdG9yZShDb25zdGFudHMuQVVUSF9VU0VSLCB0aGlzLnVzZXIudXNlck5hbWUpO1xyXG5cclxuICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLnVwZGF0ZUxvZ2dlZFVzZXJGdWxsTmFtZShhcGlSZXNwb25zZS5kYXRhLmZpcnN0TmFtZSk7XHJcbiAgICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zdG9yZShDb25zdGFudHMuQVVUSF9OQU1FLCBhcGlSZXNwb25zZS5kYXRhLmZpcnN0TmFtZSk7XHJcblxyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuVXBkYXRlUm9sZShhcGlSZXNwb25zZS5kYXRhLnJvbGUpO1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc3RvcmUoQ29uc3RhbnRzLkFVVEhfUk9MRVMsIEpTT04uc3RyaW5naWZ5KGFwaVJlc3BvbnNlLmRhdGEucm9sZSkpO1xyXG5cclxuXHJcbiAgICAgICAgdGhpcy5sb2dTZXJ2aWNlLmluZm8oXCJsb2dnZWQgaW5cIik7XHJcblxyXG5cclxuICAgICAgICBpZiAoYXBpUmVzcG9uc2UuZGF0YS5jaGFuZ2VQYXNzd29yZCA9PSB0cnVlICYmIGFwaVJlc3BvbnNlLmRhdGEuYXV0aFR5cGUgPT0gJ2xvY2FsJykge1xyXG5cclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcImhvbWUvdXNlci9jaGFuZ2UtcGFzc3dvcmRcIl0sIHtcclxuICAgICAgICAgICAgcXVlcnlQYXJhbXM6IHsgcmVkaXJlY3RUbzogdGhpcy5yZWRpcmVjdFBhdGggfSxcclxuICAgICAgICAgICAgcXVlcnlQYXJhbXNIYW5kbGluZzogJ21lcmdlJyxcclxuICAgICAgICAgICAgc2tpcExvY2F0aW9uQ2hhbmdlOiBmYWxzZVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICByZXR1cm5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0aGlzLnJlZGlyZWN0UGF0aF0pO1xyXG5cclxuXHJcblxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJFcnJvcjogXCIgKyBhcGlSZXNwb25zZS5tZXNzYWdlKTtcclxuICAgICAgICB0aGlzLnVzZXIucGFzc3dvcmQgPSBcIlwiO1xyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgICAoZXJyb3IpID0+IHtcclxuICAgICAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnRvYXN0KHRoaXMuaHR0cFNlcnZpY2UuRXJyb3IoZXJyb3IpKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG5cclxufVxyXG4iLCJcclxuICA8ZGl2IGNsYXNzPVwidGluLWJnLWxvZ2luIGxvZ2luLXBhZ2VcIj5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwiYXBwQ29uZmlnLmxvZ28hPScnXCIgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciByb3cgYWxpZ24taXRlbXMtY2VudGVyXCIgc3R5bGU9XCJtYXJnaW4tdG9wOjNlbTttYXJnaW4tYm90dG9tOjFlbVwiPlxyXG5cclxuICAgICAgPGltZyAqbmdJZj1cImFwcENvbmZpZy5sb2dvU2l6ZT09J25vcm1hbCdcIiAgW3NyY109XCJhcHBDb25maWcubG9nb1wiIHN0eWxlPVwiaGVpZ2h0OjEwMHB4O21hcmdpbi1yaWdodDozZW07bWFyZ2luLWxlZnQ6M2VtXCIgLz5cclxuICAgICAgPGltZyAqbmdJZj1cImFwcENvbmZpZy5sb2dvU2l6ZT09J21lZGl1bSdcIiAgW3NyY109XCJhcHBDb25maWcubG9nb1wiIHN0eWxlPVwiaGVpZ2h0OjE1MHB4O21hcmdpbi1yaWdodDozZW07bWFyZ2luLWxlZnQ6M2VtXCIgLz5cclxuICAgICAgPGltZyAqbmdJZj1cImFwcENvbmZpZy5sb2dvU2l6ZT09J2xhcmdlJ1wiICBbc3JjXT1cImFwcENvbmZpZy5sb2dvXCIgc3R5bGU9XCJoZWlnaHQ6MjUwcHg7bWFyZ2luLXJpZ2h0OjNlbTttYXJnaW4tbGVmdDozZW1cIiAvPlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICA8ZGl2ICpuZ0lmPVwiYXBwQ29uZmlnLmxvZ28gPT0nJ1wiIHN0eWxlPVwibWFyZ2luLXRvcDoyZW1cIj5cclxuICAgICAgICA8IS0tIEFkZCBtYXJnaW4gdG9wIHdoZW4gdGhlcmUgaXMgbm8gbG9nbyAtLT5cclxuICAgIDwvZGl2PlxyXG5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgcm93IGFsaWduLWl0ZW1zLWNlbnRlclwiIHN0eWxlPVwibWFyZ2luLXRvcDozZW1cIj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkLW5vbmUgZC1zbS1ibG9ja1wiPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tbGVmdDoxZW1cIj5cclxuXHJcbiAgICAgICAgPG1hdC1jYXJkIGNsYXNzPVwibWF0LWVsZXZhdGlvbi16M1wiIHN0eWxlPVwid2lkdGg6NDAwcHg7IFwiPlxyXG5cclxuICAgICAgICAgIDxtYXQtY2FyZC1oZWFkZXI+XHJcbiAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZT57e2FwcENvbmZpZy5hcHBOYW1lfX08L21hdC1jYXJkLXRpdGxlPlxyXG4gICAgICAgICAgPC9tYXQtY2FyZC1oZWFkZXI+XHJcblxyXG4gICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGluLWlucHV0IG10LTJcIj5cclxuXHJcbiAgICAgICAgICAgICAgPHNwYS10ZXh0IGlkPVwidHh0dXNlck5hbWVcIiBkaXNwbGF5PVwiVXNlcm5hbWVcIiBbKHZhbHVlKV09XCJ1c2VyLnVzZXJOYW1lXCIgPjwvc3BhLXRleHQ+XHJcblxyXG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCA+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlBhc3N3b3JkPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJ0eHRQYXNzd29yZFwiIG1hdElucHV0IFt0eXBlXT1cImhpZGUgPyAncGFzc3dvcmQnIDogJ3RleHQnXCIgIChrZXl1cC5lbnRlcik9XCJsb2dpbigpXCIgWyhuZ01vZGVsKV09XCJ1c2VyLnBhc3N3b3JkXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0U3VmZml4IChjbGljayk9XCJoaWRlID0gIWhpZGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidIaWRlIHBhc3N3b3JkJ1wiIFthdHRyLmFyaWEtcHJlc3NlZF09XCJoaWRlXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBzdHlsZT1cImZvbnQtc2l6ZTogMThweDtcIj57e2hpZGUgPyAndmlzaWJpbGl0eV9vZmYnIDogJ3Zpc2liaWxpdHknfX08L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuXHJcblxyXG4gICAgICAgICAgPG1hdC1jYXJkLWFjdGlvbnM+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IFwiPlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPVwiYnRuTG9naW5cIiAgbWF0LXJhaXNlZC1idXR0b24gW2Rpc2FibGVkXT1cImlzUHJvY2Vzc2luZ1wiIHN0eWxlPVwid2lkdGg6IDEwMHB4O1wiIChjbGljayk9XCJsb2dpbigpXCIgY29sb3I9XCJwcmltYXJ5XCI+TG9naW48L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbCBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlclwiICpuZ0lmPVwiYXBwQ29uZmlnLnNlbGZTZXJ2aWNlXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGlkPVwiYnRuU2lnbnVwXCIgbWF0LXN0cm9rZWQtYnV0dG9uICBjb2xvcj1cInByaW1hcnlcIiBzdHlsZT1cIndpZHRoOiAxMDBweDtcIiAoY2xpY2spPVwic2lnbnVwKClcIj5TaWdudXA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cclxuXHJcbiAgICAgICAgPC9tYXQtY2FyZD5cclxuXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImFwcENvbmZpZy5zZWxmU2VydmljZVwiPlxyXG4gICAgICAgICAgPGJyIC8+XHJcbiAgICAgICAgICA8YSBtYXQtYnV0dG9uIGlkPVwibG5rUmVjb3ZlclwiICBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAxZW1cIiAoY2xpY2spPVwicmVjb3ZlckFjY291bnQoKVwiPkZvcmdvdCB5b3VyIHBhc3N3b3JkID88L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG4iXX0=
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { Component, ViewChild } from '@angular/core';
|
|
2
|
+
import { MatTableDataSource } from '@angular/material/table';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "../../services/auth.service";
|
|
5
|
+
import * as i2 from "../../services/data.service";
|
|
6
|
+
import * as i3 from "../filter/filter.component";
|
|
7
|
+
import * as i4 from "@angular/common";
|
|
8
|
+
import * as i5 from "@angular/material/paginator";
|
|
9
|
+
import * as i6 from "@angular/material/table";
|
|
10
|
+
const _c0 = ["logsPaginator"];
|
|
11
|
+
function LogsComponent_p_8_Template(rf, ctx) { if (rf & 1) {
|
|
12
|
+
i0.ɵɵelementStart(0, "p");
|
|
13
|
+
i0.ɵɵelementStart(1, "em");
|
|
14
|
+
i0.ɵɵtext(2, "Loading...");
|
|
15
|
+
i0.ɵɵelementEnd();
|
|
16
|
+
i0.ɵɵelementEnd();
|
|
17
|
+
} }
|
|
18
|
+
function LogsComponent_div_9_th_3_Template(rf, ctx) { if (rf & 1) {
|
|
19
|
+
i0.ɵɵelementStart(0, "th", 21);
|
|
20
|
+
i0.ɵɵtext(1, " User ");
|
|
21
|
+
i0.ɵɵelementEnd();
|
|
22
|
+
} }
|
|
23
|
+
function LogsComponent_div_9_td_4_Template(rf, ctx) { if (rf & 1) {
|
|
24
|
+
i0.ɵɵelementStart(0, "td", 22);
|
|
25
|
+
i0.ɵɵtext(1);
|
|
26
|
+
i0.ɵɵelementEnd();
|
|
27
|
+
} if (rf & 2) {
|
|
28
|
+
const log_r15 = ctx.$implicit;
|
|
29
|
+
i0.ɵɵadvance(1);
|
|
30
|
+
i0.ɵɵtextInterpolate1(" ", log_r15.userName, " ");
|
|
31
|
+
} }
|
|
32
|
+
function LogsComponent_div_9_th_6_Template(rf, ctx) { if (rf & 1) {
|
|
33
|
+
i0.ɵɵelementStart(0, "th", 23);
|
|
34
|
+
i0.ɵɵtext(1, " Date Logged ");
|
|
35
|
+
i0.ɵɵelementEnd();
|
|
36
|
+
} }
|
|
37
|
+
function LogsComponent_div_9_td_7_Template(rf, ctx) { if (rf & 1) {
|
|
38
|
+
i0.ɵɵelementStart(0, "td", 22);
|
|
39
|
+
i0.ɵɵtext(1);
|
|
40
|
+
i0.ɵɵpipe(2, "date");
|
|
41
|
+
i0.ɵɵelementEnd();
|
|
42
|
+
} if (rf & 2) {
|
|
43
|
+
const log_r16 = ctx.$implicit;
|
|
44
|
+
i0.ɵɵadvance(1);
|
|
45
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind2(2, 1, log_r16.dateLogged, "dd MMM yy HH:mm:ss"), " ");
|
|
46
|
+
} }
|
|
47
|
+
function LogsComponent_div_9_th_9_Template(rf, ctx) { if (rf & 1) {
|
|
48
|
+
i0.ɵɵelementStart(0, "th", 21);
|
|
49
|
+
i0.ɵɵtext(1, " Source ");
|
|
50
|
+
i0.ɵɵelementEnd();
|
|
51
|
+
} }
|
|
52
|
+
function LogsComponent_div_9_td_10_Template(rf, ctx) { if (rf & 1) {
|
|
53
|
+
i0.ɵɵelementStart(0, "td", 22);
|
|
54
|
+
i0.ɵɵtext(1);
|
|
55
|
+
i0.ɵɵelementEnd();
|
|
56
|
+
} if (rf & 2) {
|
|
57
|
+
const log_r17 = ctx.$implicit;
|
|
58
|
+
i0.ɵɵadvance(1);
|
|
59
|
+
i0.ɵɵtextInterpolate1(" ", log_r17.source, " ");
|
|
60
|
+
} }
|
|
61
|
+
function LogsComponent_div_9_th_12_Template(rf, ctx) { if (rf & 1) {
|
|
62
|
+
i0.ɵɵelementStart(0, "th", 21);
|
|
63
|
+
i0.ɵɵtext(1, " Details ");
|
|
64
|
+
i0.ɵɵelementEnd();
|
|
65
|
+
} }
|
|
66
|
+
function LogsComponent_div_9_td_13_Template(rf, ctx) { if (rf & 1) {
|
|
67
|
+
i0.ɵɵelementStart(0, "td", 22);
|
|
68
|
+
i0.ɵɵtext(1);
|
|
69
|
+
i0.ɵɵelementEnd();
|
|
70
|
+
} if (rf & 2) {
|
|
71
|
+
const log_r18 = ctx.$implicit;
|
|
72
|
+
i0.ɵɵadvance(1);
|
|
73
|
+
i0.ɵɵtextInterpolate1(" ", log_r18.details, " ");
|
|
74
|
+
} }
|
|
75
|
+
function LogsComponent_div_9_th_15_Template(rf, ctx) { if (rf & 1) {
|
|
76
|
+
i0.ɵɵelementStart(0, "th", 21);
|
|
77
|
+
i0.ɵɵtext(1, " Name ");
|
|
78
|
+
i0.ɵɵelementEnd();
|
|
79
|
+
} }
|
|
80
|
+
function LogsComponent_div_9_td_16_Template(rf, ctx) { if (rf & 1) {
|
|
81
|
+
i0.ɵɵelementStart(0, "td", 22);
|
|
82
|
+
i0.ɵɵtext(1);
|
|
83
|
+
i0.ɵɵelementEnd();
|
|
84
|
+
} if (rf & 2) {
|
|
85
|
+
const log_r19 = ctx.$implicit;
|
|
86
|
+
i0.ɵɵadvance(1);
|
|
87
|
+
i0.ɵɵtextInterpolate2("", log_r19.user.firstName, " ", log_r19.user.lastName, "");
|
|
88
|
+
} }
|
|
89
|
+
function LogsComponent_div_9_tr_17_Template(rf, ctx) { if (rf & 1) {
|
|
90
|
+
i0.ɵɵelement(0, "tr", 24);
|
|
91
|
+
} }
|
|
92
|
+
function LogsComponent_div_9_tr_18_Template(rf, ctx) { if (rf & 1) {
|
|
93
|
+
i0.ɵɵelement(0, "tr", 25);
|
|
94
|
+
} }
|
|
95
|
+
function LogsComponent_div_9_Template(rf, ctx) { if (rf & 1) {
|
|
96
|
+
i0.ɵɵelementStart(0, "div", 9);
|
|
97
|
+
i0.ɵɵelementStart(1, "table", 10);
|
|
98
|
+
i0.ɵɵelementContainerStart(2, 11);
|
|
99
|
+
i0.ɵɵtemplate(3, LogsComponent_div_9_th_3_Template, 2, 0, "th", 12);
|
|
100
|
+
i0.ɵɵtemplate(4, LogsComponent_div_9_td_4_Template, 2, 1, "td", 13);
|
|
101
|
+
i0.ɵɵelementContainerEnd();
|
|
102
|
+
i0.ɵɵelementContainerStart(5, 14);
|
|
103
|
+
i0.ɵɵtemplate(6, LogsComponent_div_9_th_6_Template, 2, 0, "th", 15);
|
|
104
|
+
i0.ɵɵtemplate(7, LogsComponent_div_9_td_7_Template, 3, 4, "td", 13);
|
|
105
|
+
i0.ɵɵelementContainerEnd();
|
|
106
|
+
i0.ɵɵelementContainerStart(8, 16);
|
|
107
|
+
i0.ɵɵtemplate(9, LogsComponent_div_9_th_9_Template, 2, 0, "th", 12);
|
|
108
|
+
i0.ɵɵtemplate(10, LogsComponent_div_9_td_10_Template, 2, 1, "td", 13);
|
|
109
|
+
i0.ɵɵelementContainerEnd();
|
|
110
|
+
i0.ɵɵelementContainerStart(11, 17);
|
|
111
|
+
i0.ɵɵtemplate(12, LogsComponent_div_9_th_12_Template, 2, 0, "th", 12);
|
|
112
|
+
i0.ɵɵtemplate(13, LogsComponent_div_9_td_13_Template, 2, 1, "td", 13);
|
|
113
|
+
i0.ɵɵelementContainerEnd();
|
|
114
|
+
i0.ɵɵelementContainerStart(14, 18);
|
|
115
|
+
i0.ɵɵtemplate(15, LogsComponent_div_9_th_15_Template, 2, 0, "th", 12);
|
|
116
|
+
i0.ɵɵtemplate(16, LogsComponent_div_9_td_16_Template, 2, 2, "td", 13);
|
|
117
|
+
i0.ɵɵelementContainerEnd();
|
|
118
|
+
i0.ɵɵtemplate(17, LogsComponent_div_9_tr_17_Template, 1, 0, "tr", 19);
|
|
119
|
+
i0.ɵɵtemplate(18, LogsComponent_div_9_tr_18_Template, 1, 0, "tr", 20);
|
|
120
|
+
i0.ɵɵelementEnd();
|
|
121
|
+
i0.ɵɵelementEnd();
|
|
122
|
+
} if (rf & 2) {
|
|
123
|
+
const ctx_r1 = i0.ɵɵnextContext();
|
|
124
|
+
i0.ɵɵadvance(1);
|
|
125
|
+
i0.ɵɵproperty("dataSource", ctx_r1.logs);
|
|
126
|
+
i0.ɵɵadvance(16);
|
|
127
|
+
i0.ɵɵproperty("matHeaderRowDef", ctx_r1.displayedColumns);
|
|
128
|
+
i0.ɵɵadvance(1);
|
|
129
|
+
i0.ɵɵproperty("matRowDefColumns", ctx_r1.displayedColumns);
|
|
130
|
+
} }
|
|
131
|
+
const _c1 = function () { return [50, 100, 200]; };
|
|
132
|
+
export class LogsComponent {
|
|
133
|
+
constructor(authService, dataService) {
|
|
134
|
+
this.authService = authService;
|
|
135
|
+
this.dataService = dataService;
|
|
136
|
+
this.isProcessing = false;
|
|
137
|
+
this.displayedColumns = ["dateLogged", "userName", "fullName", "source", "details"];
|
|
138
|
+
}
|
|
139
|
+
ngOnInit() {
|
|
140
|
+
this.authService.isAuthorised(this.dataService.capLogs.name);
|
|
141
|
+
this.loadLogs();
|
|
142
|
+
}
|
|
143
|
+
loadLogs() {
|
|
144
|
+
this.dataService.GetLog("all", "").subscribe((apiResponse) => {
|
|
145
|
+
this.logs = new MatTableDataSource(apiResponse);
|
|
146
|
+
this.logs.paginator = this.logsPaginator;
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
LogsComponent.ɵfac = function LogsComponent_Factory(t) { return new (t || LogsComponent)(i0.ɵɵdirectiveInject(i1.AuthService), i0.ɵɵdirectiveInject(i2.DataServiceLib)); };
|
|
151
|
+
LogsComponent.ɵcmp = i0.ɵɵdefineComponent({ type: LogsComponent, selectors: [["spa-logs"]], viewQuery: function LogsComponent_Query(rf, ctx) { if (rf & 1) {
|
|
152
|
+
i0.ɵɵviewQuery(_c0, true);
|
|
153
|
+
} if (rf & 2) {
|
|
154
|
+
var _t;
|
|
155
|
+
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.logsPaginator = _t.first);
|
|
156
|
+
} }, decls: 12, vars: 5, consts: [[1, "container-fluid"], [1, "row", "justify-content-between", 2, "padding-bottom", "10px"], [1, "col-2"], [1, "d-flex", "justify-content-end"], [3, "data", "refreshClick"], [4, "ngIf"], ["class", "mat-elevation-z8", 4, "ngIf"], ["showFirstLastButtons", "", 3, "pageSizeOptions"], ["logsPaginator", ""], [1, "mat-elevation-z8"], ["id", "tblTable", "mat-table", "", 3, "dataSource"], ["matColumnDef", "userName"], ["mat-header-cell", "", 4, "matHeaderCellDef"], ["mat-cell", "", 4, "matCellDef"], ["matColumnDef", "dateLogged"], ["mat-header-cell", "", "class", "datetime", 4, "matHeaderCellDef"], ["matColumnDef", "source"], ["matColumnDef", "details"], ["matColumnDef", "fullName"], ["mat-header-row", "", 4, "matHeaderRowDef"], ["mat-row", "", 4, "matRowDef", "matRowDefColumns"], ["mat-header-cell", ""], ["mat-cell", ""], ["mat-header-cell", "", 1, "datetime"], ["mat-header-row", ""], ["mat-row", ""]], template: function LogsComponent_Template(rf, ctx) { if (rf & 1) {
|
|
157
|
+
i0.ɵɵelementStart(0, "h4");
|
|
158
|
+
i0.ɵɵtext(1, "Logs");
|
|
159
|
+
i0.ɵɵelementEnd();
|
|
160
|
+
i0.ɵɵelement(2, "hr");
|
|
161
|
+
i0.ɵɵelementStart(3, "div", 0);
|
|
162
|
+
i0.ɵɵelementStart(4, "div", 1);
|
|
163
|
+
i0.ɵɵelement(5, "div", 2);
|
|
164
|
+
i0.ɵɵelementStart(6, "div", 3);
|
|
165
|
+
i0.ɵɵelementStart(7, "spa-filter", 4);
|
|
166
|
+
i0.ɵɵlistener("refreshClick", function LogsComponent_Template_spa_filter_refreshClick_7_listener() { return ctx.loadLogs(); });
|
|
167
|
+
i0.ɵɵelementEnd();
|
|
168
|
+
i0.ɵɵelementEnd();
|
|
169
|
+
i0.ɵɵelementEnd();
|
|
170
|
+
i0.ɵɵtemplate(8, LogsComponent_p_8_Template, 3, 0, "p", 5);
|
|
171
|
+
i0.ɵɵtemplate(9, LogsComponent_div_9_Template, 19, 3, "div", 6);
|
|
172
|
+
i0.ɵɵelement(10, "mat-paginator", 7, 8);
|
|
173
|
+
i0.ɵɵelementEnd();
|
|
174
|
+
} if (rf & 2) {
|
|
175
|
+
i0.ɵɵadvance(7);
|
|
176
|
+
i0.ɵɵproperty("data", ctx.logs);
|
|
177
|
+
i0.ɵɵadvance(1);
|
|
178
|
+
i0.ɵɵproperty("ngIf", !ctx.logs);
|
|
179
|
+
i0.ɵɵadvance(1);
|
|
180
|
+
i0.ɵɵproperty("ngIf", ctx.logs);
|
|
181
|
+
i0.ɵɵadvance(1);
|
|
182
|
+
i0.ɵɵproperty("pageSizeOptions", i0.ɵɵpureFunction0(4, _c1));
|
|
183
|
+
} }, directives: [i3.FilterComponent, i4.NgIf, i5.MatPaginator, i6.MatTable, i6.MatColumnDef, i6.MatHeaderCellDef, i6.MatCellDef, i6.MatHeaderRowDef, i6.MatRowDef, i6.MatHeaderCell, i6.MatCell, i6.MatHeaderRow, i6.MatRow], pipes: [i4.DatePipe], styles: [".mat-mini-fab[_ngcontent-%COMP%]{width:32px;height:32px}.mat-mini-fab[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:16px;margin-top:-3px}.refreshIcon[_ngcontent-%COMP%]{font-size:22px!important;margin-top:-7px!important}"] });
|
|
184
|
+
/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(LogsComponent, [{
|
|
185
|
+
type: Component,
|
|
186
|
+
args: [{
|
|
187
|
+
selector: 'spa-logs',
|
|
188
|
+
templateUrl: './logs.component.html',
|
|
189
|
+
styleUrls: ['./logs.component.css']
|
|
190
|
+
}]
|
|
191
|
+
}], function () { return [{ type: i1.AuthService }, { type: i2.DataServiceLib }]; }, { logsPaginator: [{
|
|
192
|
+
type: ViewChild,
|
|
193
|
+
args: ["logsPaginator"]
|
|
194
|
+
}] }); })();
|
|
195
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly90aW4tc3BhLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvbG9ncy9sb2dzLmNvbXBvbmVudC50cyIsImxpYi9jb21wb25lbnRzL2xvZ3MvbG9ncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUc3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7Ozs7OztJQ2MzRCx5QkFBaUI7SUFBQSwwQkFBSTtJQUFBLDBCQUFVO0lBQUEsaUJBQUs7SUFBQSxpQkFBSTs7O0lBU2xDLDhCQUF1QztJQUFBLHNCQUFLO0lBQUEsaUJBQUs7OztJQUNqRCw4QkFBb0M7SUFBQSxZQUFpQjtJQUFBLGlCQUFLOzs7SUFBdEIsZUFBaUI7SUFBakIsaURBQWlCOzs7SUFLckQsOEJBQXdEO0lBQUEsNkJBQVk7SUFBQSxpQkFBSzs7O0lBQ3pFLDhCQUFvQztJQUFBLFlBQWdEOztJQUFBLGlCQUFLOzs7SUFBckQsZUFBZ0Q7SUFBaEQsK0ZBQWdEOzs7SUFJcEYsOEJBQXVDO0lBQUEsd0JBQU87SUFBQSxpQkFBSzs7O0lBQ25ELDhCQUFvQztJQUFBLFlBQWU7SUFBQSxpQkFBSzs7O0lBQXBCLGVBQWU7SUFBZiwrQ0FBZTs7O0lBSW5ELDhCQUF1QztJQUFBLHlCQUFRO0lBQUEsaUJBQUs7OztJQUNwRCw4QkFBb0M7SUFBQSxZQUFnQjtJQUFBLGlCQUFLOzs7SUFBckIsZUFBZ0I7SUFBaEIsZ0RBQWdCOzs7SUFJcEQsOEJBQXVDO0lBQUEsc0JBQUs7SUFBQSxpQkFBSzs7O0lBQ2pELDhCQUFtQztJQUFBLFlBQTRDO0lBQUEsaUJBQUs7OztJQUFqRCxlQUE0QztJQUE1QyxpRkFBNEM7OztJQU1qRix5QkFBNEQ7OztJQUM1RCx5QkFBa0U7OztJQW5DdEUsOEJBRUU7SUFBQSxpQ0FHRTtJQUFBLGlDQUNFO0lBQUEsbUVBQXVDO0lBQ3ZDLG1FQUFvQztJQUN0QywwQkFBZTtJQUdmLGlDQUNFO0lBQUEsbUVBQXdEO0lBQ3hELG1FQUFvQztJQUN0QywwQkFBZTtJQUVmLGlDQUNFO0lBQUEsbUVBQXVDO0lBQ3ZDLHFFQUFvQztJQUN0QywwQkFBZTtJQUVmLGtDQUNFO0lBQUEscUVBQXVDO0lBQ3ZDLHFFQUFvQztJQUN0QywwQkFBZTtJQUVmLGtDQUNFO0lBQUEscUVBQXVDO0lBQ3ZDLHFFQUFtQztJQUNyQywwQkFBZTtJQUtmLHFFQUF1RDtJQUN2RCxxRUFBNkQ7SUFHL0QsaUJBQVE7SUFFVixpQkFBTTs7O0lBdEMyQixlQUFtQjtJQUFuQix3Q0FBbUI7SUFnQzdCLGdCQUFtQztJQUFuQyx5REFBbUM7SUFDMUMsZUFBZ0Q7SUFBaEQsMERBQWdEOzs7QUQ1Q2xFLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFlBQW9CLFdBQXdCLEVBQVUsV0FBMkI7UUFBN0QsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFPakYsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFNOUIscUJBQWdCLEdBQWEsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFiSCxDQUFDO0lBRXZGLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQVVNLFFBQVE7UUFDYixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFFM0QsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2hELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFFM0MsQ0FBQyxDQUNBLENBQUM7SUFDSixDQUFDOzswRUF4QlUsYUFBYTtrREFBYixhQUFhOzs7Ozs7UUNYMUIsMEJBQUk7UUFBQSxvQkFBSTtRQUFBLGlCQUFLO1FBQ2IscUJBRUE7UUFBQSw4QkFFRTtRQUFBLDhCQUVFO1FBQUEseUJBQ007UUFFTiw4QkFDRTtRQUFBLHFDQUFtRTtRQUF6Qyw0R0FBZ0IsY0FBVSxJQUFDO1FBQUMsaUJBQWE7UUFDdEUsaUJBQU07UUFDUCxpQkFBTTtRQUlOLDBEQUFpQjtRQUdqQiwrREFFRTtRQXdDRix1Q0FBc0c7UUFDeEcsaUJBQU07O1FBcERZLGVBQWE7UUFBYiwrQkFBYTtRQU0xQixlQUFhO1FBQWIsZ0NBQWE7UUFHYyxlQUFZO1FBQVosK0JBQVk7UUEwQ1osZUFBa0M7UUFBbEMsNERBQWtDOztrRERuRHJELGFBQWE7Y0FMekIsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxVQUFVO2dCQUNwQixXQUFXLEVBQUUsdUJBQXVCO2dCQUNwQyxTQUFTLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzthQUNwQzs7a0JBVUUsU0FBUzttQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEYXRhU2VydmljZUxpYiB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9kYXRhLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTWF0UGFnaW5hdG9yIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuaW1wb3J0IHsgTWF0VGFibGVEYXRhU291cmNlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFibGUnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS1sb2dzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbG9ncy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbG9ncy5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIExvZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLCBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZUxpYiwpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UuaXNBdXRob3Jpc2VkKHRoaXMuZGF0YVNlcnZpY2UuY2FwTG9ncy5uYW1lKTtcclxuICAgIHRoaXMubG9hZExvZ3MoKTtcclxuICB9XHJcblxyXG4gIGlzUHJvY2Vzc2luZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBWaWV3Q2hpbGQoXCJsb2dzUGFnaW5hdG9yXCIpIGxvZ3NQYWdpbmF0b3I6IE1hdFBhZ2luYXRvcjtcclxuXHJcblxyXG4gIGxvZ3M7XHJcblxyXG4gIGRpc3BsYXllZENvbHVtbnM6IHN0cmluZ1tdID0gW1wiZGF0ZUxvZ2dlZFwiLCBcInVzZXJOYW1lXCIsIFwiZnVsbE5hbWVcIiwgXCJzb3VyY2VcIiwgXCJkZXRhaWxzXCJdO1xyXG5cclxuICBwdWJsaWMgbG9hZExvZ3MoKSB7XHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLkdldExvZyhcImFsbFwiLCBcIlwiKS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlKSA9PiB7XHJcblxyXG4gICAgICB0aGlzLmxvZ3MgPSBuZXcgTWF0VGFibGVEYXRhU291cmNlKGFwaVJlc3BvbnNlKTtcclxuICAgICAgdGhpcy5sb2dzLnBhZ2luYXRvciA9IHRoaXMubG9nc1BhZ2luYXRvcjtcclxuXHJcbiAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGg0PkxvZ3M8L2g0PlxyXG48aHIgLz5cclxuXHJcbjxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInJvdyBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiIHN0eWxlPVwicGFkZGluZy1ib3R0b206IDEwcHhcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiY29sLTJcIj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWVuZFwiPlxyXG4gICAgICA8c3BhLWZpbHRlciBbZGF0YV09XCJsb2dzXCIgKHJlZnJlc2hDbGljayk9XCJsb2FkTG9ncygpXCI+PC9zcGEtZmlsdGVyPlxyXG4gICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcblxyXG5cclxuICA8cCAqbmdJZj1cIiFsb2dzXCI+PGVtPkxvYWRpbmcuLi48L2VtPjwvcD5cclxuXHJcblxyXG4gIDxkaXYgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXo4XCIgKm5nSWY9XCJsb2dzXCI+XHJcblxyXG4gICAgPHRhYmxlIGlkPVwidGJsVGFibGVcIiBtYXQtdGFibGUgW2RhdGFTb3VyY2VdPVwibG9nc1wiPlxyXG5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwidXNlck5hbWVcIj5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBVc2VyIDwvdGg+XHJcbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGxvZ1wiPiB7e2xvZy51c2VyTmFtZX19IDwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiZGF0ZUxvZ2dlZFwiPlxyXG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWYgY2xhc3M9XCJkYXRldGltZVwiPiBEYXRlIExvZ2dlZCA8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBsb2dcIj4ge3tsb2cuZGF0ZUxvZ2dlZCB8IGRhdGU6ICdkZCBNTU0geXkgSEg6bW06c3MnfX0gPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cInNvdXJjZVwiPlxyXG4gICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IFNvdXJjZSA8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBsb2dcIj4ge3tsb2cuc291cmNlfX0gPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImRldGFpbHNcIj5cclxuICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiBEZXRhaWxzIDwvdGg+XHJcbiAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IGxvZ1wiPiB7e2xvZy5kZXRhaWxzfX0gPC90ZD5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImZ1bGxOYW1lXCI+XHJcbiAgICAgICAgPHRoIG1hdC1oZWFkZXItY2VsbCAqbWF0SGVhZGVyQ2VsbERlZj4gTmFtZSA8L3RoPlxyXG4gICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBsb2dcIj57e2xvZy51c2VyLmZpcnN0TmFtZX19IHt7bG9nLnVzZXIubGFzdE5hbWV9fTwvdGQ+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcblxyXG5cclxuICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cclxuICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cclxuXHJcblxyXG4gICAgPC90YWJsZT5cclxuXHJcbiAgPC9kaXY+XHJcblxyXG4gIDxtYXQtcGFnaW5hdG9yICNsb2dzUGFnaW5hdG9yIFtwYWdlU2l6ZU9wdGlvbnNdPVwiWzUwLCAxMDAsIDIwMF1cIiBzaG93Rmlyc3RMYXN0QnV0dG9ucz48L21hdC1wYWdpbmF0b3I+XHJcbjwvZGl2PlxyXG5cclxuIl19
|