tin-spa 2.13.14 → 9.0.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/__ivy_ngcc__/fesm2015/tin-spa.js +6813 -0
- package/__ivy_ngcc__/fesm2015/tin-spa.js.map +1 -0
- package/bundles/tin-spa.umd.js +3867 -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 +241 -0
- package/esm2015/lib/components/activity/activity.component.js +26 -0
- package/esm2015/lib/components/attach/attach.component.js +107 -0
- package/esm2015/lib/components/change-password/change-password.component.js +91 -0
- package/esm2015/lib/components/check/check.component.js +63 -0
- package/esm2015/lib/components/chips/chips.component.js +67 -0
- package/esm2015/lib/components/create-account/create-account.component.js +78 -0
- package/esm2015/lib/components/date/date.component.js +45 -0
- package/esm2015/lib/components/datetime/datetime.component.js +44 -0
- package/esm2015/lib/components/html/html.component.js +97 -0
- package/esm2015/lib/components/label/label.component.js +29 -0
- package/esm2015/lib/components/loader/loader.component.js +30 -0
- package/esm2015/lib/components/login/login.component.js +122 -0
- package/esm2015/lib/components/logs/logs.component.js +43 -0
- package/esm2015/lib/components/message/messageDialog.component.js +31 -0
- package/esm2015/lib/components/money/money.component.js +50 -0
- package/esm2015/lib/components/nav-menu/nav-menu.component.js +51 -0
- package/esm2015/lib/components/option/option.component.js +62 -0
- package/esm2015/lib/components/profile/profile.component.js +108 -0
- package/esm2015/lib/components/profiles/profiles.component.js +16 -0
- package/esm2015/lib/components/recover-account/recover-account.component.js +52 -0
- package/esm2015/lib/components/roles/addRoleDialog.component.js +59 -0
- package/esm2015/lib/components/roles/editRoleDialog.component.js +57 -0
- package/esm2015/lib/components/roles/roles.component.js +131 -0
- package/esm2015/lib/components/roles/viewRoleDialog.component.js +38 -0
- package/esm2015/lib/components/select/select.component.js +73 -0
- package/esm2015/lib/components/settings/settings.component.js +63 -0
- package/esm2015/lib/components/signup/signup.component.js +56 -0
- package/esm2015/lib/components/steps/steps.component.js +98 -0
- package/esm2015/lib/components/table/table.component.js +109 -0
- package/esm2015/lib/components/text/text.component.js +165 -0
- package/esm2015/lib/components/tiles/tiles.component.js +41 -0
- package/esm2015/lib/components/timeout/timeout.component.js +90 -0
- package/esm2015/lib/components/tin-spa.component.js +19 -0
- package/esm2015/lib/components/users/addUserDialog.component.js +53 -0
- package/esm2015/lib/components/users/editUserDialog.component.js +96 -0
- package/esm2015/lib/components/users/users.component.js +130 -0
- package/esm2015/lib/components/viewer/viewer.component.js +67 -0
- package/esm2015/lib/components/viewer/viewerDialog.component.js +76 -0
- package/esm2015/lib/dnd.directive.js +51 -0
- package/esm2015/lib/modules/spa-admin.module.js +67 -0
- package/esm2015/lib/modules/spa-index.module.js +33 -0
- package/esm2015/lib/modules/spa-mat.module.js +53 -0
- package/esm2015/lib/modules/spa-user.module.js +31 -0
- package/esm2015/lib/services/auth.service.js +153 -0
- package/esm2015/lib/services/data.service.js +78 -0
- package/esm2015/lib/services/export.service.js +29 -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 +58 -0
- package/esm2015/lib/services/storage.service.js +42 -0
- package/esm2015/lib/services/tin-spa.service.js +14 -0
- package/esm2015/lib/tin-spa.module.js +91 -0
- package/esm2015/public-api.js +58 -0
- package/esm2015/tin-spa.js +9 -0
- package/esm5/lib/classes/Classes.js +298 -0
- package/esm5/lib/components/activity/activity.component.js +27 -0
- package/esm5/lib/components/attach/attach.component.js +119 -0
- package/esm5/lib/components/change-password/change-password.component.js +93 -0
- package/esm5/lib/components/check/check.component.js +64 -0
- package/esm5/lib/components/chips/chips.component.js +69 -0
- package/esm5/lib/components/create-account/create-account.component.js +80 -0
- package/esm5/lib/components/date/date.component.js +46 -0
- package/esm5/lib/components/datetime/datetime.component.js +45 -0
- package/esm5/lib/components/html/html.component.js +98 -0
- package/esm5/lib/components/label/label.component.js +30 -0
- package/esm5/lib/components/loader/loader.component.js +32 -0
- package/esm5/lib/components/login/login.component.js +125 -0
- package/esm5/lib/components/logs/logs.component.js +45 -0
- package/esm5/lib/components/message/messageDialog.component.js +32 -0
- package/esm5/lib/components/money/money.component.js +51 -0
- package/esm5/lib/components/nav-menu/nav-menu.component.js +53 -0
- package/esm5/lib/components/option/option.component.js +63 -0
- package/esm5/lib/components/profile/profile.component.js +112 -0
- package/esm5/lib/components/profiles/profiles.component.js +18 -0
- package/esm5/lib/components/recover-account/recover-account.component.js +54 -0
- package/esm5/lib/components/roles/addRoleDialog.component.js +61 -0
- package/esm5/lib/components/roles/editRoleDialog.component.js +59 -0
- package/esm5/lib/components/roles/roles.component.js +138 -0
- package/esm5/lib/components/roles/viewRoleDialog.component.js +39 -0
- package/esm5/lib/components/select/select.component.js +75 -0
- package/esm5/lib/components/settings/settings.component.js +66 -0
- package/esm5/lib/components/signup/signup.component.js +58 -0
- package/esm5/lib/components/steps/steps.component.js +110 -0
- package/esm5/lib/components/table/table.component.js +111 -0
- package/esm5/lib/components/text/text.component.js +168 -0
- package/esm5/lib/components/tiles/tiles.component.js +42 -0
- package/esm5/lib/components/timeout/timeout.component.js +92 -0
- package/esm5/lib/components/tin-spa.component.js +17 -0
- package/esm5/lib/components/users/addUserDialog.component.js +55 -0
- package/esm5/lib/components/users/editUserDialog.component.js +99 -0
- package/esm5/lib/components/users/users.component.js +135 -0
- package/esm5/lib/components/viewer/viewer.component.js +68 -0
- package/esm5/lib/components/viewer/viewerDialog.component.js +77 -0
- package/esm5/lib/dnd.directive.js +52 -0
- package/esm5/lib/modules/spa-admin.module.js +70 -0
- package/esm5/lib/modules/spa-index.module.js +36 -0
- package/esm5/lib/modules/spa-mat.module.js +56 -0
- package/esm5/lib/modules/spa-user.module.js +34 -0
- package/esm5/lib/services/auth.service.js +155 -0
- package/esm5/lib/services/data.service.js +79 -0
- package/esm5/lib/services/export.service.js +30 -0
- package/esm5/lib/services/loader-interceptor.service.js +79 -0
- package/esm5/lib/services/loader.service.js +18 -0
- package/esm5/lib/services/log.service.js +112 -0
- package/esm5/lib/services/message.service.js +59 -0
- package/esm5/lib/services/storage.service.js +74 -0
- package/esm5/lib/services/tin-spa.service.js +16 -0
- package/esm5/lib/tin-spa.module.js +94 -0
- package/esm5/public-api.js +58 -0
- package/esm5/tin-spa.js +9 -0
- package/fesm2015/tin-spa.js +3398 -0
- package/fesm2015/tin-spa.js.map +1 -0
- package/fesm5/tin-spa.js +3623 -0
- package/fesm5/tin-spa.js.map +1 -0
- package/lib/classes/Classes.d.ts +216 -374
- package/lib/components/activity/activity.component.d.ts +5 -3
- package/lib/components/activity/activity.component.d.ts.__ivy_ngcc_bak +8 -0
- package/lib/components/attach/attach.component.d.ts +30 -16
- package/lib/components/attach/attach.component.d.ts.__ivy_ngcc_bak +39 -0
- package/lib/components/change-password/change-password.component.d.ts +25 -0
- package/lib/components/change-password/change-password.component.d.ts.__ivy_ngcc_bak +20 -0
- package/lib/components/check/check.component.d.ts +6 -9
- package/lib/components/check/check.component.d.ts.__ivy_ngcc_bak +16 -0
- package/lib/components/chips/chips.component.d.ts +5 -3
- package/lib/components/chips/chips.component.d.ts.__ivy_ngcc_bak +15 -0
- package/lib/components/create-account/create-account.component.d.ts +30 -0
- package/lib/components/create-account/create-account.component.d.ts.__ivy_ngcc_bak +25 -0
- package/lib/components/date/date.component.d.ts +15 -26
- package/lib/components/date/date.component.d.ts.__ivy_ngcc_bak +13 -0
- package/lib/components/datetime/datetime.component.d.ts +5 -7
- package/lib/components/datetime/datetime.component.d.ts.__ivy_ngcc_bak +12 -0
- package/lib/components/html/html.component.d.ts +13 -12
- package/lib/components/html/html.component.d.ts.__ivy_ngcc_bak +12 -0
- package/lib/components/label/label.component.d.ts +5 -5
- package/lib/components/label/label.component.d.ts.__ivy_ngcc_bak +8 -0
- package/lib/components/loader/loader.component.d.ts +5 -3
- package/lib/components/loader/loader.component.d.ts.__ivy_ngcc_bak +9 -0
- package/lib/components/login/login.component.d.ts +34 -0
- package/lib/components/login/login.component.d.ts.__ivy_ngcc_bak +29 -0
- package/lib/components/logs/logs.component.d.ts +22 -0
- package/lib/components/logs/logs.component.d.ts.__ivy_ngcc_bak +17 -0
- package/lib/components/message/messageDialog.component.d.ts +5 -3
- package/lib/components/message/messageDialog.component.d.ts.__ivy_ngcc_bak +12 -0
- package/lib/components/money/money.component.d.ts +8 -29
- package/lib/components/money/money.component.d.ts.__ivy_ngcc_bak +14 -0
- package/lib/components/nav-menu/nav-menu.component.d.ts +7 -23
- package/lib/components/nav-menu/nav-menu.component.d.ts.__ivy_ngcc_bak +17 -0
- package/lib/components/option/option.component.d.ts +6 -16
- package/lib/components/option/option.component.d.ts.__ivy_ngcc_bak +17 -0
- package/lib/components/profile/profile.component.d.ts +35 -0
- package/lib/components/profile/profile.component.d.ts.__ivy_ngcc_bak +30 -0
- package/lib/components/profiles/profiles.component.d.ts +10 -0
- package/lib/components/profiles/profiles.component.d.ts.__ivy_ngcc_bak +5 -0
- package/lib/components/recover-account/recover-account.component.d.ts +20 -0
- package/lib/components/recover-account/recover-account.component.d.ts.__ivy_ngcc_bak +15 -0
- package/lib/components/roles/addRoleDialog.component.d.ts +24 -0
- package/lib/components/roles/addRoleDialog.component.d.ts.__ivy_ngcc_bak +19 -0
- package/lib/components/roles/editRoleDialog.component.d.ts +24 -0
- package/lib/components/roles/editRoleDialog.component.d.ts.__ivy_ngcc_bak +19 -0
- package/lib/components/roles/roles.component.d.ts +34 -0
- package/lib/components/roles/roles.component.d.ts.__ivy_ngcc_bak +29 -0
- package/lib/components/roles/viewRoleDialog.component.d.ts +20 -0
- package/lib/components/roles/viewRoleDialog.component.d.ts.__ivy_ngcc_bak +15 -0
- package/lib/components/select/select.component.d.ts +23 -21
- package/lib/components/select/select.component.d.ts.__ivy_ngcc_bak +20 -0
- package/lib/components/settings/settings.component.d.ts +21 -0
- package/lib/{pages/settings/settings.component.d.ts → components/settings/settings.component.d.ts.__ivy_ngcc_bak} +2 -5
- package/lib/components/signup/signup.component.d.ts +25 -0
- package/lib/{pages/signup/signup.component.d.ts → components/signup/signup.component.d.ts.__ivy_ngcc_bak} +4 -7
- package/lib/components/steps/steps.component.d.ts +13 -20
- package/lib/components/steps/steps.component.d.ts.__ivy_ngcc_bak +15 -0
- package/lib/components/table/table.component.d.ts +24 -85
- package/lib/components/table/table.component.d.ts.__ivy_ngcc_bak +25 -0
- package/lib/components/text/text.component.d.ts +17 -38
- package/lib/components/text/text.component.d.ts.__ivy_ngcc_bak +37 -0
- package/lib/components/tiles/tiles.component.d.ts +10 -22
- package/lib/components/tiles/tiles.component.d.ts.__ivy_ngcc_bak +11 -0
- package/lib/components/timeout/timeout.component.d.ts +26 -0
- package/lib/components/timeout/timeout.component.d.ts.__ivy_ngcc_bak +21 -0
- package/lib/components/tin-spa.component.d.ts +9 -4
- package/lib/components/tin-spa.component.d.ts.__ivy_ngcc_bak +5 -0
- package/lib/components/users/addUserDialog.component.d.ts +21 -0
- package/lib/components/users/addUserDialog.component.d.ts.__ivy_ngcc_bak +16 -0
- package/lib/components/users/editUserDialog.component.d.ts +32 -0
- package/lib/components/users/editUserDialog.component.d.ts.__ivy_ngcc_bak +27 -0
- package/lib/components/users/users.component.d.ts +40 -0
- package/lib/components/users/users.component.d.ts.__ivy_ngcc_bak +35 -0
- package/lib/components/viewer/viewer.component.d.ts +8 -12
- package/lib/components/viewer/viewer.component.d.ts.__ivy_ngcc_bak +16 -0
- package/lib/components/viewer/viewerDialog.component.d.ts +8 -8
- package/lib/components/viewer/viewerDialog.component.d.ts.__ivy_ngcc_bak +19 -0
- package/lib/dnd.directive.d.ts +13 -0
- package/lib/dnd.directive.d.ts.__ivy_ngcc_bak +8 -0
- package/lib/modules/spa-admin.module.d.ts +19 -13
- package/lib/modules/spa-admin.module.d.ts.__ivy_ngcc_bak +2 -0
- package/lib/modules/spa-index.module.d.ts +11 -11
- package/lib/modules/spa-index.module.d.ts.__ivy_ngcc_bak +2 -0
- package/lib/modules/spa-mat.module.d.ts +32 -36
- package/lib/modules/spa-mat.module.d.ts.__ivy_ngcc_bak +2 -0
- package/lib/modules/spa-user.module.d.ts +10 -9
- package/lib/modules/spa-user.module.d.ts.__ivy_ngcc_bak +2 -0
- package/lib/services/auth.service.d.ts +15 -27
- package/lib/services/auth.service.d.ts.__ivy_ngcc_bak +45 -0
- package/lib/services/data.service.d.ts +27 -0
- package/lib/services/data.service.d.ts.__ivy_ngcc_bak +23 -0
- package/lib/services/export.service.d.ts +8 -3
- package/lib/services/export.service.d.ts.__ivy_ngcc_bak +7 -0
- package/lib/services/loader-interceptor.service.d.ts +6 -5
- package/lib/services/loader-interceptor.service.d.ts.__ivy_ngcc_bak +18 -0
- package/lib/services/loader.service.d.ts +4 -3
- package/lib/services/loader.service.d.ts.__ivy_ngcc_bak +5 -0
- package/lib/services/log.service.d.ts +5 -4
- package/lib/services/log.service.d.ts.__ivy_ngcc_bak +16 -0
- package/lib/services/message.service.d.ts +5 -5
- package/lib/services/message.service.d.ts.__ivy_ngcc_bak +12 -0
- package/lib/services/storage.service.d.ts +4 -3
- package/lib/services/storage.service.d.ts.__ivy_ngcc_bak +7 -0
- package/lib/services/tin-spa.service.d.ts +4 -3
- package/lib/services/tin-spa.service.d.ts.__ivy_ngcc_bak +3 -0
- package/lib/tin-spa.module.d.ts +35 -84
- package/lib/tin-spa.module.d.ts.__ivy_ngcc_bak +2 -0
- package/package.json +23 -23
- package/public-api.d.ts +21 -50
- package/tin-spa.d.ts +10 -0
- package/tin-spa.d.ts.__ivy_ngcc_bak +8 -0
- package/tin-spa.metadata.json +1 -0
- package/esm2020/lib/classes/Classes.mjs +0 -112
- package/esm2020/lib/classes/LibClasses.mjs +0 -180
- package/esm2020/lib/classes/TinCore.mjs +0 -569
- 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 -106
- 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 -293
- 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 -259
- 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 -141
- 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 -861
- 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 -11711
- package/fesm2015/tin-spa.mjs.map +0 -1
- package/fesm2020/tin-spa.mjs +0 -11718
- package/fesm2020/tin-spa.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/classes/LibClasses.d.ts +0 -173
- package/lib/classes/TinCore.d.ts +0 -59
- 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/filter/filter.component.d.ts +0 -20
- 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/money/currency-input-mask.directive.d.ts +0 -41
- package/lib/components/money/currency-input-mask.module.d.ts +0 -9
- 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/change-password/change-password.component.d.ts +0 -27
- package/lib/pages/create-account/create-account.component.d.ts +0 -34
- 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/profile/profile.component.d.ts +0 -35
- package/lib/pages/recover-account/recover-account.component.d.ts +0 -18
- 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/users/users.component.d.ts +0 -28
- 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/http.service.d.ts +0 -22
- package/lib/services/notifications.service.d.ts +0 -12
- package/lib/services/table-config.service.d.ts +0 -17
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import { Subject } from 'rxjs';
|
|
3
|
-
import { transactDialog } from './transactDialog.component';
|
|
4
|
-
import { ListDialogComponent } from '../../components/list-dialog/list-dialog.component';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../../services/datalib.service";
|
|
7
|
-
import * as i2 from "../../services/message.service";
|
|
8
|
-
import * as i3 from "@angular/cdk/layout";
|
|
9
|
-
import * as i4 from "@angular/material/dialog";
|
|
10
|
-
import * as i5 from "@angular/common";
|
|
11
|
-
import * as i6 from "@angular/material/button";
|
|
12
|
-
import * as i7 from "@angular/material/icon";
|
|
13
|
-
import * as i8 from "@angular/material/tooltip";
|
|
14
|
-
import * as i9 from "../../components/filter/filter.component";
|
|
15
|
-
import * as i10 from "../../components/table/table.component";
|
|
16
|
-
export class TransactionsComponent {
|
|
17
|
-
constructor(dataService, messageService, breakpointObserver, dialog) {
|
|
18
|
-
this.dataService = dataService;
|
|
19
|
-
this.messageService = messageService;
|
|
20
|
-
this.breakpointObserver = breakpointObserver;
|
|
21
|
-
this.dialog = dialog;
|
|
22
|
-
this.accounts = [];
|
|
23
|
-
this.transactions = [];
|
|
24
|
-
this.categories = [];
|
|
25
|
-
this.reload = new Subject();
|
|
26
|
-
this.config = {
|
|
27
|
-
minColumns: ['date', 'narration', 'amount'],
|
|
28
|
-
minButtons: ['edit', 'delete'],
|
|
29
|
-
flatButtons: true,
|
|
30
|
-
columns: [
|
|
31
|
-
{ name: 'date', type: 'date' },
|
|
32
|
-
{ name: 'narration', type: 'text' },
|
|
33
|
-
{ name: 'amount', type: 'money', color: { name: 'red', condition: x => x.type == 0 }, icons: [{ name: 'arrow_right_alt', condition: x => x.link != '' && x.type == 0 }, { name: 'keyboard_backspace', condition: x => x.link != '' && x.type == 1 }] },
|
|
34
|
-
{ name: 'categoryName', alias: 'Category', type: 'text' },
|
|
35
|
-
],
|
|
36
|
-
buttons: [
|
|
37
|
-
{ name: 'edit', disabled: x => x.link != '' && x.type == 1 },
|
|
38
|
-
{ name: 'delete', dialog: true, action: { url: 'general/transactions?action=delete', method: 'post' }, disabled: x => x.link != '' && x.type == 1 },
|
|
39
|
-
],
|
|
40
|
-
};
|
|
41
|
-
// detect screen size changes
|
|
42
|
-
this.breakpointObserver.observe(["(max-width: 600px)"]).subscribe((result) => {
|
|
43
|
-
if (result.matches) {
|
|
44
|
-
this.smallScreen = true;
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
this.smallScreen = false;
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
ngOnInit() {
|
|
52
|
-
this.accountID = this.dataService.GetNavigationValue();
|
|
53
|
-
this.loadData();
|
|
54
|
-
}
|
|
55
|
-
cats() {
|
|
56
|
-
let conf = { title: "Transaction Categories", name: 'Category', listName: 'TransactionCategories' };
|
|
57
|
-
const dialogRef = this.dialog.open(ListDialogComponent, {
|
|
58
|
-
width: "900px",
|
|
59
|
-
data: conf,
|
|
60
|
-
});
|
|
61
|
-
dialogRef.afterClosed().subscribe((result) => {
|
|
62
|
-
if (result == 'success') {
|
|
63
|
-
this.loadData();
|
|
64
|
-
}
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
actionClicked(x) {
|
|
68
|
-
if (x.name == "edit") {
|
|
69
|
-
this.transact('edit', x.data);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
loadData() {
|
|
73
|
-
this.dataService.CallApi({ url: 'general/transactions/' + this.accountID }, '').subscribe((apiResponse) => {
|
|
74
|
-
this.account = apiResponse.data.account;
|
|
75
|
-
this.accounts = apiResponse.data.accounts;
|
|
76
|
-
this.transactions = apiResponse.data.transactions;
|
|
77
|
-
this.categories = apiResponse.data.categories;
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
transact(x, data) {
|
|
81
|
-
const dialogRef = this.dialog.open(transactDialog, {
|
|
82
|
-
width: "500px",
|
|
83
|
-
data: { action: x, account: this.account, data: data, accounts: this.accounts, categories: this.categories },
|
|
84
|
-
});
|
|
85
|
-
dialogRef.afterClosed().subscribe((result) => {
|
|
86
|
-
if (result == 'success') {
|
|
87
|
-
this.loadData();
|
|
88
|
-
this.messageService.toast("Updated");
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
transfer() {
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
TransactionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TransactionsComponent, deps: [{ token: i1.DataServiceLib }, { token: i2.MessageService }, { token: i3.BreakpointObserver }, { token: i4.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
96
|
-
TransactionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TransactionsComponent, selector: "spa-transactions", ngImport: i0, template: "<!-- <h4>Transactions ({{account?.name}})</h4>\r\n<hr> -->\r\n\r\n<div class=\"d-flex align-items-center justify-content-between mt-0\" style=\"margin-left: 10px\">\r\n\r\n <label style=\"font-size: 16px;\">Transactions ({{account?.name}})</label>\r\n\r\n <div>\r\n <button mat-mini-fab color=\"primary\" style=\"margin-right:1em;padding-left: 0;\" (click)=\"cats()\" matTooltip=\"Categories\" matTooltipPosition=\"above\"><mat-icon>category</mat-icon></button>\r\n </div>\r\n\r\n</div>\r\n<hr>\r\n\r\n<div class=\"d-flex justify-content-between\" style=\" font-size: 14px;\" >\r\n\r\n <div *ngIf=\"account\" class=\"tin-row actionbuttons\">\r\n <label style=\"margin-right: 5px;\">{{account?.currency}}</label>\r\n <label style=\"font-size: 34px;margin-right: 20px;\">{{account?.balance | currency : '' : ''}}</label>\r\n <div *ngIf=\"!smallScreen; then buttons\" ></div>\r\n </div>\r\n\r\n <div *ngIf=\"!smallScreen\">\r\n <spa-filter (refreshClick)=\"loadData()\"></spa-filter>\r\n </div>\r\n\r\n</div>\r\n\r\n<div *ngIf=\"smallScreen\" style=\"margin-bottom: 10px;\"></div>\r\n\r\n<div *ngIf=\"smallScreen; then buttons\" ></div>\r\n\r\n<ng-template #buttons >\r\n <div class=\"tin-row actionbuttons\">\r\n <button mat-stroked-button style=\"color: green;\" (click)=\"transact('income','')\"><mat-icon class=\"sign\">add</mat-icon>Income</button> <mat-icon class=\"info\">info</mat-icon>\r\n <button mat-stroked-button style=\"color: red;\" (click)=\"transact('expense','')\"><mat-icon class=\"sign\">remove</mat-icon>Expense</button> <mat-icon class=\"info\">info</mat-icon>\r\n <button mat-stroked-button style=\"color: orange;\" (click)=\"transact('transfer','')\" ><mat-icon class=\"sign\">sync_alt</mat-icon>Transfer</button> <mat-icon class=\"info\">info</mat-icon>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n\r\n<div style=\" font-size: 14px;\">\r\n <spa-table [config]=\"config\" [data]=\"transactions\" [reload]=\"reload\" (dataLoad)=\"loadData()\" (actionClick)=\"actionClicked($event)\"></spa-table>\r\n</div>\r\n", styles: [".info{color:#4682b4;margin-top:5px;margin-right:5px;font-size:18px}.sign{margin-top:5px;font-size:18px}.actionbuttons{gap:1px}button{padding-left:7px}.mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i9.FilterComponent, selector: "spa-filter", inputs: ["flatButtons", "showText", "showButton", "data"], outputs: ["refreshClick"] }, { kind: "component", type: i10.TableComponent, selector: "spa-table", inputs: ["data", "tileData", "config", "reload", "activeTab", "inTab"], outputs: ["dataLoad", "actionSuccess", "refreshClick", "searchClick", "createClick", "actionClick", "inputChange", "actionResponse"] }, { kind: "pipe", type: i5.CurrencyPipe, name: "currency" }] });
|
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TransactionsComponent, decorators: [{
|
|
98
|
-
type: Component,
|
|
99
|
-
args: [{ selector: 'spa-transactions', template: "<!-- <h4>Transactions ({{account?.name}})</h4>\r\n<hr> -->\r\n\r\n<div class=\"d-flex align-items-center justify-content-between mt-0\" style=\"margin-left: 10px\">\r\n\r\n <label style=\"font-size: 16px;\">Transactions ({{account?.name}})</label>\r\n\r\n <div>\r\n <button mat-mini-fab color=\"primary\" style=\"margin-right:1em;padding-left: 0;\" (click)=\"cats()\" matTooltip=\"Categories\" matTooltipPosition=\"above\"><mat-icon>category</mat-icon></button>\r\n </div>\r\n\r\n</div>\r\n<hr>\r\n\r\n<div class=\"d-flex justify-content-between\" style=\" font-size: 14px;\" >\r\n\r\n <div *ngIf=\"account\" class=\"tin-row actionbuttons\">\r\n <label style=\"margin-right: 5px;\">{{account?.currency}}</label>\r\n <label style=\"font-size: 34px;margin-right: 20px;\">{{account?.balance | currency : '' : ''}}</label>\r\n <div *ngIf=\"!smallScreen; then buttons\" ></div>\r\n </div>\r\n\r\n <div *ngIf=\"!smallScreen\">\r\n <spa-filter (refreshClick)=\"loadData()\"></spa-filter>\r\n </div>\r\n\r\n</div>\r\n\r\n<div *ngIf=\"smallScreen\" style=\"margin-bottom: 10px;\"></div>\r\n\r\n<div *ngIf=\"smallScreen; then buttons\" ></div>\r\n\r\n<ng-template #buttons >\r\n <div class=\"tin-row actionbuttons\">\r\n <button mat-stroked-button style=\"color: green;\" (click)=\"transact('income','')\"><mat-icon class=\"sign\">add</mat-icon>Income</button> <mat-icon class=\"info\">info</mat-icon>\r\n <button mat-stroked-button style=\"color: red;\" (click)=\"transact('expense','')\"><mat-icon class=\"sign\">remove</mat-icon>Expense</button> <mat-icon class=\"info\">info</mat-icon>\r\n <button mat-stroked-button style=\"color: orange;\" (click)=\"transact('transfer','')\" ><mat-icon class=\"sign\">sync_alt</mat-icon>Transfer</button> <mat-icon class=\"info\">info</mat-icon>\r\n </div>\r\n</ng-template>\r\n\r\n\r\n\r\n<div style=\" font-size: 14px;\">\r\n <spa-table [config]=\"config\" [data]=\"transactions\" [reload]=\"reload\" (dataLoad)=\"loadData()\" (actionClick)=\"actionClicked($event)\"></spa-table>\r\n</div>\r\n", styles: [".info{color:#4682b4;margin-top:5px;margin-right:5px;font-size:18px}.sign{margin-top:5px;font-size:18px}.actionbuttons{gap:1px}button{padding-left:7px}.mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"] }]
|
|
100
|
-
}], ctorParameters: function () { return [{ type: i1.DataServiceLib }, { type: i2.MessageService }, { type: i3.BreakpointObserver }, { type: i4.MatDialog }]; } });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy90cmFuc2FjdGlvbnMvdHJhbnNhY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy90cmFuc2FjdGlvbnMvdHJhbnNhY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7Ozs7Ozs7Ozs7OztBQU96RixNQUFNLE9BQU8scUJBQXFCO0lBRWhDLFlBQW9CLFdBQTJCLEVBQVUsY0FBOEIsRUFBVSxrQkFBc0MsRUFBUyxNQUFpQjtRQUE3SSxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQStFakssYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLGlCQUFZLEdBQUcsRUFBRSxDQUFDO1FBRWxCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsV0FBTSxHQUFxQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBR3pDLFdBQU0sR0FBZ0I7WUFFcEIsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFDLFdBQVcsRUFBQyxRQUFRLENBQUM7WUFDekMsVUFBVSxFQUFFLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQztZQUM5QixXQUFXLEVBQUUsSUFBSTtZQUVqQixP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LENBQUE7YUFDckM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO0lBRVIsQ0FBQzs7a0hBN0VVLHFCQUFxQjtzR0FBckIscUJBQXFCLHdEQ2hCbEMsNmdFQTZDQTsyRkQ3QmEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlTGliIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YWxpYi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRm9ybUNvbmZpZywgTGlzdERpYWxvZ0NvbmZpZywgVGFibGVDb25maWcsIEFwaVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50U3RhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuaW1wb3J0IHsgdHJhbnNhY3REaWFsb2cgfSBmcm9tICcuL3RyYW5zYWN0RGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IExpc3REaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2xpc3QtZGlhbG9nL2xpc3QtZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS10cmFuc2FjdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90cmFuc2FjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RyYW5zYWN0aW9ucy5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlTGliLCBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlciwgcHVibGljIGRpYWxvZzogTWF0RGlhbG9nKSB7XHJcblxyXG4gICAgLy8gZGV0ZWN0IHNjcmVlbiBzaXplIGNoYW5nZXNcclxuICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyLm9ic2VydmUoW1wiKG1heC13aWR0aDogNjAwcHgpXCJdKS5zdWJzY3JpYmUoKHJlc3VsdDogQnJlYWtwb2ludFN0YXRlKSA9PiB7XHJcblxyXG4gICAgICBpZiAocmVzdWx0Lm1hdGNoZXMpIHtcclxuICAgICAgICB0aGlzLnNtYWxsU2NyZWVuID0gdHJ1ZVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc21hbGxTY3JlZW4gPSBmYWxzZVxyXG4gICAgICB9XHJcblxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYWNjb3VudElEID0gdGhpcy5kYXRhU2VydmljZS5HZXROYXZpZ2F0aW9uVmFsdWUoKVxyXG4gICAgdGhpcy5sb2FkRGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgY2F0cygpIHtcclxuXHJcbiAgICBsZXQgY29uZjogTGlzdERpYWxvZ0NvbmZpZyA9IHsgdGl0bGU6IFwiVHJhbnNhY3Rpb24gQ2F0ZWdvcmllc1wiLCBuYW1lOiAnQ2F0ZWdvcnknLCBsaXN0TmFtZTogJ1RyYW5zYWN0aW9uQ2F0ZWdvcmllcycgfVxyXG5cclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oTGlzdERpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICB3aWR0aDogXCI5MDBweFwiLFxyXG4gICAgICBkYXRhOiBjb25mLFxyXG4gICAgfSk7XHJcblxyXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuXHJcbiAgICAgIGlmIChyZXN1bHQgPT0gJ3N1Y2Nlc3MnKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkRGF0YSgpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIGFjdGlvbkNsaWNrZWQoeCl7XHJcblxyXG4gICAgaWYgKHgubmFtZSA9PSBcImVkaXRcIil7XHJcbiAgICAgIHRoaXMudHJhbnNhY3QoJ2VkaXQnLCB4LmRhdGEpXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbG9hZERhdGEoKXtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaSh7IHVybDogJ2dlbmVyYWwvdHJhbnNhY3Rpb25zLycgKyB0aGlzLmFjY291bnRJRCB9LCcnKS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlIDogQXBpUmVzcG9uc2UpID0+IHtcclxuXHJcbiAgICAgIHRoaXMuYWNjb3VudCA9IGFwaVJlc3BvbnNlLmRhdGEuYWNjb3VudDtcclxuICAgICAgdGhpcy5hY2NvdW50cyA9IGFwaVJlc3BvbnNlLmRhdGEuYWNjb3VudHM7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25zID0gYXBpUmVzcG9uc2UuZGF0YS50cmFuc2FjdGlvbnM7XHJcbiAgICAgIHRoaXMuY2F0ZWdvcmllcyA9IGFwaVJlc3BvbnNlLmRhdGEuY2F0ZWdvcmllcztcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIHRyYW5zYWN0KHgsIGRhdGEpIHtcclxuXHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKHRyYW5zYWN0RGlhbG9nLCB7XHJcbiAgICAgIHdpZHRoOiBcIjUwMHB4XCIsXHJcbiAgICAgIGRhdGE6IHsgYWN0aW9uOiB4LCBhY2NvdW50OiB0aGlzLmFjY291bnQsIGRhdGE6IGRhdGEsIGFjY291bnRzOiB0aGlzLmFjY291bnRzLCBjYXRlZ29yaWVzOiB0aGlzLmNhdGVnb3JpZXMgfSxcclxuICAgIH0pO1xyXG5cclxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcblxyXG4gICAgICBpZiAocmVzdWx0ID09ICdzdWNjZXNzJykge1xyXG4gICAgICAgIHRoaXMubG9hZERhdGEoKVxyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UudG9hc3QoXCJVcGRhdGVkXCIpXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdHJhbnNmZXIoKSB7XHJcblxyXG4gIH1cclxuXHJcbiAgc21hbGxTY3JlZW5cclxuICBhY2NvdW50O1xyXG4gIGFjY291bnRzID0gW107XHJcbiAgdHJhbnNhY3Rpb25zID0gW107XHJcbiAgYWNjb3VudElEO1xyXG4gIGNhdGVnb3JpZXMgPSBbXTtcclxuICByZWxvYWQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuXHJcbiAgY29uZmlnOiBUYWJsZUNvbmZpZyA9IHtcclxuXHJcbiAgICBtaW5Db2x1bW5zOiBbJ2RhdGUnLCduYXJyYXRpb24nLCdhbW91bnQnXSxcclxuICAgIG1pbkJ1dHRvbnM6IFsnZWRpdCcsICdkZWxldGUnXSxcclxuICAgIGZsYXRCdXR0b25zOiB0cnVlLFxyXG5cclxuICAgIGNvbHVtbnM6IFtcclxuICAgICAgeyBuYW1lOiAnZGF0ZScsIHR5cGU6ICdkYXRlJyB9LFxyXG4gICAgICB7IG5hbWU6ICduYXJyYXRpb24nLCB0eXBlOiAndGV4dCd9LFxyXG4gICAgICB7IG5hbWU6ICdhbW91bnQnLCB0eXBlOiAnbW9uZXknLCBjb2xvcjogeyBuYW1lOiAncmVkJywgY29uZGl0aW9uOiB4ID0+IHgudHlwZSA9PSAwIH0sIGljb25zOiBbeyBuYW1lOiAnYXJyb3dfcmlnaHRfYWx0JywgY29uZGl0aW9uOiB4ID0+IHgubGluayAhPSAnJyAmJiB4LnR5cGUgPT0gMCB9LCB7IG5hbWU6ICdrZXlib2FyZF9iYWNrc3BhY2UnLCBjb25kaXRpb246IHggPT4geC5saW5rICE9ICcnICYmIHgudHlwZSA9PSAxIH1dIH0sXHJcbiAgICAgIHsgbmFtZTogJ2NhdGVnb3J5TmFtZScsYWxpYXMgOiAnQ2F0ZWdvcnknLCB0eXBlOiAndGV4dCcgfSxcclxuICAgIF0sXHJcblxyXG4gICAgYnV0dG9uczogW1xyXG5cclxuICAgICAgeyBuYW1lOiAnZWRpdCcsIGRpc2FibGVkOiB4ID0+IHgubGluayAhPSAnJyAmJiB4LnR5cGUgPT0gMSB9LFxyXG4gICAgICB7IG5hbWU6ICdkZWxldGUnLCBkaWFsb2c6IHRydWUsIGFjdGlvbjogeyB1cmw6ICdnZW5lcmFsL3RyYW5zYWN0aW9ucz9hY3Rpb249ZGVsZXRlJywgbWV0aG9kOiAncG9zdCcgfSwgZGlzYWJsZWQgOiB4ID0+IHgubGluayAhPSAnJyAmJiB4LnR5cGUgPT0gMX0sXHJcbiAgICBdLFxyXG5cclxuICB9XHJcblxyXG59XHJcbiIsIjwhLS0gPGg0PlRyYW5zYWN0aW9ucyAoe3thY2NvdW50Py5uYW1lfX0pPC9oND5cclxuPGhyPiAtLT5cclxuXHJcbjxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG10LTBcIiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAxMHB4XCI+XHJcblxyXG4gIDxsYWJlbCBzdHlsZT1cImZvbnQtc2l6ZTogMTZweDtcIj5UcmFuc2FjdGlvbnMgKHt7YWNjb3VudD8ubmFtZX19KTwvbGFiZWw+XHJcblxyXG4gIDxkaXY+XHJcbiAgICA8YnV0dG9uIG1hdC1taW5pLWZhYiBjb2xvcj1cInByaW1hcnlcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDoxZW07cGFkZGluZy1sZWZ0OiAwO1wiIChjbGljayk9XCJjYXRzKClcIiBtYXRUb29sdGlwPVwiQ2F0ZWdvcmllc1wiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCI+PG1hdC1pY29uPmNhdGVnb3J5PC9tYXQtaWNvbj48L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuXHJcbjwvZGl2PlxyXG48aHI+XHJcblxyXG48ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCIgc3R5bGU9XCIgZm9udC1zaXplOiAxNHB4O1wiID5cclxuXHJcbiAgPGRpdiAqbmdJZj1cImFjY291bnRcIiBjbGFzcz1cInRpbi1yb3cgYWN0aW9uYnV0dG9uc1wiPlxyXG4gICAgPGxhYmVsIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiA1cHg7XCI+e3thY2NvdW50Py5jdXJyZW5jeX19PC9sYWJlbD5cclxuICAgIDxsYWJlbCBzdHlsZT1cImZvbnQtc2l6ZTogMzRweDttYXJnaW4tcmlnaHQ6IDIwcHg7XCI+e3thY2NvdW50Py5iYWxhbmNlIHwgY3VycmVuY3kgOiAnJyA6ICcnfX08L2xhYmVsPlxyXG4gICAgPGRpdiAqbmdJZj1cIiFzbWFsbFNjcmVlbjsgdGhlbiBidXR0b25zXCIgPjwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwiIXNtYWxsU2NyZWVuXCI+XHJcbiAgICA8c3BhLWZpbHRlciAocmVmcmVzaENsaWNrKT1cImxvYWREYXRhKClcIj48L3NwYS1maWx0ZXI+XHJcbiAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJzbWFsbFNjcmVlblwiIHN0eWxlPVwibWFyZ2luLWJvdHRvbTogMTBweDtcIj48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJzbWFsbFNjcmVlbjsgdGhlbiBidXR0b25zXCIgPjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNidXR0b25zID5cclxuICA8ZGl2IGNsYXNzPVwidGluLXJvdyBhY3Rpb25idXR0b25zXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiBzdHlsZT1cImNvbG9yOiBncmVlbjtcIiAoY2xpY2spPVwidHJhbnNhY3QoJ2luY29tZScsJycpXCI+PG1hdC1pY29uIGNsYXNzPVwic2lnblwiPmFkZDwvbWF0LWljb24+SW5jb21lPC9idXR0b24+IDxtYXQtaWNvbiBjbGFzcz1cImluZm9cIj5pbmZvPC9tYXQtaWNvbj5cclxuICAgIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIHN0eWxlPVwiY29sb3I6IHJlZDtcIiAoY2xpY2spPVwidHJhbnNhY3QoJ2V4cGVuc2UnLCcnKVwiPjxtYXQtaWNvbiBjbGFzcz1cInNpZ25cIj5yZW1vdmU8L21hdC1pY29uPkV4cGVuc2U8L2J1dHRvbj4gPG1hdC1pY29uIGNsYXNzPVwiaW5mb1wiPmluZm88L21hdC1pY29uPlxyXG4gICAgPGJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gc3R5bGU9XCJjb2xvcjogb3JhbmdlO1wiIChjbGljayk9XCJ0cmFuc2FjdCgndHJhbnNmZXInLCcnKVwiID48bWF0LWljb24gY2xhc3M9XCJzaWduXCI+c3luY19hbHQ8L21hdC1pY29uPlRyYW5zZmVyPC9idXR0b24+IDxtYXQtaWNvbiBjbGFzcz1cImluZm9cIj5pbmZvPC9tYXQtaWNvbj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcblxyXG5cclxuPGRpdiBzdHlsZT1cIiBmb250LXNpemU6IDE0cHg7XCI+XHJcbiAgPHNwYS10YWJsZSBbY29uZmlnXT1cImNvbmZpZ1wiIFtkYXRhXT1cInRyYW5zYWN0aW9uc1wiIFtyZWxvYWRdPVwicmVsb2FkXCIgKGRhdGFMb2FkKT1cImxvYWREYXRhKClcIiAoYWN0aW9uQ2xpY2spPVwiYWN0aW9uQ2xpY2tlZCgkZXZlbnQpXCI+PC9zcGEtdGFibGU+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,141 +0,0 @@
|
|
|
1
|
-
import { Component } from "@angular/core";
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "../../services/http.service";
|
|
4
|
-
import * as i2 from "@angular/router";
|
|
5
|
-
import * as i3 from "../../services/auth.service";
|
|
6
|
-
import * as i4 from "../../services/datalib.service";
|
|
7
|
-
import * as i5 from "@angular/material/dialog";
|
|
8
|
-
import * as i6 from "../../services/message.service";
|
|
9
|
-
import * as i7 from "../../components/table/table.component";
|
|
10
|
-
export class UsersComponent {
|
|
11
|
-
constructor(httpService, router, authService, dataService, dialog, messageService) {
|
|
12
|
-
this.httpService = httpService;
|
|
13
|
-
this.router = router;
|
|
14
|
-
this.authService = authService;
|
|
15
|
-
this.dataService = dataService;
|
|
16
|
-
this.dialog = dialog;
|
|
17
|
-
this.messageService = messageService;
|
|
18
|
-
this.userBaseFormConfig = {
|
|
19
|
-
fields: [
|
|
20
|
-
{ name: 'userName', type: 'text', alias: 'Username', required: true, span: true, readonly: true },
|
|
21
|
-
{ name: 'authType', type: 'select', alias: 'Authentication Type', readonly: true, span: true, required: true, defaultFirstValue: true },
|
|
22
|
-
{
|
|
23
|
-
name: 'firstName', type: 'text', required: true,
|
|
24
|
-
readonlyCondition: x => x.authType !== 'local',
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
name: 'lastName', type: 'text', required: true,
|
|
28
|
-
readonlyCondition: x => x.authType !== 'local',
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
name: 'password', type: 'password', required: true,
|
|
32
|
-
hiddenCondition: x => x.authType !== 'local', span: true,
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
name: 'confirmPassword', type: 'password', required: true,
|
|
36
|
-
hiddenCondition: x => x.authType !== 'local', span: true
|
|
37
|
-
},
|
|
38
|
-
{ name: 'email', type: 'text', required: false, span: true },
|
|
39
|
-
{ name: 'roleID', type: 'select', alias: 'Role', required: true, span: true, defaultFirstValue: true },
|
|
40
|
-
],
|
|
41
|
-
};
|
|
42
|
-
this.createDialog = {
|
|
43
|
-
formConfig: {
|
|
44
|
-
...this.userBaseFormConfig,
|
|
45
|
-
title: 'User',
|
|
46
|
-
// fields: this.userBaseFormConfig.fields.filter(x => x.name !== 'userName' && x.name !== 'authType' && x.name !== 'email')
|
|
47
|
-
},
|
|
48
|
-
mode: 'create',
|
|
49
|
-
buttons: [
|
|
50
|
-
{ name: 'create', action: { method: 'post', url: 'User/register', successMessage: "User Created" } }
|
|
51
|
-
]
|
|
52
|
-
};
|
|
53
|
-
this.editDialog = {
|
|
54
|
-
formConfig: {
|
|
55
|
-
...this.userBaseFormConfig,
|
|
56
|
-
title: 'User',
|
|
57
|
-
fields: this.userBaseFormConfig.fields.filter(x => x.name !== 'password' && x.name !== 'confirmPassword')
|
|
58
|
-
},
|
|
59
|
-
mode: 'view',
|
|
60
|
-
buttons: [
|
|
61
|
-
{ name: 'edit', action: { method: 'post', url: 'User/edit', successMessage: "User Updated" } }
|
|
62
|
-
]
|
|
63
|
-
};
|
|
64
|
-
this.passwordDialog = {
|
|
65
|
-
formConfig: {
|
|
66
|
-
...this.userBaseFormConfig,
|
|
67
|
-
title: 'Change Password',
|
|
68
|
-
fixedTitle: true,
|
|
69
|
-
alertConfig: { messages: [
|
|
70
|
-
{ type: 'info', content: '*Please consider these requirements for your new password.' },
|
|
71
|
-
{ type: 'info', content: 'At least 8 characters.' },
|
|
72
|
-
{ type: 'info', content: 'At least 1 uppercase letter' },
|
|
73
|
-
{ type: 'info', content: 'At least 2 lowercase letters (a-z)' },
|
|
74
|
-
{ type: 'info', content: 'At least 1 digit (0-9)' },
|
|
75
|
-
{ type: 'info', content: ' At least 1 special character (~`! …)' },
|
|
76
|
-
] },
|
|
77
|
-
fields: [
|
|
78
|
-
{ name: 'newPassword', type: 'password', required: true },
|
|
79
|
-
{ name: 'confirmPassword', type: 'password', required: true }
|
|
80
|
-
]
|
|
81
|
-
},
|
|
82
|
-
mode: 'edit',
|
|
83
|
-
buttons: [
|
|
84
|
-
{ name: 'edit', action: { method: 'post', url: 'User/changepassword-admin', successMessage: 'Password Changed' } }
|
|
85
|
-
]
|
|
86
|
-
};
|
|
87
|
-
this.usersTableConfig = {
|
|
88
|
-
showFilter: true,
|
|
89
|
-
minButtons: ['fullName', 'roleName'],
|
|
90
|
-
greyOut: (value) => value.disabled == 1,
|
|
91
|
-
collapseButtons: true,
|
|
92
|
-
minColumns: ['userName', 'fullName', 'roleName', 'locked', 'dateCreated'],
|
|
93
|
-
flatButtons: this.dataService.appConfig.multitenant,
|
|
94
|
-
columns: [
|
|
95
|
-
{ name: 'userName', type: 'text' },
|
|
96
|
-
{ name: 'fullName', type: 'text' },
|
|
97
|
-
{ name: 'roleName', type: 'text' },
|
|
98
|
-
{ name: 'locked', type: 'checkbox' },
|
|
99
|
-
{ name: 'createdDate', type: 'date' },
|
|
100
|
-
],
|
|
101
|
-
buttons: [
|
|
102
|
-
{ name: 'create', display: 'New User', dialog: true, detailsConfig: this.createDialog },
|
|
103
|
-
{ name: 'view', dialog: true, icon: { name: 'account_circle' }, detailsConfig: this.editDialog },
|
|
104
|
-
{
|
|
105
|
-
name: 'changePassword', display: 'Change Password', tip: 'Change Password', icon: { name: 'key' }, dialog: true, detailsConfig: this.passwordDialog,
|
|
106
|
-
visible: x => x.authType === 'local'
|
|
107
|
-
},
|
|
108
|
-
{ name: 'lock', action: { method: 'post', url: 'User/lock', successMessage: "User locked" }, color: 'red', tip: 'lock', icon: { name: 'lock' },
|
|
109
|
-
visible: (value) => value.locked == 0
|
|
110
|
-
},
|
|
111
|
-
{ name: 'unlock', action: { method: 'post', url: 'User/unlock', successMessage: "User Unlocked" }, color: 'green', tip: 'unlock', icon: { name: 'lock_open' },
|
|
112
|
-
visible: (value) => value.locked == 1
|
|
113
|
-
},
|
|
114
|
-
{ name: 'delete', action: { method: 'post', url: 'User/delete', successMessage: "User Deleted" }, color: 'red' },
|
|
115
|
-
],
|
|
116
|
-
loadAction: { url: 'User/all/x' },
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
ngOnInit() {
|
|
120
|
-
this.authService.isAuthorised(this.dataService.capUsers.name);
|
|
121
|
-
this.loadMeta();
|
|
122
|
-
}
|
|
123
|
-
inputChanged(x) {
|
|
124
|
-
console.log(x);
|
|
125
|
-
}
|
|
126
|
-
loadMeta() {
|
|
127
|
-
this.dataService.CallApi({ url: 'role/meta/x' }).subscribe((apiResponse) => {
|
|
128
|
-
console.log(apiResponse.data);
|
|
129
|
-
this.userBaseFormConfig.fields.find(x => x.name == 'roleID').options = apiResponse.data.roles;
|
|
130
|
-
this.userBaseFormConfig.fields.find(x => x.name == 'authType').options = apiResponse.data.authTypes;
|
|
131
|
-
this.createDialog.formConfig.fields.find(x => x.name == 'authType').options = apiResponse.data.authTypes.filter(x => x.value == 'local' || x.value == 'AD');
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
UsersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: UsersComponent, deps: [{ token: i1.HttpService }, { token: i2.Router }, { token: i3.AuthService }, { token: i4.DataServiceLib }, { token: i5.MatDialog }, { token: i6.MessageService }], target: i0.ɵɵFactoryTarget.Component });
|
|
136
|
-
UsersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: UsersComponent, selector: "spa-users", ngImport: i0, template: "\r\n<h4>Users</h4>\r\n<hr />\r\n\r\n<spa-table [config]=\"usersTableConfig\" (inputChange)=\"inputChanged($event)\"></spa-table>\r\n\r\n", styles: [".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}.make-gray{background-color:#d3d3d3}\n"], dependencies: [{ kind: "component", type: i7.TableComponent, selector: "spa-table", inputs: ["data", "tileData", "config", "reload", "activeTab", "inTab"], outputs: ["dataLoad", "actionSuccess", "refreshClick", "searchClick", "createClick", "actionClick", "inputChange", "actionResponse"] }] });
|
|
137
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: UsersComponent, decorators: [{
|
|
138
|
-
type: Component,
|
|
139
|
-
args: [{ selector: "spa-users", template: "\r\n<h4>Users</h4>\r\n<hr />\r\n\r\n<spa-table [config]=\"usersTableConfig\" (inputChange)=\"inputChanged($event)\"></spa-table>\r\n\r\n", styles: [".mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}.refreshIcon{font-size:22px!important;margin-top:-7px!important}.make-gray{background-color:#d3d3d3}\n"] }]
|
|
140
|
-
}], ctorParameters: function () { return [{ type: i1.HttpService }, { type: i2.Router }, { type: i3.AuthService }, { type: i4.DataServiceLib }, { type: i5.MatDialog }, { type: i6.MessageService }]; } });
|
|
141
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL3BhZ2VzL3VzZXJzL3VzZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy91c2Vycy91c2Vycy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUE2QixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBZ0JyRSxNQUFNLE9BQU8sY0FBYztJQUN6QixZQUFvQixXQUF3QixFQUFTLE1BQWMsRUFBVSxXQUF3QixFQUFVLFdBQTJCLEVBQVMsTUFBaUIsRUFBVSxjQUE4QjtRQUF4TCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFTLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUFTLFdBQU0sR0FBTixNQUFNLENBQVc7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUF3QjVNLHVCQUFrQixHQUFlO1lBQy9CLE1BQU0sRUFBRTtnQkFDTixFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFHLElBQUksRUFBRSxRQUFRLEVBQUcsSUFBSSxFQUFFO2dCQUNuRyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFO2dCQUN2STtvQkFDRSxJQUFJLEVBQUUsV0FBVyxFQUFF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T0FBTyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzlGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxVQUFVLENBQUMsQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7WUFDcEcsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksVUFBVSxDQUFDLENBQUMsT0FBTyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUM7UUFDOUosQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDOzsyR0F0QlUsY0FBYzsrRkFBZCxjQUFjLGlEQ2hCM0IsMElBTUE7MkZEVWEsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIEluamVjdCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2dcIjtcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2VMaWIgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvZGF0YWxpYi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvbWVzc2FnZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUYWJsZUNvbmZpZywgQXBpUmVzcG9uc2UsIEZvcm1Db25maWcsIEJ1dHRvbiwgRGV0YWlsc0RpYWxvZ0NvbmZpZyB9IGZyb20gJy4uLy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcbmltcG9ydCB7IEh0dHBTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL2h0dHAuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBVc2VyIH0gZnJvbSBcIi4uLy4uL2NsYXNzZXMvTGliQ2xhc3Nlc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwic3BhLXVzZXJzXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi91c2Vycy5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi91c2Vycy5jb21wb25lbnQuY3NzXCJdLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFVzZXJzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBTZXJ2aWNlOiBIdHRwU2VydmljZSwgcHVibGljIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSwgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2VMaWIsIHB1YmxpYyBkaWFsb2c6IE1hdERpYWxvZywgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuYXV0aFNlcnZpY2UuaXNBdXRob3Jpc2VkKHRoaXMuZGF0YVNlcnZpY2UuY2FwVXNlcnMubmFtZSk7XHJcbiAgICB0aGlzLmxvYWRNZXRhKClcclxuICB9XHJcblxyXG5cclxuICBpbnB1dENoYW5nZWQoeCkge1xyXG4gICAgY29uc29sZS5sb2coeCk7XHJcblxyXG4gIH1cclxuXHJcbiAgbG9hZE1ldGEoKXtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaSh7IHVybDogJ3JvbGUvbWV0YS94JyB9KS5zdWJzY3JpYmUoKGFwaVJlc3BvbnNlOiBBcGlSZXNwb25zZSkgPT4ge1xyXG5cclxuICAgICAgY29uc29sZS5sb2coYXBpUmVzcG9uc2UuZGF0YSk7XHJcbiAgICAgIHRoaXMudXNlckJhc2VGb3JtQ29uZmlnLmZpZWxkcy5maW5kKHggPT4geC5uYW1lID09ICdyb2xlSUQnKS5vcHRpb25zID0gYXBpUmVzcG9uc2UuZGF0YS5yb2xlcztcclxuICAgICAgdGhpcy51c2VyQmFzZUZvcm1Db25maWcuZmllbGRzLmZpbmQoeCA9PiB4Lm5hbWUgPT0gJ2F1dGhUeXBlJykub3B0aW9ucyA9IGFwaVJlc3BvbnNlLmRhdGEuYXV0aFR5cGVzO1xyXG4gICAgICB0aGlzLmNyZWF0ZURpYWxvZy5mb3JtQ29uZmlnLmZpZWxkcy5maW5kKHggPT4geC5uYW1lID09ICdhdXRoVHlwZScpLm9wdGlvbnMgPSBhcGlSZXNwb25zZS5kYXRhLmF1dGhUeXBlcy5maWx0ZXIoeCA9PiB4LnZhbHVlID09ICdsb2NhbCcgfHwgeC52YWx1ZSA9PSAnQUQnKTtcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuXHJcbiAgdXNlckJhc2VGb3JtQ29uZmlnOiBGb3JtQ29uZmlnID0ge1xyXG4gICAgZmllbGRzOiBbXHJcbiAgICAgIHsgbmFtZTogJ3VzZXJOYW1lJywgdHlwZTogJ3RleHQnLCBhbGlhczogJ1VzZXJuYW1lJywgcmVxdWlyZWQ6IHRydWUsIHNwYW4gOiB0cnVlLCByZWFkb25seSA6IHRydWUgfSxcclxuICAgICAgeyBuYW1lOiAnYXV0aFR5cGUnLCB0eXBlOiAnc2VsZWN0JywgYWxpYXM6ICdBdXRoZW50aWNhdGlvbiBUeXBlJywgcmVhZG9ubHk6IHRydWUsIHNwYW46IHRydWUsIHJlcXVpcmVkOiB0cnVlLCBkZWZhdWx0Rmlyc3RWYWx1ZTogdHJ1ZSB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ2ZpcnN0TmFtZScsIHR5cGU6ICd0ZXh0JywgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgcmVhZG9ubHlDb25kaXRpb246IHggPT4geC5hdXRoVHlwZSAhPT0gJ2xvY2FsJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdsYXN0TmFtZScsIHR5cGU6ICd0ZXh0JywgcmVxdWlyZWQ6IHRydWUsXHJcbiAgICAgICAgcmVhZG9ubHlDb25kaXRpb246IHggPT4geC5hdXRoVHlwZSAhPT0gJ2xvY2FsJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdwYXNzd29yZCcsIHR5cGU6ICdwYXNzd29yZCcsIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGhpZGRlbkNvbmRpdGlvbjogeCA9PiB4LmF1dGhUeXBlICE9PSAnbG9jYWwnLCBzcGFuOiB0cnVlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgbmFtZTogJ2NvbmZpcm1QYXNzd29yZCcsIHR5cGU6ICdwYXNzd29yZCcsIHJlcXVpcmVkOiB0cnVlLFxyXG4gICAgICAgIGhpZGRlbkNvbmRpdGlvbjogeCA9PiB4LmF1dGhUeXBlICE9PSAnbG9jYWwnLCBzcGFuOiB0cnVlXHJcbiAgICAgIH0sXHJcbiAgICAgIHsgbmFtZTogJ2VtYWlsJywgdHlwZTogJ3RleHQnLCByZXF1aXJlZDogZmFsc2UsIHNwYW46IHRydWUgfSxcclxuICAgICAgeyBuYW1lOiAncm9sZUlEJywgdHlwZTogJ3NlbGVjdCcsIGFsaWFzOiAnUm9sZScsIHJlcXVpcmVkOiB0cnVlLCAgc3BhbjogdHJ1ZSwgZGVmYXVsdEZpcnN0VmFsdWU6IHRydWUgfSxcclxuICAgIF0sXHJcbiAgfTtcclxuXHJcblxyXG4gIGNyZWF0ZURpYWxvZzogRGV0YWlsc0RpYWxvZ0NvbmZpZyA9IHtcclxuICAgIGZvcm1Db25maWc6IHtcclxuICAgICAgLi4udGhpcy51c2VyQmFzZUZvcm1Db25maWcsXHJcbiAgICAgIHRpdGxlOiAnVXNlcicsXHJcbiAgICAgIC8vIGZpZWxkczogdGhpcy51c2VyQmFzZUZvcm1Db25maWcuZmllbGRzLmZpbHRlcih4ID0+IHgubmFtZSAhPT0gJ3VzZXJOYW1lJyAmJiB4Lm5hbWUgIT09ICdhdXRoVHlwZScgJiYgeC5uYW1lICE9PSAnZW1haWwnKVxyXG4gICAgfSxcclxuICAgIG1vZGU6ICdjcmVhdGUnLFxyXG4gICAgYnV0dG9uczogW1xyXG4gICAgICB7IG5hbWU6ICdjcmVhdGUnLCBhY3Rpb246IHsgbWV0aG9kOiAncG9zdCcsIHVybDogJ1VzZXIvcmVnaXN0ZXInLCBzdWNjZXNzTWVzc2FnZTogXCJVc2VyIENyZWF0ZWRcIiB9fVxyXG4gICAgXVxyXG4gIH1cclxuXHJcbiAgZWRpdERpYWxvZyA6IERldGFpbHNEaWFsb2dDb25maWcgPSB7XHJcbiAgICBmb3JtQ29uZmlnOiB7XHJcbiAgICAgIC4uLnRoaXMudXNlckJhc2VGb3JtQ29uZmlnLFxyXG4gICAgICB0aXRsZSA6ICdVc2VyJyxcclxuICAgICAgZmllbGRzIDogdGhpcy51c2VyQmFzZUZvcm1Db25maWcuZmllbGRzLmZpbHRlcih4ID0+IHgubmFtZSAhPT0gJ3Bhc3N3b3JkJyAmJiB4Lm5hbWUgIT09ICdjb25maXJtUGFzc3dvcmQnKVxyXG4gICAgfSxcclxuICAgIG1vZGU6ICd2aWV3JyxcclxuICAgIGJ1dHRvbnM6IFtcclxuICAgICAgeyBuYW1lOiAnZWRpdCcsIGFjdGlvbjogeyBtZXRob2Q6ICdwb3N0JywgdXJsOiAnVXNlci9lZGl0Jywgc3VjY2Vzc01lc3NhZ2U6IFwiVXNlciBVcGRhdGVkXCIgfSB9XHJcbiAgICBdXHJcbiAgfVxyXG5cclxuICBwYXNzd29yZERpYWxvZzogRGV0YWlsc0RpYWxvZ0NvbmZpZyA9IHtcclxuICAgIGZvcm1Db25maWc6IHtcclxuICAgICAgLi4udGhpcy51c2VyQmFzZUZvcm1Db25maWcsXHJcbiAgICAgIHRpdGxlIDogJ0NoYW5nZSBQYXNzd29yZCcsXHJcbiAgICAgIGZpeGVkVGl0bGU6IHRydWUsXHJcbiAgICAgIGFsZXJ0Q29uZmlnOiB7IG1lc3NhZ2VzOiBbXHJcbiAgICAgICAgeyB0eXBlOiAnaW5mbycsIGNvbnRlbnQ6ICcqUGxlYXNlIGNvbnNpZGVyIHRoZXNlIHJlcXVpcmVtZW50cyBmb3IgeW91ciBuZXcgcGFzc3dvcmQuJyB9LFxyXG4gICAgICAgIHsgdHlwZTogJ2luZm8nLCBjb250ZW50OiAnQXQgbGVhc3QgOCBjaGFyYWN0ZXJzLicgfSxcclxuICAgICAgICB7IHR5cGU6ICdpbmZvJywgY29udGVudDogJ0F0IGxlYXN0IDEgdXBwZXJjYXNlIGxldHRlcicgfSxcclxuICAgICAgICB7IHR5cGU6ICdpbmZvJywgY29udGVudDogJ0F0IGxlYXN0IDIgbG93ZXJjYXNlIGxldHRlcnMgKGEteiknIH0sXHJcbiAgICAgICAgeyB0eXBlOiAnaW5mbycsIGNvbnRlbnQ6ICdBdCBsZWFzdCAxIGRpZ2l0ICgwLTkpJyB9LFxyXG4gICAgICAgIHsgdHlwZTogJ2luZm8nLCBjb250ZW50OiAnIEF0IGxlYXN0IDEgc3BlY2lhbCBjaGFyYWN0ZXIgKH5gISDigKYpJyB9LFxyXG4gICAgICBdfSxcclxuICAgICAgZmllbGRzOiBbXHJcbiAgICAgICAgeyBuYW1lOiAnbmV3UGFzc3dvcmQnLCB0eXBlOiAncGFzc3dvcmQnLCByZXF1aXJlZDogdHJ1ZSB9LFxyXG4gICAgICAgIHsgbmFtZTogJ2NvbmZpcm1QYXNzd29yZCcsIHR5cGU6ICdwYXNzd29yZCcsICByZXF1aXJlZDogdHJ1ZSB9XHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICBtb2RlOiAnZWRpdCcsXHJcbiAgICBidXR0b25zOiBbXHJcbiAgICAgIHsgbmFtZTogJ2VkaXQnLCBhY3Rpb246IHsgbWV0aG9kOiAncG9zdCcsIHVybDogJ1VzZXIvY2hhbmdlcGFzc3dvcmQtYWRtaW4nLCBzdWNjZXNzTWVzc2FnZTogJ1Bhc3N3b3JkIENoYW5nZWQnIH0gICAgfVxyXG4gICAgXVxyXG4gIH1cclxuXHJcbiAgdXNlcnNUYWJsZUNvbmZpZyA6IFRhYmxlQ29uZmlnID0ge1xyXG4gICAgc2hvd0ZpbHRlcjogdHJ1ZSxcclxuICAgIG1pbkJ1dHRvbnM6IFsnZnVsbE5hbWUnLCdyb2xlTmFtZSddLFxyXG4gICAgZ3JleU91dCA6ICh2YWx1ZSkgPT4gdmFsdWUuZGlzYWJsZWQgPT0gMSxcclxuICAgIGNvbGxhcHNlQnV0dG9uczogdHJ1ZSxcclxuICAgIG1pbkNvbHVtbnM6IFsndXNlck5hbWUnLCAnZnVsbE5hbWUnLCAncm9sZU5hbWUnLCAnbG9ja2VkJywgJ2RhdGVDcmVhdGVkJ10sXHJcbiAgICBmbGF0QnV0dG9uczogdGhpcy5kYXRhU2VydmljZS5hcHBDb25maWcubXVsdGl0ZW5hbnQsXHJcbiAgICBjb2x1bW5zOiBbXHJcbiAgICAgIHsgbmFtZTogJ3VzZXJOYW1lJywgdHlwZTogJ3RleHQnfSxcclxuICAgICAgeyBuYW1lOiAnZnVsbE5hbWUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAncm9sZU5hbWUnLCB0eXBlOiAndGV4dCcgfSxcclxuICAgICAgeyBuYW1lOiAnbG9ja2VkJywgdHlwZTogJ2NoZWNrYm94JyB9LFxyXG4gICAgICB7IG5hbWU6ICdjcmVhdGVkRGF0ZScsIHR5cGU6ICdkYXRlJyB9LFxyXG4gICAgXSxcclxuICAgIGJ1dHRvbnM6IFtcclxuICAgICAgeyBuYW1lOiAnY3JlYXRlJywgZGlzcGxheTogJ05ldyBVc2VyJywgZGlhbG9nOiB0cnVlLCBkZXRhaWxzQ29uZmlnIDogdGhpcy5jcmVhdGVEaWFsb2cgIH0sXHJcbiAgICAgIHsgbmFtZTogJ3ZpZXcnLCBkaWFsb2c6IHRydWUsIGljb246IHsgbmFtZTogJ2FjY291bnRfY2lyY2xlJyB9LCBkZXRhaWxzQ29uZmlnOiB0aGlzLmVkaXREaWFsb2cgfSxcclxuICAgICAge1xyXG4gICAgICAgIG5hbWU6ICdjaGFuZ2VQYXNzd29yZCcsIGRpc3BsYXk6ICdDaGFuZ2UgUGFzc3dvcmQnLCB0aXAgOiAnQ2hhbmdlIFBhc3N3b3JkJywgaWNvbjogeyBuYW1lOiAna2V5JyB9LCBkaWFsb2c6IHRydWUsIGRldGFpbHNDb25maWc6IHRoaXMucGFzc3dvcmREaWFsb2csXHJcbiAgICAgICAgdmlzaWJsZTogeCA9PiB4LmF1dGhUeXBlID09PSAnbG9jYWwnXHJcbiAgICAgIH0sXHJcbiAgICAgIHsgbmFtZTogJ2xvY2snLCBhY3Rpb246IHsgbWV0aG9kOiAncG9zdCcsIHVybDogJ1VzZXIvbG9jaycsIHN1Y2Nlc3NNZXNzYWdlOiBcIlVzZXIgbG9ja2VkXCIgfSwgY29sb3I6ICdyZWQnLCB0aXA6ICdsb2NrJywgaWNvbjogeyBuYW1lOiAnbG9jaycgfSxcclxuICAgICAgICB2aXNpYmxlOiAodmFsdWUpID0+IHZhbHVlLmxvY2tlZCA9PSAwXHJcbiAgICAgIH0sXHJcbiAgICAgIHsgbmFtZTogJ3VubG9jaycsIGFjdGlvbjogeyBtZXRob2Q6ICdwb3N0JywgdXJsOiAnVXNlci91bmxvY2snLCBzdWNjZXNzTWVzc2FnZTogXCJVc2VyIFVubG9ja2VkXCIgfSwgY29sb3I6ICdncmVlbicsIHRpcDogJ3VubG9jaycsIGljb246IHsgbmFtZTogJ2xvY2tfb3BlbicgfSxcclxuICAgICAgICB2aXNpYmxlOiAodmFsdWUpID0+IHZhbHVlLmxvY2tlZCA9PSAxXHJcbiAgICAgIH0sXHJcbiAgICAgIHsgbmFtZTogJ2RlbGV0ZScsIGFjdGlvbjogeyBtZXRob2Q6ICdwb3N0JywgdXJsOiAnVXNlci9kZWxldGUnLCBzdWNjZXNzTWVzc2FnZTogXCJVc2VyIERlbGV0ZWRcIiB9LCBjb2xvcjogJ3JlZCcgfSxcclxuICAgIF0sXHJcbiAgICBsb2FkQWN0aW9uOiB7IHVybDogJ1VzZXIvYWxsL3gnIH0sXHJcbiAgfVxyXG5cclxuXHJcbn1cclxuIiwiXHJcbjxoND5Vc2VyczwvaDQ+XHJcbjxociAvPlxyXG5cclxuPHNwYS10YWJsZSBbY29uZmlnXT1cInVzZXJzVGFibGVDb25maWdcIiAoaW5wdXRDaGFuZ2UpPVwiaW5wdXRDaGFuZ2VkKCRldmVudClcIj48L3NwYS10YWJsZT5cclxuXHJcbiJdfQ==
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { Component } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
import * as i1 from "../../services/datalib.service";
|
|
4
|
-
import * as i2 from "../../services/auth.service";
|
|
5
|
-
import * as i3 from "@angular/common";
|
|
6
|
-
import * as i4 from "@angular/material/button";
|
|
7
|
-
import * as i5 from "@angular/material/icon";
|
|
8
|
-
import * as i6 from "../../components/text/text.component";
|
|
9
|
-
import * as i7 from "../../components/check/check.component";
|
|
10
|
-
import * as i8 from "../invitations-table/invitations-table.component";
|
|
11
|
-
export class WelcomeComponent {
|
|
12
|
-
constructor(dataService, authService) {
|
|
13
|
-
this.dataService = dataService;
|
|
14
|
-
this.authService = authService;
|
|
15
|
-
this.step = "terms";
|
|
16
|
-
this.agree = false;
|
|
17
|
-
this.own = true;
|
|
18
|
-
this.invitations = false;
|
|
19
|
-
this.invTableConfig = {
|
|
20
|
-
greyOut: (value) => value.accepted == false,
|
|
21
|
-
elevation: 'low',
|
|
22
|
-
minColumns: ['tenantName'],
|
|
23
|
-
minButtons: ['accept', 'decline'],
|
|
24
|
-
columns: [
|
|
25
|
-
{ name: 'tenantName', alias: 'Organisation', type: 'text' },
|
|
26
|
-
{ name: 'owner', type: 'text', },
|
|
27
|
-
],
|
|
28
|
-
buttons: [
|
|
29
|
-
{ name: 'accept', icon: { 'name': 'done', }, color: 'green', action: { url: 'members/dto?action=accept', method: 'post', }, confirm: { message: 'Accept ?' }, disabled: (x) => x.accepted },
|
|
30
|
-
{ name: 'decline', icon: { 'name': 'close', }, color: 'red', action: { url: 'members/dto?action=remove', method: 'post', }, confirm: { message: 'Decline ?' }, disabled: (x) => x.accepted },
|
|
31
|
-
],
|
|
32
|
-
loadAction: { url: 'tenants/invitations/x' },
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
ngOnInit() {
|
|
36
|
-
this.loadMeta();
|
|
37
|
-
this.authService.loggedUserFullName.subscribe(x => this.username = x);
|
|
38
|
-
}
|
|
39
|
-
loadMeta() {
|
|
40
|
-
this.dataService.CallApi({ url: 'tenants/welcome_meta/x' }).subscribe((api) => {
|
|
41
|
-
this.invitations = api.data.invitations;
|
|
42
|
-
this.own = api.data.own;
|
|
43
|
-
this.myTenant = api.data.tenant;
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
renameTenant() {
|
|
47
|
-
this.dataService.CallApi({ url: 'tenants/dto?action=rename', method: 'post' }, this.myTenant).subscribe((apiResponse) => {
|
|
48
|
-
if (apiResponse.success) {
|
|
49
|
-
this.authService.updateTenantName(this.myTenant.name);
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
next() {
|
|
54
|
-
if (this.step == 'terms' && this.own) {
|
|
55
|
-
this.step = "name";
|
|
56
|
-
return;
|
|
57
|
-
}
|
|
58
|
-
else if (this.step == "terms" && !this.own) {
|
|
59
|
-
this.step = "hi";
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
else if (this.step == "name" && this.own) {
|
|
63
|
-
this.renameTenant();
|
|
64
|
-
if (this.invitations == true) {
|
|
65
|
-
this.step = "invitations";
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
this.setWelcome();
|
|
70
|
-
}
|
|
71
|
-
setWelcome() {
|
|
72
|
-
this.dataService.CallApi({ url: 'tenants/set_welcome/x' }).subscribe((api) => {
|
|
73
|
-
this.home();
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
home() {
|
|
77
|
-
this.dataService.Navigate('home');
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
WelcomeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WelcomeComponent, deps: [{ token: i1.DataServiceLib }, { token: i2.AuthService }], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
-
WelcomeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: WelcomeComponent, selector: "spa-welcome", ngImport: i0, template: "<label class=\"title\">Welcome, {{username}}</label>\r\n\r\n\r\n\r\n<!-- terms -->\r\n<div class=\"mt-3\" *ngIf=\"step=='terms'\">\r\n\r\n <label class=\"subtitle text-muted mb-2\" >We care about our users and are dedicated to protecting your data and privacy -\r\n thats why we want to be clear about what data we collect and how we use it to improve your experience.</label>\r\n\r\n <br>\r\n <spa-check display=\"I agree to the Terms and Privacy Policy\" [(value)]=\"agree\"></spa-check>\r\n</div>\r\n\r\n<!-- owner -->\r\n<div class=\"mt-3\" *ngIf=\"step=='name' && own\">\r\n\r\n <label class=\"subtitle text-muted\" style=\" margin-bottom: 20px;\">The follow steps will guide you to customise your application.</label>\r\n\r\n <div style=\"max-width: 400px;\">\r\n <spa-text display=\"Organisation Name\" [(value)]=\"myTenant.name\" ></spa-text>\r\n </div>\r\n\r\n <label class=\"text-muted\" style=\" font-size: 12px;\">You can change the Organisation's name to your team or company name.</label><br>\r\n <label class=\"text-muted\" style=\" font-size: 12px;margin-top: 10px;\">The name can be changed later.</label>\r\n\r\n</div>\r\n\r\n<!-- guest -->\r\n<div *ngIf=\"step=='hi' && !own\">\r\n <label class=\"subtitle text-muted\">You are now signed in to {{myTenant.name}}.</label>\r\n</div>\r\n\r\n\r\n<!-- invitations -->\r\n<div class=\"mt-3\" *ngIf=\"step=='invitations' && own\">\r\n\r\n <label class=\"subtitle text-muted\">You have been requested to join the following organisations. If you accept, you have the option to switch to that org now or stay in you org.</label><br>\r\n <label class=\"text-muted\" style=\" font-size: 12px;margin-top: 10px;\">You will be able to switch later.</label>\r\n <spa-invitations-table></spa-invitations-table>\r\n\r\n</div>\r\n\r\n\r\n<!-- Actions -->\r\n<div class=\"mt-3\">\r\n <button mat-stroked-button color=\"primary\" [disabled]=\"!agree\" (click)=\"next()\">Next <mat-icon>arrow_right_alt</mat-icon></button>\r\n</div>\r\n", styles: [".title{margin-top:1em;font-size:28px;font-weight:300}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.TextComponent, selector: "spa-text", inputs: ["appearance", "readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "copyContent", "clearContent", "options", "optionDisplay", "optionValue", "loadAction", "required", "min", "max", "regex", "suffix", "infoMessage"], outputs: ["valueChange", "leave", "enterPress"] }, { kind: "component", type: i7.CheckComponent, selector: "spa-check", inputs: ["readonly", "display", "value", "infoMessage"], outputs: ["valueChange", "click", "check", "uncheck", "infoClick"] }, { kind: "component", type: i8.InvitationsTableComponent, selector: "spa-invitations-table" }] });
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WelcomeComponent, decorators: [{
|
|
83
|
-
type: Component,
|
|
84
|
-
args: [{ selector: 'spa-welcome', template: "<label class=\"title\">Welcome, {{username}}</label>\r\n\r\n\r\n\r\n<!-- terms -->\r\n<div class=\"mt-3\" *ngIf=\"step=='terms'\">\r\n\r\n <label class=\"subtitle text-muted mb-2\" >We care about our users and are dedicated to protecting your data and privacy -\r\n thats why we want to be clear about what data we collect and how we use it to improve your experience.</label>\r\n\r\n <br>\r\n <spa-check display=\"I agree to the Terms and Privacy Policy\" [(value)]=\"agree\"></spa-check>\r\n</div>\r\n\r\n<!-- owner -->\r\n<div class=\"mt-3\" *ngIf=\"step=='name' && own\">\r\n\r\n <label class=\"subtitle text-muted\" style=\" margin-bottom: 20px;\">The follow steps will guide you to customise your application.</label>\r\n\r\n <div style=\"max-width: 400px;\">\r\n <spa-text display=\"Organisation Name\" [(value)]=\"myTenant.name\" ></spa-text>\r\n </div>\r\n\r\n <label class=\"text-muted\" style=\" font-size: 12px;\">You can change the Organisation's name to your team or company name.</label><br>\r\n <label class=\"text-muted\" style=\" font-size: 12px;margin-top: 10px;\">The name can be changed later.</label>\r\n\r\n</div>\r\n\r\n<!-- guest -->\r\n<div *ngIf=\"step=='hi' && !own\">\r\n <label class=\"subtitle text-muted\">You are now signed in to {{myTenant.name}}.</label>\r\n</div>\r\n\r\n\r\n<!-- invitations -->\r\n<div class=\"mt-3\" *ngIf=\"step=='invitations' && own\">\r\n\r\n <label class=\"subtitle text-muted\">You have been requested to join the following organisations. If you accept, you have the option to switch to that org now or stay in you org.</label><br>\r\n <label class=\"text-muted\" style=\" font-size: 12px;margin-top: 10px;\">You will be able to switch later.</label>\r\n <spa-invitations-table></spa-invitations-table>\r\n\r\n</div>\r\n\r\n\r\n<!-- Actions -->\r\n<div class=\"mt-3\">\r\n <button mat-stroked-button color=\"primary\" [disabled]=\"!agree\" (click)=\"next()\">Next <mat-icon>arrow_right_alt</mat-icon></button>\r\n</div>\r\n", styles: [".title{margin-top:1em;font-size:28px;font-weight:300}\n"] }]
|
|
85
|
-
}], ctorParameters: function () { return [{ type: i1.DataServiceLib }, { type: i2.AuthService }]; } });
|
|
86
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2VsY29tZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvcGFnZXMvd2VsY29tZS93ZWxjb21lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Rpbi1zcGEvc3JjL2xpYi9wYWdlcy93ZWxjb21lL3dlbGNvbWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQVVsRCxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFlBQW1CLFdBQTRCLEVBQVMsV0FBd0I7UUFBN0QsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFVaEYsU0FBSSxHQUFHLE9BQU8sQ0FBQTtRQUNkLFVBQUssR0FBRyxLQUFLLENBQUE7UUFDYixRQUFHLEdBQUcsSUFBSSxDQUFDO1FBQ1gsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUEwRHBCLG1CQUFjLEdBQWdCO1lBRTVCLE9BQU8sRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLO1lBQzNDLFNBQVMsRUFBRSxLQUFLO1lBQ2hCLFVBQVUsRUFBRSxDQUFDLFlBQVksQ0FBQztZQUMxQixVQUFVLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDO1lBRWpDLE9BQU8sRUFBRTtnQkFDUCxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFO2dCQUMzRCxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sR0FBRzthQUNqQztZQUVELE9BQU8sRUFBRTtnQkFDUCxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEVBQUUsTUFB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R0FBRyxFQUFFLHVCQUF1QixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUMzRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQzs7NkdBdEVVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLG1EQ1Y3QixxOURBZ0RBOzJGRHRDYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRhYmxlQ29uZmlnLCBBcGlSZXNwb25zZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2VMaWIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRhbGliLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzcGEtd2VsY29tZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3dlbGNvbWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3dlbGNvbWUuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXZWxjb21lQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGRhdGFTZXJ2aWNlIDogRGF0YVNlcnZpY2VMaWIsIHB1YmxpYyBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMubG9hZE1ldGEoKTtcclxuXHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmxvZ2dlZFVzZXJGdWxsTmFtZS5zdWJzY3JpYmUoeCA9PiB0aGlzLnVzZXJuYW1lID0geClcclxuICB9XHJcblxyXG4gIHVzZXJuYW1lO1xyXG5cclxuICBzdGVwID0gXCJ0ZXJtc1wiXHJcbiAgYWdyZWUgPSBmYWxzZVxyXG4gIG93biA9IHRydWU7XHJcbiAgaW52aXRhdGlvbnMgPSBmYWxzZTtcclxuXHJcbiAgbXlUZW5hbnRcclxuXHJcbiAgbG9hZE1ldGEoKXtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuQ2FsbEFwaSh7IHVybDondGVuYW50cy93ZWxjb21lX21ldGEveCd9KS5zdWJzY3JpYmUoKGFwaSkgPT4ge1xyXG4gICAgICB0aGlzLmludml0YXRpb25zID0gYXBpLmRhdGEuaW52aXRhdGlvbnM7XHJcbiAgICAgIHRoaXMub3duID0gYXBpLmRhdGEub3duO1xyXG4gICAgICB0aGlzLm15VGVuYW50ID0gYXBpLmRhdGEudGVuYW50O1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHJlbmFtZVRlbmFudCgpIHtcclxuXHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLkNhbGxBcGkoeyB1cmw6ICd0ZW5hbnRzL2R0bz9hY3Rpb249cmVuYW1lJywgbWV0aG9kOiAncG9zdCcgfSwgdGhpcy5teVRlbmFudCkuc3Vic2NyaWJlKChhcGlSZXNwb25zZTogQXBpUmVzcG9uc2UpID0+IHtcclxuXHJcbiAgICAgIGlmIChhcGlSZXNwb25zZS5zdWNjZXNzKSB7XHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS51cGRhdGVUZW5hbnROYW1lKHRoaXMubXlUZW5hbnQubmFtZSlcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZXh0KCl7XHJcblxyXG4gICAgaWYgKHRoaXMuc3RlcCA9PSAndGVybXMnICYmIHRoaXMub3duKXtcclxuICAgICAgdGhpcy5zdGVwID0gXCJuYW1lXCJcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5zdGVwID09IFwidGVybXNcIiAmJiAhdGhpcy5vd24pIHtcclxuICAgICAgdGhpcy5zdGVwID0gXCJoaVwiXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuc3RlcCA9PSBcIm5hbWVcIiAmJiB0aGlzLm93bil7XHJcblxyXG4gICAgICB0aGlzLnJlbmFtZVRlbmFudCgpO1xyXG4gICAgICBpZiAodGhpcy5pbnZpdGF0aW9ucyA9PSB0cnVlKXtcclxuICAgICAgICB0aGlzLnN0ZXAgPSBcImludml0YXRpb25zXCJcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcblxyXG4gICAgfVxyXG5cclxuXHJcbiAgICB0aGlzLnNldFdlbGNvbWUoKTtcclxuICB9XHJcblxyXG4gIHNldFdlbGNvbWUoKSB7XHJcbiAgICB0aGlzLmRhdGFTZXJ2aWNlLkNhbGxBcGkoeyB1cmw6ICd0ZW5hbnRzL3NldF93ZWxjb21lL3gnIH0pLnN1YnNjcmliZSgoYXBpKSA9PiB7XHJcbiAgICAgIHRoaXMuaG9tZSgpO1xyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGhvbWUoKXtcclxuICAgIHRoaXMuZGF0YVNlcnZpY2UuTmF2aWdhdGUoJ2hvbWUnKTtcclxuICB9XHJcblxyXG5cclxuICBpbnZUYWJsZUNvbmZpZzogVGFibGVDb25maWcgPSB7XHJcblxyXG4gICAgZ3JleU91dDogKHZhbHVlKSA9PiB2YWx1ZS5hY2NlcHRlZCA9PSBmYWxzZSxcclxuICAgIGVsZXZhdGlvbjogJ2xvdycsXHJcbiAgICBtaW5Db2x1bW5zOiBbJ3RlbmFudE5hbWUnXSxcclxuICAgIG1pbkJ1dHRvbnM6IFsnYWNjZXB0JywgJ2RlY2xpbmUnXSxcclxuXHJcbiAgICBjb2x1bW5zOiBbXHJcbiAgICAgIHsgbmFtZTogJ3RlbmFudE5hbWUnLCBhbGlhczogJ09yZ2FuaXNhdGlvbicsIHR5cGU6ICd0ZXh0JyB9LFxyXG4gICAgICB7IG5hbWU6ICdvd25lcicsIHR5cGU6ICd0ZXh0JywgfSxcclxuICAgIF0sXHJcblxyXG4gICAgYnV0dG9uczogW1xyXG4gICAgICB7IG5hbWU6ICdhY2NlcHQnLCBpY29uOiB7ICduYW1lJzogJ2RvbmUnLCB9LCBjb2xvcjogJ2dyZWVuJywgYWN0aW9uOiB7IHVybDogJ21lbWJlcnMvZHRvP2FjdGlvbj1hY2NlcHQnLCBtZXRob2Q6ICdwb3N0JywgfSwgY29uZmlybTogeyBtZXNzYWdlOiAnQWNjZXB0ID8nIH0sIGRpc2FibGVkOiAoeCkgPT4geC5hY2NlcHRlZCB9LFxyXG4gICAgICB7IG5hbWU6ICdkZWNsaW5lJywgaWNvbjogeyAnbmFtZSc6ICdjbG9zZScsIH0sIGNvbG9yOiAncmVkJywgYWN0aW9uOiB7IHVybDogJ21lbWJlcnMvZHRvP2FjdGlvbj1yZW1vdmUnLCBtZXRob2Q6ICdwb3N0JywgfSwgY29uZmlybTogeyBtZXNzYWdlOiAnRGVjbGluZSA/JyB9LCBkaXNhYmxlZDogKHgpID0+IHguYWNjZXB0ZWQgfSxcclxuICAgIF0sXHJcblxyXG4gICAgbG9hZEFjdGlvbjogeyB1cmw6ICd0ZW5hbnRzL2ludml0YXRpb25zL3gnIH0sXHJcblxyXG4gIH1cclxuXHJcbn1cclxuIiwiPGxhYmVsIGNsYXNzPVwidGl0bGVcIj5XZWxjb21lLCAge3t1c2VybmFtZX19PC9sYWJlbD5cclxuXHJcblxyXG5cclxuPCEtLSB0ZXJtcyAtLT5cclxuPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj1cInN0ZXA9PSd0ZXJtcydcIj5cclxuXHJcbiAgPGxhYmVsIGNsYXNzPVwic3VidGl0bGUgdGV4dC1tdXRlZCBtYi0yXCIgPldlIGNhcmUgYWJvdXQgb3VyIHVzZXJzIGFuZCBhcmUgZGVkaWNhdGVkIHRvIHByb3RlY3RpbmcgeW91ciBkYXRhIGFuZCBwcml2YWN5IC1cclxuICAgIHRoYXRzIHdoeSB3ZSB3YW50IHRvIGJlIGNsZWFyIGFib3V0IHdoYXQgZGF0YSB3ZSBjb2xsZWN0IGFuZCBob3cgd2UgdXNlIGl0IHRvIGltcHJvdmUgeW91ciBleHBlcmllbmNlLjwvbGFiZWw+XHJcblxyXG4gIDxicj5cclxuICA8c3BhLWNoZWNrIGRpc3BsYXk9XCJJIGFncmVlIHRvIHRoZSBUZXJtcyBhbmQgUHJpdmFjeSBQb2xpY3lcIiBbKHZhbHVlKV09XCJhZ3JlZVwiPjwvc3BhLWNoZWNrPlxyXG48L2Rpdj5cclxuXHJcbjwhLS0gb3duZXIgLS0+XHJcbjxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9XCJzdGVwPT0nbmFtZScgJiYgb3duXCI+XHJcblxyXG4gIDxsYWJlbCBjbGFzcz1cInN1YnRpdGxlIHRleHQtbXV0ZWRcIiBzdHlsZT1cIiBtYXJnaW4tYm90dG9tOiAyMHB4O1wiPlRoZSBmb2xsb3cgc3RlcHMgd2lsbCBndWlkZSB5b3UgdG8gY3VzdG9taXNlIHlvdXIgYXBwbGljYXRpb24uPC9sYWJlbD5cclxuXHJcbiAgPGRpdiBzdHlsZT1cIm1heC13aWR0aDogNDAwcHg7XCI+XHJcbiAgIDxzcGEtdGV4dCBkaXNwbGF5PVwiT3JnYW5pc2F0aW9uIE5hbWVcIiBbKHZhbHVlKV09XCJteVRlbmFudC5uYW1lXCIgPjwvc3BhLXRleHQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxsYWJlbCBjbGFzcz1cInRleHQtbXV0ZWRcIiBzdHlsZT1cIiBmb250LXNpemU6IDEycHg7XCI+WW91IGNhbiBjaGFuZ2UgdGhlIE9yZ2FuaXNhdGlvbidzIG5hbWUgdG8geW91ciB0ZWFtIG9yIGNvbXBhbnkgbmFtZS48L2xhYmVsPjxicj5cclxuICA8bGFiZWwgY2xhc3M9XCJ0ZXh0LW11dGVkXCIgc3R5bGU9XCIgZm9udC1zaXplOiAxMnB4O21hcmdpbi10b3A6IDEwcHg7XCI+VGhlIG5hbWUgY2FuIGJlIGNoYW5nZWQgbGF0ZXIuPC9sYWJlbD5cclxuXHJcbjwvZGl2PlxyXG5cclxuPCEtLSBndWVzdCAtLT5cclxuPGRpdiAqbmdJZj1cInN0ZXA9PSdoaScgJiYgIW93blwiPlxyXG4gIDxsYWJlbCBjbGFzcz1cInN1YnRpdGxlIHRleHQtbXV0ZWRcIj5Zb3UgYXJlIG5vdyBzaWduZWQgaW4gdG8ge3tteVRlbmFudC5uYW1lfX0uPC9sYWJlbD5cclxuPC9kaXY+XHJcblxyXG5cclxuPCEtLSBpbnZpdGF0aW9ucyAtLT5cclxuPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj1cInN0ZXA9PSdpbnZpdGF0aW9ucycgJiYgb3duXCI+XHJcblxyXG4gIDxsYWJlbCBjbGFzcz1cInN1YnRpdGxlIHRleHQtbXV0ZWRcIj5Zb3UgaGF2ZSBiZWVuIHJlcXVlc3RlZCB0byBqb2luIHRoZSBmb2xsb3dpbmcgb3JnYW5pc2F0aW9ucy4gSWYgeW91IGFjY2VwdCwgeW91IGhhdmUgdGhlIG9wdGlvbiB0byBzd2l0Y2ggdG8gdGhhdCBvcmcgbm93IG9yIHN0YXkgaW4geW91IG9yZy48L2xhYmVsPjxicj5cclxuICA8bGFiZWwgY2xhc3M9XCJ0ZXh0LW11dGVkXCIgc3R5bGU9XCIgZm9udC1zaXplOiAxMnB4O21hcmdpbi10b3A6IDEwcHg7XCI+WW91IHdpbGwgYmUgYWJsZSB0byBzd2l0Y2ggbGF0ZXIuPC9sYWJlbD5cclxuICA8c3BhLWludml0YXRpb25zLXRhYmxlPjwvc3BhLWludml0YXRpb25zLXRhYmxlPlxyXG5cclxuPC9kaXY+XHJcblxyXG5cclxuPCEtLSBBY3Rpb25zIC0tPlxyXG48ZGl2IGNsYXNzPVwibXQtM1wiPlxyXG4gIDxidXR0b24gIG1hdC1zdHJva2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiIWFncmVlXCIgKGNsaWNrKT1cIm5leHQoKVwiPk5leHQgPG1hdC1pY29uPmFycm93X3JpZ2h0X2FsdDwvbWF0LWljb24+PC9idXR0b24+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import { Core } from '../classes/TinCore';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class CamelToWordsPipe {
|
|
5
|
-
transform(value) {
|
|
6
|
-
return Core.camelToWords(value);
|
|
7
|
-
}
|
|
8
|
-
}
|
|
9
|
-
CamelToWordsPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CamelToWordsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
10
|
-
CamelToWordsPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: CamelToWordsPipe, name: "camelToWords" });
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CamelToWordsPipe, decorators: [{
|
|
12
|
-
type: Pipe,
|
|
13
|
-
args: [{
|
|
14
|
-
name: 'camelToWords'
|
|
15
|
-
}]
|
|
16
|
-
}] });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FtZWxUb1dvcmRzLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvcGlwZXMvY2FtZWxUb1dvcmRzLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUsxQyxNQUFNLE9BQU8sZ0JBQWdCO0lBRTNCLFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNsQyxDQUFDOzs2R0FKVSxnQkFBZ0I7MkdBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUg1QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxjQUFjO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29yZSB9IGZyb20gJy4uL2NsYXNzZXMvVGluQ29yZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2NhbWVsVG9Xb3JkcydcclxufSlcclxuZXhwb3J0IGNsYXNzIENhbWVsVG9Xb3Jkc1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHJcbiAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIENvcmUuY2FtZWxUb1dvcmRzKHZhbHVlKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class SelectContextDirective {
|
|
4
|
-
constructor(templateRef, viewContainer) {
|
|
5
|
-
this.templateRef = templateRef;
|
|
6
|
-
this.viewContainer = viewContainer;
|
|
7
|
-
}
|
|
8
|
-
set selectContext(context) {
|
|
9
|
-
this.viewContainer.clear();
|
|
10
|
-
this.viewContainer.createEmbeddedView(this.templateRef, context);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
SelectContextDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SelectContextDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
14
|
-
SelectContextDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.3.0", type: SelectContextDirective, selector: "[selectContext]", inputs: { selectContext: "selectContext" }, ngImport: i0 });
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SelectContextDirective, decorators: [{
|
|
16
|
-
type: Directive,
|
|
17
|
-
args: [{
|
|
18
|
-
selector: '[selectContext]'
|
|
19
|
-
}]
|
|
20
|
-
}], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { selectContext: [{
|
|
21
|
-
type: Input
|
|
22
|
-
}] } });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWNvbnRleHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL3NlbGVjdC1jb250ZXh0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBaUMsTUFBTSxlQUFlLENBQUM7O0FBS2hGLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFDVSxXQUE2QixFQUM3QixhQUErQjtRQUQvQixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0Isa0JBQWEsR0FBYixhQUFhLENBQWtCO0lBQ3JDLENBQUM7SUFFTCxJQUFhLGFBQWEsQ0FBQyxPQUFZO1FBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25FLENBQUM7O21IQVRVLHNCQUFzQjt1R0FBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtpQkFDNUI7aUlBT2MsYUFBYTtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tzZWxlY3RDb250ZXh0XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbnRleHREaXJlY3RpdmUge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZlxyXG4gICkgeyB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RDb250ZXh0KGNvbnRleHQ6IGFueSkge1xyXG4gICAgdGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XHJcbiAgICB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMudGVtcGxhdGVSZWYsIGNvbnRleHQpO1xyXG4gIH1cclxufVxyXG4iXX0=
|