From 94ea0e0885690e09a171ca94b533b6512ac06bfb Mon Sep 17 00:00:00 2001 From: "venbatechnologies@gmail.com" Date: Thu, 27 Jun 2019 17:57:31 +0530 Subject: [PATCH] lender --- ng6-seed/angular.json | 0 ng6-seed/package-lock.json | 2271 ++++++++++------- ng6-seed/package.json | 72 +- ng6-seed/src/app/AwsService/aws.service.ts | 644 ++++- .../src/app/AwsService/cognito.service.ts | 128 +- ng6-seed/src/app/_guard/auth.guard.ts | 92 +- ng6-seed/src/app/_guard/token.interceptor.ts | 7 +- ng6-seed/src/app/app.component.html | 0 ng6-seed/src/app/app.component.spec.ts | 0 ng6-seed/src/app/app.component.ts | 2 +- ng6-seed/src/app/app.module.ts | 25 +- ng6-seed/src/app/app.routing.ts | 16 +- ng6-seed/src/app/dashboard/charts.data.ts | 500 ++-- .../app/dashboard/dashboard.component.html | 146 +- .../app/dashboard/dashboard.component.scss | 575 +---- .../src/app/dashboard/dashboard.component.ts | 35 +- .../src/app/dashboard/dashboard.module.ts | 20 +- .../src/app/dashboard/dashboard.routing.ts | 0 .../app/dashboard/dashboard.service.spec.ts | 12 + .../src/app/dashboard/dashboard.service.ts | 24 + .../app/error/404/error-404-component.html | 0 .../app/error/404/error-404-component.scss | 0 .../src/app/error/404/error-404.component.ts | 0 .../app/error/503/error-503-component.html | 0 .../app/error/503/error-503-component.scss | 0 .../src/app/error/503/error-503.component.ts | 0 ng6-seed/src/app/error/error.module.ts | 0 ng6-seed/src/app/error/error.routing.ts | 0 .../layouts/admin/admin-layout.component.html | 1118 ++++---- .../layouts/admin/admin-layout.component.ts | 107 +- .../layouts/auth/auth-layout.component.html | 0 .../app/layouts/auth/auth-layout.component.ts | 0 .../app/layouts/role-menu-items.pipe.spec.ts | 8 + .../src/app/layouts/role-menu-items.pipe.ts | 51 + .../get-geometric-location.service.spec.ts | 12 + .../get-geometric-location.service.ts | 24 + .../list-pd/add-pd/add-pd.component.html | 358 +++ .../list-pd/add-pd/add-pd.component.scss | 7 + .../list-pd/add-pd/add-pd.component.spec.ts} | 12 +- .../list-pd/add-pd/add-pd.component.ts | 743 ++++++ .../list-pd/all-pd/all-pd.component.html | 153 ++ .../list-pd/all-pd/all-pd.component.scss | 21 + .../list-pd/all-pd/all-pd.component.spec.ts} | 12 +- .../list-pd/all-pd/all-pd.component.ts | 223 ++ .../completed-pd/completed-pd.component.html | 126 + .../completed-pd/completed-pd.component.scss | 19 + .../completed-pd.component.spec.ts} | 12 +- .../completed-pd/completed-pd.component.ts | 236 ++ .../edit-pd-applicant.component.html | 120 + .../edit-pd-applicant.component.scss | 8 + .../edit-pd-applicant.component.spec.ts} | 12 +- .../edit-pd-applicant.component.ts | 326 +++ .../edit-pd-master.component.html | 233 ++ .../edit-pd-master.component.scss | 18 + .../edit-pd-master.component.spec.ts} | 12 +- .../edit-pd-master.component.ts | 628 +++++ .../initiate-additional-pd.component.html | 41 + .../initiate-additional-pd.component.scss | 7 + .../initiate-additional-pd.component.spec.ts | 25 + .../initiate-additional-pd.component.ts | 116 + .../inprogress-pd.component.html | 122 + .../inprogress-pd.component.scss | 19 + .../inprogress-pd.component.spec.ts} | 12 +- .../inprogress-pd/inprogress-pd.component.ts | 224 ++ .../manage-pd/list-pd/list-pd.component.html | 50 + .../manage-pd/list-pd/list-pd.component.scss | 27 + .../list-pd/list-pd.component.spec.ts} | 12 +- .../manage-pd/list-pd/list-pd.component.ts | 96 + .../map-pd-view/map-pd-view.component.html | 100 + .../map-pd-view/map-pd-view.component.scss | 45 + .../map-pd-view.component.spec.ts} | 12 +- .../map-pd-view/map-pd-view.component.ts | 162 ++ .../model-edit-pd-report.component.html | 23 + .../model-edit-pd-report.component.scss | 8 + .../model-edit-pd-report.component.spec.ts | 25 + .../model-edit-pd-report.component.ts | 97 + .../pd-report/pd-report.component.html | 107 + .../pd-report/pd-report.component.scss | 128 + .../pd-report/pd-report.component.spec.ts} | 12 +- .../list-pd/pd-report/pd-report.component.ts | 329 +++ .../qc-review/qc-review.component.html | 49 + .../qc-review/qc-review.component.scss} | 0 .../qc-review/qc-review.component.spec.ts | 25 + .../qc-review/qc-review.component.ts | 109 + .../pd-requirement.component.html | 38 + .../pd-requirement.component.scss | 7 + .../pd-requirement.component.spec.ts} | 12 +- .../pd-requirement.component.ts | 111 + .../pd-status-change-dialogue.component.html | 30 + .../pd-status-change-dialogue.component.scss} | 0 ...d-status-change-dialogue.component.spec.ts | 25 + .../pd-status-change-dialogue.component.ts | 79 + .../qc-completed-pd.component.html | 124 + .../qc-completed-pd.component.scss | 19 + .../qc-completed-pd.component.spec.ts | 25 + .../qc-completed-pd.component.ts | 207 ++ .../scheduled-pd/scheduled-pd.component.html | 126 + .../scheduled-pd/scheduled-pd.component.scss | 19 + .../scheduled-pd.component.spec.ts} | 12 +- .../scheduled-pd/scheduled-pd.component.ts | 225 ++ .../smart-pd-allocation.component.html | 103 + .../smart-pd-allocation.component.scss | 14 + .../smart-pd-allocation.component.spec.ts} | 12 +- .../smart-pd-allocation.component.ts | 108 + .../tele-pd-allocation.component.html | 67 + .../tele-pd-allocation.component.scss | 14 + .../tele-pd-allocation.component.spec.ts} | 12 +- .../tele-pd-allocation.component.ts | 80 + .../list-pd/view-pd/view-pd.component.html | 395 +++ .../list-pd/view-pd/view-pd.component.scss | 53 + .../list-pd/view-pd/view-pd.component.spec.ts | 25 + .../list-pd/view-pd/view-pd.component.ts | 413 +++ .../manage-pd/manage-pd.component.html | 3 + .../manage-pd/manage-pd.component.scss} | 0 .../manage-pd/manage-pd.component.spec.ts | 25 + .../manage-pd/manage-pd.component.ts | 10 + .../manage-pd/manage-pd.module.spec.ts | 13 + .../manage-pd/manage-pd.module.ts | 212 ++ .../manage-pd/manage-pd.routing.ts | 51 + .../pd-located-map-view.directive.ts | 50 + .../view-location.component.html | 30 + .../view-location.component.scss | 48 + .../view-location.component.spec.ts} | 12 +- .../view-location/view-location.component.ts | 30 + .../delete-records-count.pipe.spec.ts | 8 + .../pd-pipes/delete-records-count.pipe.ts | 18 + .../get-answerable-forms.pipe.spec.ts | 8 + .../pd-pipes/get-answerable-forms.pipe.ts | 17 + .../pd-pipes/number-to-words.pipe.spec.ts | 8 + .../pd-pipes/number-to-words.pipe.ts | 139 + .../rupee-currency-format.pipe.spec.ts | 8 + .../pd-pipes/rupee-currency-format.pipe.ts | 28 + .../pd-pipes/search-relation.pipe.spec.ts | 8 + .../pd-pipes/search-relation.pipe.ts | 23 + .../pd-service/pd-triger.service.spec.ts | 12 + .../pd-service/pd-triger.service.ts | 740 ++++++ .../personal-discussion.module.spec.ts | 13 + .../personal-discussion.module.ts | 55 + .../personal-discussion.routing.ts | 18 + .../qc-list/qc-list.component.html | 31 + .../qc-list/qc-list.component.scss | 23 + .../qc-list/qc-list.component.spec.ts | 25 + .../qc-list/qc-list.component.ts | 71 + .../model-edit-pd-report.component.html | 22 + .../model-edit-pd-report.component.scss | 8 + .../model-edit-pd-report.component.spec.ts | 25 + .../model-edit-pd-report.component.ts | 98 + .../qc-pd-report/qc-pd-report.component.html | 110 + .../qc-pd-report/qc-pd-report.component.scss | 128 + .../qc-pd-report.component.spec.ts} | 12 +- .../qc-pd-report/qc-pd-report.component.ts | 334 +++ .../qc-review/qc-review.component.html | 49 + .../qc-review/qc-review.component.scss} | 0 .../qc-review/qc-review.component.spec.ts | 25 + .../qc-review/qc-review.component.ts | 109 + .../qc-list/qc-view/qc-view.component.html | 385 +++ .../qc-list/qc-view/qc-view.component.scss | 44 + .../qc-list/qc-view/qc-view.component.spec.ts | 25 + .../qc-list/qc-view/qc-view.component.ts | 203 ++ .../qc-service/qc.service.spec.ts | 12 + .../quality-check/qc-service/qc.service.ts | 595 +++++ .../quality-check-routing.module.ts | 39 + .../quality-check.component.html | 3 + .../quality-check.component.scss} | 0 .../quality-check.component.spec.ts} | 12 +- .../quality-check/quality-check.component.ts | 15 + .../quality-check.module.spec.ts | 13 + .../app/quality-check/quality-check.module.ts | 124 + .../app/reports/pd-mis/pd-mis.component.html | 222 ++ .../app/reports/pd-mis/pd-mis.component.scss | 64 + .../reports/pd-mis/pd-mis.component.spec.ts | 25 + .../app/reports/pd-mis/pd-mis.component.ts | 239 ++ .../src/app/reports/reports-routing.module.ts | 16 + .../src/app/reports/reports.module.spec.ts | 13 + ng6-seed/src/app/reports/reports.module.ts | 60 + .../src/app/reports/reports.service.spec.ts | 12 + ng6-seed/src/app/reports/reports.service.ts | 29 + .../forgot-password-component.html | 0 .../forgot-password-component.scss | 0 .../forgot-password.component.ts | 0 .../lockscreen/lockscreen-component.html | 0 .../lockscreen/lockscreen-component.scss | 0 .../lockscreen/lockscreen.component.ts | 0 .../app/session/login/login-component.html | 37 +- .../app/session/login/login-component.scss | 41 + .../src/app/session/login/login.component.ts | 31 +- .../session/register/register-component.html | 0 .../session/register/register-component.scss | 0 .../session/register/register.component.ts | 0 ng6-seed/src/app/session/session.module.ts | 0 ng6-seed/src/app/session/session.routing.ts | 0 .../branch-dialog.component.html | 65 - .../branch-dialog.component.scss | 8 - .../branch-dialog/branch-dialog.component.ts | 86 - .../branch-list/branch-list.component.html | 84 - .../branch-list/branch-list.component.scss | 97 - .../branch-list/branch-list.component.ts | 118 - .../city-dialog/city-dialog.component.html | 56 - .../city-dialog/city-dialog.component.scss | 3 - .../city/city-dialog/city-dialog.component.ts | 83 - .../city/city-list/city-list.component.html | 76 - .../city/city-list/city-list.component.scss | 69 - .../city/city-list/city-list.component.ts | 107 - ...comments-on-locality-dialog.component.html | 42 - ...comments-on-locality-dialog.component.scss | 3 - ...ments-on-locality-dialog.component.spec.ts | 25 - .../comments-on-locality-dialog.component.ts | 58 - .../comments-on-locality-list.component.html | 65 - .../comments-on-locality-list.component.scss | 93 - ...omments-on-locality-list.component.spec.ts | 25 - .../comments-on-locality-list.component.ts | 107 - .../company-dialog.component.html | 114 - .../company-dialog.component.ts | 113 - .../company-list/company-list.component.html | 100 - .../company-list/company-list.component.scss | 93 - .../company-list/company-list.component.ts | 109 - .../customer-behaviour-dialog.component.html | 43 - .../customer-behaviour-dialog.component.scss | 3 - ...ustomer-behaviour-dialog.component.spec.ts | 25 - .../customer-behaviour-dialog.component.ts | 68 - .../customer-behaviour-list.component.html | 65 - .../customer-behaviour-list.component.scss | 93 - .../customer-behaviour-list.component.spec.ts | 25 - .../customer-behaviour-list.component.ts | 108 - .../customer-segment-dialog.component.html | 49 - .../customer-segment-dialog.component.scss | 3 - .../customer-segment-dialog.component.spec.ts | 25 - .../customer-segment-dialog.component.ts | 74 - .../customer-segment-list.component.html | 70 - .../customer-segment-list.component.scss | 93 - .../customer-segment-list.component.spec.ts | 25 - .../customer-segment-list.component.ts | 107 - .../designation-dialog.component.html | 51 - .../designation-dialog.component.scss | 3 - .../designation-dialog.component.ts | 73 - .../designation-list.component.html | 70 - .../designation-list.component.scss | 93 - .../designation-list.component.spec.ts | 25 - .../designation-list.component.ts | 109 - .../frequency-dialog.component.html | 40 - .../frequency-dialog.component.scss | 3 - .../frequency-dialog.component.spec.ts | 25 - .../frequency-dialog.component.ts | 64 - .../frequency-list.component.html | 79 - .../frequency-list.component.scss | 122 - .../frequency-list.component.ts | 110 - ...ustry_classification-dialog.component.html | 42 - ...ustry_classification-dialog.component.scss | 3 - ...ry_classification-dialog.component.spec.ts | 25 - ...ndustry_classification-dialog.component.ts | 64 - ...ndustry_classification-list.component.html | 79 - ...ndustry_classification-list.component.scss | 118 - .../industry_classification-list.component.ts | 126 - .../lender-hierarchy-dialog.component.html | 39 - .../lender-hierarchy-dialog.component.scss | 3 - .../lender-hierarchy-dialog.component.spec.ts | 25 - .../lender-hierarchy-dialog.component.ts | 73 - .../lender-hierarchy-list.component.html | 64 - .../lender-hierarchy-list.component.scss | 93 - .../lender-hierarchy-list.component.spec.ts | 25 - .../lender-hierarchy-list.component.ts | 108 - .../members-occupation-dialog.component.html | 41 - .../members-occupation-dialog.component.scss | 3 - ...embers-occupation-dialog.component.spec.ts | 25 - .../members-occupation-dialog.component.ts | 63 - .../members-occupation-list.component.html | 84 - .../members-occupation-list.component.scss | 59 - .../members-occupation-list.component.spec.ts | 25 - .../members-occupation-list.component.ts | 111 - .../pd-allocation-type-dialog.component.html | 40 - .../pd-allocation-type-dialog.component.scss | 3 - ...d-allocation-type-dialog.component.spec.ts | 25 - .../pd-allocation-type-dialog.component.ts | 73 - .../pd-allocation-type-list.component.html | 64 - .../pd-allocation-type-list.component.scss | 93 - .../pd-allocation-type-list.component.spec.ts | 25 - .../pd-allocation-type-list.component.ts | 109 - ...pd-location-approach-dialog.component.html | 42 - ...pd-location-approach-dialog.component.scss | 3 - ...location-approach-dialog.component.spec.ts | 25 - .../pd-location-approach-dialog.component.ts | 75 - .../pd-location-approach-list.component.html | 67 - .../pd-location-approach-list.component.scss | 93 - ...d-location-approach-list.component.spec.ts | 25 - .../pd-location-approach-list.component.ts | 112 - .../pd-type-dialog.component.html | 43 - .../pd-type-dialog.component.scss | 3 - .../pd-type-dialog.component.ts | 65 - .../pd-type-list/pd-type-list.component.html | 64 - .../pd-type-list/pd-type-list.component.scss | 93 - .../pd-type-list.component.spec.ts | 25 - .../pd/pd-type-list/pd-type-list.component.ts | 111 - .../product-dialog.component.html | 46 - .../product-dialog.component.scss | 8 - .../product-dialog.component.spec.ts | 25 - .../product-dialog.component.ts | 55 - .../product-list/product-list.component.html | 309 --- .../product-list/product-list.component.scss | 92 - .../product-list/product-list.component.ts | 159 -- .../regions-dialog.component.html | 42 - .../regions-dialog.component.scss | 3 - .../regions-dialog.component.spec.ts | 25 - .../regions-dialog.component.ts | 66 - .../regions-list/regions-list.component.html | 65 - .../regions-list/regions-list.component.scss | 93 - .../regions-list/regions-list.component.ts | 109 - .../relation-ship-dialog.component.html | 41 - .../relation-ship-dialog.component.scss | 3 - .../relation-ship-dialog.component.ts | 64 - .../relation-ship-list.component.html | 85 - .../relation-ship-list.component.scss | 120 - .../relation-ship-list.component.ts | 116 - .../states-dialog.component.html | 66 - .../states-dialog.component.scss | 3 - .../states-dialog/states-dialog.component.ts | 106 - .../states-list/states-list.component.html | 105 - .../states-list/states-list.component.scss | 93 - .../states-list/states-list.component.spec.ts | 25 - .../states-list/states-list.component.ts | 110 - .../sub-product-dialog.component.html | 75 - .../sub-product-dialog.component.scss | 4 - .../sub-product-dialog.component.spec.ts | 25 - .../sub-product-dialog.component.ts | 74 - .../sub-product-list.component.html | 95 - .../sub-product-list.component.scss | 120 - .../sub-product-list.component.spec.ts | 25 - .../sub-product-list.component.ts | 111 - .../title-dialog/title-dialog.component.html | 41 - .../title-dialog/title-dialog.component.scss | 3 - .../title-dialog.component.spec.ts | 25 - .../title-dialog/title-dialog.component.ts | 63 - .../title-list/title-list.component.html | 85 - .../title-list/title-list.component.scss | 119 - .../title/title-list/title-list.component.ts | 112 - .../activity-dialog.component.html | 41 - .../activity-dialog.component.scss | 3 - .../activity-dialog.component.ts | 64 - .../activity-list.component.html | 79 - .../activity-list.component.scss | 118 - .../activity-list/activity-list.component.ts | 104 - .../uom/uom-dialog/uom-dialog.component.html | 40 - .../uom-dialog/uom-dialog.component.spec.ts | 25 - .../uom/uom-dialog/uom-dialog.component.ts | 65 - .../uom/uom-list/uom-list.component.html | 79 - .../uom/uom-list/uom-list.component.scss | 118 - .../uom/uom-list/uom-list.component.ts | 115 - .../settings/masters/masters.component.html | 145 -- .../settings/masters/masters.component.scss | 3 - .../app/settings/masters/masters.component.ts | 198 -- .../settings/masters/masters.module.spec.ts | 14 - .../app/settings/masters/masters.module.ts | 184 -- .../app/settings/masters/masters.routing.ts | 12 - .../app/settings/masters/model/activity.ts | 11 - .../src/app/settings/masters/model/branch.ts | 24 - .../src/app/settings/masters/model/city.ts | 4 - .../masters/model/comments-on-locality.ts | 3 - .../src/app/settings/masters/model/company.ts | 3 - .../masters/model/customer-behaviour.ts | 4 - .../masters/model/customer-segment.ts | 3 - .../app/settings/masters/model/designation.ts | 4 - .../app/settings/masters/model/entity-type.ts | 3 - .../app/settings/masters/model/frequency.ts | 6 - .../masters/model/industry_classification.ts | 16 - .../masters/model/lender-hierarchy.ts | 4 - .../masters/model/members-occupation.ts | 11 - ng6-seed/src/app/settings/masters/model/pd.ts | 15 - .../settings/masters/model/product-master.ts | 16 - .../src/app/settings/masters/model/regions.ts | 3 - .../settings/masters/model/relation-ship.ts | 6 - .../src/app/settings/masters/model/states.ts | 3 - .../masters/model/sub-product-master.ts | 8 - .../src/app/settings/masters/model/title.ts | 6 - .../src/app/settings/masters/model/uom.ts | 6 - .../src/app/settings/masters/model/user.ts | 8 - .../settings/register/register.component.html | 3 - .../settings/register/register.component.ts | 15 - .../src/app/settings/service/user.service.ts | 227 +- .../src/app/settings/settings.module.spec.ts | 13 - ng6-seed/src/app/settings/settings.module.ts | 51 +- ng6-seed/src/app/settings/settings.routing.ts | 29 +- .../src/app/settings/user/user.component.html | 5 - .../src/app/settings/user/user.component.ts | 21 - .../users/user-profile/changePassword.html | 0 .../user-profile/user-profile-component.html | 43 + .../user-profile/user-profile-component.scss | 0 .../user-profile/user-profile.component.ts | 129 + .../src/app/settings/users/users.module.ts | 45 + .../src/app/settings/users/users.routing.ts | 13 + .../shared/accordion/accordion.directive.ts | 0 .../accordion/accordionanchor.directive.ts | 0 .../accordion/accordionlink.directive.ts | 0 ng6-seed/src/app/shared/accordion/index.ts | 0 ng6-seed/src/app/shared/demo.module.ts | 0 .../for-mobile-numbers.directive.ts | 19 + .../fullscreen/toggle-fullscreen.directive.ts | 0 .../menu-items/horizontal-menu-items.ts | 204 +- .../src/app/shared/menu-items/menu-items.ts | 100 +- .../numbers-only/numbers-only.directive.ts | 31 + .../app/shared/rating/rating.component.html | 16 + .../app/shared/rating/rating.component.scss | 48 + .../shared/rating/rating.component.spec.ts | 25 + .../src/app/shared/rating/rating.component.ts | 30 + ng6-seed/src/app/shared/shared.module.ts | 13 +- .../template/questions/add/add.component.html | 92 + .../template/questions/add/add.component.scss | 3 + .../questions/add/add.component.spec.ts} | 12 +- .../template/questions/add/add.component.ts | 180 ++ .../questions/edit/edit.component.html | 110 + .../questions/edit/edit.component.scss | 3 + .../questions/edit/edit.component.spec.ts | 25 + .../template/questions/edit/edit.component.ts | 217 ++ .../questions/list/list.component.html | 130 + .../questions/list/list.component.scss | 54 + .../questions/list/list.component.spec.ts | 25 + .../template/questions/list/list.component.ts | 142 ++ .../template/questions/questions.module.ts | 110 + .../template/questions/questions.routing.ts | 19 + .../service/masters/masters.service.spec.ts | 0 .../service/masters/masters.service.ts | 40 +- .../questions/questions.service.spec.ts | 12 + .../service/questions/questions.service.ts | 74 + .../templates/templates.service.spec.ts | 12 + .../service/templates/templates.service.ts | 162 ++ ng6-seed/src/app/template/template.module.ts | 62 + ng6-seed/src/app/template/template.routing.ts | 14 + .../edit-category.component.html | 36 + .../edit-category.component.scss | 1 + .../edit-category.component.spec.ts | 25 + .../edit-category/edit-category.component.ts | 246 ++ .../edit-lender/edit-lender.component.html | 54 + .../edit-lender/edit-lender.component.scss | 0 .../edit-lender.component.spec.ts} | 12 +- .../edit/edit-lender/edit-lender.component.ts | 238 ++ .../category-question-answer.component.html | 74 + .../category-question-answer.component.scss | 8 + ...category-question-answer.component.spec.ts | 25 + .../category-question-answer.component.ts | 390 +++ .../dialog-category-question-list.html | 22 + .../edit-question-answer.component.html | 17 + .../edit-question-answer.component.scss | 0 .../edit-question-answer.component.spec.ts} | 12 +- .../edit-question-answer.component.ts | 66 + .../report-template.component.html | 16 + .../report-template.component.scss | 0 .../report-template.component.spec.ts} | 12 +- .../report-template.component.ts | 92 + .../template-forms.component.html | 9 + .../template-forms.component.scss | 7 + .../template-forms.component.spec.ts} | 12 +- .../template-forms.component.ts | 77 + .../edit/templates.edit.component.html | 62 + .../edit/templates.edit.component.ts | 135 + .../templates-add.component.html | 26 + .../templates-add.component.scss | 0 .../templates-add.component.spec.ts | 25 + .../templates-add/templates-add.component.ts | 87 + .../templates.list.component.html | 75 + .../templates.list.component.scss | 51 + .../templates.list.component.ts | 241 ++ .../template/templates/templates.component.ts | 10 + .../template/templates/templates.module.ts | 134 + .../template/templates/templates.routing.ts | 36 + ng6-seed/src/assets/data/100k.json | 0 ng6-seed/src/assets/data/company.json | 0 ng6-seed/src/assets/data/projects.json | 0 ng6-seed/src/assets/data/security.json | 0 .../assets/fonts/data-table/data-table.eot | Bin .../assets/fonts/data-table/data-table.svg | 0 .../assets/fonts/data-table/data-table.ttf | Bin .../assets/fonts/data-table/data-table.woff | Bin .../src/assets/fonts/data-table/icons.css | 0 ng6-seed/src/assets/fonts/pe/css/helper.css | 0 .../src/assets/fonts/pe/css/helper.min.css | 0 .../fonts/pe/css/pe-icon-set-weather.css | 0 .../fonts/pe/css/pe-icon-set-weather.min.css | 0 .../fonts/pe/fonts/pe-icon-set-weather.eot | Bin .../fonts/pe/fonts/pe-icon-set-weather.svg | 0 .../fonts/pe/fonts/pe-icon-set-weather.ttf | Bin .../fonts/pe/fonts/pe-icon-set-weather.woff | Bin ng6-seed/src/assets/images/PD.jpeg | Bin 0 -> 40636 bytes ng6-seed/src/assets/images/bg.png | Bin 0 -> 1315 bytes ng6-seed/src/assets/images/login_n.jpg | Bin 0 -> 140777 bytes ng6-seed/src/assets/styles/app.scss | 7 + .../assets/styles/scss/_app.variables.scss | 2 +- ng6-seed/src/assets/styles/scss/_core.scss | 0 .../src/assets/styles/scss/_material.scss | 0 .../assets/styles/scss/_material.themes.scss | 0 .../styles/scss/_material.variables.scss | 12 +- ng6-seed/src/assets/styles/scss/_mixins.scss | 0 .../styles/scss/components/_calendar.scss | 0 .../assets/styles/scss/components/_chat.scss | 0 .../styles/scss/components/_custom.scss | 0 .../styles/scss/components/_editor.scss | 0 .../styles/scss/components/_messages.scss | 0 .../scss/components/_perfect-scrollbar.scss | 0 .../styles/scss/components/_pricing.scss | 0 .../styles/scss/components/_social.scss | 0 .../assets/styles/scss/components/_table.scss | 0 .../styles/scss/components/_timeline.scss | 0 .../styles/scss/components/_treeview.scss | 0 .../styles/scss/components/_upload.scss | 0 .../assets/styles/scss/core/_main-header.scss | 4 +- .../assets/styles/scss/core/_main-panel.scss | 0 .../styles/scss/core/_main-sidebar.scss | 4 +- .../scss/core/_notification-sidebar.scss | 0 .../assets/styles/scss/core/_scaffolding.scss | 0 .../assets/styles/scss/core/_sessions.scss | 0 .../assets/styles/scss/core/_typography.scss | 0 .../assets/styles/scss/material/_buttons.scss | 4 + .../assets/styles/scss/material/_cards.scss | 0 .../assets/styles/scss/material/_dialog.scss | 0 .../assets/styles/scss/material/_lists.scss | 0 .../assets/styles/scss/material/_menus.scss | 0 .../assets/styles/scss/material/_select.scss | 0 .../assets/styles/scss/material/_tabs.scss | 0 .../styles/scss/mixins/_breakpoints.scss | 0 .../assets/styles/scss/mixins/_clearfix.scss | 0 .../src/assets/styles/scss/mixins/_flex.scss | 0 .../src/assets/styles/scss/mixins/_hover.scss | 0 .../src/assets/styles/scss/mixins/_misc.scss | 0 .../styles/scss/mixins/_text-emphasis.scss | 0 .../scss/mixins/bi-app/_bi-app-ltr.scss | 0 .../scss/mixins/bi-app/_bi-app-rtl.scss | 0 .../styles/scss/mixins/bi-app/_mixins.scss | 0 .../scss/mixins/bi-app/_variables-ltr.scss | 0 .../scss/mixins/bi-app/_variables-rtl.scss | 0 .../styles/scss/utilities/_background.scss | 0 .../styles/scss/utilities/_general.scss | 0 .../styles/scss/utilities/_spacing.scss | 0 .../assets/styles/scss/utilities/_text.scss | 0 .../styles/scss/utilities/utilities.scss | 0 ng6-seed/src/assets/vendor/pace/.bower.json | 0 ng6-seed/src/assets/vendor/pace/LICENSE | 0 ng6-seed/src/assets/vendor/pace/README.md | 0 ng6-seed/src/assets/vendor/pace/bower.json | 0 ng6-seed/src/assets/vendor/pace/install.json | 0 ng6-seed/src/assets/vendor/pace/pace.coffee | 0 ng6-seed/src/assets/vendor/pace/pace.js | 0 ng6-seed/src/assets/vendor/pace/pace.min.js | 0 .../themes/black/pace-theme-barber-shop.css | 0 .../themes/black/pace-theme-big-counter.css | 0 .../pace/themes/black/pace-theme-bounce.css | 0 .../themes/black/pace-theme-center-atom.css | 0 .../themes/black/pace-theme-center-circle.css | 0 .../themes/black/pace-theme-center-radar.css | 0 .../themes/black/pace-theme-center-simple.css | 0 .../black/pace-theme-corner-indicator.css | 0 .../themes/black/pace-theme-fill-left.css | 0 .../pace/themes/black/pace-theme-flash.css | 0 .../pace/themes/black/pace-theme-flat-top.css | 0 .../themes/black/pace-theme-loading-bar.css | 0 .../pace/themes/black/pace-theme-mac-osx.css | 0 .../pace/themes/black/pace-theme-minimal.css | 0 .../themes/blue/pace-theme-barber-shop.css | 0 .../themes/blue/pace-theme-big-counter.css | 0 .../pace/themes/blue/pace-theme-bounce.css | 0 .../themes/blue/pace-theme-center-atom.css | 0 .../themes/blue/pace-theme-center-circle.css | 0 .../themes/blue/pace-theme-center-radar.css | 0 .../themes/blue/pace-theme-center-simple.css | 0 .../blue/pace-theme-corner-indicator.css | 0 .../pace/themes/blue/pace-theme-fill-left.css | 0 .../pace/themes/blue/pace-theme-flash.css | 0 .../pace/themes/blue/pace-theme-flat-top.css | 0 .../themes/blue/pace-theme-loading-bar.css | 0 .../pace/themes/blue/pace-theme-mac-osx.css | 0 .../pace/themes/blue/pace-theme-minimal.css | 0 .../themes/green/pace-theme-barber-shop.css | 0 .../themes/green/pace-theme-big-counter.css | 0 .../pace/themes/green/pace-theme-bounce.css | 0 .../themes/green/pace-theme-center-atom.css | 0 .../themes/green/pace-theme-center-circle.css | 0 .../themes/green/pace-theme-center-radar.css | 0 .../themes/green/pace-theme-center-simple.css | 0 .../green/pace-theme-corner-indicator.css | 0 .../themes/green/pace-theme-fill-left.css | 0 .../pace/themes/green/pace-theme-flash.css | 0 .../pace/themes/green/pace-theme-flat-top.css | 0 .../themes/green/pace-theme-loading-bar.css | 0 .../pace/themes/green/pace-theme-mac-osx.css | 0 .../pace/themes/green/pace-theme-minimal.css | 0 .../themes/orange/pace-theme-barber-shop.css | 0 .../themes/orange/pace-theme-big-counter.css | 0 .../pace/themes/orange/pace-theme-bounce.css | 0 .../themes/orange/pace-theme-center-atom.css | 0 .../orange/pace-theme-center-circle.css | 0 .../themes/orange/pace-theme-center-radar.css | 0 .../orange/pace-theme-center-simple.css | 0 .../orange/pace-theme-corner-indicator.css | 0 .../themes/orange/pace-theme-fill-left.css | 0 .../pace/themes/orange/pace-theme-flash.css | 0 .../themes/orange/pace-theme-flat-top.css | 0 .../themes/orange/pace-theme-loading-bar.css | 0 .../pace/themes/orange/pace-theme-mac-osx.css | 0 .../pace/themes/orange/pace-theme-minimal.css | 0 .../themes/pink/pace-theme-barber-shop.css | 0 .../themes/pink/pace-theme-big-counter.css | 0 .../pace/themes/pink/pace-theme-bounce.css | 0 .../themes/pink/pace-theme-center-atom.css | 0 .../themes/pink/pace-theme-center-circle.css | 0 .../themes/pink/pace-theme-center-radar.css | 0 .../themes/pink/pace-theme-center-simple.css | 0 .../pink/pace-theme-corner-indicator.css | 0 .../pace/themes/pink/pace-theme-fill-left.css | 0 .../pace/themes/pink/pace-theme-flash.css | 0 .../pace/themes/pink/pace-theme-flat-top.css | 0 .../themes/pink/pace-theme-loading-bar.css | 0 .../pace/themes/pink/pace-theme-mac-osx.css | 0 .../pace/themes/pink/pace-theme-minimal.css | 0 .../themes/purple/pace-theme-barber-shop.css | 0 .../themes/purple/pace-theme-big-counter.css | 0 .../pace/themes/purple/pace-theme-bounce.css | 0 .../themes/purple/pace-theme-center-atom.css | 0 .../purple/pace-theme-center-circle.css | 0 .../themes/purple/pace-theme-center-radar.css | 0 .../purple/pace-theme-center-simple.css | 0 .../purple/pace-theme-corner-indicator.css | 0 .../themes/purple/pace-theme-fill-left.css | 0 .../pace/themes/purple/pace-theme-flash.css | 0 .../themes/purple/pace-theme-flat-top.css | 0 .../themes/purple/pace-theme-loading-bar.css | 0 .../pace/themes/purple/pace-theme-mac-osx.css | 0 .../pace/themes/purple/pace-theme-minimal.css | 0 .../themes/red/pace-theme-barber-shop.css | 0 .../themes/red/pace-theme-big-counter.css | 0 .../pace/themes/red/pace-theme-bounce.css | 0 .../themes/red/pace-theme-center-atom.css | 0 .../themes/red/pace-theme-center-circle.css | 0 .../themes/red/pace-theme-center-radar.css | 0 .../themes/red/pace-theme-center-simple.css | 0 .../red/pace-theme-corner-indicator.css | 0 .../pace/themes/red/pace-theme-fill-left.css | 0 .../pace/themes/red/pace-theme-flash.css | 0 .../pace/themes/red/pace-theme-flat-top.css | 0 .../themes/red/pace-theme-loading-bar.css | 0 .../pace/themes/red/pace-theme-mac-osx.css | 0 .../pace/themes/red/pace-theme-minimal.css | 0 .../themes/silver/pace-theme-barber-shop.css | 0 .../themes/silver/pace-theme-big-counter.css | 0 .../pace/themes/silver/pace-theme-bounce.css | 0 .../themes/silver/pace-theme-center-atom.css | 0 .../silver/pace-theme-center-circle.css | 0 .../themes/silver/pace-theme-center-radar.css | 0 .../silver/pace-theme-center-simple.css | 0 .../silver/pace-theme-corner-indicator.css | 0 .../themes/silver/pace-theme-fill-left.css | 0 .../pace/themes/silver/pace-theme-flash.css | 0 .../themes/silver/pace-theme-flat-top.css | 0 .../themes/silver/pace-theme-loading-bar.css | 0 .../pace/themes/silver/pace-theme-mac-osx.css | 0 .../pace/themes/silver/pace-theme-minimal.css | 0 .../themes/white/pace-theme-barber-shop.css | 0 .../themes/white/pace-theme-big-counter.css | 0 .../pace/themes/white/pace-theme-bounce.css | 0 .../themes/white/pace-theme-center-atom.css | 0 .../themes/white/pace-theme-center-circle.css | 0 .../themes/white/pace-theme-center-radar.css | 0 .../themes/white/pace-theme-center-simple.css | 0 .../white/pace-theme-corner-indicator.css | 0 .../themes/white/pace-theme-fill-left.css | 0 .../pace/themes/white/pace-theme-flash.css | 0 .../pace/themes/white/pace-theme-flat-top.css | 0 .../themes/white/pace-theme-loading-bar.css | 0 .../pace/themes/white/pace-theme-mac-osx.css | 0 .../pace/themes/white/pace-theme-minimal.css | 0 .../themes/yellow/pace-theme-barber-shop.css | 0 .../themes/yellow/pace-theme-big-counter.css | 0 .../pace/themes/yellow/pace-theme-bounce.css | 0 .../themes/yellow/pace-theme-center-atom.css | 0 .../yellow/pace-theme-center-circle.css | 0 .../themes/yellow/pace-theme-center-radar.css | 0 .../yellow/pace-theme-center-simple.css | 0 .../yellow/pace-theme-corner-indicator.css | 0 .../themes/yellow/pace-theme-fill-left.css | 0 .../pace/themes/yellow/pace-theme-flash.css | 0 .../themes/yellow/pace-theme-flat-top.css | 0 .../themes/yellow/pace-theme-loading-bar.css | 0 .../pace/themes/yellow/pace-theme-mac-osx.css | 0 .../pace/themes/yellow/pace-theme-minimal.css | 0 ng6-seed/src/environments/environment.prod.ts | 3 +- ng6-seed/src/environments/environment.ts | 2 +- ng6-seed/src/favicon.ico | Bin 5430 -> 1522 bytes ng6-seed/src/index.html | 40 +- package-lock.json | 3 + 684 files changed, 20621 insertions(+), 13495 deletions(-) mode change 100644 => 100755 ng6-seed/angular.json mode change 100644 => 100755 ng6-seed/package-lock.json mode change 100644 => 100755 ng6-seed/package.json mode change 100644 => 100755 ng6-seed/src/app/AwsService/cognito.service.ts mode change 100644 => 100755 ng6-seed/src/app/_guard/auth.guard.ts mode change 100644 => 100755 ng6-seed/src/app/_guard/token.interceptor.ts mode change 100644 => 100755 ng6-seed/src/app/app.component.html mode change 100644 => 100755 ng6-seed/src/app/app.component.spec.ts mode change 100644 => 100755 ng6-seed/src/app/app.component.ts mode change 100644 => 100755 ng6-seed/src/app/app.module.ts mode change 100644 => 100755 ng6-seed/src/app/app.routing.ts mode change 100644 => 100755 ng6-seed/src/app/dashboard/dashboard.component.html mode change 100644 => 100755 ng6-seed/src/app/dashboard/dashboard.component.scss mode change 100644 => 100755 ng6-seed/src/app/dashboard/dashboard.component.ts mode change 100644 => 100755 ng6-seed/src/app/dashboard/dashboard.module.ts mode change 100644 => 100755 ng6-seed/src/app/dashboard/dashboard.routing.ts create mode 100755 ng6-seed/src/app/dashboard/dashboard.service.spec.ts create mode 100755 ng6-seed/src/app/dashboard/dashboard.service.ts mode change 100644 => 100755 ng6-seed/src/app/error/404/error-404-component.html mode change 100644 => 100755 ng6-seed/src/app/error/404/error-404-component.scss mode change 100644 => 100755 ng6-seed/src/app/error/404/error-404.component.ts mode change 100644 => 100755 ng6-seed/src/app/error/503/error-503-component.html mode change 100644 => 100755 ng6-seed/src/app/error/503/error-503-component.scss mode change 100644 => 100755 ng6-seed/src/app/error/503/error-503.component.ts mode change 100644 => 100755 ng6-seed/src/app/error/error.module.ts mode change 100644 => 100755 ng6-seed/src/app/error/error.routing.ts mode change 100644 => 100755 ng6-seed/src/app/layouts/admin/admin-layout.component.html mode change 100644 => 100755 ng6-seed/src/app/layouts/admin/admin-layout.component.ts mode change 100644 => 100755 ng6-seed/src/app/layouts/auth/auth-layout.component.html mode change 100644 => 100755 ng6-seed/src/app/layouts/auth/auth-layout.component.ts create mode 100644 ng6-seed/src/app/layouts/role-menu-items.pipe.spec.ts create mode 100644 ng6-seed/src/app/layouts/role-menu-items.pipe.ts create mode 100755 ng6-seed/src/app/personal-discussion/location-service/get-geometric-location.service.spec.ts create mode 100755 ng6-seed/src/app/personal-discussion/location-service/get-geometric-location.service.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/add-pd/add-pd.component.html create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/add-pd/add-pd.component.scss rename ng6-seed/src/app/{settings/masters/masters.component.spec.ts => personal-discussion/manage-pd/list-pd/add-pd/add-pd.component.spec.ts} (56%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/add-pd/add-pd.component.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/all-pd/all-pd.component.html create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/all-pd/all-pd.component.scss rename ng6-seed/src/app/{settings/masters/component/uom/uom-list/uom-list.component.spec.ts => personal-discussion/manage-pd/list-pd/all-pd/all-pd.component.spec.ts} (56%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/all-pd/all-pd.component.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/completed-pd/completed-pd.component.html create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/completed-pd/completed-pd.component.scss rename ng6-seed/src/app/{settings/masters/component/product/product-list/product-list.component.spec.ts => personal-discussion/manage-pd/list-pd/completed-pd/completed-pd.component.spec.ts} (54%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/completed-pd/completed-pd.component.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-applicant/edit-pd-applicant.component.html create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-applicant/edit-pd-applicant.component.scss rename ng6-seed/src/app/{settings/masters/component/company/company-list/company-list.component.spec.ts => personal-discussion/manage-pd/list-pd/edit-pd-applicant/edit-pd-applicant.component.spec.ts} (51%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-applicant/edit-pd-applicant.component.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-master/edit-pd-master.component.html create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-master/edit-pd-master.component.scss rename ng6-seed/src/app/{settings/masters/component/pd/pd-type-dialog/pd-type-dialog.component.spec.ts => personal-discussion/manage-pd/list-pd/edit-pd-master/edit-pd-master.component.spec.ts} (53%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-master/edit-pd-master.component.ts create mode 100644 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/initiate-additional-pd/initiate-additional-pd.component.html create mode 100644 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/initiate-additional-pd/initiate-additional-pd.component.scss create mode 100644 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/initiate-additional-pd/initiate-additional-pd.component.spec.ts create mode 100644 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/initiate-additional-pd/initiate-additional-pd.component.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/inprogress-pd/inprogress-pd.component.html create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/inprogress-pd/inprogress-pd.component.scss rename ng6-seed/src/app/{settings/masters/component/states/states-dialog/states-dialog.component.spec.ts => personal-discussion/manage-pd/list-pd/inprogress-pd/inprogress-pd.component.spec.ts} (53%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/inprogress-pd/inprogress-pd.component.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.html create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.scss rename ng6-seed/src/app/{settings/register/register.component.spec.ts => personal-discussion/manage-pd/list-pd/list-pd.component.spec.ts} (55%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/map-pd-view/map-pd-view.component.html create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/map-pd-view/map-pd-view.component.scss rename ng6-seed/src/app/{settings/masters/component/title/title-list/title-list.component.spec.ts => personal-discussion/manage-pd/list-pd/map-pd-view/map-pd-view.component.spec.ts} (54%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/map-pd-view/map-pd-view.component.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/model-edit-pd-report/model-edit-pd-report.component.html create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/model-edit-pd-report/model-edit-pd-report.component.scss create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/model-edit-pd-report/model-edit-pd-report.component.spec.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/model-edit-pd-report/model-edit-pd-report.component.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/pd-report.component.html create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/pd-report.component.scss rename ng6-seed/src/app/{settings/masters/component/city/city-list/city-list.component.spec.ts => personal-discussion/manage-pd/list-pd/pd-report/pd-report.component.spec.ts} (55%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/pd-report.component.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.html rename ng6-seed/src/app/{settings/masters/component/company/company-dialog/company-dialog.component.scss => personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.scss} (100%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.spec.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-requirement/pd-requirement.component.html create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-requirement/pd-requirement.component.scss rename ng6-seed/src/app/{settings/masters/component/company/company-dialog/company-dialog.component.spec.ts => personal-discussion/manage-pd/list-pd/pd-requirement/pd-requirement.component.spec.ts} (53%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-requirement/pd-requirement.component.ts create mode 100644 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-status-change-dialogue/pd-status-change-dialogue.component.html rename ng6-seed/src/app/{settings/masters/component/industry_classification/industry_classification-list/industry_classification-list.component.spec.ts => personal-discussion/manage-pd/list-pd/pd-status-change-dialogue/pd-status-change-dialogue.component.scss} (100%) create mode 100644 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-status-change-dialogue/pd-status-change-dialogue.component.spec.ts create mode 100644 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-status-change-dialogue/pd-status-change-dialogue.component.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/qc-completed-pd/qc-completed-pd.component.html create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/qc-completed-pd/qc-completed-pd.component.scss create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/qc-completed-pd/qc-completed-pd.component.spec.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/qc-completed-pd/qc-completed-pd.component.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/scheduled-pd/scheduled-pd.component.html create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/scheduled-pd/scheduled-pd.component.scss rename ng6-seed/src/app/{settings/masters/component/regions/regions-list/regions-list.component.spec.ts => personal-discussion/manage-pd/list-pd/scheduled-pd/scheduled-pd.component.spec.ts} (54%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/scheduled-pd/scheduled-pd.component.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/smart-pd-allocation/smart-pd-allocation.component.html create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/smart-pd-allocation/smart-pd-allocation.component.scss rename ng6-seed/src/app/{settings/masters/component/designation/designation-dialog/designation-dialog.component.spec.ts => personal-discussion/manage-pd/list-pd/smart-pd-allocation/smart-pd-allocation.component.spec.ts} (51%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/smart-pd-allocation/smart-pd-allocation.component.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/tele-pd-allocation/tele-pd-allocation.component.html create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/tele-pd-allocation/tele-pd-allocation.component.scss rename ng6-seed/src/app/{settings/masters/component/relation-ship/relation-ship-list/relation-ship-list.component.spec.ts => personal-discussion/manage-pd/list-pd/tele-pd-allocation/tele-pd-allocation.component.spec.ts} (53%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/tele-pd-allocation/tele-pd-allocation.component.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.html create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.scss create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.spec.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.component.html rename ng6-seed/src/app/{settings/masters/component/uom/uom-dialog/uom-dialog.component.scss => personal-discussion/manage-pd/manage-pd.component.scss} (100%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.component.spec.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.component.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.module.spec.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.module.ts create mode 100755 ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.routing.ts create mode 100644 ng6-seed/src/app/personal-discussion/pd-directive/pd-located-map-view.directive.ts create mode 100644 ng6-seed/src/app/personal-discussion/pd-directive/view-location/view-location.component.html create mode 100644 ng6-seed/src/app/personal-discussion/pd-directive/view-location/view-location.component.scss rename ng6-seed/src/app/{settings/masters/component/type-of-activity/activity-list/activity-list.component.spec.ts => personal-discussion/pd-directive/view-location/view-location.component.spec.ts} (53%) create mode 100644 ng6-seed/src/app/personal-discussion/pd-directive/view-location/view-location.component.ts create mode 100644 ng6-seed/src/app/personal-discussion/pd-pipes/delete-records-count.pipe.spec.ts create mode 100644 ng6-seed/src/app/personal-discussion/pd-pipes/delete-records-count.pipe.ts create mode 100644 ng6-seed/src/app/personal-discussion/pd-pipes/get-answerable-forms.pipe.spec.ts create mode 100644 ng6-seed/src/app/personal-discussion/pd-pipes/get-answerable-forms.pipe.ts create mode 100644 ng6-seed/src/app/personal-discussion/pd-pipes/number-to-words.pipe.spec.ts create mode 100644 ng6-seed/src/app/personal-discussion/pd-pipes/number-to-words.pipe.ts create mode 100644 ng6-seed/src/app/personal-discussion/pd-pipes/rupee-currency-format.pipe.spec.ts create mode 100644 ng6-seed/src/app/personal-discussion/pd-pipes/rupee-currency-format.pipe.ts create mode 100755 ng6-seed/src/app/personal-discussion/pd-pipes/search-relation.pipe.spec.ts create mode 100755 ng6-seed/src/app/personal-discussion/pd-pipes/search-relation.pipe.ts create mode 100755 ng6-seed/src/app/personal-discussion/pd-service/pd-triger.service.spec.ts create mode 100755 ng6-seed/src/app/personal-discussion/pd-service/pd-triger.service.ts create mode 100755 ng6-seed/src/app/personal-discussion/personal-discussion.module.spec.ts create mode 100755 ng6-seed/src/app/personal-discussion/personal-discussion.module.ts create mode 100755 ng6-seed/src/app/personal-discussion/personal-discussion.routing.ts create mode 100755 ng6-seed/src/app/quality-check/qc-list/qc-list.component.html create mode 100755 ng6-seed/src/app/quality-check/qc-list/qc-list.component.scss create mode 100755 ng6-seed/src/app/quality-check/qc-list/qc-list.component.spec.ts create mode 100755 ng6-seed/src/app/quality-check/qc-list/qc-list.component.ts create mode 100755 ng6-seed/src/app/quality-check/qc-list/qc-pd-report/model-edit-pd-report/model-edit-pd-report.component.html create mode 100755 ng6-seed/src/app/quality-check/qc-list/qc-pd-report/model-edit-pd-report/model-edit-pd-report.component.scss create mode 100755 ng6-seed/src/app/quality-check/qc-list/qc-pd-report/model-edit-pd-report/model-edit-pd-report.component.spec.ts create mode 100755 ng6-seed/src/app/quality-check/qc-list/qc-pd-report/model-edit-pd-report/model-edit-pd-report.component.ts create mode 100644 ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-pd-report.component.html create mode 100644 ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-pd-report.component.scss rename ng6-seed/src/app/{settings/masters/component/city/city-dialog/city-dialog.component.spec.ts => quality-check/qc-list/qc-pd-report/qc-pd-report.component.spec.ts} (54%) create mode 100644 ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-pd-report.component.ts create mode 100755 ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-review/qc-review.component.html rename ng6-seed/src/app/{settings/register/register.component.scss => quality-check/qc-list/qc-pd-report/qc-review/qc-review.component.scss} (100%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-review/qc-review.component.spec.ts create mode 100755 ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-review/qc-review.component.ts create mode 100755 ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.html create mode 100755 ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.scss create mode 100755 ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.spec.ts create mode 100755 ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.ts create mode 100755 ng6-seed/src/app/quality-check/qc-service/qc.service.spec.ts create mode 100755 ng6-seed/src/app/quality-check/qc-service/qc.service.ts create mode 100755 ng6-seed/src/app/quality-check/quality-check-routing.module.ts create mode 100755 ng6-seed/src/app/quality-check/quality-check.component.html rename ng6-seed/src/app/{settings/user/user.component.scss => quality-check/quality-check.component.scss} (100%) mode change 100644 => 100755 rename ng6-seed/src/app/{settings/masters/component/branch/branch-dialog/branch-dialog.component.spec.ts => quality-check/quality-check.component.spec.ts} (53%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/quality-check/quality-check.component.ts create mode 100755 ng6-seed/src/app/quality-check/quality-check.module.spec.ts create mode 100755 ng6-seed/src/app/quality-check/quality-check.module.ts create mode 100644 ng6-seed/src/app/reports/pd-mis/pd-mis.component.html create mode 100644 ng6-seed/src/app/reports/pd-mis/pd-mis.component.scss create mode 100644 ng6-seed/src/app/reports/pd-mis/pd-mis.component.spec.ts create mode 100644 ng6-seed/src/app/reports/pd-mis/pd-mis.component.ts create mode 100644 ng6-seed/src/app/reports/reports-routing.module.ts create mode 100644 ng6-seed/src/app/reports/reports.module.spec.ts create mode 100644 ng6-seed/src/app/reports/reports.module.ts create mode 100644 ng6-seed/src/app/reports/reports.service.spec.ts create mode 100644 ng6-seed/src/app/reports/reports.service.ts mode change 100644 => 100755 ng6-seed/src/app/session/forgot-password/forgot-password-component.html mode change 100644 => 100755 ng6-seed/src/app/session/forgot-password/forgot-password-component.scss mode change 100644 => 100755 ng6-seed/src/app/session/forgot-password/forgot-password.component.ts mode change 100644 => 100755 ng6-seed/src/app/session/lockscreen/lockscreen-component.html mode change 100644 => 100755 ng6-seed/src/app/session/lockscreen/lockscreen-component.scss mode change 100644 => 100755 ng6-seed/src/app/session/lockscreen/lockscreen.component.ts mode change 100644 => 100755 ng6-seed/src/app/session/login/login-component.html mode change 100644 => 100755 ng6-seed/src/app/session/login/login-component.scss mode change 100644 => 100755 ng6-seed/src/app/session/login/login.component.ts mode change 100644 => 100755 ng6-seed/src/app/session/register/register-component.html mode change 100644 => 100755 ng6-seed/src/app/session/register/register-component.scss mode change 100644 => 100755 ng6-seed/src/app/session/register/register.component.ts mode change 100644 => 100755 ng6-seed/src/app/session/session.module.ts mode change 100644 => 100755 ng6-seed/src/app/session/session.routing.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/branch/branch-dialog/branch-dialog.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/branch/branch-dialog/branch-dialog.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/branch/branch-dialog/branch-dialog.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/branch/branch-list/branch-list.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/branch/branch-list/branch-list.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/branch/branch-list/branch-list.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/city/city-dialog/city-dialog.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/city/city-dialog/city-dialog.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/city/city-dialog/city-dialog.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/city/city-list/city-list.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/city/city-list/city-list.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/city/city-list/city-list.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-dialog/comments-on-locality-dialog.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-dialog/comments-on-locality-dialog.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-dialog/comments-on-locality-dialog.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-dialog/comments-on-locality-dialog.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-list/comments-on-locality-list.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-list/comments-on-locality-list.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-list/comments-on-locality-list.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-list/comments-on-locality-list.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/company/company-dialog/company-dialog.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/company/company-dialog/company-dialog.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/company/company-list/company-list.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/company/company-list/company-list.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/company/company-list/company-list.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-dialog/customer-behaviour-dialog.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-dialog/customer-behaviour-dialog.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-dialog/customer-behaviour-dialog.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-dialog/customer-behaviour-dialog.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-list/customer-behaviour-list.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-list/customer-behaviour-list.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-list/customer-behaviour-list.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-list/customer-behaviour-list.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-dialog/customer-segment-dialog.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-dialog/customer-segment-dialog.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-dialog/customer-segment-dialog.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-dialog/customer-segment-dialog.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-list/customer-segment-list.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-list/customer-segment-list.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-list/customer-segment-list.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-list/customer-segment-list.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/designation/designation-dialog/designation-dialog.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/designation/designation-dialog/designation-dialog.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/designation/designation-dialog/designation-dialog.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/designation/designation-list/designation-list.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/designation/designation-list/designation-list.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/designation/designation-list/designation-list.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/designation/designation-list/designation-list.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/frequency/frequency-dialog/frequency-dialog.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/frequency/frequency-dialog/frequency-dialog.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/frequency/frequency-dialog/frequency-dialog.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/frequency/frequency-dialog/frequency-dialog.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/frequency/frequency-list/frequency-list.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/frequency/frequency-list/frequency-list.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/frequency/frequency-list/frequency-list.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-dialog/industry_classification-dialog.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-dialog/industry_classification-dialog.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-dialog/industry_classification-dialog.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-dialog/industry_classification-dialog.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-list/industry_classification-list.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-list/industry_classification-list.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-list/industry_classification-list.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-dialog/lender-hierarchy-dialog.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-dialog/lender-hierarchy-dialog.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-dialog/lender-hierarchy-dialog.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-dialog/lender-hierarchy-dialog.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-list/lender-hierarchy-list.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-list/lender-hierarchy-list.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-list/lender-hierarchy-list.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-list/lender-hierarchy-list.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-dialog/members-occupation-dialog.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-dialog/members-occupation-dialog.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-dialog/members-occupation-dialog.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-dialog/members-occupation-dialog.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-list/members-occupation-list.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-list/members-occupation-list.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-list/members-occupation-list.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-list/members-occupation-list.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-dialog/pd-allocation-type-dialog.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-dialog/pd-allocation-type-dialog.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-dialog/pd-allocation-type-dialog.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-dialog/pd-allocation-type-dialog.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-list/pd-allocation-type-list.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-list/pd-allocation-type-list.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-list/pd-allocation-type-list.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-list/pd-allocation-type-list.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-dialog/pd-location-approach-dialog.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-dialog/pd-location-approach-dialog.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-dialog/pd-location-approach-dialog.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-dialog/pd-location-approach-dialog.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-list/pd-location-approach-list.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-list/pd-location-approach-list.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-list/pd-location-approach-list.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-list/pd-location-approach-list.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-type-dialog/pd-type-dialog.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-type-dialog/pd-type-dialog.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-type-dialog/pd-type-dialog.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-type-list/pd-type-list.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-type-list/pd-type-list.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-type-list/pd-type-list.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/pd/pd-type-list/pd-type-list.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/product/product-dialog/product-dialog.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/product/product-dialog/product-dialog.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/product/product-dialog/product-dialog.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/product/product-dialog/product-dialog.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/product/product-list/product-list.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/product/product-list/product-list.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/product/product-list/product-list.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/regions/regions-dialog/regions-dialog.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/regions/regions-dialog/regions-dialog.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/regions/regions-dialog/regions-dialog.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/regions/regions-dialog/regions-dialog.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/regions/regions-list/regions-list.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/regions/regions-list/regions-list.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/regions/regions-list/regions-list.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-dialog/relation-ship-dialog.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-dialog/relation-ship-dialog.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-dialog/relation-ship-dialog.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-list/relation-ship-list.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-list/relation-ship-list.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-list/relation-ship-list.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/states/states-dialog/states-dialog.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/states/states-dialog/states-dialog.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/states/states-dialog/states-dialog.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/states/states-list/states-list.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/states/states-list/states-list.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/states/states-list/states-list.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/states/states-list/states-list.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/sub-product/sub-product-dialog/sub-product-dialog.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/sub-product/sub-product-dialog/sub-product-dialog.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/sub-product/sub-product-dialog/sub-product-dialog.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/sub-product/sub-product-dialog/sub-product-dialog.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/sub-product/sub-product-list/sub-product-list.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/sub-product/sub-product-list/sub-product-list.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/sub-product/sub-product-list/sub-product-list.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/sub-product/sub-product-list/sub-product-list.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/title/title-dialog/title-dialog.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/title/title-dialog/title-dialog.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/title/title-dialog/title-dialog.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/title/title-dialog/title-dialog.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/title/title-list/title-list.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/title/title-list/title-list.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/title/title-list/title-list.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/type-of-activity/activity-dialog/activity-dialog.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/type-of-activity/activity-dialog/activity-dialog.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/type-of-activity/activity-dialog/activity-dialog.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/type-of-activity/activity-list/activity-list.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/type-of-activity/activity-list/activity-list.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/type-of-activity/activity-list/activity-list.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/uom/uom-dialog/uom-dialog.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/uom/uom-dialog/uom-dialog.component.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/uom/uom-dialog/uom-dialog.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/component/uom/uom-list/uom-list.component.html delete mode 100644 ng6-seed/src/app/settings/masters/component/uom/uom-list/uom-list.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/component/uom/uom-list/uom-list.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/masters.component.html delete mode 100644 ng6-seed/src/app/settings/masters/masters.component.scss delete mode 100644 ng6-seed/src/app/settings/masters/masters.component.ts delete mode 100644 ng6-seed/src/app/settings/masters/masters.module.spec.ts delete mode 100644 ng6-seed/src/app/settings/masters/masters.module.ts delete mode 100755 ng6-seed/src/app/settings/masters/masters.routing.ts delete mode 100644 ng6-seed/src/app/settings/masters/model/activity.ts delete mode 100644 ng6-seed/src/app/settings/masters/model/branch.ts delete mode 100644 ng6-seed/src/app/settings/masters/model/city.ts delete mode 100644 ng6-seed/src/app/settings/masters/model/comments-on-locality.ts delete mode 100644 ng6-seed/src/app/settings/masters/model/company.ts delete mode 100644 ng6-seed/src/app/settings/masters/model/customer-behaviour.ts delete mode 100644 ng6-seed/src/app/settings/masters/model/customer-segment.ts delete mode 100644 ng6-seed/src/app/settings/masters/model/designation.ts delete mode 100644 ng6-seed/src/app/settings/masters/model/entity-type.ts delete mode 100644 ng6-seed/src/app/settings/masters/model/frequency.ts delete mode 100644 ng6-seed/src/app/settings/masters/model/industry_classification.ts delete mode 100644 ng6-seed/src/app/settings/masters/model/lender-hierarchy.ts delete mode 100644 ng6-seed/src/app/settings/masters/model/members-occupation.ts delete mode 100644 ng6-seed/src/app/settings/masters/model/pd.ts delete mode 100644 ng6-seed/src/app/settings/masters/model/product-master.ts delete mode 100644 ng6-seed/src/app/settings/masters/model/regions.ts delete mode 100644 ng6-seed/src/app/settings/masters/model/relation-ship.ts delete mode 100644 ng6-seed/src/app/settings/masters/model/states.ts delete mode 100644 ng6-seed/src/app/settings/masters/model/sub-product-master.ts delete mode 100644 ng6-seed/src/app/settings/masters/model/title.ts delete mode 100644 ng6-seed/src/app/settings/masters/model/uom.ts delete mode 100644 ng6-seed/src/app/settings/masters/model/user.ts delete mode 100644 ng6-seed/src/app/settings/register/register.component.html delete mode 100644 ng6-seed/src/app/settings/register/register.component.ts mode change 100644 => 100755 ng6-seed/src/app/settings/service/user.service.ts delete mode 100755 ng6-seed/src/app/settings/settings.module.spec.ts mode change 100644 => 100755 ng6-seed/src/app/settings/settings.module.ts delete mode 100644 ng6-seed/src/app/settings/user/user.component.html delete mode 100644 ng6-seed/src/app/settings/user/user.component.ts create mode 100755 ng6-seed/src/app/settings/users/user-profile/changePassword.html create mode 100755 ng6-seed/src/app/settings/users/user-profile/user-profile-component.html create mode 100755 ng6-seed/src/app/settings/users/user-profile/user-profile-component.scss create mode 100755 ng6-seed/src/app/settings/users/user-profile/user-profile.component.ts create mode 100755 ng6-seed/src/app/settings/users/users.module.ts create mode 100755 ng6-seed/src/app/settings/users/users.routing.ts mode change 100644 => 100755 ng6-seed/src/app/shared/accordion/accordion.directive.ts mode change 100644 => 100755 ng6-seed/src/app/shared/accordion/accordionanchor.directive.ts mode change 100644 => 100755 ng6-seed/src/app/shared/accordion/accordionlink.directive.ts mode change 100644 => 100755 ng6-seed/src/app/shared/accordion/index.ts mode change 100644 => 100755 ng6-seed/src/app/shared/demo.module.ts create mode 100644 ng6-seed/src/app/shared/for-mobile-numbers/for-mobile-numbers.directive.ts mode change 100644 => 100755 ng6-seed/src/app/shared/fullscreen/toggle-fullscreen.directive.ts mode change 100644 => 100755 ng6-seed/src/app/shared/menu-items/horizontal-menu-items.ts mode change 100644 => 100755 ng6-seed/src/app/shared/menu-items/menu-items.ts create mode 100644 ng6-seed/src/app/shared/numbers-only/numbers-only.directive.ts create mode 100755 ng6-seed/src/app/shared/rating/rating.component.html create mode 100755 ng6-seed/src/app/shared/rating/rating.component.scss create mode 100755 ng6-seed/src/app/shared/rating/rating.component.spec.ts create mode 100755 ng6-seed/src/app/shared/rating/rating.component.ts mode change 100644 => 100755 ng6-seed/src/app/shared/shared.module.ts create mode 100755 ng6-seed/src/app/template/questions/add/add.component.html create mode 100755 ng6-seed/src/app/template/questions/add/add.component.scss rename ng6-seed/src/app/{settings/user/user.component.spec.ts => template/questions/add/add.component.spec.ts} (58%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/template/questions/add/add.component.ts create mode 100755 ng6-seed/src/app/template/questions/edit/edit.component.html create mode 100755 ng6-seed/src/app/template/questions/edit/edit.component.scss create mode 100755 ng6-seed/src/app/template/questions/edit/edit.component.spec.ts create mode 100755 ng6-seed/src/app/template/questions/edit/edit.component.ts create mode 100755 ng6-seed/src/app/template/questions/list/list.component.html create mode 100755 ng6-seed/src/app/template/questions/list/list.component.scss create mode 100755 ng6-seed/src/app/template/questions/list/list.component.spec.ts create mode 100755 ng6-seed/src/app/template/questions/list/list.component.ts create mode 100755 ng6-seed/src/app/template/questions/questions.module.ts create mode 100755 ng6-seed/src/app/template/questions/questions.routing.ts rename ng6-seed/src/app/{settings => template}/service/masters/masters.service.spec.ts (100%) mode change 100644 => 100755 rename ng6-seed/src/app/{settings => template}/service/masters/masters.service.ts (87%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/template/service/questions/questions.service.spec.ts create mode 100755 ng6-seed/src/app/template/service/questions/questions.service.ts create mode 100755 ng6-seed/src/app/template/service/templates/templates.service.spec.ts create mode 100755 ng6-seed/src/app/template/service/templates/templates.service.ts create mode 100755 ng6-seed/src/app/template/template.module.ts create mode 100755 ng6-seed/src/app/template/template.routing.ts create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/edit-category/edit-category.component.html create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/edit-category/edit-category.component.scss create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/edit-category/edit-category.component.spec.ts create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/edit-category/edit-category.component.ts create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/edit-lender/edit-lender.component.html create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/edit-lender/edit-lender.component.scss rename ng6-seed/src/app/{settings/masters/component/branch/branch-list/branch-list.component.spec.ts => template/templates/templates-list/edit/edit-lender/edit-lender.component.spec.ts} (54%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/edit-lender/edit-lender.component.ts create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/category-question-answer/category-question-answer.component.html create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/category-question-answer/category-question-answer.component.scss create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/category-question-answer/category-question-answer.component.spec.ts create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/category-question-answer/category-question-answer.component.ts create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/category-question-answer/dialog-category-question-list.html create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/edit-question-answer.component.html create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/edit-question-answer.component.scss rename ng6-seed/src/app/{settings/masters/component/relation-ship/relation-ship-dialog/relation-ship-dialog.component.spec.ts => template/templates/templates-list/edit/edit-question-answer/edit-question-answer.component.spec.ts} (50%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/edit-question-answer.component.ts create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/report-template/report-template.component.html create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/report-template/report-template.component.scss rename ng6-seed/src/app/{settings/masters/component/type-of-activity/activity-dialog/activity-dialog.component.spec.ts => template/templates/templates-list/edit/report-template/report-template.component.spec.ts} (53%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/report-template/report-template.component.ts create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/template-forms/template-forms.component.html create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/template-forms/template-forms.component.scss rename ng6-seed/src/app/{settings/masters/component/frequency/frequency-list/frequency-list.component.spec.ts => template/templates/templates-list/edit/template-forms/template-forms.component.spec.ts} (53%) mode change 100644 => 100755 create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/template-forms/template-forms.component.ts create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/templates.edit.component.html create mode 100755 ng6-seed/src/app/template/templates/templates-list/edit/templates.edit.component.ts create mode 100755 ng6-seed/src/app/template/templates/templates-list/templates-add/templates-add.component.html create mode 100755 ng6-seed/src/app/template/templates/templates-list/templates-add/templates-add.component.scss create mode 100755 ng6-seed/src/app/template/templates/templates-list/templates-add/templates-add.component.spec.ts create mode 100755 ng6-seed/src/app/template/templates/templates-list/templates-add/templates-add.component.ts create mode 100755 ng6-seed/src/app/template/templates/templates-list/templates.list.component.html create mode 100755 ng6-seed/src/app/template/templates/templates-list/templates.list.component.scss create mode 100755 ng6-seed/src/app/template/templates/templates-list/templates.list.component.ts create mode 100755 ng6-seed/src/app/template/templates/templates.component.ts create mode 100755 ng6-seed/src/app/template/templates/templates.module.ts create mode 100755 ng6-seed/src/app/template/templates/templates.routing.ts mode change 100644 => 100755 ng6-seed/src/assets/data/100k.json mode change 100644 => 100755 ng6-seed/src/assets/data/company.json mode change 100644 => 100755 ng6-seed/src/assets/data/projects.json mode change 100644 => 100755 ng6-seed/src/assets/data/security.json mode change 100644 => 100755 ng6-seed/src/assets/fonts/data-table/data-table.eot mode change 100644 => 100755 ng6-seed/src/assets/fonts/data-table/data-table.svg mode change 100644 => 100755 ng6-seed/src/assets/fonts/data-table/data-table.ttf mode change 100644 => 100755 ng6-seed/src/assets/fonts/data-table/data-table.woff mode change 100644 => 100755 ng6-seed/src/assets/fonts/data-table/icons.css mode change 100644 => 100755 ng6-seed/src/assets/fonts/pe/css/helper.css mode change 100644 => 100755 ng6-seed/src/assets/fonts/pe/css/helper.min.css mode change 100644 => 100755 ng6-seed/src/assets/fonts/pe/css/pe-icon-set-weather.css mode change 100644 => 100755 ng6-seed/src/assets/fonts/pe/css/pe-icon-set-weather.min.css mode change 100644 => 100755 ng6-seed/src/assets/fonts/pe/fonts/pe-icon-set-weather.eot mode change 100644 => 100755 ng6-seed/src/assets/fonts/pe/fonts/pe-icon-set-weather.svg mode change 100644 => 100755 ng6-seed/src/assets/fonts/pe/fonts/pe-icon-set-weather.ttf mode change 100644 => 100755 ng6-seed/src/assets/fonts/pe/fonts/pe-icon-set-weather.woff create mode 100644 ng6-seed/src/assets/images/PD.jpeg create mode 100755 ng6-seed/src/assets/images/bg.png create mode 100755 ng6-seed/src/assets/images/login_n.jpg mode change 100644 => 100755 ng6-seed/src/assets/styles/app.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/_app.variables.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/_core.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/_material.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/_material.themes.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/_material.variables.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/_mixins.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/components/_calendar.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/components/_chat.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/components/_custom.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/components/_editor.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/components/_messages.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/components/_perfect-scrollbar.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/components/_pricing.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/components/_social.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/components/_table.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/components/_timeline.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/components/_treeview.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/components/_upload.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/core/_main-header.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/core/_main-panel.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/core/_main-sidebar.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/core/_notification-sidebar.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/core/_scaffolding.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/core/_sessions.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/core/_typography.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/material/_buttons.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/material/_cards.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/material/_dialog.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/material/_lists.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/material/_menus.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/material/_select.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/material/_tabs.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/mixins/_breakpoints.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/mixins/_clearfix.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/mixins/_flex.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/mixins/_hover.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/mixins/_misc.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/mixins/_text-emphasis.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/mixins/bi-app/_bi-app-ltr.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/mixins/bi-app/_bi-app-rtl.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/mixins/bi-app/_mixins.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/mixins/bi-app/_variables-ltr.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/mixins/bi-app/_variables-rtl.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/utilities/_background.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/utilities/_general.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/utilities/_spacing.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/utilities/_text.scss mode change 100644 => 100755 ng6-seed/src/assets/styles/scss/utilities/utilities.scss mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/.bower.json mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/LICENSE mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/README.md mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/bower.json mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/install.json mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/pace.coffee mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/pace.js mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/pace.min.js mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-barber-shop.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-big-counter.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-bounce.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-center-atom.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-center-circle.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-center-radar.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-center-simple.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-corner-indicator.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-fill-left.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-flash.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-flat-top.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-loading-bar.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-mac-osx.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-minimal.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-barber-shop.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-big-counter.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-bounce.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-center-atom.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-center-circle.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-center-radar.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-center-simple.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-corner-indicator.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-fill-left.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-flash.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-flat-top.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-loading-bar.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-mac-osx.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-minimal.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-barber-shop.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-big-counter.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-bounce.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-center-atom.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-center-circle.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-center-radar.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-center-simple.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-corner-indicator.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-fill-left.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-flash.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-flat-top.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-loading-bar.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-mac-osx.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-minimal.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-barber-shop.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-big-counter.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-bounce.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-center-atom.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-center-circle.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-center-radar.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-center-simple.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-corner-indicator.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-fill-left.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-flash.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-flat-top.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-loading-bar.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-mac-osx.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-minimal.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-barber-shop.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-big-counter.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-bounce.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-center-atom.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-center-circle.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-center-radar.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-center-simple.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-corner-indicator.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-fill-left.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-flash.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-flat-top.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-loading-bar.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-mac-osx.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-minimal.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-barber-shop.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-big-counter.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-bounce.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-center-atom.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-center-circle.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-center-radar.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-center-simple.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-corner-indicator.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-fill-left.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-flash.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-flat-top.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-loading-bar.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-mac-osx.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-minimal.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-barber-shop.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-big-counter.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-bounce.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-center-atom.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-center-circle.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-center-radar.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-center-simple.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-corner-indicator.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-fill-left.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-flash.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-flat-top.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-loading-bar.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-mac-osx.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-minimal.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-barber-shop.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-big-counter.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-bounce.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-center-atom.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-center-circle.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-center-radar.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-center-simple.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-corner-indicator.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-fill-left.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-flash.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-flat-top.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-loading-bar.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-mac-osx.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-minimal.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-barber-shop.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-big-counter.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-bounce.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-center-atom.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-center-circle.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-center-radar.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-center-simple.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-corner-indicator.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-fill-left.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-flash.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-flat-top.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-loading-bar.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-mac-osx.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-minimal.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-barber-shop.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-big-counter.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-bounce.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-center-atom.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-center-circle.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-center-radar.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-center-simple.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-corner-indicator.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-fill-left.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-flash.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-flat-top.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-loading-bar.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-mac-osx.css mode change 100644 => 100755 ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-minimal.css create mode 100755 package-lock.json diff --git a/ng6-seed/angular.json b/ng6-seed/angular.json old mode 100644 new mode 100755 diff --git a/ng6-seed/package-lock.json b/ng6-seed/package-lock.json old mode 100644 new mode 100755 index 3d5c101..d6514d8 --- a/ng6-seed/package-lock.json +++ b/ng6-seed/package-lock.json @@ -5,9 +5,9 @@ "requires": true, "dependencies": { "@agm/core": { - "version": "1.0.0-beta.3", - "resolved": "https://registry.npmjs.org/@agm/core/-/core-1.0.0-beta.3.tgz", - "integrity": "sha512-nsyergarmMB4JCw7KGujj86ulgRYhEk8zXKRiJZdnju/irLvazQ/9Anlfsf1Rc5yph8sZrmQDwqLGZ6AqHhnzA==" + "version": "1.0.0-beta.5", + "resolved": "https://registry.npmjs.org/@agm/core/-/core-1.0.0-beta.5.tgz", + "integrity": "sha512-LVENJqtBZEWpX+uJkGI0zgg+Xkm2KkktQm4ojZozArbeNvQkVL6pqVc04Mme6vvOzwJpD1cET5w4byC8Xaq1QQ==" }, "@angular-devkit/architect": { "version": "0.6.8", @@ -111,25 +111,25 @@ } }, "@angular-devkit/schematics": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-0.8.1.tgz", - "integrity": "sha512-ab3xeyTpPA9JO7oXgdfbQ/+5djddvoKjFaxFFcLD5GxgDDnvJcmhgDkluJY9JZHH2oSFaW8u1G5zg8uo1HrriA==", + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-0.8.9.tgz", + "integrity": "sha512-JZiK1aHJUFV6xDtUMBLoH3cLgi7EtR1bXjNqqa11MAjnHMqzm2GBazPvzGkMwVbCxC1sdYgswwGX9GS2tpHawA==", "dev": true, "requires": { - "@angular-devkit/core": "0.8.1", - "rxjs": "~6.2.0" + "@angular-devkit/core": "0.8.9", + "rxjs": "6.2.2" }, "dependencies": { "@angular-devkit/core": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.8.1.tgz", - "integrity": "sha512-0TKjF/nHb7+wwWIQ5iuQRzDIF2CphmX9ZojBIGH6PWFgQNKG0yUWqSa+PTpr5eOcGYBOa1rHLf10iyPHDmBdBw==", + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.8.9.tgz", + "integrity": "sha512-Umax3YKBPTQy360TeoSNaIIOJOKoXvN/S2WNTV8wDjSWWNiWLTIlckWMb9DVsafAifjUi0mtOLRFuM4YatKgTw==", "dev": true, "requires": { - "ajv": "~6.4.0", - "chokidar": "^2.0.3", - "rxjs": "~6.2.0", - "source-map": "^0.5.6" + "ajv": "6.4.0", + "chokidar": "2.0.4", + "rxjs": "6.2.2", + "source-map": "0.5.7" } }, "rxjs": { @@ -144,9 +144,9 @@ } }, "@angular/animations": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-6.1.7.tgz", - "integrity": "sha512-bjX3VEVEh5scGDDmxEKPzYI8DWUbqOFA34aYDY2cHPnDkLM0I7pEtO44qb72FSbWwXn77sYlby/dx2gtRayOOA==", + "version": "6.1.10", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-6.1.10.tgz", + "integrity": "sha512-dd/lq7kw3uwfHPICan8psu2nthuUpp7PvMLuNIm0XxObZ4oNs0ls6uxKEDPnEkRKoGdiJpvmsyzZZN9ACMPEAA==", "requires": { "tslib": "^1.9.0" } @@ -160,44 +160,48 @@ } }, "@angular/cli": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-6.2.1.tgz", - "integrity": "sha512-4AO014PohYc/vbNaO6nPi/a6JqxdOHN2m0WLutgRGoBQswqSGn7aLEG1erZKRzbfq39E1a/efnNmEI3Okl3h1Q==", + "version": "6.2.9", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-6.2.9.tgz", + "integrity": "sha512-4xuTbmMKGx1bMi0KA3Xmtx/emy10wlSwTXoUijlhd2tcWmlI2wRjAYjR7efSbFo8dVskiq0CyAVFWr1IanYQZw==", "dev": true, "requires": { - "@angular-devkit/architect": "0.8.1", - "@angular-devkit/core": "0.8.1", - "@angular-devkit/schematics": "0.8.1", - "@schematics/angular": "0.8.1", - "@schematics/update": "0.8.1", - "json-schema-traverse": "^0.4.1", - "opn": "^5.3.0", - "rxjs": "~6.2.0", - "semver": "^5.1.0", - "symbol-observable": "^1.2.0", - "yargs-parser": "^10.0.0" + "@angular-devkit/architect": "0.8.9", + "@angular-devkit/core": "0.8.9", + "@angular-devkit/schematics": "0.8.9", + "@schematics/angular": "0.8.9", + "@schematics/update": "0.8.9", + "@yarnpkg/lockfile": "1.1.0", + "ini": "1.3.5", + "json-schema-traverse": "0.4.1", + "npm-package-arg": "6.1.0", + "opn": "5.4.0", + "pacote": "9.2.3", + "rxjs": "6.2.2", + "semver": "5.6.0", + "symbol-observable": "1.2.0", + "yargs-parser": "10.1.0" }, "dependencies": { "@angular-devkit/architect": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.8.1.tgz", - "integrity": "sha512-bf/8tg8X2y9f6wE2r48KAW2AVexfGd/rfTHRvl9+kSsFFtXVA233GNAL6Qs+wJ/G2t1NFddnE3ME2eyhJYxBwA==", + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.8.9.tgz", + "integrity": "sha512-2tiGPkvJyFY/G3a27uC8r6Jj3H5m8SxjMqhjNUQ5AtNumweTBPt3YIYMNAvHUmxG0nA9upDolVXFmoQGK9AhKQ==", "dev": true, "requires": { - "@angular-devkit/core": "0.8.1", - "rxjs": "~6.2.0" + "@angular-devkit/core": "0.8.9", + "rxjs": "6.2.2" } }, "@angular-devkit/core": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.8.1.tgz", - "integrity": "sha512-0TKjF/nHb7+wwWIQ5iuQRzDIF2CphmX9ZojBIGH6PWFgQNKG0yUWqSa+PTpr5eOcGYBOa1rHLf10iyPHDmBdBw==", + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.8.9.tgz", + "integrity": "sha512-Umax3YKBPTQy360TeoSNaIIOJOKoXvN/S2WNTV8wDjSWWNiWLTIlckWMb9DVsafAifjUi0mtOLRFuM4YatKgTw==", "dev": true, "requires": { - "ajv": "~6.4.0", - "chokidar": "^2.0.3", - "rxjs": "~6.2.0", - "source-map": "^0.5.6" + "ajv": "6.4.0", + "chokidar": "2.0.4", + "rxjs": "6.2.2", + "source-map": "0.5.7" } }, "camelcase": { @@ -212,6 +216,15 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, + "opn": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.4.0.tgz", + "integrity": "sha512-YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, "rxjs": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.2.tgz", @@ -221,6 +234,12 @@ "tslib": "^1.9.0" } }, + "semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "dev": true + }, "yargs-parser": { "version": "10.1.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", @@ -233,25 +252,25 @@ } }, "@angular/common": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-6.1.7.tgz", - "integrity": "sha512-zFK2xM0hqR2ZWIfUsn+06jg+0K5PolzTxPjfUtVQDCZo+JHHKTVHEwtfORUaMTMfH9EqKrvfB3t6fCwK0523ag==", + "version": "6.1.10", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-6.1.10.tgz", + "integrity": "sha512-73xxTSYJNKfiJ7C1Ajg+sz5l8y+blb/vNgHYg7O3yem5zLBnfPpidJ1UGg4W4d2Y+jwUVJbZKh8SKJarqAJVUQ==", "requires": { "tslib": "^1.9.0" } }, "@angular/compiler": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-6.1.7.tgz", - "integrity": "sha512-JKuK/fzKNCF+mNPmPmGQjr0uHVpfxmrOqXBriJMklCtdsKeQW94BLUoNjn8h1H10rFbUqYuD5v9AAKdH77FgnA==", + "version": "6.1.10", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-6.1.10.tgz", + "integrity": "sha512-FPIb2j3zfoBwb6vo/u0gQeu70h8InGlSisBr3xMACs/35/pwB6kbQR+JQiUr0D7k6QApg7AuMkvq8aFNelg0aw==", "requires": { "tslib": "^1.9.0" } }, "@angular/compiler-cli": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-6.1.7.tgz", - "integrity": "sha512-HzrwmtvrgKwUowfkPTsb6AOqdoQajY3Uso3i0jNc9/bXvpeikH0vj0YIKuQzAJDemluHsowHk/ImEsVGGr2w9g==", + "version": "6.1.10", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-6.1.10.tgz", + "integrity": "sha512-GCWdyeNQSnF4RfzO4A0+WHsNEgxKpl5arg4ldLSWMNkj/DrhMD4TnmxhR+IVY+7ieMkUBwpcuWRnjdOdnbmV+w==", "dev": true, "requires": { "chokidar": "^1.4.2", @@ -388,9 +407,9 @@ } }, "@angular/core": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-6.1.7.tgz", - "integrity": "sha512-3MtS8EQy+saNcImDWghphOr/h3l5CpFnZW6aaHiL8T5CpTBNdB86uEmAwtiNQkJ0UeO+cztF1zNCzhm9R93/3w==", + "version": "6.1.10", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-6.1.10.tgz", + "integrity": "sha512-61l3rIQTVdT45eOf6/fBJIeVmV10mcrxqS4N/1OWkuDT29YSJTZSxGcv8QjAyyutuhcqWWpO6gVRkN07rWmkPg==", "requires": { "tslib": "^1.9.0" } @@ -404,17 +423,17 @@ } }, "@angular/forms": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-6.1.7.tgz", - "integrity": "sha512-McCElnn6Abr+HAjwxa1ldvIMs101TT0NGq8EHXLyF9QcKG24dU7425+MdLuW0OrtgBql2+RjlqnSiKuxDQHxJA==", + "version": "6.1.10", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-6.1.10.tgz", + "integrity": "sha512-zAPx2kMV1/FbP5DrY472Sd/ze1m+GS6T5ullZCtP392r62p2RkwzDCXieR51YiRJjZj3M6c3AcRND7PWBdXT7A==", "requires": { "tslib": "^1.9.0" } }, "@angular/http": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/@angular/http/-/http-6.1.7.tgz", - "integrity": "sha512-N0wXHpEL/CsNM4l44Z+dU51Y994mBEHjt9yb0SeKf02mdrsTJK+cEvfZ0JkVDjGddqdWHvWFn3zSmkR79qLrSQ==", + "version": "6.0.0-rc.6", + "resolved": "https://registry.npmjs.org/@angular/http/-/http-6.0.0-rc.6.tgz", + "integrity": "sha512-DYcRixOY18qfWLe4+384QPyGsh0znOvbTePT5dJvGPiuR77rmzggPDA7tW+hyZ3y+0Nk4QuRVPbFQZdACjHpyw==", "requires": { "tslib": "^1.9.0" } @@ -428,26 +447,34 @@ "tslib": "^1.7.1" } }, + "@angular/material-moment-adapter": { + "version": "6.4.7", + "resolved": "https://registry.npmjs.org/@angular/material-moment-adapter/-/material-moment-adapter-6.4.7.tgz", + "integrity": "sha512-OGdDtpu/yRioOQXhJFCNuiOF2OgiL9VUj8ewFPi1lDtFGUFfVwU2h3hWkKLn+yuPW+DBVYla11tCNsn5dLElmA==", + "requires": { + "tslib": "^1.7.1" + } + }, "@angular/platform-browser": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-6.1.7.tgz", - "integrity": "sha512-YOYg944aefCWElJhnma8X+3wJDb6nHf6aBAVN+YPg0bUplEFacR4y6PeM9QR8vjh5Y0kbGG9ZPGDT/WwP2t4sQ==", + "version": "6.1.10", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-6.1.10.tgz", + "integrity": "sha512-CB7pqMwtgb7KjdHDAJlsXcs0rrU+2xQVaoOaqEfJtUrKhtGMLaZh8Qoic5l92SoGattkOw7SYarAOsWlAsVfvw==", "requires": { "tslib": "^1.9.0" } }, "@angular/platform-browser-dynamic": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-6.1.7.tgz", - "integrity": "sha512-sSF7n4SpwPiP1fMwocu/RUegpp/45jHK/+r9biXUXUBD12zO5QMcLHU393sjoNi7e6+meuXEH0pnWa66dTznjw==", + "version": "6.1.10", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-6.1.10.tgz", + "integrity": "sha512-DmBSUyFPoyKqkmBXyJ2CrP1oXDioeoBlPA8lmWUDUv2yBuoHIzIkdY/OkTZbdyu/QYa1hK2Jl9OlfoeoenKddg==", "requires": { "tslib": "^1.9.0" } }, "@angular/router": { - "version": "6.1.7", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-6.1.7.tgz", - "integrity": "sha512-YaOTq2icKAd9FDls2qo2Qp8FrmLGke3eA+bZ3FvOhFydxyUAvlU96N9Y9Gb05tXTtBaQNzAInov2bbp2YMFEFA==", + "version": "6.1.10", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-6.1.10.tgz", + "integrity": "sha512-tekI3dkdvd65oMoxjjgRA+16uDgPUBWHhYxids6pgO8vobZNtCo8VaVlcDyLUhdmtS5kONELx0iL5E2M0Y2Bag==", "requires": { "tslib": "^1.9.0" } @@ -480,26 +507,26 @@ } }, "@schematics/angular": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-0.8.1.tgz", - "integrity": "sha512-AW7063IaYFIcskt+eI5k4drb/hDuY2wK3zLsW01E49WaBcRhXVIOVox7cbfwHCA6zch117WZ5xVZlbGHJ4pkMw==", + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-0.8.9.tgz", + "integrity": "sha512-QTCcvBr+HLk8oJuPvonc8myYVU4ko5qsIhTon0gyWQg8McQnjCf8dTpnLM/VSzrmR71wOQ9fqvl+qS+eujrtnA==", "dev": true, "requires": { - "@angular-devkit/core": "0.8.1", - "@angular-devkit/schematics": "0.8.1", + "@angular-devkit/core": "0.8.9", + "@angular-devkit/schematics": "0.8.9", "typescript": ">=2.6.2 <2.10" }, "dependencies": { "@angular-devkit/core": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.8.1.tgz", - "integrity": "sha512-0TKjF/nHb7+wwWIQ5iuQRzDIF2CphmX9ZojBIGH6PWFgQNKG0yUWqSa+PTpr5eOcGYBOa1rHLf10iyPHDmBdBw==", + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.8.9.tgz", + "integrity": "sha512-Umax3YKBPTQy360TeoSNaIIOJOKoXvN/S2WNTV8wDjSWWNiWLTIlckWMb9DVsafAifjUi0mtOLRFuM4YatKgTw==", "dev": true, "requires": { - "ajv": "~6.4.0", - "chokidar": "^2.0.3", - "rxjs": "~6.2.0", - "source-map": "^0.5.6" + "ajv": "6.4.0", + "chokidar": "2.0.4", + "rxjs": "6.2.2", + "source-map": "0.5.7" } }, "rxjs": { @@ -514,29 +541,29 @@ } }, "@schematics/update": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.8.1.tgz", - "integrity": "sha512-G5EU8nvqAC9fX09sV+UEM9EgR+PjGwguUatOk10uvwvZvCfO+W0FVeLmSap9A6mJ+e8YOH6XFpkwLG0AMuhYrw==", + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.8.9.tgz", + "integrity": "sha512-duefusf5YdKGcNfNlHM/eMpkuvR2o4rqLDX0wo59Pu1KKXoDEUy5lj0mOA+hXbzjHtrtOxpffxKU0+AzovEMPA==", "dev": true, "requires": { - "@angular-devkit/core": "0.8.1", - "@angular-devkit/schematics": "0.8.1", - "npm-registry-client": "^8.5.1", - "rxjs": "~6.2.0", - "semver": "^5.3.0", - "semver-intersect": "^1.1.2" + "@angular-devkit/core": "0.8.9", + "@angular-devkit/schematics": "0.8.9", + "npm-registry-client": "8.6.0", + "rxjs": "6.2.2", + "semver": "5.6.0", + "semver-intersect": "1.4.0" }, "dependencies": { "@angular-devkit/core": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.8.1.tgz", - "integrity": "sha512-0TKjF/nHb7+wwWIQ5iuQRzDIF2CphmX9ZojBIGH6PWFgQNKG0yUWqSa+PTpr5eOcGYBOa1rHLf10iyPHDmBdBw==", + "version": "0.8.9", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-0.8.9.tgz", + "integrity": "sha512-Umax3YKBPTQy360TeoSNaIIOJOKoXvN/S2WNTV8wDjSWWNiWLTIlckWMb9DVsafAifjUi0mtOLRFuM4YatKgTw==", "dev": true, "requires": { - "ajv": "~6.4.0", - "chokidar": "^2.0.3", - "rxjs": "~6.2.0", - "source-map": "^0.5.6" + "ajv": "6.4.0", + "chokidar": "2.0.4", + "rxjs": "6.2.2", + "source-map": "0.5.7" } }, "rxjs": { @@ -547,6 +574,12 @@ "requires": { "tslib": "^1.9.0" } + }, + "semver": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", + "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", + "dev": true } } }, @@ -573,6 +606,20 @@ "resolved": "https://registry.npmjs.org/@swimlane/ngx-datatable/-/ngx-datatable-11.1.5.tgz", "integrity": "sha512-BRRHMrgw9tG0BezTnfszzFTlpW9B9Zh5kyZF/pxqfJxpUsZ0aA/uXlL4cloe4+msQ6yIdu1/jhUCDInwSzmpFw==" }, + "@types/aws-sdk": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/@types/aws-sdk/-/aws-sdk-2.7.0.tgz", + "integrity": "sha1-g1iLPRTr3KHUzl4CM4dXdWjOgvM=", + "dev": true, + "requires": { + "aws-sdk": "*" + } + }, + "@types/file-saver": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/file-saver/-/file-saver-2.0.0.tgz", + "integrity": "sha512-dxdRrUov2HVTbSRFX+7xwUPlbGYVEZK6PrSqClg2QPos3PNe0bCajkDDkDeeC1znjSH03KOEqVbXpnJuWa2wgQ==" + }, "@types/jasmine": { "version": "2.5.52", "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.5.52.tgz", @@ -586,11 +633,16 @@ "dev": true }, "@types/node": { - "version": "8.9.5", - "resolved": "http://registry.npmjs.org/@types/node/-/node-8.9.5.tgz", - "integrity": "sha512-jRHfWsvyMtXdbhnz5CVHxaBgnV6duZnPlQuRSo/dm/GnmikNcmZhxIES4E9OZjUmQ8C+HCl4KJux+cXN/ErGDQ==", + "version": "8.10.46", + "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.46.tgz", + "integrity": "sha512-PfnRbk836fFs9T9QnZh0G1k9oC6YXCqIK3LX6vU/6oiXtEBSFCiJFj6UnLZtqIIHTsgMn8Dojq3yhmpwY7QWcw==", "dev": true }, + "@types/pdfjs-dist": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/pdfjs-dist/-/pdfjs-dist-0.1.2.tgz", + "integrity": "sha512-BvRLWz6RCI8FMKbgfdTCadVwimUv8920gLsnBEAkECjtqIy95jtt+G1ebNQE2b8PTnLjJICPpmBOGhgkSsiPKA==" + }, "@types/q": { "version": "0.0.32", "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", @@ -616,13 +668,19 @@ }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true } } }, @@ -642,13 +700,19 @@ }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true } } }, @@ -687,13 +751,19 @@ }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true } } }, @@ -733,13 +803,19 @@ }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true } } }, @@ -768,13 +844,19 @@ }, "dependencies": { "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true } } }, @@ -816,11 +898,26 @@ "long": "^3.2.0" } }, + "@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", + "dev": true + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, "abbrev": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", - "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", - "dev": true + "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=" }, "accepts": { "version": "1.3.5", @@ -833,9 +930,9 @@ } }, "acorn": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.2.tgz", - "integrity": "sha512-cJrKCNcr2kv8dlDnbw+JPUGjHZzo4myaxOLmpOX8a+rgX94YeTcTMv/LFJUSByRpc+i4GgVnnhLxvMu/2Y+rqw==", + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", + "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", "dev": true }, "acorn-dynamic-import": { @@ -847,6 +944,15 @@ "acorn": "^5.0.0" } }, + "adler-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/adler-32/-/adler-32-1.2.0.tgz", + "integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=", + "requires": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + } + }, "adm-zip": { "version": "0.4.11", "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.11.tgz", @@ -877,11 +983,19 @@ } } }, + "agentkeepalive": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", + "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", + "dev": true, + "requires": { + "humanize-ms": "^1.2.1" + } + }, "ajv": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.4.0.tgz", "integrity": "sha1-06/3jpJ3VJdx2vAWTP9ISCt1T8Y=", - "dev": true, "requires": { "fast-deep-equal": "^1.0.0", "fast-json-stable-stringify": "^2.0.0", @@ -898,13 +1012,12 @@ "ajv-keywords": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", - "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", - "dev": true + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=" }, "amazon-cognito-identity-js": { - "version": "2.0.27", - "resolved": "https://registry.npmjs.org/amazon-cognito-identity-js/-/amazon-cognito-identity-js-2.0.27.tgz", - "integrity": "sha512-ZUf/7Cny3H90Ce7QSOjHJB9hcxc4A6j6LkdKlc2oc9EZCVw7+mST62DsOdJ7nUMZNXUtGy83CgJsYa7WIiLoqQ==", + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/amazon-cognito-identity-js/-/amazon-cognito-identity-js-2.0.30.tgz", + "integrity": "sha512-g5/JnpWbZx3dkmjR3ooeuTwsfLtZ6B+4F75AAcT/zLtPruRrANPEtqNf2hVLyHHNwwuLeqezCKasfB/MiojF1g==", "requires": { "buffer": "4.9.1", "crypto-browserify": "1.0.9", @@ -913,7 +1026,7 @@ "dependencies": { "crypto-browserify": { "version": "1.0.9", - "resolved": "http://registry.npmjs.org/crypto-browserify/-/crypto-browserify-1.0.9.tgz", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-1.0.9.tgz", "integrity": "sha1-zFRJaF37hesRyYKKzHy4erW7/MA=" } } @@ -921,8 +1034,7 @@ "amdefine": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" }, "angular-calendar": { "version": "0.23.3", @@ -941,15 +1053,20 @@ "resolved": "https://registry.npmjs.org/angular-draggable-droppable/-/angular-draggable-droppable-2.0.0.tgz", "integrity": "sha512-/b8LIGamjOKnDI2uG1jRUErTIHeQ3w2WqHn4cbeiUTy+6eNHjkQI32DNhvxl0nVxr2gF5QluECNB4uWjMMyzQg==" }, + "angular-notifier": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/angular-notifier/-/angular-notifier-4.1.1.tgz", + "integrity": "sha512-QrL5cW3GDjONy6Ack+HIgd3tUf93ztkPT6C551/pqOaE69Ad2YDem+JyBLnlLKBnCFUxhKkSVnv/Ak2HsOrBxQ==" + }, "angular-resizable-element": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/angular-resizable-element/-/angular-resizable-element-2.0.0.tgz", "integrity": "sha512-Jsa818fxtAtBA3Fp1u4mWV9tcpakM+bNYFFbB/AjKig2BtzZkeyLx3vjcBCfwPmXkK10kX2QKR8RDALk1w209A==" }, "angular-sortablejs": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/angular-sortablejs/-/angular-sortablejs-2.6.0.tgz", - "integrity": "sha512-f/W5WUeySMLhMqUHpAqzHCi3+yj6uwPcwr5FcKRRF+o5nzuYR5ppW1GJJk/Px1Q0HhL2//z9O3QZpEVMlvHf5w==" + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/angular-sortablejs/-/angular-sortablejs-2.7.0.tgz", + "integrity": "sha512-pFnRAZmIDUROTCr1V17DCc7iwrdDYqVIkQmOf+pIl7OZCXo7fqCVZYL4sluFmh81SpM45P/aohbC5Zb6ECp4/A==" }, "angular-tree-component": { "version": "6.1.0", @@ -962,9 +1079,9 @@ } }, "ansi-colors": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.0.5.tgz", - "integrity": "sha512-VVjWpkfaphxUBFarydrQ3n26zX5nIK7hcbT3/ielrvwDDyBBjuh2vuSw1P9zkPq0cfqvdw7lkYHnu+OLSfIBsg==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.1.tgz", + "integrity": "sha512-Xt+zb6nqgvV9SWAVp0EG3lRsHcbq5DDgqjPPz6pwgtj6RKz65zGXMNa82oJfOSBA/to6GmRP7Dr+6o+kbApTzQ==", "dev": true }, "ansi-html": { @@ -976,8 +1093,7 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" }, "ansi-styles": { "version": "3.2.1", @@ -1027,14 +1143,12 @@ "aproba": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" }, "are-we-there-yet": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, "requires": { "delegates": "^1.0.0", "readable-stream": "^2.0.6" @@ -1070,8 +1184,7 @@ "array-find-index": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", - "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", - "dev": true + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=" }, "array-flatten": { "version": "2.1.1", @@ -1129,7 +1242,6 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, "requires": { "safer-buffer": "~2.1.0" } @@ -1174,8 +1286,7 @@ "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "assign-symbols": { "version": "1.0.0", @@ -1198,15 +1309,12 @@ "async-foreach": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", - "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", - "dev": true, - "optional": true + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=" }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "atoa": { "version": "1.0.0", @@ -1234,9 +1342,10 @@ } }, "aws-sdk": { - "version": "2.318.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.318.0.tgz", - "integrity": "sha512-w2XT+DOKOczoRaB9R0cRCZSwHkw4JfngMlUKeRhMbzOvW9orOZB2SeMgz+Pz1jKU3VSJDMpvB/Z3P68nvDxb8Q==", + "version": "2.443.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.443.0.tgz", + "integrity": "sha512-I4vjwridWEQDq6L6GE3AsV0MzvRI1drPbHtxbI/K4Q4lmwMkskue+qiSlac4EY3ZJBuBIXGgIclKnkr8AuW71g==", + "dev": true, "requires": { "buffer": "4.9.1", "events": "1.1.1", @@ -1245,52 +1354,49 @@ "querystring": "0.2.0", "sax": "1.2.1", "url": "0.10.3", - "uuid": "3.1.0", + "uuid": "3.3.2", "xml2js": "0.4.19" }, "dependencies": { "ieee754": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=" + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", + "dev": true }, "punycode": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true }, "sax": { "version": "1.2.1", - "resolved": "http://registry.npmjs.org/sax/-/sax-1.2.1.tgz", - "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=" + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz", + "integrity": "sha1-e45lYZCyKOgaZq6nSEgNgozS03o=", + "dev": true }, "url": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/url/-/url-0.10.3.tgz", "integrity": "sha1-Ah5NnHcF8hu/N9A861h2dAJ3TGQ=", + "dev": true, "requires": { "punycode": "1.3.2", "querystring": "0.2.0" } - }, - "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" } } }, "aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" }, "aws4": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", - "dev": true + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" }, "babel-code-frame": { "version": "6.26.0", @@ -1421,8 +1527,7 @@ "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, "base": { "version": "0.11.2", @@ -1506,7 +1611,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, "optional": true, "requires": { "tweetnacl": "^0.14.3" @@ -1524,8 +1628,7 @@ "big.js": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", - "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", - "dev": true + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" }, "binary-extensions": { "version": "1.11.0", @@ -1543,8 +1646,6 @@ "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, - "optional": true, "requires": { "inherits": "~2.0.0" } @@ -1625,7 +1726,6 @@ "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1800,8 +1900,7 @@ "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" }, "builtin-status-codes": { "version": "3.0.0", @@ -1860,9 +1959,9 @@ } }, "cache-loader": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-1.2.2.tgz", - "integrity": "sha512-rsGh4SIYyB9glU+d0OcHwiXHXBoUgDhHZaQ1KAbiXqfz1CDPxtTboh1gPbJ0q2qdO8a9lfcjgC5CJ2Ms32y5bw==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/cache-loader/-/cache-loader-1.2.5.tgz", + "integrity": "sha512-enWKEQ4kO3YreDFd7AtVRjtJBmNiqh/X9hVDReu0C4qm8gsGmySkwuWtdc+N5O+vq5FzxL1mIZc30NyXCB7o/Q==", "dev": true, "requires": { "loader-utils": "^1.1.0", @@ -1895,32 +1994,38 @@ "camelcase": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true, - "optional": true + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=" }, "camelcase-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", - "dev": true, - "optional": true, "requires": { "camelcase": "^2.0.0", "map-obj": "^1.0.0" } }, "caniuse-lite": { - "version": "1.0.30000885", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000885.tgz", - "integrity": "sha512-cXKbYwpxBLd7qHyej16JazPoUacqoVuDhvR61U7Fr5vSxMUiodzcYa1rQYRYfZ5GexV03vGZHd722vNPLjPJGQ==", + "version": "1.0.30000910", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000910.tgz", + "integrity": "sha512-u/nxtHGAzCGZzIxt3dA/tpSPOcirBZFWKwz1EPz4aaupnBI2XR0Rbr74g0zc6Hzy41OEM4uMoZ38k56TpYAWjQ==", "dev": true }, "caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "cfb": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cfb/-/cfb-1.1.0.tgz", + "integrity": "sha512-ZqfxNGWTMKhd0a/n6YKJLq8hWbd5kR3cA4kXwUj9vVEdHlwJ09werR8gN15Z7Y1FTXqdD6dE3GGCxv4uc28raA==", + "requires": { + "adler-32": "~1.2.0", + "commander": "^2.16.0", + "crc-32": "~1.2.0", + "printj": "~1.1.2" + } }, "chalk": { "version": "2.2.2", @@ -1998,9 +2103,9 @@ } }, "chownr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz", + "integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==", "dev": true }, "chrome-trace-event": { @@ -2069,8 +2174,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "optional": true, "requires": { "string-width": "^1.0.1", "strip-ansi": "^3.0.1", @@ -2097,14 +2200,12 @@ "co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, "codelyzer": { "version": "4.1.0", @@ -2120,6 +2221,22 @@ "sprintf-js": "^1.0.3" } }, + "codepage": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/codepage/-/codepage-1.14.0.tgz", + "integrity": "sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=", + "requires": { + "commander": "~2.14.1", + "exit-on-epipe": "~1.0.1" + }, + "dependencies": { + "commander": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz", + "integrity": "sha512-+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==" + } + } + }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -2159,7 +2276,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", - "dev": true, "requires": { "delayed-stream": "~1.0.0" } @@ -2194,12 +2310,12 @@ "dev": true }, "compressible": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.14.tgz", - "integrity": "sha1-MmxfUH+7BV9UEWeCuWmoG2einac=", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.15.tgz", + "integrity": "sha512-4aE67DL33dSW9gw4CI2H/yTxqHLNcxp0yS6jB+4h+wr3e43+1z7vm0HU9qXOH8j+qjKuL8+UtkOxYQSMq60Ylw==", "dev": true, "requires": { - "mime-db": ">= 1.34.0 < 2" + "mime-db": ">= 1.36.0 < 2" } }, "compression": { @@ -2220,8 +2336,7 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, "concat-stream": { "version": "1.6.2", @@ -2288,8 +2403,7 @@ "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "constants-browserify": { "version": "1.0.0", @@ -2360,9 +2474,9 @@ "dev": true }, "copy-webpack-plugin": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.5.2.tgz", - "integrity": "sha512-zmC33E8FFSq3AbflTvqvPvBo621H36Afsxlui91d+QyZxPIuXghfnTsa1CuqiAaCPgJoSUWfTFbKJnadZpKEbQ==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-4.6.0.tgz", + "integrity": "sha512-Y+SQCF+0NoWQryez2zXn5J5knmr9z/9qSQt7fbL78u83rxmigOy8X5+BFn8CFSuX+nKT8gpYwJX68ekqtQt6ZA==", "dev": true, "requires": { "cacache": "^10.0.4", @@ -2376,15 +2490,14 @@ } }, "core-js": { - "version": "2.5.7", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", - "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.5.tgz", + "integrity": "sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==" }, "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, "cosmiconfig": { "version": "4.0.0", @@ -2410,6 +2523,15 @@ } } }, + "crc-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", + "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", + "requires": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + } + }, "create-ecdh": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", @@ -2451,8 +2573,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", - "dev": true, - "optional": true, "requires": { "lru-cache": "^4.0.1", "which": "^1.2.9" @@ -2515,9 +2635,9 @@ } }, "css-what": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", - "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.2.tgz", + "integrity": "sha512-wan8dMWQ0GUeF7DGEPVjhHemVW/vy6xUYmFzRY8RYqgA0JtXC9rJmbScBjqSu6dg9q0lwPQy6ZAmJVr3PPTvqQ==", "dev": true }, "cssauron": { @@ -2545,7 +2665,6 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", - "dev": true, "requires": { "array-find-index": "^1.0.1" } @@ -2951,7 +3070,6 @@ "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -2979,8 +3097,7 @@ "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, "decode-uri-component": { "version": "0.2.0", @@ -3108,14 +3225,12 @@ "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" }, "depd": { "version": "1.1.2", @@ -3213,20 +3328,12 @@ } }, "dom-converter": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz", - "integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=", + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", "dev": true, "requires": { - "utila": "~0.3" - }, - "dependencies": { - "utila": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz", - "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=", - "dev": true - } + "utila": "~0.4" } }, "dom-serialize": { @@ -3266,9 +3373,9 @@ "dev": true }, "domelementtype": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.2.1.tgz", + "integrity": "sha512-SQVCLFS2E7G5CRCMdn6K9bIhRj1bS6QBWZfF0TUPh4V/BbqrQ619IdSS3/izn0FZ+9l+uODzaZjb08fjOfablA==", "dev": true }, "domhandler": { @@ -3300,9 +3407,9 @@ } }, "duplexify": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", - "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.1.tgz", + "integrity": "sha512-vM58DwdnKmty+FSPzT14K9JXb90H+j5emaR4KYbr2KTIz00WHGbWOe5ghQTx233ZCLZtrGDALzKwcjEtSt35mA==", "dev": true, "requires": { "end-of-stream": "^1.0.0", @@ -3315,7 +3422,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, "optional": true, "requires": { "jsbn": "~0.1.0", @@ -3335,9 +3441,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.64", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.64.tgz", - "integrity": "sha512-CU5ta5MbzRre+WhzKfPBM3HlyZGM7bwNKmiByzFzCfxP3q7cNmGLKopq5Q+LGXza69aIHXk2sZZSh/Oh7TKPIQ==", + "version": "1.3.84", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.84.tgz", + "integrity": "sha512-IYhbzJYOopiTaNWMBp7RjbecUBsbnbDneOP86f3qvS0G0xfzwNSvMJpTrvi5/Y1gU7tg2NAgeg8a8rCYvW9Whw==", "dev": true }, "elliptic": { @@ -3358,8 +3464,7 @@ "emojis-list": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" }, "encodeurl": { "version": "1.0.2", @@ -3367,6 +3472,15 @@ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", "dev": true }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dev": true, + "requires": { + "iconv-lite": "~0.4.13" + } + }, "end-of-stream": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", @@ -3486,9 +3600,15 @@ "dev": true }, "entities": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "err-code": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", + "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", "dev": true }, "errno": { @@ -3504,7 +3624,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, "requires": { "is-arrayish": "^0.2.1" } @@ -3523,14 +3642,29 @@ } }, "es-to-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", - "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", "dev": true, "requires": { - "is-callable": "^1.1.1", + "is-callable": "^1.1.4", "is-date-object": "^1.0.1", - "is-symbol": "^1.0.1" + "is-symbol": "^1.0.2" + } + }, + "es6-promise": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz", + "integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q==", + "dev": true + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" } }, "escape-html": { @@ -3542,8 +3676,7 @@ "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { "version": "1.8.1", @@ -3637,15 +3770,16 @@ "events": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true }, "eventsource": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", - "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", "dev": true, "requires": { - "original": ">=0.0.5" + "original": "^1.0.0" } }, "evp_bytestokey": { @@ -3694,6 +3828,11 @@ "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", "dev": true }, + "exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==" + }, "expand-braces": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", @@ -3831,14 +3970,14 @@ } }, "express": { - "version": "4.16.3", - "resolved": "http://registry.npmjs.org/express/-/express-4.16.3.tgz", - "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", + "version": "4.16.4", + "resolved": "https://registry.npmjs.org/express/-/express-4.16.4.tgz", + "integrity": "sha512-j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==", "dev": true, "requires": { "accepts": "~1.3.5", "array-flatten": "1.1.1", - "body-parser": "1.18.2", + "body-parser": "1.18.3", "content-disposition": "0.5.2", "content-type": "~1.0.4", "cookie": "0.3.1", @@ -3855,10 +3994,10 @@ "on-finished": "~2.3.0", "parseurl": "~1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.3", - "qs": "6.5.1", + "proxy-addr": "~2.0.4", + "qs": "6.5.2", "range-parser": "~1.2.0", - "safe-buffer": "5.1.1", + "safe-buffer": "5.1.2", "send": "0.16.2", "serve-static": "1.13.2", "setprototypeof": "1.1.0", @@ -3874,17 +4013,44 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, - "qs": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", - "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", - "dev": true + "body-parser": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz", + "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=", + "dev": true, + "requires": { + "bytes": "3.0.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "~1.6.3", + "iconv-lite": "0.4.23", + "on-finished": "~2.3.0", + "qs": "6.5.2", + "raw-body": "2.3.3", + "type-is": "~1.6.16" + } }, - "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", - "dev": true + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "raw-body": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz", + "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==", + "dev": true, + "requires": { + "bytes": "3.0.0", + "http-errors": "1.6.3", + "iconv-lite": "0.4.23", + "unpipe": "1.0.0" + } } } }, @@ -3982,14 +4148,12 @@ "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" }, "fast-deep-equal": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", - "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", - "dev": true + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=" }, "fast-diff": { "version": "1.1.2", @@ -3999,8 +4163,7 @@ "fast-json-stable-stringify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" }, "fast-levenshtein": { "version": "2.0.6", @@ -4023,6 +4186,12 @@ "websocket-driver": ">=0.5.1" } }, + "figgy-pudding": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", + "integrity": "sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==", + "dev": true + }, "file-loader": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz", @@ -4033,6 +4202,11 @@ "schema-utils": "^0.4.5" } }, + "file-saver": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/file-saver/-/file-saver-2.0.1.tgz", + "integrity": "sha512-dCB3K7/BvAcUmtmh1DzFdv0eXSVJ9IAFt1mw3XZfAexodNRoE29l3xB2EX4wH2q8m/UTzwzEPq/ArYk98kUkBQ==" + }, "filename-regex": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", @@ -4160,14 +4334,12 @@ "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" }, "form-data": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", - "dev": true, "requires": { "asynckit": "^0.4.0", "combined-stream": "1.0.6", @@ -4180,6 +4352,11 @@ "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", "dev": true }, + "frac": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/frac/-/frac-1.1.2.tgz", + "integrity": "sha512-w/XBfkibaTl3YDqASwfDUqkna4Z2p9cFSr1aHDt0WoMTECnRfBOv2WArlZILlqgWlmdIlALXGpM2AOhEk5W3IA==" + }, "fragment-cache": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", @@ -4214,6 +4391,15 @@ "null-check": "^1.0.0" } }, + "fs-minipass": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", + "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", + "dev": true, + "requires": { + "minipass": "^2.2.1" + } + }, "fs-write-stream-atomic": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", @@ -4229,8 +4415,7 @@ "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" }, "fsevents": { "version": "1.2.4", @@ -4273,12 +4458,14 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -4293,17 +4480,20 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -4420,7 +4610,8 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -4432,6 +4623,7 @@ "version": "1.0.0", "bundled": true, "dev": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -4446,6 +4638,7 @@ "version": "3.0.4", "bundled": true, "dev": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -4453,12 +4646,14 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "minipass": { "version": "2.2.4", "bundled": true, "dev": true, + "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -4477,6 +4672,7 @@ "version": "0.5.1", "bundled": true, "dev": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -4557,7 +4753,8 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -4569,6 +4766,7 @@ "version": "1.4.0", "bundled": true, "dev": true, + "optional": true, "requires": { "wrappy": "1" } @@ -4690,6 +4888,7 @@ "version": "1.0.2", "bundled": true, "dev": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -4765,7 +4964,6 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", - "dev": true, "requires": { "graceful-fs": "^4.1.2", "inherits": "~2.0.0", @@ -4783,7 +4981,6 @@ "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, "requires": { "aproba": "^1.0.3", "console-control-strings": "^1.0.0", @@ -4799,23 +4996,25 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", - "dev": true, - "optional": true, "requires": { "globule": "^1.0.0" } }, + "genfun": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", + "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", + "dev": true + }, "get-caller-file": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" }, "get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", - "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", - "dev": true + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=" }, "get-stream": { "version": "3.0.0", @@ -4833,7 +5032,6 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, "requires": { "assert-plus": "^1.0.0" } @@ -4842,7 +5040,6 @@ "version": "7.1.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz", "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==", - "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -4933,8 +5130,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", - "dev": true, - "optional": true, "requires": { "glob": "~7.1.1", "lodash": "~4.17.10", @@ -4942,19 +5137,16 @@ }, "dependencies": { "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", - "dev": true, - "optional": true + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==" } } }, "graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, "hammerjs": { "version": "2.0.8", @@ -5005,14 +5197,12 @@ "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" }, "har-validator": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.0.tgz", "integrity": "sha512-+qnmNjI4OfH2ipQ9VQOw23bBd/ibtfbVdK2fYbY4acTDqKTW/YDp9McimZdDbG8iV9fZizUqQMD5xvriB146TA==", - "dev": true, "requires": { "ajv": "^5.3.0", "har-schema": "^2.0.0" @@ -5022,7 +5212,6 @@ "version": "5.5.2", "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, "requires": { "co": "^4.6.0", "fast-deep-equal": "^1.0.0", @@ -5045,7 +5234,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, "requires": { "ansi-regex": "^2.0.0" } @@ -5079,11 +5267,16 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, "has-value": { "version": "1.0.0", @@ -5138,9 +5331,9 @@ } }, "he": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", - "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, "hmac-drbg": { @@ -5157,8 +5350,7 @@ "hosted-git-info": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.7.1.tgz", - "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==", - "dev": true + "integrity": "sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w==" }, "hpack.js": { "version": "2.1.6", @@ -5179,15 +5371,15 @@ "dev": true }, "html-minifier": { - "version": "3.5.20", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.20.tgz", - "integrity": "sha512-ZmgNLaTp54+HFKkONyLFEfs5dd/ZOtlquKaTnqIWFmx3Av5zG6ZPcV2d0o9XM2fXOTxxIf6eDcwzFFotke/5zA==", + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", "dev": true, "requires": { "camel-case": "3.0.x", "clean-css": "4.2.x", "commander": "2.17.x", - "he": "1.1.x", + "he": "1.2.x", "param-case": "2.1.x", "relateurl": "0.2.x", "uglify-js": "3.4.x" @@ -5277,6 +5469,12 @@ } } }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "dev": true + }, "http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", @@ -5296,9 +5494,9 @@ } }, "http-parser-js": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", - "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=", + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz", + "integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==", "dev": true }, "http-proxy": { @@ -5320,6 +5518,36 @@ } } }, + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, "http-proxy-middleware": { "version": "0.18.0", "resolved": "http://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz", @@ -5333,9 +5561,9 @@ }, "dependencies": { "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", "dev": true } } @@ -5344,7 +5572,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, "requires": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", @@ -5368,6 +5595,15 @@ "extend": "3" } }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "dev": true, + "requires": { + "ms": "^2.0.0" + } + }, "iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", @@ -5393,6 +5629,15 @@ "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", "dev": true }, + "ignore-walk": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz", + "integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, "image-size": { "version": "0.5.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", @@ -5491,16 +5736,12 @@ "in-publish": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", - "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", - "dev": true, - "optional": true + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=" }, "indent-string": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "optional": true, "requires": { "repeating": "^2.0.0" } @@ -5515,7 +5756,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" @@ -5524,8 +5764,7 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" }, "ini": { "version": "1.3.5", @@ -5560,9 +5799,7 @@ "invert-kv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true, - "optional": true + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" }, "ip": { "version": "1.1.5", @@ -5605,8 +5842,7 @@ "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, "is-binary-path": { "version": "1.0.1", @@ -5627,7 +5863,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true, "requires": { "builtin-modules": "^1.0.0" } @@ -5720,7 +5955,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", - "dev": true, "requires": { "number-is-nan": "^1.0.0" } @@ -5729,7 +5963,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, "requires": { "number-is-nan": "^1.0.0" } @@ -5824,22 +6057,23 @@ "dev": true }, "is-symbol": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", - "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", - "dev": true + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" }, "is-windows": { "version": "1.0.2", @@ -5870,8 +6104,7 @@ "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" }, "isobject": { "version": "3.0.1", @@ -5882,8 +6115,7 @@ "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "istanbul": { "version": "0.4.5", @@ -6158,7 +6390,8 @@ "jmespath": { "version": "0.15.0", "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz", - "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=" + "integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=", + "dev": true }, "jquery": { "version": "3.2.1", @@ -6166,11 +6399,9 @@ "integrity": "sha1-XE2d5lKvbNCncBVKYxu6ErAVx4c=" }, "js-base64": { - "version": "2.4.9", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", - "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==", - "dev": true, - "optional": true + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.0.tgz", + "integrity": "sha512-wlEBIZ5LP8usDylWbDNhKPEFVFdI5hCHpnVoT/Ysvoi/PRhJENm/Rlh9TvjYB38HFfKZN7OzEbRjmjvLkFw11g==" }, "js-cookie": { "version": "2.2.0", @@ -6205,7 +6436,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true, "optional": true }, "jsesc": { @@ -6223,20 +6453,17 @@ "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, "json-schema-traverse": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", - "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", - "dev": true + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, "json3": { "version": "3.3.2", @@ -6247,14 +6474,18 @@ "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", "dev": true }, "jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, "requires": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", @@ -6498,16 +6729,14 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true, - "optional": true, "requires": { "invert-kv": "^1.0.0" } }, "leaflet": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.3.4.tgz", - "integrity": "sha512-FYL1LGFdj6v+2Ifpw+AcFIuIOqjNggfoLUwuwQv6+3sS21Za7Wvapq+LhbSE4NDXrEj6eYnW3y7LsaBICpyXtw==" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/leaflet/-/leaflet-1.4.0.tgz", + "integrity": "sha512-x9j9tGY1+PDLN9pcWTx9/y6C5nezoTMB8BLK5jTakx+H7bPlnbCHfi9Hjg+Qt36sgDz/cb9lrSpNQXmk45Tvhw==" }, "leb": { "version": "0.3.0", @@ -6574,9 +6803,9 @@ } }, "license-webpack-plugin": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-1.4.0.tgz", - "integrity": "sha512-iwuNFMWbXS76WiQXJBTs8/7Tby4NQnY8AIkBMuJG5El79UT8zWrJQMfpW+KRXt4Y2Bs5uk+Myg/MO7ROSF8jzA==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-1.5.0.tgz", + "integrity": "sha512-Of/H79rZqm2aeg4RnP9SMSh19qkKemoLT5VaJV58uH5AxeYWEcBgGFs753JEJ/Hm6BPvQVfIlrrjoBwYj8p7Tw==", "dev": true, "requires": { "ejs": "^2.5.7" @@ -6584,9 +6813,8 @@ }, "load-json-file": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true, "requires": { "graceful-fs": "^4.1.2", "parse-json": "^2.2.0", @@ -6597,23 +6825,21 @@ "dependencies": { "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true + "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } }, "loader-runner": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", - "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.1.tgz", + "integrity": "sha512-By6ZFY7ETWOc9RFaAIb23IjJVcM4dvJC/N57nmdz9RSkMXvAXGI7SyVlAw3v8vjtDRlqThgVDVmTnr9fqMlxkw==", "dev": true }, "loader-utils": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true, "requires": { "big.js": "^3.1.3", "emojis-list": "^2.0.0", @@ -6638,15 +6864,12 @@ "lodash.assign": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", - "dev": true, - "optional": true + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" }, "lodash.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" }, "lodash.debounce": { "version": "4.0.8", @@ -6657,9 +6880,7 @@ "lodash.mergewith": { "version": "4.6.1", "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", - "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==", - "dev": true, - "optional": true + "integrity": "sha512-eWw5r+PYICtEBgrBE5hhlT6aAa75f411bgDz/ZL2KZqYV03USvucsxcHUIlGTDTECs1eunpI7HOV7U+WLDvNdQ==" }, "lodash.tail": { "version": "4.1.1", @@ -6734,7 +6955,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", - "dev": true, "requires": { "currently-unhandled": "^0.4.1", "signal-exit": "^3.0.0" @@ -6750,7 +6970,6 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", - "dev": true, "requires": { "pseudomap": "^1.0.2", "yallist": "^2.1.2" @@ -6771,10 +6990,153 @@ "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==", "dev": true }, + "make-fetch-happen": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-4.0.1.tgz", + "integrity": "sha512-7R5ivfy9ilRJ1EMKIOziwrns9fGeAD4bAha8EB7BIiBBLHm2KeTUGCrICFt2rbHfzheTLynv50GnNTK1zDTrcQ==", + "dev": true, + "requires": { + "agentkeepalive": "^3.4.1", + "cacache": "^11.0.1", + "http-cache-semantics": "^3.8.1", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^4.1.2", + "mississippi": "^3.0.0", + "node-fetch-npm": "^2.0.2", + "promise-retry": "^1.1.1", + "socks-proxy-agent": "^4.0.0", + "ssri": "^6.0.0" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + }, + "bluebird": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.4.tgz", + "integrity": "sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw==", + "dev": true + }, + "cacache": { + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", + "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.3", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + } + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "https-proxy-agent": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", + "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", + "dev": true, + "requires": { + "agent-base": "^4.1.0", + "debug": "^3.1.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true + } + } + }, "map-age-cleaner": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.2.tgz", - "integrity": "sha512-UN1dNocxQq44IhJyMI4TU8phc2m9BddacHRPRjKGLYaF0jqd3xLz0jS0skpAU9WgYyoR4gHtUpzytNBS385FWQ==", + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", "dev": true, "requires": { "p-defer": "^1.0.0" @@ -6789,8 +7151,7 @@ "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", - "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", - "dev": true + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=" }, "map-visit": { "version": "1.0.0", @@ -6808,13 +7169,14 @@ "dev": true }, "md5.js": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", - "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "dev": true, "requires": { "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "media-typer": { @@ -6846,10 +7208,8 @@ }, "meow": { "version": "3.7.0", - "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "resolved": "http://registry.npmjs.org/meow/-/meow-3.7.0.tgz", "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", - "dev": true, - "optional": true, "requires": { "camelcase-keys": "^2.0.0", "decamelize": "^1.1.2", @@ -6915,14 +7275,12 @@ "mime-db": { "version": "1.36.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.36.0.tgz", - "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==", - "dev": true + "integrity": "sha512-L+xvyD9MkoYMXb1jAmzI/lWYAxAMCPvIBSWur0PZ5nOf5euahRLVqH//FKW9mWp2lkqUgYiXPgkzfMUFi4zVDw==" }, "mime-types": { "version": "2.1.20", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.20.tgz", "integrity": "sha512-HrkrPaP9vGuWbLK1B1FfgAkbqNjIuy4eHlIYnFi7kamZyLLrGlo2mpcx0bBmNpKqBtYtAfGbodDddIgddSJC2A==", - "dev": true, "requires": { "mime-db": "~1.36.0" } @@ -6934,9 +7292,9 @@ "dev": true }, "mini-css-extract-plugin": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.2.tgz", - "integrity": "sha512-ots7URQH4wccfJq9Ssrzu2+qupbncAce4TmTzunI9CIwlQMp2XI+WNUw6xWF6MMAGAm1cbUVINrSjATaVMyKXg==", + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.5.tgz", + "integrity": "sha512-dqBanNfktnp2hwL2YguV9Jh91PFX7gu7nRLs4TGsbAfAG6WOtlynFRYzwDwmmeSb5uIwHo9nx1ta0f7vAZVp2w==", "dev": true, "requires": { "loader-utils": "^1.1.0", @@ -6973,7 +7331,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, "requires": { "brace-expansion": "^1.1.7" } @@ -6983,6 +7340,33 @@ "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, + "minipass": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", + "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + }, + "dependencies": { + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true + } + } + }, + "minizlib": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz", + "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==", + "dev": true, + "requires": { + "minipass": "^2.2.1" + } + }, "mississippi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", @@ -7044,7 +7428,6 @@ "version": "0.5.1", "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, "requires": { "minimist": "0.0.8" }, @@ -7052,8 +7435,7 @@ "minimist": { "version": "0.0.8", "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" } } }, @@ -7068,9 +7450,9 @@ "integrity": "sha512-PoEUEw74LoR7Ib6iGGCqvw8xMlmA/Zr5/0TVyhshq4kuzA8pHdvtCiE5AeyRK0w4LhyS7J0Qt0GboTgdhuys+A==" }, "moment": { - "version": "2.22.2", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.2.tgz", - "integrity": "sha1-PCV/mDn8DpP/UxSWMiOeuQeD/2Y=" + "version": "2.24.0", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz", + "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg==" }, "move-concurrently": { "version": "1.0.1", @@ -7111,9 +7493,7 @@ "nan": { "version": "2.11.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.11.0.tgz", - "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==", - "dev": true, - "optional": true + "integrity": "sha512-F4miItu2rGnV2ySkXOQoA8FKz/SR2Q2sWP0sbTxNxz/tuokeC8WxOhPMcwi0qIyGtVn/rrSeLbvVkznqCdwYnw==" }, "nanomatch": { "version": "1.2.13", @@ -7141,11 +7521,16 @@ "dev": true }, "neo-async": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.2.tgz", - "integrity": "sha512-vdqTKI9GBIYcAEbFAcpKPErKINfPF5zIuz3/niBfq8WUZjpT2tytLlFVrBgWdOtqI4uaA/Rb6No0hux39XXDuw==", + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.0.tgz", + "integrity": "sha512-MFh0d/Wa7vkKO3Y3LlacqAEeHK0mckVqzDieUKTT+KGxi+zIpeVsFxymkIiRpbpDziHc290Xr9A1O4Om7otoRA==", "dev": true }, + "ng-pick-datetime": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/ng-pick-datetime/-/ng-pick-datetime-6.0.16.tgz", + "integrity": "sha512-96rHNg+tGXmzJHvGoH2O8dF+MF7N4rKIehsi8Px3IZUOZM4qA6PE1w8SQzDvHQTIp/1NpiICvmt6BZK5IaDsFg==" + }, "ng2-charts": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/ng2-charts/-/ng2-charts-1.6.0.tgz", @@ -7154,6 +7539,11 @@ "chart.js": "^2.6.0" } }, + "ng2-ckeditor": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ng2-ckeditor/-/ng2-ckeditor-1.2.2.tgz", + "integrity": "sha512-4md+hLpELy1ni0SbUYDD0XPpwjn9PUT+Loq8AyXzJutwg3xBQB7K4P2TxDr6wTiYZX+ZVSqmUOFwTL25LW129A==" + }, "ng2-dragula": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/ng2-dragula/-/ng2-dragula-1.3.1.tgz", @@ -7167,6 +7557,20 @@ "resolved": "https://registry.npmjs.org/ng2-file-upload/-/ng2-file-upload-1.2.1.tgz", "integrity": "sha1-VWPF39b0P7++gVwgbjQ0ZKCmoZc=" }, + "ng2-pdf-viewer": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ng2-pdf-viewer/-/ng2-pdf-viewer-5.2.4.tgz", + "integrity": "sha512-qZ9wOezSvCv8VMA4L64GmcaPpbT8gHpQ7mbxfirezpi4dMU7ivHCBhihw7L6Nlo10zrmgD9hdWltPBcfTeF85w==", + "requires": { + "@types/pdfjs-dist": "^0.1.2", + "pdfjs-dist": "2.0.943" + } + }, + "ng2-toastr": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/ng2-toastr/-/ng2-toastr-4.1.2.tgz", + "integrity": "sha1-G0UvBxOZYcOPhmxuJKBiR++iGxE=" + }, "ng2-validation": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/ng2-validation/-/ng2-validation-4.2.0.tgz", @@ -7180,10 +7584,15 @@ "resolved": "https://registry.npmjs.org/ngx-color-picker/-/ngx-color-picker-4.5.3.tgz", "integrity": "sha512-CJca1od05yf2j8OKUm5ar+mIVFB3n01+vbMpLeT+9/drKYCxgmtxxmmsgwWBNNXWYa2GNYB7PGH+mdKQkeypOg==" }, + "ngx-mat-daterange-picker": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/ngx-mat-daterange-picker/-/ngx-mat-daterange-picker-1.1.4.tgz", + "integrity": "sha512-bfIYGJicxwg58j6LZjUE5JPXqq7yJfremFhX5S/DnUYwQjgmDWN6PUOFEegEO7ua4QdgGWrhK04ElOw25aWrzQ==" + }, "ngx-mat-select-search": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/ngx-mat-select-search/-/ngx-mat-select-search-1.3.1.tgz", - "integrity": "sha512-ZggcqsfcJZ1tcy6ZgNnifrvn/ahWJqRO2B7QXHt0FDUo4lrv/2cuHALzwuwlY/z8rZeH+ZEmaAevzQtYH8mKpA==", + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/ngx-mat-select-search/-/ngx-mat-select-search-1.7.2.tgz", + "integrity": "sha512-gi9HPAaJOoW3El0PElTsgvGAIR6CoTxVeYCYfRqvlVbYSmoPWIM025GamlVYAQKiTOWzqFDr51M1qAmKL8rBQQ==", "requires": { "tslib": "^1.9.0" } @@ -7204,6 +7613,14 @@ } } }, + "ngx-viewer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ngx-viewer/-/ngx-viewer-1.0.1.tgz", + "integrity": "sha512-9nYfxsxco/x8zLjdVOAhi4SFMZhSgtHBGTmcns9ebQn5nCBwHbk9O62K5ZIWkfOElr9ey1KA+DmppH32YGkXEA==", + "requires": { + "tslib": "^1.9.0" + } + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -7219,6 +7636,22 @@ "lower-case": "^1.1.1" } }, + "node-ensure": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/node-ensure/-/node-ensure-0.0.0.tgz", + "integrity": "sha1-7K52QVDemYYexcgQ/V0Jaxg5Mqc=" + }, + "node-fetch-npm": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", + "integrity": "sha512-nJIxm1QmAj4v3nfCvEeCrYSoVwXyxLnaPBK5W1W5DGEJwjlKuC2VEUycGw5oxk+4zZahRrB84PUJJgEmhFTDFw==", + "dev": true, + "requires": { + "encoding": "^0.1.11", + "json-parse-better-errors": "^1.0.0", + "safe-buffer": "^5.1.1" + } + }, "node-forge": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", @@ -7229,8 +7662,6 @@ "version": "3.8.0", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "dev": true, - "optional": true, "requires": { "fstream": "^1.0.0", "glob": "^7.0.3", @@ -7248,10 +7679,8 @@ "dependencies": { "semver": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true, - "optional": true + "resolved": "http://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=" } } }, @@ -7295,11 +7724,9 @@ } }, "node-sass": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.3.tgz", - "integrity": "sha512-XzXyGjO+84wxyH7fV6IwBOTrEBe2f0a6SBze9QWWYR/cL74AcQUks2AsqcCZenl/Fp/JVbuEaLpgrLtocwBUww==", - "dev": true, - "optional": true, + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.11.0.tgz", + "integrity": "sha512-bHUdHTphgQJZaF1LASx0kAviPH7sGlcyNhWade4eVIpFp6tsn7SV8xNMTbsQFpEV9VXpnwTTnNYlfsZXgGgmkA==", "requires": { "async-foreach": "^0.1.3", "chalk": "^1.1.1", @@ -7316,38 +7743,21 @@ "nan": "^2.10.0", "node-gyp": "^3.8.0", "npmlog": "^4.0.0", - "request": "2.87.0", + "request": "^2.88.0", "sass-graph": "^2.2.4", "stdout-stream": "^1.4.0", "true-case-path": "^1.0.2" }, "dependencies": { - "ajv": { - "version": "5.5.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", - "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", - "dev": true, - "optional": true, - "requires": { - "co": "^4.6.0", - "fast-deep-equal": "^1.0.0", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.3.0" - } - }, "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "optional": true + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" }, "chalk": { "version": "1.1.3", - "resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "optional": true, "requires": { "ansi-styles": "^2.2.1", "escape-string-regexp": "^1.0.2", @@ -7356,76 +7766,10 @@ "supports-color": "^2.0.0" } }, - "har-validator": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", - "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", - "dev": true, - "optional": true, - "requires": { - "ajv": "^5.1.0", - "har-schema": "^2.0.0" - } - }, - "oauth-sign": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", - "dev": true, - "optional": true - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true, - "optional": true - }, - "request": { - "version": "2.87.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", - "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", - "dev": true, - "optional": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.6.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.5", - "extend": "~3.0.1", - "forever-agent": "~0.6.1", - "form-data": "~2.3.1", - "har-validator": "~5.0.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.17", - "oauth-sign": "~0.8.2", - "performance-now": "^2.1.0", - "qs": "~6.5.1", - "safe-buffer": "^5.1.1", - "tough-cookie": "~2.3.3", - "tunnel-agent": "^0.6.0", - "uuid": "^3.1.0" - } - }, "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true, - "optional": true - }, - "tough-cookie": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz", - "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", - "dev": true, - "optional": true, - "requires": { - "punycode": "^1.4.1" - } + "resolved": "http://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" } } }, @@ -7433,7 +7777,6 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, "requires": { "abbrev": "1" } @@ -7442,7 +7785,6 @@ "version": "2.4.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", - "dev": true, "requires": { "hosted-git-info": "^2.1.4", "is-builtin-module": "^1.0.0", @@ -7465,6 +7807,12 @@ "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", "dev": true }, + "npm-bundled": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz", + "integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==", + "dev": true + }, "npm-package-arg": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.0.tgz", @@ -7477,6 +7825,27 @@ "validate-npm-package-name": "^3.0.0" } }, + "npm-packlist": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.1.tgz", + "integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==", + "dev": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npm-pick-manifest": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-2.2.3.tgz", + "integrity": "sha512-+IluBC5K201+gRU85vFlUwX3PFShZAbAgDNp2ewJdWMVSppdo/Zih0ul2Ecky/X7b51J7LrrUAP+XOmOCvYZqA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "npm-package-arg": "^6.0.0", + "semver": "^5.4.1" + } + }, "npm-registry-client": { "version": "8.6.0", "resolved": "https://registry.npmjs.org/npm-registry-client/-/npm-registry-client-8.6.0.tgz", @@ -7497,6 +7866,20 @@ "ssri": "^5.2.4" } }, + "npm-registry-fetch": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-3.9.0.tgz", + "integrity": "sha512-srwmt8YhNajAoSAaDWndmZgx89lJwIZ1GWxOuckH4Coek4uHv5S+o/l9FLQe/awA+JwTnj4FJHldxhlXdZEBmw==", + "dev": true, + "requires": { + "JSONStream": "^1.3.4", + "bluebird": "^3.5.1", + "figgy-pudding": "^3.4.1", + "lru-cache": "^4.1.3", + "make-fetch-happen": "^4.0.1", + "npm-package-arg": "^6.1.0" + } + }, "npm-run-path": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", @@ -7510,7 +7893,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, "requires": { "are-we-there-yet": "~1.1.2", "console-control-strings": "~1.1.0", @@ -7519,9 +7901,9 @@ } }, "nth-check": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", - "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", "dev": true, "requires": { "boolbase": "~1.0.0" @@ -7542,20 +7924,17 @@ "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" }, "oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-component": { "version": "0.0.3", @@ -7674,7 +8053,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, "requires": { "wrappy": "1" } @@ -7750,15 +8128,12 @@ "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" }, "os-locale": { "version": "1.4.0", "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true, - "optional": true, "requires": { "lcid": "^1.0.0" } @@ -7766,14 +8141,12 @@ "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, "osenv": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, "requires": { "os-homedir": "^1.0.0", "os-tmpdir": "^1.0.0" @@ -7827,6 +8200,161 @@ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, + "pacote": { + "version": "9.2.3", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.2.3.tgz", + "integrity": "sha512-Y3+yY3nBRAxMlZWvr62XLJxOwCmG9UmkGZkFurWHoCjqF0cZL72cTOCRJTvWw8T4OhJS2RTg13x4oYYriauvEw==", + "dev": true, + "requires": { + "bluebird": "^3.5.2", + "cacache": "^11.2.0", + "figgy-pudding": "^3.5.1", + "get-stream": "^4.1.0", + "glob": "^7.1.3", + "lru-cache": "^4.1.3", + "make-fetch-happen": "^4.0.1", + "minimatch": "^3.0.4", + "minipass": "^2.3.5", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "normalize-package-data": "^2.4.0", + "npm-package-arg": "^6.1.0", + "npm-packlist": "^1.1.12", + "npm-pick-manifest": "^2.2.3", + "npm-registry-fetch": "^3.8.0", + "osenv": "^0.1.5", + "promise-inflight": "^1.0.1", + "promise-retry": "^1.1.1", + "protoduck": "^5.0.1", + "rimraf": "^2.6.2", + "safe-buffer": "^5.1.2", + "semver": "^5.6.0", + "ssri": "^6.0.1", + "tar": "^4.4.6", + "unique-filename": "^1.1.1", + "which": "^1.3.1" + }, + "dependencies": { + "cacache": { + "version": "11.3.2", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz", + "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==", + "dev": true, + "requires": { + "bluebird": "^3.5.3", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.3", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + }, + "dependencies": { + "bluebird": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.4.tgz", + "integrity": "sha512-FG+nFEZChJrbQ9tIccIfZJBz3J7mLrAhxakAbnrJWn8d7aKOC+LWifa0G+p4ZqKp4y13T7juYvdhq9NzKdsrjw==", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + } + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.1.15", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz", + "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==", + "dev": true + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "semver": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", + "integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==", + "dev": true + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "tar": { + "version": "4.4.8", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz", + "integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", + "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "dev": true + } + } + }, "pako": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", @@ -7904,7 +8432,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true, "requires": { "error-ex": "^1.2.0" } @@ -7975,8 +8502,7 @@ "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" }, "path-is-inside": { "version": "1.0.2", @@ -8012,9 +8538,9 @@ } }, "pbkdf2": { - "version": "3.0.16", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", - "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", + "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "dev": true, "requires": { "create-hash": "^1.1.2", @@ -8024,6 +8550,15 @@ "sha.js": "^2.4.8" } }, + "pdfjs-dist": { + "version": "2.0.943", + "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.0.943.tgz", + "integrity": "sha512-iLhNcm4XceTHRaSU5o22ZGCm4YpuW5+rf4+BJFH/feBhMQLbCGBry+Jet8Q419QDI4qgARaIQzXuiNrsNWS8Yw==", + "requires": { + "node-ensure": "^0.0.0", + "worker-loader": "^2.0.0" + } + }, "perfect-scrollbar": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.4.0.tgz", @@ -8032,8 +8567,7 @@ "performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, "pify": { "version": "3.0.0", @@ -8044,14 +8578,12 @@ "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, "requires": { "pinkie": "^2.0.0" } @@ -8066,9 +8598,9 @@ } }, "portfinder": { - "version": "1.0.17", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.17.tgz", - "integrity": "sha512-syFcRIRzVI1BoEFOCaAiizwDolh1S1YXSodsVhncbhjzjZQulhczNRbqnUl9N31Q4dKGOXsNDqxC2BWBgSMqeQ==", + "version": "1.0.19", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.19.tgz", + "integrity": "sha512-23aeQKW9KgHe6citUrG3r9HjeX6vls0h713TAa+CwTKZwNIr/pD2ApaxYF4Um3ZZyq4ar+Siv3+fhoHaIwSOSw==", "dev": true, "requires": { "async": "^1.5.2", @@ -8165,9 +8697,9 @@ } }, "postcss-value-parser": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", - "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", "dev": true }, "prelude-ls": { @@ -8192,6 +8724,11 @@ "utila": "~0.4" } }, + "printj": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==" + }, "process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", @@ -8201,8 +8738,7 @@ "process-nextick-args": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", - "dev": true + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" }, "promise": { "version": "7.3.1", @@ -8220,6 +8756,25 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, + "promise-retry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", + "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "dev": true, + "requires": { + "err-code": "^1.0.0", + "retry": "^0.10.0" + } + }, + "protoduck": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", + "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", + "dev": true, + "requires": { + "genfun": "^5.0.0" + } + }, "protractor": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.1.2.tgz", @@ -8358,26 +8913,25 @@ "pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, "psl": { "version": "1.1.29", "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.29.tgz", - "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==", - "dev": true + "integrity": "sha512-AeUmQ0oLN02flVHXWh9sSJF7mcdFq0ppid/JkErufc3hGIV/AMa8Fo9VgDo/cT2jFdOWoFvHp90qqBH54W+gjQ==" }, "public-encrypt": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz", - "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "dev": true, "requires": { "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", "create-hash": "^1.1.0", "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1" + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "pump": { @@ -8404,8 +8958,7 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "q": { "version": "1.4.1", @@ -8422,13 +8975,13 @@ "qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" }, "querystring": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true }, "querystring-es3": { "version": "0.2.1", @@ -8437,9 +8990,9 @@ "dev": true }, "querystringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.0.0.tgz", - "integrity": "sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.0.tgz", + "integrity": "sha512-sluvZZ1YiTLD5jsqZcDmFyV2EwToyXZBfpoVOmktMmW+VEnhgakFHnasVph65fOjGPTWN0Nw3+XQaSeMayr0kg==", "dev": true }, "quill": { @@ -8580,7 +9133,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true, "requires": { "load-json-file": "^1.0.0", "normalize-package-data": "^2.3.2", @@ -8591,7 +9143,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true, "requires": { "graceful-fs": "^4.1.2", "pify": "^2.0.0", @@ -8600,9 +9151,8 @@ }, "pify": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true + "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } }, @@ -8610,7 +9160,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true, "requires": { "find-up": "^1.0.0", "read-pkg": "^1.0.0" @@ -8620,7 +9169,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true, "requires": { "path-exists": "^2.0.0", "pinkie-promise": "^2.0.0" @@ -8630,7 +9178,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true, "requires": { "pinkie-promise": "^2.0.0" } @@ -8641,7 +9188,6 @@ "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, "requires": { "core-util-is": "~1.0.0", "inherits": "~2.0.3", @@ -8668,17 +9214,15 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", - "dev": true, - "optional": true, "requires": { "indent-string": "^2.1.0", "strip-indent": "^1.0.1" } }, "reflect-metadata": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.12.tgz", - "integrity": "sha512-n+IyV+nGz3+0q3/Yf1ra12KpCyi001bi4XFxSjbiWWjfqb52iTTtpGXmCCAOWWIAn9KEuFZKGqBERHmrtScZ3A==", + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", "dev": true }, "regenerate": { @@ -8758,24 +9302,16 @@ "dev": true }, "renderkid": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.1.tgz", - "integrity": "sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.2.tgz", + "integrity": "sha512-FsygIxevi1jSiPY9h7vZmBFUbAOcbYm9UwyiLNdVsLRs/5We9Ob5NMPbGYUTWiLq5L+ezlVdE0A8bbME5CWTpg==", "dev": true, "requires": { "css-select": "^1.1.0", - "dom-converter": "~0.1", + "dom-converter": "~0.2", "htmlparser2": "~3.3.0", "strip-ansi": "^3.0.0", - "utila": "~0.3" - }, - "dependencies": { - "utila": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz", - "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=", - "dev": true - } + "utila": "^0.4.0" } }, "repeat-element": { @@ -8794,7 +9330,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", - "dev": true, "requires": { "is-finite": "^1.0.0" } @@ -8803,7 +9338,6 @@ "version": "2.88.0", "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", - "dev": true, "requires": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", @@ -8830,8 +9364,7 @@ "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, "require-from-string": { "version": "2.0.2", @@ -8842,8 +9375,7 @@ "require-main-filename": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" }, "requires-port": { "version": "1.0.0", @@ -8902,7 +9434,6 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", - "dev": true, "requires": { "glob": "^7.0.5" } @@ -8932,23 +9463,22 @@ "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" }, "rxjs": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.3.2.tgz", - "integrity": "sha512-hV7criqbR0pe7EeL3O66UYVg92IR0XsA97+9y+BWTePK9SKmEI5Qd3Zj6uPnGkNzXsBywBQWTvujPl+1Kn9Zjw==", + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.1.tgz", + "integrity": "sha512-y0j31WJc83wPu31vS1VlAFW5JGrnGC+j+TtGAa1fRQphy48+fDYiDmX8tjGloToEsMkxnouOg/1IzXGKkJnZMg==", "requires": { "tslib": "^1.9.0" } }, "rxjs-compat": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/rxjs-compat/-/rxjs-compat-6.3.2.tgz", - "integrity": "sha512-eH0ANsX4ufMSDmSDwWbsWYgZDDDxxLHxsSwApbQumHTFm83RP4AI594QtXv3Jup+hVjXfE2dRSAVKbMh2a2hcw==" + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/rxjs-compat/-/rxjs-compat-6.5.1.tgz", + "integrity": "sha512-k0aaMAYFg+DCIUxo3yJcUamFRenWLR23e/VJCQvKOxwSd9DQlwcSn2ov+7b23rKaX4weKG7OrzEBWGqQPkQ07A==" }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, "safe-regex": { "version": "1.1.0", @@ -8968,8 +9498,6 @@ "version": "2.2.4", "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", - "dev": true, - "optional": true, "requires": { "glob": "^7.0.0", "lodash": "^4.0.0", @@ -9009,7 +9537,6 @@ "version": "0.4.7", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", - "dev": true, "requires": { "ajv": "^6.1.0", "ajv-keywords": "^3.1.0" @@ -9024,8 +9551,6 @@ "version": "0.2.3", "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", - "dev": true, - "optional": true, "requires": { "js-base64": "^2.1.8", "source-map": "^0.4.2" @@ -9033,10 +9558,8 @@ "dependencies": { "source-map": { "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "resolved": "http://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "optional": true, "requires": { "amdefine": ">=0.0.4" } @@ -9073,9 +9596,9 @@ } }, "selfsigned": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.3.tgz", - "integrity": "sha512-vmZenZ+8Al3NLHkWnhBQ0x6BkML1eCP2xEi3JE+f3D9wW9fipD9NNJHYtE9XJM4TsPaHGZJIamrSI6MTg1dU2Q==", + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.4.tgz", + "integrity": "sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw==", "dev": true, "requires": { "node-forge": "0.7.5" @@ -9084,8 +9607,7 @@ "semver": { "version": "5.5.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz", - "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==", - "dev": true + "integrity": "sha512-PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==" }, "semver-dsl": { "version": "1.0.1", @@ -9170,8 +9692,7 @@ "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, "set-immediate-shim": { "version": "1.0.1", @@ -9261,13 +9782,12 @@ "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" }, "silent-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/silent-error/-/silent-error-1.1.0.tgz", - "integrity": "sha1-IglwbxyFCp8dENDYQJGLRvJuG8k=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/silent-error/-/silent-error-1.1.1.tgz", + "integrity": "sha512-n4iEKyNcg4v6/jpb3c0/iyH2G1nzUNl7Gpqtn/mHIJK9S/q/7MCfoO4rwVOoO59qPFIc0hVHvMbiOJ0NdtxKKw==", "dev": true, "requires": { "debug": "^2.2.0" @@ -9290,6 +9810,12 @@ "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", "dev": true }, + "smart-buffer": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.2.tgz", + "integrity": "sha512-JDhEpTKzXusOqXZ0BUIdH+CjFdO/CR3tLlf5CN34IypI+xMmXW1uB16OOY8z3cICbJlDAVJzNbwBhNO0wt9OAw==", + "dev": true + }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -9550,19 +10076,28 @@ } }, "sockjs-client": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.5.tgz", - "integrity": "sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz", + "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==", "dev": true, "requires": { - "debug": "^2.6.6", - "eventsource": "0.1.6", - "faye-websocket": "~0.11.0", - "inherits": "^2.0.1", + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", "json3": "^3.3.2", - "url-parse": "^1.1.8" + "url-parse": "^1.4.3" }, "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, "faye-websocket": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", @@ -9571,18 +10106,55 @@ "requires": { "websocket-driver": ">=0.5.1" } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "socks": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.2.tgz", + "integrity": "sha512-pCpjxQgOByDHLlNqlnh/mNSAxIUkyBBuwwhTcV+enZGbDaClPvHdvm6uvOwZfFJkam7cGhBNbb4JxiP8UZkRvQ==", + "dev": true, + "requires": { + "ip": "^1.1.5", + "smart-buffer": "4.0.2" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "dev": true, + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } } } }, "sortablejs": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.7.0.tgz", - "integrity": "sha1-gKKyNwq9Vo4c7IwnETHvMKkE+ig=" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.9.0.tgz", + "integrity": "sha512-Ot6bYJ6PoqPmpsqQYXjn1+RKrY2NWQvQt/o4jfd/UYwVWndyO5EPO8YHbnm5HIykf8ENsm4JUrdAvolPT86yYA==" }, "source-list-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", "dev": true }, "source-map": { @@ -9632,7 +10204,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", - "dev": true, "requires": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" @@ -9641,14 +10212,12 @@ "spdx-exceptions": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", - "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", - "dev": true + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==" }, "spdx-expression-parse": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", - "dev": true, "requires": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -9657,8 +10226,7 @@ "spdx-license-ids": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.1.tgz", - "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==", - "dev": true + "integrity": "sha512-TfOfPcYGBB5sDuPn3deByxPhmfegAhpDYKSOXZQN81Oyrrif8ZCodOLzK3AesELnCx03kikhyDwh0pfvvQvF8w==" }, "spdy": { "version": "3.4.7", @@ -9675,9 +10243,9 @@ } }, "spdy-transport": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.0.tgz", - "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.1.tgz", + "integrity": "sha512-q7D8c148escoB3Z7ySCASadkegMmUZW8Wb/Q1u0/XBgDKMO880rLQDj8Twiew/tYi7ghemKUi/whSYOwE17f5Q==", "dev": true, "requires": { "debug": "^2.6.8", @@ -9704,11 +10272,18 @@ "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, + "ssf": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/ssf/-/ssf-0.10.2.tgz", + "integrity": "sha512-rDhAPm9WyIsY8eZEKyE8Qsotb3j/wBdvMWBUsOhJdfhKGLfQidRjiBUV0y/MkyCLiXQ38FG6LWW/VYUtqlIDZQ==", + "requires": { + "frac": "~1.1.2" + } + }, "sshpk": { "version": "1.14.2", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", - "dev": true, "requires": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", @@ -9770,8 +10345,6 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", - "dev": true, - "optional": true, "requires": { "readable-stream": "^2.0.1" } @@ -9819,7 +10392,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -9830,7 +10402,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, "requires": { "safe-buffer": "~5.1.0" } @@ -9839,7 +10410,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, "requires": { "ansi-regex": "^2.0.0" } @@ -9848,7 +10418,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true, "requires": { "is-utf8": "^0.2.0" } @@ -9863,8 +10432,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", - "dev": true, - "optional": true, "requires": { "get-stdin": "^4.0.1" } @@ -9944,6 +10511,11 @@ "has-flag": "^3.0.0" } }, + "sweetalert2": { + "version": "7.33.1", + "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-7.33.1.tgz", + "integrity": "sha512-69KYtyhtxejFG0HDb8aVhAwbpAWPSTZwaL5vxDHgojErD2KeFxTmRgmkbiLtMC8UdTFXRmvTPtZTF4459MUb7w==" + }, "symbol-observable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", @@ -9951,17 +10523,15 @@ "dev": true }, "tapable": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", - "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.0.tgz", + "integrity": "sha512-IlqtmLVaZA2qab8epUXbVWRn3aB1imbDMJtjB3nu4X0NqPkcY/JH9ZtCBWKHWPxs8Svi9tyo8w2dBoi07qZbBA==", "dev": true }, "tar": { "version": "2.2.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "resolved": "http://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", - "dev": true, - "optional": true, "requires": { "block-stream": "*", "fstream": "^1.0.2", @@ -9969,9 +10539,9 @@ } }, "tether": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/tether/-/tether-1.4.4.tgz", - "integrity": "sha512-bagKeRRo3vEynHnO3GB7/jB3Q4YIf0mN7gXM/nR0wZvNHkPrwmZemg1w0C32JZP0prHZUwxGwoX5CdA7tuIDEw==" + "version": "1.4.6", + "resolved": "https://registry.npmjs.org/tether/-/tether-1.4.6.tgz", + "integrity": "sha512-TyWPw9O0ExqH9/ZBnQ0P1/mNI6LX16YPx5XvixC/ZvAqMkhGeXmKTTsMbSBn3ViOrPuQi/Uef11bVp3sd5UcQQ==" }, "through": { "version": "2.3.8", @@ -9980,19 +10550,19 @@ "dev": true }, "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "requires": { - "readable-stream": "^2.1.5", + "readable-stream": "~2.3.6", "xtend": "~4.0.1" } }, "thunky": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz", - "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz", + "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==", "dev": true }, "ticky": { @@ -10088,7 +10658,6 @@ "version": "2.4.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", - "dev": true, "requires": { "psl": "^1.1.24", "punycode": "^1.4.1" @@ -10097,23 +10666,20 @@ "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" } } }, "tree-kill": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz", - "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.1.tgz", + "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==", "dev": true }, "trim-newlines": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", - "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", - "dev": true, - "optional": true + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=" }, "trim-right": { "version": "1.0.1", @@ -10125,8 +10691,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", - "dev": true, - "optional": true, "requires": { "glob": "^7.1.2" } @@ -10238,7 +10802,6 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, "requires": { "safe-buffer": "^5.0.1" } @@ -10247,7 +10810,6 @@ "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true, "optional": true }, "type-check": { @@ -10281,6 +10843,30 @@ "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==", "dev": true }, + "uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "dev": true, + "requires": { + "commander": "~2.13.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, "uglify-js": { "version": "3.4.9", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.9.tgz", @@ -10321,27 +10907,11 @@ "worker-farm": "^1.5.2" }, "dependencies": { - "commander": { - "version": "2.13.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", - "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", - "dev": true - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true - }, - "uglify-es": { - "version": "3.3.9", - "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", - "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", - "dev": true, - "requires": { - "commander": "~2.13.0", - "source-map": "~0.6.1" - } } } }, @@ -10387,18 +10957,18 @@ } }, "unique-filename": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", - "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, "requires": { "unique-slug": "^2.0.0" } }, "unique-slug": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", - "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.1.tgz", + "integrity": "sha512-n9cU6+gITaVu7VGj1Z8feKMmfAjEAQGhwD9fE3zvpRRa0wEIx8ODYkVGfSc94M2OX00tUFV8wH3zYbm1I8mxFg==", "dev": true, "requires": { "imurmurhash": "^0.1.4" @@ -10466,7 +11036,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-3.0.2.tgz", "integrity": "sha1-+QuFhQf4HepNz7s8TD2/orVX+qo=", - "dev": true, "requires": { "punycode": "^2.1.0" } @@ -10495,16 +11064,10 @@ } } }, - "url-join": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz", - "integrity": "sha1-TTNA6AfTdzvamZH4MFrNzCpmXSo=", - "dev": true - }, "url-loader": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.1.tgz", - "integrity": "sha512-vugEeXjyYFBCUOpX+ZuaunbK3QXMKaQ3zUnRfIpRBlGkY7QizCnzyyn2ASfcxsvyU3ef+CJppVywnl3Kgf13Gg==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz", + "integrity": "sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==", "dev": true, "requires": { "loader-utils": "^1.1.0", @@ -10513,9 +11076,9 @@ }, "dependencies": { "mime": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", - "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", + "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", "dev": true }, "schema-utils": { @@ -10532,9 +11095,9 @@ } }, "url-parse": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.3.tgz", - "integrity": "sha512-rh+KuAW36YKo0vClhQzLLveoj8FwPJNu65xLb7Mrt+eZht0IPT0IXgSv8gcMegZ6NvjJUALf6Mf25POlMwD1Fw==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.4.tgz", + "integrity": "sha512-/92DTTorg4JjktLNLe6GPS2/RvAd/RGr6LuktmWSMLEOa6rjnlrFXNgSbSmkNvCoL2T028A0a1JaJLzRMlFoHg==", "dev": true, "requires": { "querystringify": "^2.0.0", @@ -10569,8 +11132,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "util.promisify": { "version": "1.0.0", @@ -10597,14 +11159,12 @@ "uuid": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", - "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", - "dev": true + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" }, "validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, "requires": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" @@ -10629,13 +11189,17 @@ "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, "requires": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, + "viewerjs": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/viewerjs/-/viewerjs-1.3.3.tgz", + "integrity": "sha512-zmdgdrRnE3wL90MNdxGYNfRV5imqdsg38PlXD1Y90XkhTD+62p2gCkZCBQjE4FdbGqlSfCLNEz+ihm1EYM/0Kg==" + }, "vm-browserify": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", @@ -10767,60 +11331,30 @@ "webpack-sources": "^1.0.1" } }, - "webpack-core": { - "version": "0.6.9", - "resolved": "https://registry.npmjs.org/webpack-core/-/webpack-core-0.6.9.tgz", - "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", - "dev": true, - "requires": { - "source-list-map": "~0.1.7", - "source-map": "~0.4.1" - }, - "dependencies": { - "source-list-map": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", - "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", - "dev": true - }, - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true, - "requires": { - "amdefine": ">=0.0.4" - } - } - } - }, "webpack-dev-middleware": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.2.0.tgz", - "integrity": "sha512-YJLMF/96TpKXaEQwaLEo+Z4NDK8aV133ROF6xp9pe3gQoS7sxfpXh4Rv9eC+8vCvWfmDjRQaMSlRPbO+9G6jgA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz", + "integrity": "sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA==", "dev": true, "requires": { - "loud-rejection": "^1.6.0", "memory-fs": "~0.4.1", "mime": "^2.3.1", - "path-is-absolute": "^1.0.0", "range-parser": "^1.0.3", - "url-join": "^4.0.0", "webpack-log": "^2.0.0" }, "dependencies": { "mime": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.3.1.tgz", - "integrity": "sha512-OEUllcVoydBHGN1z84yfQDimn58pZNNNXgZlHXSboxMlFvgI6MXSWpWKpFRra7H1HxpVhHTkrghfRW49k6yjeg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.0.tgz", + "integrity": "sha512-ikBcWwyqXQSHKtciCcctu9YfPbFYZ4+gbHEmE0Q8jzcTYQg5dHCr3g2wwAZjPoJfQVXZq6KXAjpXOTf5/cjT7w==", "dev": true } } }, "webpack-dev-server": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.8.tgz", - "integrity": "sha512-c+tcJtDqnPdxCAzEEZKdIPmg3i5i7cAHe+B+0xFNK0BlCc2HF/unYccbU7xTgfGc5xxhCztCQzFmsqim+KhI+A==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.10.tgz", + "integrity": "sha512-RqOAVjfqZJtQcB0LmrzJ5y4Jp78lv9CK0MZ1YJDTaTmedMZ9PU9FLMQNrMCfVu8hHzaVLVOJKBlGEHMN10z+ww==", "dev": true, "requires": { "ansi-html": "0.0.7", @@ -10844,11 +11378,11 @@ "selfsigned": "^1.9.1", "serve-index": "^1.7.2", "sockjs": "0.3.19", - "sockjs-client": "1.1.5", + "sockjs-client": "1.3.0", "spdy": "^3.4.1", "strip-ansi": "^3.0.0", "supports-color": "^5.1.0", - "webpack-dev-middleware": "3.2.0", + "webpack-dev-middleware": "3.4.0", "webpack-log": "^2.0.0", "yargs": "12.0.2" }, @@ -10888,12 +11422,12 @@ } }, "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" } }, "decamelize": { @@ -10945,6 +11479,12 @@ "path-exists": "^3.0.0" } }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, "os-locale": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.0.1.tgz", @@ -11069,17 +11609,17 @@ }, "dependencies": { "lodash": { - "version": "4.17.10", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", - "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz", + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==", "dev": true } } }, "webpack-sources": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.2.0.tgz", - "integrity": "sha512-9BZwxR85dNsjWz3blyxdOhTgtnQvv3OEs5xofI0wPYTwu5kaWxS08UuD1oI7WLBLpRO+ylf0ofnXLXWmGb2WMw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.3.0.tgz", + "integrity": "sha512-OiVgSrbGu7NEnEvQJJgdSFPl2qWKkWq5lHMhgiToIiN9w34EBnjYzSYs+VbL5KoYiLNtFFa7BZIKxRED3I32pA==", "dev": true, "requires": { "source-list-map": "^2.0.0", @@ -11095,12 +11635,12 @@ } }, "webpack-subresource-integrity": { - "version": "1.1.0-rc.4", - "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.1.0-rc.4.tgz", - "integrity": "sha1-xcTj1pD50vZKlVDgeodn+Xlqpdg=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.3.0.tgz", + "integrity": "sha512-qR2AwKMOjqOSsk4cTuZlRjYXfvAo7/FreL44AG5R5Vn7qHAE78BOdbPPVk9fZonMIiSKYQsIO2aC61JVJC60AQ==", "dev": true, "requires": { - "webpack-core": "^0.6.8" + "webpack-sources": "^1.3.0" } }, "websocket-driver": { @@ -11129,7 +11669,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, "requires": { "isexe": "^2.0.0" } @@ -11137,15 +11676,12 @@ "which-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true, - "optional": true + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" }, "wide-align": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, "requires": { "string-width": "^1.0.2 || 2" } @@ -11165,11 +11701,19 @@ "errno": "~0.1.7" } }, + "worker-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/worker-loader/-/worker-loader-2.0.0.tgz", + "integrity": "sha512-tnvNp4K3KQOpfRnD20m8xltE3eWh89Ye+5oj7wXEEHKac1P4oZ6p9oTj8/8ExqoSBnk9nu5Pr4nKfQ1hn2APJw==", + "requires": { + "loader-utils": "^1.0.0", + "schema-utils": "^0.4.0" + } + }, "wrap-ansi": { "version": "2.1.0", "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, "requires": { "string-width": "^1.0.1", "strip-ansi": "^3.0.1" @@ -11178,8 +11722,7 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { "version": "1.1.2", @@ -11197,6 +11740,27 @@ "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=", "dev": true }, + "xlsx": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/xlsx/-/xlsx-0.14.2.tgz", + "integrity": "sha512-6+4TkmU34s1p/qsl8omWSEOa7pOtWlw4SuRJH/FGRk3iF/gcvSWGgCI1L28NaSDx2tI82aeq2SPY+xeFQJD27A==", + "requires": { + "adler-32": "~1.2.0", + "cfb": "^1.1.0", + "codepage": "~1.14.0", + "commander": "~2.17.1", + "crc-32": "~1.2.0", + "exit-on-epipe": "~1.0.1", + "ssf": "~0.10.2" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + } + } + }, "xml2js": { "version": "0.4.19", "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", @@ -11252,15 +11816,12 @@ "yallist": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" }, "yargs": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", - "dev": true, - "optional": true, "requires": { "camelcase": "^3.0.0", "cliui": "^3.2.0", @@ -11280,16 +11841,12 @@ "camelcase": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true, - "optional": true + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" }, "y18n": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true, - "optional": true + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" } } }, @@ -11297,8 +11854,6 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", - "dev": true, - "optional": true, "requires": { "camelcase": "^3.0.0" }, @@ -11306,9 +11861,7 @@ "camelcase": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true, - "optional": true + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" } } }, @@ -11325,9 +11878,9 @@ "dev": true }, "zone.js": { - "version": "0.8.26", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.26.tgz", - "integrity": "sha512-W9Nj+UmBJG251wkCacIkETgra4QgBo/vgoEkb4a2uoLzpQG7qF9nzwoLXWU5xj3Fg2mxGvEDh47mg24vXccYjA==" + "version": "0.8.29", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.29.tgz", + "integrity": "sha512-mla2acNCMkWXBD+c+yeUrBUrzOxYMNFdQ6FGfigGGtEVBPJx07BQeJekjt9DmH1FtZek4E9rE1eRR9qQpxACOQ==" } } } diff --git a/ng6-seed/package.json b/ng6-seed/package.json old mode 100644 new mode 100755 index 1351942..9c7d167 --- a/ng6-seed/package.json +++ b/ng6-seed/package.json @@ -3,6 +3,7 @@ "version": "0.0.0", "license": "MIT", "scripts": { + "prod": "node --max_old_space_size=8192 node_modules/@angular/cli/bin/ng build --prod --build-optimizer=true", "ng": "ng", "start": "ng serve", "build": "ng build", @@ -12,72 +13,87 @@ }, "private": true, "dependencies": { - "@agm/core": "^1.0.0-beta.2", - "@angular/animations": "^6.0.0-rc.5", + "@agm/core": "^1.0.0-beta.5", + "@angular/animations": "^6.1.10", "@angular/cdk": "^6.0.0-rc.5", - "@angular/common": "^6.0.0-rc.5", - "@angular/compiler": "^6.0.0-rc.5", - "@angular/core": "^6.0.0-rc.5", + "@angular/common": "^6.1.10", + "@angular/compiler": "^6.1.10", + "@angular/core": "^6.1.10", "@angular/flex-layout": "^6.0.0-beta.18", - "@angular/forms": "^6.0.0-rc.5", - "@angular/http": "^6.0.0-rc.5", + "@angular/forms": "^6.1.10", + "@angular/http": "^6.0.0-rc.6", "@angular/material": "^6.0.0-rc.5", - "@angular/platform-browser": "^6.0.0-rc.5", - "@angular/platform-browser-dynamic": "^6.0.0-rc.5", - "@angular/router": "^6.0.0-rc.5", + "@angular/material-moment-adapter": "^6.0.0-rc.5", + "@angular/platform-browser": "^6.1.10", + "@angular/platform-browser-dynamic": "^6.1.10", + "@angular/router": "^6.1.10", "@ngx-translate/core": "^10.0.2", "@ngx-translate/http-loader": "^3.0.1", "@swimlane/ngx-charts": "^7.0.1", "@swimlane/ngx-datatable": "11.1.5", - "amazon-cognito-identity-js": "^2.0.27", + "@types/file-saver": "^2.0.0", + "amazon-cognito-identity-js": "^2.0.30", "angular-calendar": "0.23.3", - "angular-sortablejs": "^2.0.6", + "angular-notifier": "^4.1.1", + "angular-sortablejs": "^2.7.0", "angular-tree-component": "6.1.0", - "aws-sdk": "^2.318.0", "chart.js": "2.6.0", - "core-js": "^2.5.5", + "core-js": "^2.6.5", "d3": "^4.9.1", "dragula": "3.7.2", + "file-saver": "^2.0.1", "font-awesome": "4.7.0", "hammerjs": "2.0.8", "intl": "^1.2.4", "jquery": "3.2.1", "karma-jasmine": "^1.1.1", - "leaflet": "^1.0.2", - "moment": "^2.15.0", + "leaflet": "^1.4.0", + "moment": "^2.24.0", + "ng-pick-datetime": "^6.0.16", "ng2-charts": "1.6.0", + "ng2-ckeditor": "^1.2.2", "ng2-dragula": "1.3.1", "ng2-file-upload": "1.2.1", + "ng2-pdf-viewer": "^5.2.4", + "ng2-toastr": "^4.1.2", "ng2-validation": "4.2.0", "ngx-color-picker": "^4.0.3", - "ngx-mat-select-search": "^1.3.1", + "ngx-mat-daterange-picker": "^1.1.4", + "ngx-mat-select-search": "^1.7.2", "ngx-perfect-scrollbar": "5.0.0-7", + "ngx-viewer": "^1.0.1", + "node-sass": "^4.11.0", "perfect-scrollbar": "^1.3.0", "quill": "^1.2.0", - "rxjs": "^6.3.1", - "rxjs-compat": "^6.3.1", + "rxjs": "^6.5.1", + "rxjs-compat": "^6.5.1", "screenfull": "^3.2.2", "simple-line-icons": "^2.4.1", - "sortablejs": "^1.6.0", - "tether": "^1.4.0", - "zone.js": "^0.8.26" + "sortablejs": "^1.9.0", + "sweetalert2": "^7.33.1", + "tether": "^1.4.6", + "viewerjs": "^1.3.3", + "xlsx": "^0.14.2", + "zone.js": "^0.8.29" }, "devDependencies": { - "@angular-devkit/build-angular": "~0.6.1", - "@angular/cli": "^6.0.0-rc.5", - "@angular/compiler-cli": "^6.0.0-rc.5", - "@types/node": "~8.9.4", - "codelyzer": "~4.1.0", + "@angular-devkit/build-angular": "^0.6.8", + "@angular/cli": "^6.2.9", + "@angular/compiler-cli": "^6.1.10", + "@types/aws-sdk": "^2.7.0", "@types/jasmine": "2.5.52", "@types/jquery": "3.2.0", + "@types/node": "^8.10.46", + "aws-sdk": "^2.443.0", + "codelyzer": "~4.1.0", "jasmine-core": "2.6.3", "jasmine-spec-reporter": "4.1.0", "karma": "1.7.0", "karma-chrome-launcher": "2.1.1", "karma-cli": "1.0.1", + "karma-coverage-istanbul-reporter": "1.3.0", "karma-jasmine": "1.1.0", "karma-jasmine-html-reporter": "^0.2.2", - "karma-coverage-istanbul-reporter": "1.3.0", "protractor": "5.1.2", "ts-node": "~5.0.0", "tslint": "~5.9.1", diff --git a/ng6-seed/src/app/AwsService/aws.service.ts b/ng6-seed/src/app/AwsService/aws.service.ts index 665a351..c2944ef 100755 --- a/ng6-seed/src/app/AwsService/aws.service.ts +++ b/ng6-seed/src/app/AwsService/aws.service.ts @@ -1,16 +1,18 @@ import { Injectable } from "@angular/core"; import { AuthenticationDetails, - CognitoUserPool , + CognitoUserPool, CognitoUser, CognitoUserAttribute, ICognitoUserAttributeData, ISignUpResult, CognitoUserSession } from "amazon-cognito-identity-js"; +import * as AWS from "aws-sdk"; + import { Observable } from "rxjs/Observable"; import "rxjs/add/operator/map"; -import * as AWS from "aws-sdk"; +// import AWS from "aws-sdk/dist/aws-sdk"; //environment import { environment } from '../../environments/environment'; @@ -18,28 +20,30 @@ import { environment } from '../../environments/environment'; import { Http, Headers, RequestOptions } from '@angular/http'; import { HttpClient } from '@angular/common/http'; import 'rxjs/add/operator/map'; - +import { CognitoService } from './cognito.service'; -const sineedge_poolData = { - UserPoolId: "ap-south-1_y7dt3iEaX", //ap-south-1_qQ85yQZJO UserName :SPARQ_SINEEDGE_DEV - ClientId: "291qt4smn5pql6o8cc2hi201lj" // ClientName: SINEEDGE_DEV_WEB -}; +// const sineedge_poolData = { +// UserPoolId: "ap-south-1_y7dt3iEaX", //ap-south-1_qQ85yQZJO UserName :SPARQ_SINEEDGE_DEV +// ClientId: "291qt4smn5pql6o8cc2hi201lj" // ClientName: SINEEDGE_DEV_WEB +// }; const sineedgedev_poolData = { - UserPoolId: environment.UserPoolId, // UserName :SPARQ_SINEEDGE_DEV - ClientId: environment.ClientId// ClientName: SINEEDGE_DEV_WEB + UserPoolId: "ap-south-1_qQ85yQZJO", // UserName :SPARQ_SINEEDGE_DEV + ClientId: "67b4fnbuols5upms5to8bvqddh"// ClientName: SINEEDGE_DEV_WEB } +// client id changed on 12-04-2019 by kms +//ClientId: "2o5c3cs9k3als16nqhp3irh8rs" + const lender_poolData = { UserPoolId: "ap-south-1_hFiGyr1Gw", // Username :SPARQ_LENDER_DEV - ClientId: "6egsdssf0i7h2o9mscqgqbn788" // ClientName:LENDER_DEV_WEB + ClientId: "vkotfqgqorgjh3fvp1r26hslv" // ClientName:LENDER_DEV_WEB }; const vendor_poolData = { - UserPoolId: "", + UserPoolId: "ap-south-1_K57yPaWxV", ClientId: "" } - -const sineedgeUserPool = new CognitoUserPool(sineedge_poolData); +// const sineedgeUserPool = new CognitoUserPool(sineedge_poolData); const lenderUserPool = new CognitoUserPool(lender_poolData); const sineedgedevUserpool = new CognitoUserPool(sineedgedev_poolData); @@ -47,11 +51,12 @@ const sineedgedevUserpool = new CognitoUserPool(sineedgedev_poolData); * Identity PoolID */ const sineedgeIdentity = "ap-south-1:9a551eab-97cf-4991-b677-2f9bcd058961";//"ap-south-1:9a551eab-97cf-4991-b677-2f9bcd058961"; -const lenderIdentity = "ap-south-1:ca22dabc-db59-4af5-9bb8-265f7ec95907"; -const vendorIdenttiy = ""; +const lenderIdentity = "ap-south-1:ca22dabc-db59-4af5-9bb8-265f7ec95907"; +const vendorIdenttiy = "ap-south-1:5ad3ce43-4260-4273-87b2-e6a377b8e874"; // serviceProvider -const apiurl = "http://localhost/sineedge/sparqapi/api/"; -const currentdate = new Date().toJSON().slice(0,19).replace('T',' '); +const apiurl = environment.apiEndpoint; +//const apiurl = "http://ssa.sineedge.com/sparqapi/api/"; +//const apiurl = "http://localhost/sparqapi/api/"; @Injectable({ providedIn: "root" @@ -59,14 +64,14 @@ const currentdate = new Date().toJSON().slice(0,19).replace('T',' '); export class AwsService { - public static _REGION = environment.region; + //public static _REGION = environment.region; mySecData: any; cognitoUser: any; jwttoken: any; cognitousers: any; localUserId:any = ''; - constructor(public http: Http, public RequestOptions: RequestOptions) { } + constructor(public http: Http, public RequestOptions: RequestOptions,public shared:CognitoService) { } /** * Login Function @@ -80,7 +85,7 @@ export class AwsService { let attributesData = []; const userData = { Username: authenticationData.Username, // User email id - Pool: sineedgedevUserpool // user Pool ID + Pool: lenderUserPool // user Pool ID }; let cognitoUser = new CognitoUser(userData); return Observable.create(observer => { @@ -127,7 +132,7 @@ export class AwsService { ////(auth); const userData = { Username: auth.Username, - Pool: sineedgedevUserpool + Pool: lenderUserPool }; let cognitoUser = new CognitoUser(userData); return Observable.create(observe => { @@ -143,8 +148,8 @@ export class AwsService { //Optional automatic callback inputVerificationCode: function (data) { //('Code sent to: ' + data); - var verificationCode = prompt('Please input verification code ', ''); - var newPassword = prompt('Enter new password ', ''); + var verificationCode = prompt('Enter Verification Code Sent to Mobile ', ''); + var newPassword = prompt('Enter New Password ', ''); cognitoUser.confirmPassword(verificationCode, newPassword, { onSuccess() { //('Password confirmed!'); @@ -162,4 +167,597 @@ export class AwsService { /** * End of the function */ + + /** + * Logout function + */ + logout(){ + + return Observable.create(observe=>{ + this.shared.getCurrentUser().signOut(); + + observe.next(); + + observe.complete(); + }); + } + + + /** + * Config function + */ + getconfig() { + let session:any = this.shared.getAccessToken() || ""; + let config = ""; + config += AWS.config.region = "ap-south-1"; + config += AWS.config.credentials = new AWS.CognitoIdentityCredentials({ + IdentityPoolId: lenderIdentity, // for sineedge_DEV + Logins: { + "cognito-idp.ap-south-1.amazonaws.com/ap-south-1_qQ85yQZJO": session + .getIdToken() + .getJwtToken() + } + // NOTE: getSession must be called to authenticate user before calling getUserAttributes + }); + return config; + } + /** + * admin Disable user + * @param userdata + * @param awsName + */ + admindisabelUser(userdata, awsName) { + let session:any = this.shared.getAccessToken() || ""; + this.getconfig(); + // let config = ""; + // AWS.config.region = "ap-south-1";//environment.region; + // AWS.config.credentials = new AWS.CognitoIdentityCredentials({ + // IdentityPoolId: sineedgeIdentity, // for sineedge_DEV + // Logins: { + // "cognito-idp.ap-south-1.amazonaws.com/ap-south-1_qQ85yQZJO": session + // .getIdToken() + // .getJwtToken() + // } + // // NOTE: getSession must be called to authenticate user before calling getUserAttributes + // }); + let userGroup = session.idToken.payload["cognito:groups"].filter( + usergroup => usergroup == "ADMIN" + )[0]; + //cognitosdata = 7; + let params: any; + if (userGroup == 'ADMIN') { + if (userdata.fk_entity_type_id == 1) { + params = { + UserPoolId: sineedgedev_poolData.UserPoolId, /* required */ + Username: awsName /* required */ + }; + } else if (userdata.fk_entity_type_id == 2) { + params = { + UserPoolId: lender_poolData.UserPoolId, /* required */ + Username: awsName /* required */ + }; + } + return Observable.create(observe => { + let cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider(); + cognitoidentityserviceprovider.adminDisableUser(params, function (err, data) { + if (err) console.log(err, err.stack); // an error occurred + observe.next("0"); // successful response + }); + }); + } + } + + /** + * Admin enable user + * @param userdata + * @param awsName + */ + adminenableUser(userdata, awsName) { + let session:any = this.shared.getAccessToken() || ""; + // this.getconfig(); + let config = ""; + AWS.config.region = "ap-south-1"; + AWS.config.credentials = new AWS.CognitoIdentityCredentials({ + IdentityPoolId: lenderIdentity, // for lender_DEV + Logins: { + "cognito-idp.ap-south-1.amazonaws.com/ap-south-1_qQ85yQZJO": session + .getIdToken() + .getJwtToken() + } + // NOTE: getSession must be called to authenticate user before calling getUserAttributes + }); + let userGroup = session.idToken.payload["cognito:groups"].filter( + usergroup => usergroup == "ADMIN" + )[0]; + //cognitosdata = 7; + let params: any; + if (userGroup == 'ADMIN') { + + if (userdata.fk_entity_type_id == 1) { + params = { + UserPoolId: sineedgedev_poolData.UserPoolId, /* required */ + Username: awsName /* required */ + }; + } else if (userdata.fk_entity_type_id == 2) { + params = { + UserPoolId: lender_poolData.UserPoolId, /* required */ + Username: awsName /* required */ + }; + } + return Observable.create(observe => { + let cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider(); + cognitoidentityserviceprovider.adminEnableUser(params, function (err, data) { + if (err) console.log(err, err.stack); // an error occurred + observe.next("1"); // successful response + }); + }); + } + } + + /** + * + */ + register(userData) { + let session:any = this.shared.getAccessToken() || ""; + + this.getconfig(); + let registeredData: any = ""; + let params: any; + let userGroup = session.idToken.payload["cognito:groups"].filter( + usergroup => usergroup == "ADMIN" + )[0]; + // (userGroup); + if (userGroup == "ADMIN") { + if (userData.type.entity_type_id == 1) { + params = { + UserPoolId: sineedgedev_poolData.UserPoolId /* required */, + Username: userData.email /* required */, + DesiredDeliveryMediums: [ + "EMAIL" + /* more items */ + ], + // ForceAliasCreation: true || false, + MessageAction: "SUPPRESS", + TemporaryPassword: "temp1234", + UserAttributes: [ + { + Name: "email" /* required */, + Value: userData.email + }, + { + Name: "phone_number" /* required */, + Value: "+91" + userData.phone + },{ + Name: "custom:role_id" /* required */, + Value: userData.role.role_id + } + /* more items */ + ] + }; + } else if (userData.type.entity_type_id == 2) { + params = { + UserPoolId: lender_poolData.UserPoolId /* required */, + Username: userData.email /* required */, + DesiredDeliveryMediums: [ + "EMAIL" + /* more items */ + ], + // ForceAliasCreation: true || false, + MessageAction: "SUPPRESS", + TemporaryPassword: "temp1234", + UserAttributes: [ + { + Name: "email" /* required */, + Value: userData.email + }, + { + Name: "phone_number" /* required */, + Value: "+91" + userData.phone + },{ + Name: "custom:role_id" /* required */, + Value: userData.role.role_id + } + /* more items */ + ] + }; + }else if(userData.type.entity_type_id == 3){ + params = { + UserPoolId: vendor_poolData.UserPoolId /* required */, + Username: userData.email /* required */, + DesiredDeliveryMediums: [ + "EMAIL" + /* more items */ + ], + // ForceAliasCreation: true || false, + MessageAction: "SUPPRESS", + TemporaryPassword: "temp1234", + UserAttributes: [ + { + Name: "email" /* required */, + Value: userData.email + }, + { + Name: "phone_number" /* required */, + Value: "+91" + userData.phone + },{ + Name: "custom:role_id" /* required */, + Value: userData.role.role_id + } + /* more items */ + ] + }; + } + return Observable.create(observe => { + let cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider(); + + cognitoidentityserviceprovider.adminCreateUser(params, ( + err, + data + ) => { + if (err) { alert(err.message); } + // an error occurred + + + + + observe.next(data); + + + // successful response + }); + }); + }else{ + return alert('Admin Only create user'); + } + } + + + UserGroup(cognitodata, userData) { + //console.log(cognitodata); + this.getconfig(); + //console.log(userData); + //let cognitodata = "539bfefa-ae42-4bee-bf79-4b15d1a2af7f"; + + + + let params: any; + + if(userData.userid === undefined){ + params = { + GroupName: "ADMIN" /* required */, + UserPoolId: sineedgedev_poolData.UserPoolId,//"ap-south-1_y7dt3iEaX" /* required */, + Username: cognitodata.User.Username //'539bfefa-ae42-4bee-bf79-4b15d1a2af7f' /* required */ + }; + }else + { + params = { + GroupName: "ADMIN" /* required */, + UserPoolId: sineedgedev_poolData.UserPoolId,//"ap-south-1_y7dt3iEaX" /* required */, + Username: userData.aws_name //'539bfefa-ae42-4bee-bf79-4b15d1a2af7f' /* required */ + }; + } + + //console.log(params); + return Observable.create(observe=>{ + let cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider(); + + cognitoidentityserviceprovider.adminAddUserToGroup(params, function ( + err, + data + ) { + if (err) { + alert(err.message); + }//(err, err.stack); + // an error occurred + else {//(data); + + observe.next(cognitodata); + + } + + }) + }); + +} + + + + /** + * admin User update + * @param username,clientid params + **/ + adminUpdateuser(user, cognitosdata) { + + console.log('inside - updateuser'); + let session:any = this.shared.getAccessToken() || ""; + this.getconfig(); + + //let cognitodata = "539bfefa-ae42-4bee-bf79-4b15d1a2af7f"; + let userGroup = session.idToken.payload["cognito:groups"].filter( + usergroup => usergroup == "ADMIN" + )[0]; + //cognitosdata = 7; + let params:any; + if (userGroup == 'ADMIN') { + if(user.type.entity_type_id ==1){ + params = { + UserAttributes: [ /* required */ + { + Name: 'locale', /* required */ + Value: cognitosdata.toString() + },{ + Name:"email_verified", + Value:"true" + },{ + Name:"phone_number_verified", + Value:"true" + } + /* more items */ + ], + UserPoolId: sineedgedev_poolData.UserPoolId, /* required */ + Username: user.email /* required */ + }; + }else if(user.type.entity_type_id ==2){ + params = { + UserAttributes: [ /* required */ + { + Name: 'locale', /* required */ + Value: cognitosdata.toString() + },{ + Name:"email_verified", + Value:"true" + },{ + Name:"phone_number_verified", + Value:"true" + } + /* more items */ + ], + UserPoolId: lender_poolData.UserPoolId, /* required */ + Username: user.email /* required */ + }; + }else if(user.type.entity_type_id ==3){ + params = { + UserAttributes: [ /* required */ + { + Name: 'locale', /* required */ + Value: cognitosdata.toString() + },{ + Name:"email_verified", + Value:"true" + },{ + Name:"phone_number_verified", + Value:"true" + } + /* more items */ + ], + UserPoolId: vendor_poolData.UserPoolId, /* required */ + Username: user.email /* required */ + }; + } + //console.log(params); + return Observable.create(observe => { + let cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider(); + + cognitoidentityserviceprovider.adminUpdateUserAttributes(params, function (err, data) { + if (err) //(err, err.stack); + //console.log(data); // an error occurred + observe.next(data); // successful response + }); + }); + } + + } + + getlocale(){ + let session:any = this.shared.getAccessToken() || ""; + return session.idToken.payload.locale; + } + + adminchangeData(userData,changeusers){ + console.log('inside - changeData'); + let session:any = this.shared.getAccessToken() || ""; + this.getconfig(); + let registeredData: any = ""; + let params:any=''; + let userGroup = session.idToken.payload["cognito:groups"].filter( + usergroup => usergroup == "ADMIN" + )[0]; + // (userGroup); + if (userGroup == "ADMIN") { + if (userData.fk_entity_type_id == 1) { + params = { + UserPoolId: sineedgedev_poolData.UserPoolId /* required */, + Username: userData.aws_name,//userData.email /* required */, + + // ForceAliasCreation: true || false, + + UserAttributes: [ + { + Name: "email" /* required */, + Value: changeusers.email,//userData.email + }, + { + Name: "phone_number" /* required */, + Value: "+91"+ changeusers.phone + }, + { + Name: "custom:role_id" /* required */, + Value: userData.user_role + } + /* more items */ + ] + }; + } else if (userData.fk_entity_type_id == 2) { + params = { + UserPoolId: lender_poolData.UserPoolId /* required */, + Username: userData.aws_name /* required */, + + UserAttributes: [ + { + Name: "email" /* required */, + Value: changeusers.email + }, + { + Name: "phone_number" /* required */, + Value: "+91" + changeusers.phone + },{ + Name: "custom:role_id" /* required */, + Value: userData.user_role + } + /* more items */ + ] + }; + }else if(userData.fk_entity_type_id == 3) + { + params = { + UserPoolId: vendor_poolData.UserPoolId /* required */, + Username: userData.aws_name /* required */, + + UserAttributes: [ + { + Name: "email" /* required */, + Value: changeusers.email + }, + { + Name: "phone_number" /* required */, + Value: "+91" + changeusers.phone + },{ + Name: "custom:role_id" /* required */, + Value: userData.user_role + } + /* more items */ + ] + }; + } + return Observable.create(observe=>{ + let cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider(); + cognitoidentityserviceprovider.adminUpdateUserAttributes(params, function(err, data) { + if (err) console.log(err, err.stack); // an error occurred + observe.next(data); // successful response + }); + }) + } + } +// adminremoveGroup(roles,users){ +// console.log(roles); +// console.log(users); +// if(users !==undefined){ + +// let session:any = this.shared.getAccessToken() ||""; +// this.getconfig(); +// let params:any; +// if(users.fk_entity_type_id ==1){ +// params = { +// GroupName: roles.GroupName, /* required */ +// UserPoolId: sineedgedev_poolData.UserPoolId, /* required */ +// Username: users.aws_name//'2c64866e-e96f-453b-903f-2b6f831688af' /* required */ +// }; +// }else if(users.fk_entity_id ==2){ +// params = { +// GroupName: roles.GroupName, /* required */ +// UserPoolId: lender_poolData.UserPoolId, /* required */ +// Username: users.aws_name//'2c64866e-e96f-453b-903f-2b6f831688af' /* required */ +// }; +// } +// let cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider(); +// cognitoidentityserviceprovider.adminRemoveUserFromGroup(params, function(err, data) { +// if (err) console.log(err, err.stack); // an error occurred +// else console.log(data); // successful response +// }); +// } +// } + +adminresetpassword(awsuser){ + this.getconfig(); + let params:any; + if(awsuser.fk_entity_id ==1){ + params= { + UserPoolId: sineedgedev_poolData.UserPoolId, /* required */ + Username: awsuser.email /* required */ + }; +}else if(awsuser.fk_entity_id ==2){ + params= { + UserPoolId: lender_poolData.UserPoolId, /* required */ + Username: awsuser.email /* required */ + }; +} + return Observable.create(observe=>{ + let cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider(); + cognitoidentityserviceprovider.changePassword(params, function(err, data) { + if (err) console.log(err, err.stack); // an error occurred + else { + observe.next(data); + } // successful response + }); +}); +} + +changepassword(passData) { + let session:any = this.shared.getAccessToken() || ""; + this.getconfig(); + var params = { + AccessToken: session.accessToken.jwtToken, /* required */ + PreviousPassword: passData.oldPassword, /* required */ + ProposedPassword: passData.newPassword /* required */ + }; + return Observable.create(observe => { + let cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider(); + cognitoidentityserviceprovider.changePassword(params, function (err, data) { + if (err) console.log(err, err.stack); // an error occurred + observe.next(data); + // successful response + }); + }) +} + +admindelete(aws){ + this.getconfig(); + let params:any; + if(aws.fk_entity_id ==1){ + params= { + UserPoolId: sineedgedev_poolData.UserPoolId, /* required */ + Username: aws.email /* required */ + }; +}else if(aws.fk_entity_id ==2){ + params= { + UserPoolId: lender_poolData.UserPoolId, /* required */ + Username: aws.email /* required */ + }; +} + return Observable.create(observe=>{ + let cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider(); + cognitoidentityserviceprovider.adminDeleteUser(params, function(err, data) { + if (err) console.log(err, err.stack); // an error occurred + else { + observe.next(data); + } // successful response + }); +}); +} + +adminlistgroup(enitiy){ + // console.log(enitiy); + this.getconfig(); + let params:any; + if(enitiy ==1){ + params = { + UserPoolId:sineedgedev_poolData.UserPoolId, + } + }else if(enitiy ==2){ + params = { + UserPoolId:lender_poolData.UserPoolId + } + } + //console.log(enitiy); + return Observable.create(observe=>{ + + let cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider(); + cognitoidentityserviceprovider.listGroups(params,function(err,data){ + if(err) alert(err.stack); + else {observe.next(data.Groups);} + }) +}); + +} + } diff --git a/ng6-seed/src/app/AwsService/cognito.service.ts b/ng6-seed/src/app/AwsService/cognito.service.ts old mode 100644 new mode 100755 index 2fb6aa2..2765881 --- a/ng6-seed/src/app/AwsService/cognito.service.ts +++ b/ng6-seed/src/app/AwsService/cognito.service.ts @@ -1,5 +1,6 @@ import { Injectable } from '@angular/core'; import * as AWS from "aws-sdk"; +import { CanActivateChild, Router } from '@angular/router'; import { AuthenticationDetails, CognitoUserPool, @@ -10,6 +11,39 @@ import { CognitoUserSession } from "amazon-cognito-identity-js"; import { environment } from '../../environments/environment'; + +import { BehaviorSubject,Observable,of } from 'rxjs'; +const sineedge_poolData = { + UserPoolId: "ap-south-1_y7dt3iEaX", //ap-south-1_qQ85yQZJO UserName :SPARQ_SINEEDGE_DEV + ClientId: "291qt4smn5pql6o8cc2hi201lj" // ClientName: SINEEDGE_DEV_WEB +}; +const sineedgedev_poolData = { + UserPoolId: "ap-south-1_qQ85yQZJO", // UserName :SPARQ_SINEEDGE_DEV + ClientId: "67b4fnbuols5upms5to8bvqddh" // ClientName: SINEEDGE_DEV_WEB +} +const lender_poolData = { + UserPoolId: "ap-south-1_hFiGyr1Gw", // Username :SPARQ_LENDER_DEV + ClientId: "vkotfqgqorgjh3fvp1r26hslv" // ClientName:LENDER_DEV_WEB +}; +const vendor_poolData = { + UserPoolId: "", + ClientId: "" +} +const sineedgeUserPool = new CognitoUserPool(sineedge_poolData); +const lenderUserPool = new CognitoUserPool(lender_poolData); +const sineedgedevUserpool = new CognitoUserPool(sineedgedev_poolData); + +/** +* Identity PoolID +*/ +const sineedgeIdentity = "ap-south-1:9a551eab-97cf-4991-b677-2f9bcd058961";//"ap-south-1:9a551eab-97cf-4991-b677-2f9bcd058961"; +const lenderIdentity = "ap-south-1:ca22dabc-db59-4af5-9bb8-265f7ec95907"; +const vendorIdenttiy = ""; +// serviceProvider +//const apiurl = "http://ssa.sineedge.com/sparqapi/api/"; +const apiurl = environment.apiEndpoint; +// const apiurl = "http://localhost/sparqapi/api/"; + export interface Callback { callback(): void; @@ -19,33 +53,53 @@ export interface Callback { @Injectable({ providedIn: 'root' }) -export class CognitoService { - public static _REGION = environment.region; +export class CognitoService implements CanActivateChild { + public loggedIn :boolean = false; + // public static _REGION = environment.region; - public static _IDENTITY_POOL_ID = environment.identityPoolId; - public static _USER_POOL_ID = environment.UserPoolId; - public static _CLIENT_ID = environment.ClientId; + // public static _IDENTITY_POOL_ID = environment.identityPoolId; + // public static _USER_POOL_ID = environment.UserPoolId; + // public static _CLIENT_ID = environment.ClientId; - public static _POOL_DATA: any = { - UserPoolId: CognitoService._USER_POOL_ID, - ClientId: CognitoService._CLIENT_ID - }; + // public static _POOL_DATA: any = { + // UserPoolId: CognitoService._USER_POOL_ID, + // ClientId: CognitoService._CLIENT_ID + // }; + get isLoggedIn() { + if(lenderUserPool.getCurrentUser() !=null){ + this.loggedIn = true; + }else{ + this.loggedIn = false; + } + return this.loggedIn; // {2} + } + canActivateChild(){ + if(this.getToken()){ + //alert('session valid') + return true; + }else{ + this.route.navigate(['/authentication/login']); + //alert('session valid timeout'); + return false; + } + } public cognitoCreds: AWS.CognitoIdentityCredentials; isloggin:boolean = false; - getUserPool() { - if (environment.cognito_idp_endpoint) { - CognitoService._POOL_DATA.endpoint = environment.cognito_idp_endpoint; - } - return new CognitoUserPool(CognitoService._POOL_DATA); - } + // getUserPool() { + // if (environment.cognito_idp_endpoint) { + // CognitoService.sineedgedev_poolData.endpoint = environment.cognito_idp_endpoint; + // } + // return new CognitoUserPool(CognitoService.sineedgedev_poolData); + // } getCurrentUser() { - return this.getUserPool().getCurrentUser(); + + return lenderUserPool.getCurrentUser(); } - constructor() { } + constructor(public route:Router) { } // getAccessToken(callback: Callback): void { // if (callback == null) { @@ -70,20 +124,40 @@ isloggin:boolean = false; // callback.callbackWithParam(null); // } // } +refresh() { + let tokenexp:boolean; + this.getCurrentUser().getSession(function (err, session) { + if (err) { + } + + else { + if (session.isValid()) { + tokenexp = session.isValid(); + of(tokenexp) + + } else { + tokenexp = session.isValid(); + } + } + + return tokenexp; + + }); +} getAccessToken(){ + this.refresh(); let jwttoken = ''; if (this.getCurrentUser() != null) { //console.log(JSON.stringify(this.getCurrentUser())); - console.log('76 if'); + // console.log('76 if'); this.getCurrentUser().getSession(function (err, session) { if (err) { - console.log("CognitoUtil: Can't set the credentials:" + err); jwttoken =''; - console.log('81 if') + // console.log('81 if') } else { if (session.isValid()) { - console.log('85 else if'); + // console.log('85 else if'); jwttoken = session; } else { @@ -92,7 +166,7 @@ getAccessToken(){ }); } else { - console.log("else"); + //console.log("else"); } return jwttoken; @@ -102,16 +176,16 @@ getToken():boolean { let isloggin = false; if (this.getCurrentUser() != null) { //console.log(JSON.stringify(this.getCurrentUser())); - console.log('76 if'); + //console.log('76 if'); this.getCurrentUser().getSession(function (err, session) { if (err) { - console.log("CognitoUtil: Can't set the credentials:" + err); + // console.log("CognitoUtil: Can't set the credentials:" + err); isloggin = false; - console.log('81 if') + //console.log('81 if') } else { if (session.isValid()) { - console.log('85 else if'); + // console.log('85 else if'); isloggin = true; } else { isloggin = false; @@ -120,7 +194,7 @@ getToken():boolean { }); } else { - console.log("else"); + // console.log("else"); isloggin = false; } return isloggin; diff --git a/ng6-seed/src/app/_guard/auth.guard.ts b/ng6-seed/src/app/_guard/auth.guard.ts old mode 100644 new mode 100755 index 72d01d8..8b7e970 --- a/ng6-seed/src/app/_guard/auth.guard.ts +++ b/ng6-seed/src/app/_guard/auth.guard.ts @@ -1,54 +1,48 @@ -// import { Injectable } from '@angular/core'; -// import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateChild } from '@angular/router'; -// import { Observable , of } from 'rxjs'; +import { Injectable } from '@angular/core'; +import { Router, CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateChild } from '@angular/router'; +import { Observable , of } from 'rxjs'; +import { CognitoService } from '../AwsService/cognito.service'; +@Injectable() +export class AuthGuard implements CanActivate, CanActivateChild { -// @Injectable() -// export class AuthGuard implements CanActivate, CanActivateChild { + constructor(private router: Router,public shared:CognitoService) { } -// constructor(private router: Router) { } + canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { + if (this.shared.getToken()) { + alert("if"); + // this.router.navigate(['']); + return true + } else { + alert("else"); + this.router.navigate(['/login']); + return false; + } + } -// canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { -// if (localStorage.getItem('token') != null) { -// // this.router.navigate(['']); -// return true -// } else { -// this.router.navigate(['/login']); -// return false; -// } -// } + canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean { + + if (this.shared.getToken()) { + // alert("if"); + + return true; + } else { + // alert("else"); + setTimeout(() => { + this.router.navigate(['authentication/login']); + return false; + },1000); + + } + } -// canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean { -// if (this.loginService.loggedIn()) { -// let roles = route.data["role"] as Array; -// console.log("dataRole: " +roles); -// if(roles.length > -1){ -// var match = this.loginService.roleMatch(roles); -// if(match){ -// // this.router.navigate(['./dashboard']); -// return this.loginService.loggedIn() -// } -// else { -// this.router.navigate(['./404']); -// return this.loginService.loggedIn(); -// } -// } else { -// this.router.navigate(['/login']); -// return this.loginService.loggedIn(); -// } -// } else { -// this.router.navigate(['/login']); -// return this.loginService.loggedIn(); -// } -// } + // public getToken(): string { + // return localStorage.getItem('token'); + // } -// public getToken(): string { -// return localStorage.getItem('token'); -// } - -// public logOut() { -// localStorage.clear(); -// if(localStorage.getItem('token') === null){ -// this.router.navigate(['/login']); -// } -// } -// } \ No newline at end of file + // public logOut() { + // localStorage.clear(); + // if(localStorage.getItem('token') === null){ + // this.router.navigate(['/login']); + // } + // } +} \ No newline at end of file diff --git a/ng6-seed/src/app/_guard/token.interceptor.ts b/ng6-seed/src/app/_guard/token.interceptor.ts old mode 100644 new mode 100755 index f1930e8..e5b78dc --- a/ng6-seed/src/app/_guard/token.interceptor.ts +++ b/ng6-seed/src/app/_guard/token.interceptor.ts @@ -14,6 +14,7 @@ import { catchError, map, tap } from 'rxjs/operators'; import { HttpErrorResponse } from "@angular/common/http"; import { CognitoService } from '../AwsService/cognito.service'; + @Injectable() export class TokenInterceptor implements HttpInterceptor{ constructor( private router: Router,public shared:CognitoService) {} @@ -24,7 +25,7 @@ export class TokenInterceptor implements HttpInterceptor{ // } // }); let token:any = this.shared.getAccessToken() ||""; - console.log(token); + //console.log(token); let requests = request.clone({ headers:new HttpHeaders({ @@ -41,9 +42,9 @@ export class TokenInterceptor implements HttpInterceptor{ return (error: any): Observable => { if(error instanceof HttpErrorResponse){ console.error("Error: " + error.status); - if(error.status == 401 || error.status == 500){ + if(error.status == 401){ localStorage.clear(); - this.router.navigate(['/login']); + this.router.navigate(['/authentication/login']); } return of(result as T); } diff --git a/ng6-seed/src/app/app.component.html b/ng6-seed/src/app/app.component.html old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/app.component.spec.ts b/ng6-seed/src/app/app.component.spec.ts old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/app.component.ts b/ng6-seed/src/app/app.component.ts old mode 100644 new mode 100755 index ecfcad9..3e20000 --- a/ng6-seed/src/app/app.component.ts +++ b/ng6-seed/src/app/app.component.ts @@ -12,5 +12,5 @@ export class AppComponent { const browserLang: string = translate.getBrowserLang(); translate.use(browserLang.match(/en|fr/) ? browserLang : 'en'); - } + } } diff --git a/ng6-seed/src/app/app.module.ts b/ng6-seed/src/app/app.module.ts old mode 100644 new mode 100755 index ce22688..608970b --- a/ng6-seed/src/app/app.module.ts +++ b/ng6-seed/src/app/app.module.ts @@ -6,6 +6,8 @@ import { FormsModule } from '@angular/forms'; import { HttpModule, Http } from '@angular/http'; import { HttpClientModule, HttpClient, HTTP_INTERCEPTORS} from '@angular/common/http'; +import { LocationStrategy, HashLocationStrategy } from '@angular/common'; + import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar'; import { PERFECT_SCROLLBAR_CONFIG } from 'ngx-perfect-scrollbar'; import { PerfectScrollbarConfigInterface } from 'ngx-perfect-scrollbar'; @@ -28,7 +30,9 @@ import {MatCheckboxModule} from '@angular/material/checkbox'; import {MatProgressBarModule} from '@angular/material/progress-bar'; import {MatSelectModule} from '@angular/material/select'; import {MatCardModule} from '@angular/material/card'; - +import {MatBadgeModule} from '@angular/material/badge'; +import {ChangePasswordDialog} from './settings/users/user-profile/user-profile.component'; +import { MatFormFieldModule,MatProgressSpinnerModule } from '@angular/material'; import { AppRoutes } from './app.routing'; import { AppComponent } from './app.component'; import { AdminLayoutComponent } from './layouts/admin/admin-layout.component'; @@ -36,6 +40,10 @@ import { AuthLayoutComponent } from './layouts/auth/auth-layout.component'; import { SharedModule } from './shared/shared.module'; import { AwsService } from './AwsService/aws.service'; import { TokenInterceptor } from './_guard/token.interceptor'; +import { NewPasswordDialog, ForgotPass } from './session/login/login.component'; +import { AuthGuard } from './_guard/auth.guard'; +import { RoleMenuItemsPipe } from './layouts/role-menu-items.pipe'; +import { ResizableModule } from 'angular-resizable-element'; export function HttpLoaderFactory(http: HttpClient) { return new TranslateHttpLoader(http); } @@ -52,7 +60,8 @@ const DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = { declarations: [ AppComponent, AdminLayoutComponent, - AuthLayoutComponent + AuthLayoutComponent, + NewPasswordDialog,ForgotPass,ChangePasswordDialog, RoleMenuItemsPipe, ], imports: [ BrowserModule, @@ -70,10 +79,14 @@ const DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = { MatTabsModule, MatCheckboxModule, MatProgressBarModule, + MatProgressSpinnerModule, MatSelectModule, MatCardModule, + MatBadgeModule, DemoMaterialModule, + MatFormFieldModule, HttpClientModule, + ResizableModule, TranslateModule.forRoot({ loader: { provide: TranslateLoader, @@ -84,7 +97,11 @@ const DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = { FlexLayoutModule, ], providers: [ - AwsService, + { + provide: LocationStrategy, + useClass: HashLocationStrategy, + }, + AwsService,AuthGuard, TranslateService, // { // provide: PERFECT_SCROLLBAR_CONFIG, @@ -96,7 +113,7 @@ const DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = { multi: true } ], - entryComponents: [], + entryComponents: [NewPasswordDialog,ForgotPass,ChangePasswordDialog], bootstrap: [AppComponent] }) export class AppModule { } diff --git a/ng6-seed/src/app/app.routing.ts b/ng6-seed/src/app/app.routing.ts old mode 100644 new mode 100755 index 7092786..2c88270 --- a/ng6-seed/src/app/app.routing.ts +++ b/ng6-seed/src/app/app.routing.ts @@ -2,7 +2,8 @@ import { Routes } from '@angular/router'; import { AdminLayoutComponent } from './layouts/admin/admin-layout.component'; import { AuthLayoutComponent } from './layouts/auth/auth-layout.component'; - +import { CognitoService} from './AwsService/cognito.service'; +import { AuthGuard } from './_guard/auth.guard'; export const AppRoutes: Routes = [{ path: '', redirectTo: 'home', @@ -10,6 +11,7 @@ export const AppRoutes: Routes = [{ }, { path: '', component: AdminLayoutComponent, + canActivateChild:[AuthGuard], children: [{ path: 'home', loadChildren: './dashboard/dashboard.module#DashboardModule' @@ -17,6 +19,18 @@ export const AppRoutes: Routes = [{ path:'setting', loadChildren:'./settings/settings.module#SettingsModule' } + ,{ + path:'personal_discussion', + loadChildren:'./personal-discussion/personal-discussion.module#PersonalDiscussionModule' + }, + { + path:'quality_check_discussion', + loadChildren:'./quality-check/quality-check.module#QualityCheckModule' + }, + { + path:'reports', + loadChildren:'./reports/reports.module#ReportsModule' + }, ] }, { path: '', diff --git a/ng6-seed/src/app/dashboard/charts.data.ts b/ng6-seed/src/app/dashboard/charts.data.ts index 5c4cbfa..ea6a3eb 100644 --- a/ng6-seed/src/app/dashboard/charts.data.ts +++ b/ng6-seed/src/app/dashboard/charts.data.ts @@ -1,232 +1,270 @@ -export const single = [ - { - name: 'Germany', - value: 40632 - }, - { - name: 'USA', - value: 49737 - }, - { - name: 'France', - value: 36745 - }, - { - name: 'UK', - value: 36240 - }, - { - name: 'Spain', - value: 33000 - }, - { - name: 'Italy', - value: 35800 - } -]; - -export const multi = [ - { - name: 'Germany', - series: [ - { - name: '2017', - value: 71632 - }, - { - name: '2010', - value: 40632 - }, - { - name: '2000', - value: 76953 - }, - { - name: '1990', - value: 31476 - } - ] - }, - { - name: 'USA', - series: [ - { - name: '2017', - value: 82632 - }, - { - name: '2010', - value: 49737 - }, - { - name: '2000', - value: 55986 - }, - { - name: '1990', - value: 37060 - } - ] - }, - { - name: 'France', - series: [ - { - name: '2017', - value: 51732 - }, - { - name: '2010', - value: 36745 - }, - { - name: '2000', - value: 34774 - }, - { - name: '1990', - value: 29476 - } - ] - }, - { - name: 'UK', - series: [ - { - name: '2017', - value: 95652 - }, - { - name: '2010', - value: 36240 - }, - { - name: '2000', - value: 32543 - }, - { - name: '1990', - value: 26424 - } - ] - } -]; - -export const bubble = [ - { - name: 'Germany', - series: [ - { - name: '2009', - x: new Date(2009, 0, 1), - y: 80.3, - r: 80.4 - }, - { - name: '2006', - x: new Date(2006, 0, 1), - y: 80.3, - r: 78 - }, - { - name: '1995', - x: new Date(1995, 0, 1), - y: 77.7, - r: 58.1 - }, - { - name: '1990', - x: new Date(1990, 0, 1), - y: 75.4, - r: 79 - } - ] - }, - { - name: 'USA', - series: [ - { - name: '2010', - x: new Date(2010, 0, 1), - y: 78.8, - r: 310 - }, - { - name: '2005', - x: new Date(2005, 0, 1), - y: 76.9, - r: 283 - }, - { - name: '1996', - x: new Date(1996, 0, 1), - y: 78.7, - r: 59.1 - }, - { - name: '1990', - x: new Date(1990, 0, 1), - y: 75.4, - r: 253 - } - ] - }, - { - name: 'France', - series: [ - { - name: '2008', - x: new Date(2008, 0, 1), - y: 81.4, - r: 63 - }, - { - name: '2000', - x: new Date(2000, 0, 1), - y: 79.1, - r: 59.4 - }, - { - name: '1994', - x: new Date(1994, 0, 1), - y: 76.7, - r: 58.1 - }, - { - name: '1990', - x: new Date(1990, 0, 1), - y: 77.2, - r: 56.9 - } - ] - }, - { - name: 'UK', - series: [ - { - name: '2007', - x: new Date(2007, 0, 1), - y: 80.2, - r: 62.7 - }, - { - name: '2003', - x: new Date(2003, 0, 1), - y: 77.8, - r: 58.9 - }, - { - name: '1995', - x: new Date(1995, 0, 1), - y: 78.7, - r: 59.1 - }, - { - name: '1990', - x: new Date(1990, 0, 1), - y: 75.7, - r: 57.1 - } - ] - } +export const single = [ + { + name: 'Germany', + value: 40632 + }, + { + name: 'USA', + value: 49737 + }, + { + name: 'France', + value: 36745 + }, + { + name: 'UK', + value: 36240 + }, + { + name: 'Spain', + value: 33000 + }, + { + name: 'Italy', + value: 35800 + } +]; + +export const multi = [ + { + name: 'Draft', + series: [ + { + name: 'Full PD', + value: 16 + }, + { + name: 'Smart PD', + value: 13 + }, + { + name: 'Tele PD', + value: 12 + }, + ] + }, + { + name: 'Triggered', + series: [ + { + name: 'Full PD', + value: 16 + }, + { + name: 'Smart PD', + value: 17 + }, + { + name: 'Tele PD', + value: 12 + }, + + ] + }, + { + name: 'Allocated', + series: [ + { + name: 'Full PD', + value: 12 + }, + { + name: 'Smart PD', + value: 32 + }, + { + name: 'Tele PD', + value: 20 + }, + + ] + },{ + name: 'Scheduled', + series: [ + { + name: 'Full PD', + value: 15 + }, + { + name: 'Smart PD', + value: 24 + }, + { + name: 'Tele PD', + value: 14 + } + + ] + }, + { + name: 'Inprogress', + series: [ + { + name: 'Full PD', + value: 24 + }, + { + name: 'Smart PD', + value: 20 + }, + { + name: 'Tele PD', + value: 23 + }, + ] + }, + { + name: 'Completed', + series: [ + { + name: 'Full PD', + value: 14 + }, + { + name: 'Smart PD', + value: 22 + }, + { + name: 'Tele PD', + value: 14 + }, + ] + }, + { + name: 'QC Completed', + series: [ + { + name: 'Full PD', + value: 22 + }, + { + name: 'Smart PD', + value: 17 + }, + { + name: 'Tele PD', + value: 21 + }, + + ] + } +]; + +export const bubble = [ + { + name: 'Germany', + series: [ + { + name: '2009', + x: new Date(2009, 0, 1), + y: 80.3, + r: 80.4 + }, + { + name: '2006', + x: new Date(2006, 0, 1), + y: 80.3, + r: 78 + }, + { + name: '1995', + x: new Date(1995, 0, 1), + y: 77.7, + r: 58.1 + }, + { + name: '1990', + x: new Date(1990, 0, 1), + y: 75.4, + r: 79 + } + ] + }, + { + name: 'USA', + series: [ + { + name: '2010', + x: new Date(2010, 0, 1), + y: 78.8, + r: 310 + }, + { + name: '2005', + x: new Date(2005, 0, 1), + y: 76.9, + r: 283 + }, + { + name: '1996', + x: new Date(1996, 0, 1), + y: 78.7, + r: 59.1 + }, + { + name: '1990', + x: new Date(1990, 0, 1), + y: 75.4, + r: 253 + } + ] + }, + { + name: 'France', + series: [ + { + name: '2008', + x: new Date(2008, 0, 1), + y: 81.4, + r: 63 + }, + { + name: '2000', + x: new Date(2000, 0, 1), + y: 79.1, + r: 59.4 + }, + { + name: '1994', + x: new Date(1994, 0, 1), + y: 76.7, + r: 58.1 + }, + { + name: '1990', + x: new Date(1990, 0, 1), + y: 77.2, + r: 56.9 + } + ] + }, + { + name: 'UK', + series: [ + { + name: '2007', + x: new Date(2007, 0, 1), + y: 80.2, + r: 62.7 + }, + { + name: '2003', + x: new Date(2003, 0, 1), + y: 77.8, + r: 58.9 + }, + { + name: '1995', + x: new Date(1995, 0, 1), + y: 78.7, + r: 59.1 + }, + { + name: '1990', + x: new Date(1990, 0, 1), + y: 75.7, + r: 57.1 + } + ] + } ]; \ No newline at end of file diff --git a/ng6-seed/src/app/dashboard/dashboard.component.html b/ng6-seed/src/app/dashboard/dashboard.component.html old mode 100644 new mode 100755 index 6b07abf..57259cb --- a/ng6-seed/src/app/dashboard/dashboard.component.html +++ b/ng6-seed/src/app/dashboard/dashboard.component.html @@ -1,5 +1,141 @@ -
-

- Dashboard! -

-
\ No newline at end of file +
+
+ + TAT Charts + + +
+ + +
+
+
+
+
+ +
+
+ + + PD Report + + +
+
+
+
+ + +

892

+
Draft
+
+
+ + +

265

+
Triggered
+
+
+ + +

452

+
Allocated
+
+
+ + +

56

+
Scheduled
+
+
+ + +

56

+
InProgress
+
+
+ + +

56

+
Completed
+
+
+ + +

56

+
QC Completed
+
+
+ + + +
+
+
+
+ + + +

892

+
Draft
+
+
+ + +

265

+
Triggered
+
+
+ + +

452

+
Allocated
+
+
+ + +

56

+
Scheduled
+
+
+ + +

56

+
InProgress
+
+
+ + +

56

+
Completed
+
+
+ + +

56

+
QC Completed
+
+
+ + +
+ +
+
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/ng6-seed/src/app/dashboard/dashboard.component.scss b/ng6-seed/src/app/dashboard/dashboard.component.scss old mode 100644 new mode 100755 index df726b7..5407046 --- a/ng6-seed/src/app/dashboard/dashboard.component.scss +++ b/ng6-seed/src/app/dashboard/dashboard.component.scss @@ -2,538 +2,73 @@ $red: #f5515f; $blue: #05abe0; $grey: #343434; $p: 12px; -.profile { - position: relative; - width: 100%; - height: 100%; - background: rgba(white, .25); - border-radius: 2px; - overflow: hidden; - box-shadow: 0 0 20px rgba(darken($red, 40%), .2); - &.pre-enter { - transform-origin: center center; - transform: scaleY(0); - .avatar { - transform-origin: center top; - transform: scaleY(0); - } - h1, - h2, - a.follow, - a.link { - opacity: 0; - transform: translateY(300px); - } - } - &.on-enter { - animation: scaleYIn 1000ms ease-out forwards; - .avatar { - animation: scaleYIn-small 750ms ease-out forwards 1000ms; - } - h1, - h2, - a.follow, - a.link { - opacity: 1; - animation: slideInUp 1000ms ease-out forwards; - } - h1 { - animation-delay: 1050ms; - } - h2 { - animation-delay: 1100ms; - } - a.follow { - animation-delay: 1250ms; - } - li { - &:nth-child(1) { - a.link { - animation-delay: 1300ms; - } - } - &:nth-child(2) { - a.link { - animation-delay: 1350ms; - } - } - &:nth-child(3) { - a.link { - animation-delay: 1400ms; - } - } - } - } + +::ng-deep .ngx-mat-drp-date-input{text-overflow:ellipsis !important;color:#fff !important;} + +mat-card-title{ + background-color:#E00201 !important; + color:#fff; } -.background { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - background: white; - border-radius: 2px; +.mat-input-wrapper { + background: #fff; } -.avatar, -.info { - width: 100%; - height: 50%; +li +{ + display:inline-block; + //float:left; } -.avatar { - background: url('../../assets/images/1.jpg') no-repeat center center / cover; - clip-path: polygon(0 0, 100% 0, 100% 75%, 0% 100%); + +.example-full-width { + width: 95%; +} +.oval { + height: 13px; + width: 25px; + border-radius: 50%; } -.prof-list { - li { - display: inline-block; - list-style: none; - } +// .ngx-mat-drp-date-input[_ngcontent-c17] { +// text-overflow: ellipsis; +// color: #fff; +// } + +//.lengend-list { + // list-style-type: none; + //margin: 0; + // padding: 0; + // overflow: hidden; + // text-align:justify; +//} + +.lengend-element { + font-size: 1rem !important; + padding-right: 3%; } -.info { - display: flex; - flex-flow: row wrap; - align-items: center; - align-content: center; - justify-content: center; - position: relative; - text-align: center; - h1 { - padding: $p $p 0; - width: 100%; - font-size: 24px; - font-weight: 800; - letter-spacing: 2px; - text-transform: uppercase; - } - h2, - a.follow { - display: block; - - border-radius: 2px; - padding: $p/2; - color: white; - font-size: 12px; - font-weight: 500; - letter-spacing: 1px; - text-transform: uppercase; - } - h2 { - background: $red; - background: linear-gradient(135deg, rgba(#f5825f, 1) 0%, rgba(#f5005f, 1) 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5825f', endColorstr='#f5005f', GradientType=1); - } - a.follow { - margin-left: $p; - background: $blue; - background: linear-gradient(135deg, rgba(#05c8e0, 1) 0%, rgba(#057fe0, 1) 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#05c8e0', endColorstr='#057fe0', GradientType=1); - &:hover, - &:focus { - background: #05c8e0; - background: linear-gradient(135deg, rgba(lighten(#05c8e0, 10%), 1) 0%, rgba(lighten(#057fe0, 10%), 1) 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='lighten(#05c8e0, 10%)', endColorstr='lighten(#057fe0, 10%)', GradientType=1); - } - &:active { - background: #057fe0; - background: linear-gradient(135deg, rgba(darken(#05c8e0, 5%), 1) 0%, rgba(darken(#057fe0, 5%), 1) 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='darken(#05c8e0, 5%)', endColorstr='darken(#057fe0, 5%)', GradientType=1); - } - } - ul { - display: flex; - justify-content: center; - padding: $p/2; - width: 100%; - li { - padding: $p/2; - } - } - a.link { - display: block; - border-radius: 100%; - background: $blue; - width: 30px; - height: 30px; - line-height: 30px; - display: block; - } +.donut-inner{ + margin-top: -165px; + // margin-left: 120px; + } -a.link { - &.portfolio { - background: #f5c8bf; - background: linear-gradient(135deg, rgba(#f5c8bf, 1) 0%, rgba(#f58dbf, 1) 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5c8bf', endColorstr='#f58dbf', GradientType=1); - box-shadow: inset 0 0 10px rgba(#f58dbf, .5); - &:hover, - &:focus { - background: lighten(#f5c8bf, 5%); - background: linear-gradient(135deg, rgba(lighten(#f5c8bf, 5%), 1) 0%, rgba(lighten(#f58dbf, 5%), 1) 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='lighten(#f5c8bf, 5%)', endColorstr='lighten(#f58dbf, 5%)', GradientType=1); - box-shadow: inset 0 0 10px rgba(lighten(#f58dbf, 5%), .5); - } - &:active { - background: darken(#f5c8bf, 5%); - background: linear-gradient(135deg, rgba(darken(#f5c8bf, 5%), 1) 0%, rgba(darken(#f58dbf, 5%), 1) 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='darken(#f5c8bf, 5%)', endColorstr='darken(#f58dbf, 5%)', GradientType=1); - box-shadow: inset 0 0 10px rgba(darken(#f58dbf, 5%), .5); - } - } - &.codepen { - background: #fcd000; - background: linear-gradient(135deg, rgba(#fcd000, 1) 0%, rgba(#fc9a00, 1) 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fcd000', endColorstr='#fc9a00', GradientType=1); - box-shadow: inset 0 0 10px rgba(#fc9a00, .5); - &:hover, - &:focus { - background: lighten(#fcd000, 5%); - background: linear-gradient(135deg, rgba(lighten(#fcd000, 5%), 1) 0%, rgba(lighten(#fc9a00, 5%), 1) 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='lighten(#fcd000, 5%)', endColorstr='lighten(#fc9a00, 5%)', GradientType=1); - box-shadow: inset 0 0 10px rgba(lighten(#fc9a00, 5%), .5); - } - &:active { - background: darken(#fcd000, 5%); - background: linear-gradient(135deg, rgba(darken(#fcd000, 5%), 1) 0%, rgba(darken(#fc9a00, 5%), 1) 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='darken(#fcd000, 5%)', endColorstr='darken(#fc9a00, 5%)', GradientType=1); - box-shadow: inset 0 0 10px rgba(darken(#fc9a00, 5%), .5); - } - } - &.github { - background: #41adc4; - background: linear-gradient(135deg, rgba(#41adc4, 1) 0%, rgba(#4183c4, 1) 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#41adc4', endColorstr='#4183c4', GradientType=1); - box-shadow: inset 0 0 10px rgba(#4183c4, .5); - &:hover, - &:focus { - background: lighten(#41adc4, 5%); - background: linear-gradient(135deg, rgba(lighten(#41adc4, 5%), 1) 0%, rgba(lighten(#4183c4, 5%), 1) 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='lighten(#41adc4, 5%)', endColorstr='lighten(#4183c4, 5%)', GradientType=1); - box-shadow: inset 0 0 10px rgba(lighten(#4183c4, 5%), .5); - } - &:active { - background: darken(#41adc4, 5%); - background: linear-gradient(135deg, rgba(darken(#41adc4, 5%), 1) 0%, rgba(darken(#4183c4, 5%), 1) 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='darken(#41adc4, 5%)', endColorstr='darken(#4183c4, 5%)', GradientType=1); - box-shadow: inset 0 0 10px rgba(darken(#4183c4, 5%), .5); - } - } +.donut-inner h5 { + margin-bottom: 5px; + margin-top: 0; + + } +.donut-inner span{ + font-size:1rems; } - -@media only screen and (min-width: 470px) { - .profile { - display: flex; - &.pre-enter { - transform: scaleX(0); - .avatar { - transform-origin: left center; - transform: scaleX(0); - } - h1, - h2, - a.follow, - a.link { - transform: translateX(300px); - } - } - &.on-enter { - animation-name: scaleXIn; - .avatar { - animation-name: scaleXIn-small; - } - h1, - h2, - a.follow, - a.link { - animation-name: slideInLeft; - } - } - } - .background { - mix-blend-mode: overlay; - } - .avatar, - .info { - width: 50%; - height: 100%; - } - .avatar { - clip-path: polygon(0 0, 100% 0, 75% 100%, 0% 100%); - } + +mat-card-content{ +min-height: 400px; } - -@media only screen and (min-width: 470px) and (min-height: 600px) { - .profile { - max-height: 400px; - } -} - - -/* https://goo.gl/jIUq3E */ - -@keyframes scaleXIn { - 0% { - transform: matrix3d(0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 4.7% { - transform: matrix3d(0.45, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 9.41% { - transform: matrix3d(0.883, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 14.11% { - transform: matrix3d(1.141, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 18.72% { - transform: matrix3d(1.212, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 24.32% { - transform: matrix3d(1.151, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 29.93% { - transform: matrix3d(1.048, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 35.54% { - transform: matrix3d(0.979, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 41.04% { - transform: matrix3d(0.961, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 52.15% { - transform: matrix3d(0.991, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 63.26% { - transform: matrix3d(1.007, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 85.49% { - transform: matrix3d(0.999, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 100% { - transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } -} - - -/* https://goo.gl/auuhcg */ - -@keyframes scaleYIn { - 0% { - transform: matrix3d(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 4.7% { - transform: matrix3d(1, 0, 0, 0, 0, 0.45, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 9.41% { - transform: matrix3d(1, 0, 0, 0, 0, 0.883, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 14.11% { - transform: matrix3d(1, 0, 0, 0, 0, 1.141, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 18.72% { - transform: matrix3d(1, 0, 0, 0, 0, 1.212, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 24.32% { - transform: matrix3d(1, 0, 0, 0, 0, 1.151, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 29.93% { - transform: matrix3d(1, 0, 0, 0, 0, 1.048, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 35.54% { - transform: matrix3d(1, 0, 0, 0, 0, 0.979, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 41.04% { - transform: matrix3d(1, 0, 0, 0, 0, 0.961, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 52.15% { - transform: matrix3d(1, 0, 0, 0, 0, 0.991, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 63.26% { - transform: matrix3d(1, 0, 0, 0, 0, 1.007, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 85.49% { - transform: matrix3d(1, 0, 0, 0, 0, 0.999, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 100% { - transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } -} - - -/* https://goo.gl/dNBqrt */ - -@keyframes scaleXIn-small { - 0% { - transform: matrix3d(0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 6.31% { - transform: matrix3d(0.384, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 12.51% { - transform: matrix3d(0.621, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 18.82% { - transform: matrix3d(0.771, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 25.03% { - transform: matrix3d(0.862, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 37.54% { - transform: matrix3d(0.952, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 50.05% { - transform: matrix3d(0.984, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 75.08% { - transform: matrix3d(0.999, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 100% { - transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } -} - - -/* https://goo.gl/jZL0uj */ - -@keyframes scaleYIn-small { - 0% { - transform: matrix3d(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 6.31% { - transform: matrix3d(1, 0, 0, 0, 0, 0.384, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 12.51% { - transform: matrix3d(1, 0, 0, 0, 0, 0.621, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 18.82% { - transform: matrix3d(1, 0, 0, 0, 0, 0.771, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 25.03% { - transform: matrix3d(1, 0, 0, 0, 0, 0.862, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 37.54% { - transform: matrix3d(1, 0, 0, 0, 0, 0.952, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 50.05% { - transform: matrix3d(1, 0, 0, 0, 0, 0.984, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 75.08% { - transform: matrix3d(1, 0, 0, 0, 0, 0.999, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } - 100% { - transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } -} - - -/* https://goo.gl/Ne0Mkr */ - -@keyframes slideInLeft { - 0% { - transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 300, 0, 0, 1); - } - 6.31% { - transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 184.858, 0, 0, 1); - } - 12.51% { - transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 113.68, 0, 0, 1); - } - 18.82% { - transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 68.663, 0, 0, 1); - } - 25.03% { - transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 41.37, 0, 0, 1); - } - 37.54% { - transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 14.382, 0, 0, 1); - } - 50.05% { - transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.724, 0, 0, 1); - } - 75.08% { - transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.381, 0, 0, 1); - } - 100% { - transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } -} - - -/* https://goo.gl/MSqtd5 */ - -@keyframes slideInUp { - 0% { - transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 300, 0, 1); - } - 6.31% { - transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 184.858, 0, 1); - } - 12.51% { - transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 113.68, 0, 1); - } - 18.82% { - transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 68.663, 0, 1); - } - 25.03% { - transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 41.37, 0, 1); - } - 37.54% { - transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 14.382, 0, 1); - } - 50.05% { - transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 4.724, 0, 1); - } - 75.08% { - transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0.381, 0, 1); - } - 100% { - transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); - } -} - -//wheather -.card-wheather { - height: 220px; - color: #fff; -} - - - -.city { - - font-size: 26px; -} - -.date { - font-size: 20px; - line-height: 40px; -} - -.sun { - height: 70px; -} - -.grad-blue { - background: linear-gradient(58deg, #f44336, #673ab7); - color: #fff; -} - -.grad-green { - background: linear-gradient(58deg, #009688, #673ab7); - color: #fff; -} - -.grad-red { - background: linear-gradient(58deg, #f44336, #673ab7); - color: #fff; -} -.card-wheather{ - padding: 2rem; -} -.temp { - font-size: 50px; - display: inline-block; +.chart{ + padding: 0.8rem; } +::ng-deep .body-container{ + padding: 0rem !important; +} \ No newline at end of file diff --git a/ng6-seed/src/app/dashboard/dashboard.component.ts b/ng6-seed/src/app/dashboard/dashboard.component.ts old mode 100644 new mode 100755 index de294a8..9008da3 --- a/ng6-seed/src/app/dashboard/dashboard.component.ts +++ b/ng6-seed/src/app/dashboard/dashboard.component.ts @@ -1,12 +1,41 @@ -import { Component } from '@angular/core'; +import { Component } from '@angular/core'; +import { DashboardService } from './dashboard.service'; +import { single, multi } from './charts.data'; @Component({ selector: 'app-dashboard', templateUrl: './dashboard.component.html', styleUrls: ['./dashboard.component.scss'] }) -export class DashboardComponent { - constructor() { +export class DashboardComponent { + + dashboardTitle = 'PD Report'; + + public single: any[]; +public multi: any[]; + +public showXAxis = true; +public showYAxis = true; +public gradient = false; +public showLegend = false; +public showXAxisLabel = true; +public xAxisLabel = 'PD Process'; +public showYAxisLabel = true; +public yAxisLabel = 'PD`s'; +public colorScheme = { + domain: ['#ffeb3b', '#ffa500', '#f44336'] +}; + + + constructor(private _dashboardService: DashboardService) { + Object.assign(this, {single, multi}); } + + ngOnInit(){} + + + public onSelect(event) { + console.log(event); +} } diff --git a/ng6-seed/src/app/dashboard/dashboard.module.ts b/ng6-seed/src/app/dashboard/dashboard.module.ts old mode 100644 new mode 100755 index 771a0da..3b2c5bb --- a/ng6-seed/src/app/dashboard/dashboard.module.ts +++ b/ng6-seed/src/app/dashboard/dashboard.module.ts @@ -1,15 +1,20 @@ import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; import { CommonModule } from '@angular/common'; -import { MatIconModule, MatCardModule, MatButtonModule, MatListModule, MatProgressBarModule, MatMenuModule } from '@angular/material'; import { FlexLayoutModule } from '@angular/flex-layout'; - import { ChartsModule } from 'ng2-charts/ng2-charts'; import { NgxChartsModule} from '@swimlane/ngx-charts'; -import { NgxDatatableModule } from '@swimlane/ngx-datatable'; + +import { MatIconModule, + MatCardModule, + MatTabsModule, + MatButtonModule} from '@angular/material'; import { DashboardComponent } from './dashboard.component'; -import { DashboardRoutes } from './dashboard.routing'; +import { DashboardRoutes } from './dashboard.routing'; + +/** Dashboard Service */ +import { DashboardService } from './dashboard.service'; @NgModule({ imports: [ @@ -17,15 +22,14 @@ import { DashboardRoutes } from './dashboard.routing'; RouterModule.forChild(DashboardRoutes), MatIconModule, MatCardModule, + MatTabsModule, MatButtonModule, - MatListModule, - MatProgressBarModule, - MatMenuModule, ChartsModule, NgxChartsModule, - NgxDatatableModule, + MatCardModule, FlexLayoutModule ], + providers: [ DashboardService ], declarations: [ DashboardComponent ] }) diff --git a/ng6-seed/src/app/dashboard/dashboard.routing.ts b/ng6-seed/src/app/dashboard/dashboard.routing.ts old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/dashboard/dashboard.service.spec.ts b/ng6-seed/src/app/dashboard/dashboard.service.spec.ts new file mode 100755 index 0000000..09bd587 --- /dev/null +++ b/ng6-seed/src/app/dashboard/dashboard.service.spec.ts @@ -0,0 +1,12 @@ +import { TestBed } from '@angular/core/testing'; + +import { DashboardService } from './dashboard.service'; + +describe('DashboardService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: DashboardService = TestBed.get(DashboardService); + expect(service).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/dashboard/dashboard.service.ts b/ng6-seed/src/app/dashboard/dashboard.service.ts new file mode 100755 index 0000000..674f848 --- /dev/null +++ b/ng6-seed/src/app/dashboard/dashboard.service.ts @@ -0,0 +1,24 @@ +/** Common Import Section */ +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs';//for Datatables +import { HttpClient } from '@angular/common/http'; +import { catchError } from 'rxjs/operators'; +import { of } from 'rxjs'; + +/** Imported Service Files Are., */ +import { AwsService } from '../AwsService/aws.service'; +/** Environment */ +import { environment } from 'environments/environment'; + +@Injectable({ + providedIn: 'root' +}) + +export class DashboardService { + + private apiUrl = environment.apiEndpoint; + + constructor(private _http: HttpClient, + private _aws:AwsService) { } + +} \ No newline at end of file diff --git a/ng6-seed/src/app/error/404/error-404-component.html b/ng6-seed/src/app/error/404/error-404-component.html old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/error/404/error-404-component.scss b/ng6-seed/src/app/error/404/error-404-component.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/error/404/error-404.component.ts b/ng6-seed/src/app/error/404/error-404.component.ts old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/error/503/error-503-component.html b/ng6-seed/src/app/error/503/error-503-component.html old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/error/503/error-503-component.scss b/ng6-seed/src/app/error/503/error-503-component.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/error/503/error-503.component.ts b/ng6-seed/src/app/error/503/error-503.component.ts old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/error/error.module.ts b/ng6-seed/src/app/error/error.module.ts old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/error/error.routing.ts b/ng6-seed/src/app/error/error.routing.ts old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/layouts/admin/admin-layout.component.html b/ng6-seed/src/app/layouts/admin/admin-layout.component.html old mode 100644 new mode 100755 index a6defcb..019e06a --- a/ng6-seed/src/app/layouts/admin/admin-layout.component.html +++ b/ng6-seed/src/app/layouts/admin/admin-layout.component.html @@ -1,524 +1,602 @@
- - - -
-
- -
-
- -
-
- -
-
- + + + -
- - - - - - -
- Message Menu -
- - - - -
- - -
- User Menu -
- - - -
- - - -
- Settings -
- - - - -
-
- - -
- -
- - - - Today -
- - -
-

{{ today | date:'EEEE' }}

-
{{ today | date:'dd' }} {{ today | date:'MMMM' }}
-
-
-
- - -

Projects Stats

- -

Project A

- -
- -

Project B

- -
- -

Project C

- -
- -

Todo

- - Consectetur adipisicing elit. Nemo omnis. -

2:45PM

-
- - Temporibus cumque cupiditate -

3:20PM

-
- - Libero voluptatibus harum quis accusamus -

16:00PM

-
-
-
-
- - Notifications -
- - - people -

Social

-

5 new members joined today

-
- - local_offer -

Promotions

-

Updated your email -

-
- - info -

Updates

-

15 new product added

-
- - delete_sweep -

2 order cancelled

- {{ 1427207139000 | date: 'fullDate' }} -
- - check_circle -

System Scan completed

- {{ 1427412725000 | date: 'fullDate' }} -
- - person_add -

4 Users connected

- {{ 1428275520000 | date: 'fullDate' }} -
-
-
-
-
-
-
- - - - - Options - - - - Sidebar Image -
-
- - - -
-
- - - -
-
- - - -
-
- - - -
-
-
-
- Sidebar Image -
- Sidebar Color - - -
- - Red -
- -
- - Pink -
-
- - Blue -
- - - -
-
- Header Color - - -
- - Red -
- -
- - Pink -
-
- - Blue -
- - - -
-
- Horizontal Menu
-
- Collapsed Sidebar -
-
- Compact Sidebar -
-
- Boxed Layout -
-
- Dark Mode -
-
- RTL -
-
- - - {{ lang }} - - -
-
-
- -
+
+ + +
+
+ +
+
+ +
+
+ +
+
+
+ + + + + + + + +
+ {{fullName}} +
+ + + + +
+
+
+ +
+ +
+ +
Not Yet Scheduled
+ + + Triggered +
+ + + +

{{item.applicant_name}}

+

{{item.lender_applicant_id}}

+

{{item.entity_name}} - {{item.pd_status}}

+
+
+
+
+
+ + + Allocated +
+ + + +

{{item.applicant_name}}

+

{{item.lender_applicant_id}}

+

{{item.entity_name}} - {{item.pd_status}}

+
+
+
+ +
+
+
+
+ + + + + + Options + + + + Sidebar Image +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+
+ Sidebar Image +
+ Sidebar Color + + +
+ + Red +
+ +
+ + Pink +
+
+ + Blue +
+ + + +
+
+ Header Color + + +
+ + Red +
+ +
+ + Pink +
+
+ + Blue +
+ + + +
+
+ Horizontal Menu +
+
+ Collapsed Sidebar +
+
+ Compact Sidebar +
+
+ Boxed Layout +
+
+ Dark Mode +
+
+ RTL +
+
+ + + {{ lang }} + + +
+
+
+ +
+ + \ No newline at end of file diff --git a/ng6-seed/src/app/layouts/admin/admin-layout.component.ts b/ng6-seed/src/app/layouts/admin/admin-layout.component.ts old mode 100644 new mode 100755 index 89215fc..fa2f52e --- a/ng6-seed/src/app/layouts/admin/admin-layout.component.ts +++ b/ng6-seed/src/app/layouts/admin/admin-layout.component.ts @@ -9,13 +9,24 @@ import {TranslateService} from '@ngx-translate/core'; import PerfectScrollbar from 'perfect-scrollbar'; import { PerfectScrollbarConfigInterface, PerfectScrollbarComponent, PerfectScrollbarDirective } from 'ngx-perfect-scrollbar'; +import { UserService } from '../../settings/service/user.service'; +import { DashboardService } from '../../dashboard/dashboard.service'; +import { AwsService } from '../../AwsService/aws.service'; +import { RoleMenuItemsPipe } from './../role-menu-items.pipe'; @Component({ selector: 'app-layout', - templateUrl: './admin-layout.component.html' + templateUrl: './admin-layout.component.html', + providers: [RoleMenuItemsPipe], }) + export class AdminLayoutComponent implements OnInit, OnDestroy { + profileurl: any;; + userDep: string; + fullName: any; + roleName:any; + currentUser: any; private _router: Subscription; today: number = Date.now(); @@ -28,22 +39,80 @@ export class AdminLayoutComponent implements OnInit, OnDestroy { sidebarBg: boolean = true; currentLang = 'en'; layoutDir = 'ltr'; - - menuLayout : any = 'vertical-menu'; + menuLayout : any = 'top-menu'; selectedSidebarImage : any = 'bg-1'; - selectedSidebarColor : any = 'sidebar-default'; + selectedSidebarColor : any = 'sidebar-red'; selectedHeaderColor : any = 'header-default'; collapsedClass : any = 'side-panel-opened'; @ViewChild('sidemenu') sidemenu; public config: PerfectScrollbarConfigInterface = {}; - constructor(private router: Router, public menuItems: MenuItems, public horizontalMenuItems : HorizontalMenuItems, public translate: TranslateService ) { + + alertMsgTriggerType : any[]; + alertMsgAllocateType : any[]; + alertCount: any; + userRoleType: String; + constructor(private router: Router, public menuItems: MenuItems, public horizontalMenuItems : HorizontalMenuItems, public translate: TranslateService,public aws:AwsService,public users:UserService,private _dashboardService: DashboardService) { const browserLang: string = translate.getBrowserLang(); translate.use(browserLang.match(/en|fr/) ? browserLang : 'en'); + this.users.getroles().subscribe(res=>{ + this.currentUser = res; + if(this.currentUser.dataStatus == true){ + + this.currentUser = this.currentUser.records[0]; + + this.fullName = this.currentUser.user_first_name +' '+this.currentUser.user_last_name; + this.roleName = this.currentUser.role_name; + + console.log('this.currentUser',this.currentUser); + window.localStorage.setItem('LenderRoleID', this.currentUser.user_role); + + if(this.currentUser.fk_entity_type_id == 1 ){ + this.userDep = "SineEdge"; + }else if(this.currentUser.fk_entity_type_id == 2 ){ + // this.userDep = "Lender"; + this.userDep = this.currentUser.full_name; + }else{ + this.userDep = "Vendor"; + } + let users= { + 'userid':this.currentUser.userid, + 'entityid':this.currentUser.fk_entity_type_id, + 'profilepic':this.currentUser.profilepic + } + this.users.getprofilepic(users).subscribe(res=>{ + this.profileurl = res; + if(this.profileurl.dataStatus == true){ + + this.profileurl = this.profileurl.records; + + } + }) + + } + }); + + /** 3) Getting PD Details For Alert Message */ + // this._dashboardService.getAlertDetail().subscribe(data => { + + // console.log(' *****Layout Alert Message *****'); + // console.log('Layout Alert Message Whole Data',data); + + // this.alertCount = data.records.length; + // this.alertMsgTriggerType = data.records.filter(trigger=>trigger.pd_status == "TRIGGERED" ); + // this.alertMsgAllocateType = data.records.filter(allocate=>allocate.pd_status == "ALLOCATED" ); + // console.log('Layout Alert Message',this.alertMsgTriggerType); + // console.log('Layout Alert Message',this.alertMsgAllocateType); + // console.log('Layout Alert Count',this.alertCount); + + // }); + } ngOnInit(): void { + this.userRoleType=localStorage.getItem('user_role'); + // console.clear(); const elemSidebar = document.querySelector('.sidebar-container '); if (window.matchMedia(`(min-width: 960px)`).matches && !this.isMac() && !this.compactSidebar && this.layoutDir != 'rtl') { @@ -52,6 +121,7 @@ export class AdminLayoutComponent implements OnInit, OnDestroy { suppressScrollX: true }); } + this._router = this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe((event: NavigationEnd) => { this.url = event.url; @@ -64,7 +134,7 @@ export class AdminLayoutComponent implements OnInit, OnDestroy { } }); } - + @HostListener('click', ['$event']) onClick(e: any) { const elemSidebar = document.querySelector('.sidebar-container '); @@ -80,6 +150,7 @@ export class AdminLayoutComponent implements OnInit, OnDestroy { ngOnDestroy() { this._router.unsubscribe(); + } isOver(): boolean { @@ -126,7 +197,7 @@ export class AdminLayoutComponent implements OnInit, OnDestroy { changeMenuLayout(value) { - console.log(value) + // console.log(value) if(value) { this.menuLayout = 'top-menu'; @@ -200,4 +271,26 @@ export class AdminLayoutComponent implements OnInit, OnDestroy { ] }); } + userprofile(){ + this.router.navigate(['setting/users/userprofile']); + } + logout(){ + //alert(); + this.aws.logout().subscribe(res=>{ + //alert("res"); + this.router.navigate(['/authentication/login']); + }) + } + menunav(active){ + switch(active){ + case 'HOME': + this.router.navigate(['/home']); + break; + case 'USERS': + this.router.navigate(['/setting/users/userprofile']); + break; + case 'SETTING': + break; + } + } } diff --git a/ng6-seed/src/app/layouts/auth/auth-layout.component.html b/ng6-seed/src/app/layouts/auth/auth-layout.component.html old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/layouts/auth/auth-layout.component.ts b/ng6-seed/src/app/layouts/auth/auth-layout.component.ts old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/layouts/role-menu-items.pipe.spec.ts b/ng6-seed/src/app/layouts/role-menu-items.pipe.spec.ts new file mode 100644 index 0000000..9cd405b --- /dev/null +++ b/ng6-seed/src/app/layouts/role-menu-items.pipe.spec.ts @@ -0,0 +1,8 @@ +import { RoleMenuItemsPipe } from './role-menu-items.pipe'; + +describe('RoleMenuItemsPipe', () => { + it('create an instance', () => { + const pipe = new RoleMenuItemsPipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/layouts/role-menu-items.pipe.ts b/ng6-seed/src/app/layouts/role-menu-items.pipe.ts new file mode 100644 index 0000000..f776c65 --- /dev/null +++ b/ng6-seed/src/app/layouts/role-menu-items.pipe.ts @@ -0,0 +1,51 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'roleMenuItems' +}) +export class RoleMenuItemsPipe implements PipeTransform { + + transform(value: any, type: any): any { + // this is for horizontal menu filter + // if(type=="1"){ + // switch(localStorage.getItem('user_role')){ + // case '1': return value.filter(val=>val.state!="quality_check_discussion"); + // case '2': return value.filter(val=>val.state!="quality_check_discussion"); + // case '4': return value.filter(val=>val.state!="quality_check_discussion" && val.state!="reports"); + // case '5': return value.filter(val=>val.state!="quality_check_discussion" && val.state!="reports"); + // case '6': return value.filter(val=>val.state!="personal_discussion" && val.state!="reports"); + // case '7': return value.filter(val=>val.state!="personal_discussion" && val.state!="reports"); + // case '10': return value; + // default: return value.filter(val=>val.state!="quality_check_discussion"); + // } + // } + // // this is for vertical menu filter + // else if(type=="2"){ + // switch(localStorage.getItem('user_role')){ + // case '1': return value.filter(val=>val.state!="quality_check_discussion"); + // case '2': return value.filter(val=>val.state!="quality_check_discussion"); + // case '4': return value.filter(val=>val.state!="quality_check_discussion" && val.state!="reports"); + // case '5': return value.filter(val=>val.state!="quality_check_discussion" && val.state!="reports"); + // case '6': return value.filter(val=>val.state!="personal_discussion" && val.state!="reports"); + // case '7': return value.filter(val=>val.state!="personal_discussion" && val.state!="reports"); + // case '10': return value; + // default: return value.filter(val=>val.state!="quality_check_discussion"); + // } + // } + // else{ + // return []; + // } + // if(localStorage.getItem('user_role')=="10"){ + // return value + // } + // else if(localStorage.getItem('user_role')=="6" || localStorage.getItem('user_role')=="7"){ + // return value.filter(val=>val.state!='' && val.state!="personal_discussion" && val.state!="reports") + // } + // else{ + // return value.filter(val=>val.state!='' && val.state!="quality_check_discussion") + // } + return value; + + } + +} diff --git a/ng6-seed/src/app/personal-discussion/location-service/get-geometric-location.service.spec.ts b/ng6-seed/src/app/personal-discussion/location-service/get-geometric-location.service.spec.ts new file mode 100755 index 0000000..faa0a9f --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/location-service/get-geometric-location.service.spec.ts @@ -0,0 +1,12 @@ +import { TestBed } from '@angular/core/testing'; + +import { GetGeometricLocationService } from './get-geometric-location.service'; + +describe('GetGeometricLocationService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: GetGeometricLocationService = TestBed.get(GetGeometricLocationService); + expect(service).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/personal-discussion/location-service/get-geometric-location.service.ts b/ng6-seed/src/app/personal-discussion/location-service/get-geometric-location.service.ts new file mode 100755 index 0000000..6f413d9 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/location-service/get-geometric-location.service.ts @@ -0,0 +1,24 @@ +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs';//for Datatables +import { Http } from '@angular/http'; + +@Injectable() + +export class GetGeometricLocationService { + MAP_API_KEY: string; + MAP_API_URL: string; + constructor(private _http: Http) { + this.MAP_API_KEY = 'AIzaSyCXsHTus6hyIB8jYvt9ZEIbZve-2vWeQRg' + this.MAP_API_URL = `https://maps.googleapis.com/maps/api/geocode/json?key=${this.MAP_API_KEY}&address=`; + } + findLocations(address:string, postalCode?: string,state?:string, city?: string): Observable { + let compositeAddress = [address]; + + if (postalCode) compositeAddress.push(postalCode); + if (state) compositeAddress.push(state); + if (city) compositeAddress.push(city); + + let url = `${this.MAP_API_URL}${compositeAddress.join(',')}`; + return this._http.get(url).map(response => response.json()); + } +} diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/add-pd/add-pd.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/add-pd/add-pd.component.html new file mode 100755 index 0000000..08dd1d9 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/add-pd/add-pd.component.html @@ -0,0 +1,358 @@ + + +
+ + +
+ +
+ + + + PD Details + + + + + + Select + + {{LL.full_name}} + + + + + + + + Select + + + {{LB.branch_name}} + + + + + + + + + + + + + + + + Enter Valid Mobile Number. + + + + + + + Enter Valid STD Code Number. + - + + + Enter Valid LandLine Number. + + + + + + Select + + + {{PL.product_name}} + + + + + + + + + + Select + + {{SPL.subproduct_name}} + + + + + + + + + + Select + + + {{CSL.abbr}} + + + + + + + + + Select + + + {{PDL.type_name}} + + + + + + + + + {{"₹"}} {{pdMain.loan_amount.value | numberToWords}} Only + + Enter valid amount. + + + + + + + Address Details + +
+ + + + + + + + + + Select + + {{SL.name}} + + + + + + + + + Select + + {{CL.city_name}} + + + + + + + + Select + {{PL.pincode}} + + + + + + + + +
+ +
+ +
+ +
+ + + + +
+ + + + Applicant Details + + +
Applicant 1
+ + + + {{tl.name}} + + + + + + + + + + + + + + + + Mobile No is Required . + Enter Valid Mobile Number. + + + + + Enter Valid STD Code Number. +   -   + + + Enter Valid LandLine Number. + + +
+ +
+ + +
{{coDetails.controls.label.value}} {{i+2}}
+ +
+ + + + {{tl.name}} + + + + + + + + + + + + + + + + + + Enter Valid Mobile Number. + + + + + Enter Valid STD Code. +   -   + + + Enter Valid Landline Number. + + + + +
+
+
+ +
+ + + + +
+ + + + Additional Requirements + + + + + + + + + + + + + + + + + + + + + + Document + + + + + + + + + + + +
+ + + + + +
+
+
+
+ + + + + + +
+ +
+ +
+ + + + +
+
+ + + +
+ +
+
+
+
+ \ No newline at end of file diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/add-pd/add-pd.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/add-pd/add-pd.component.scss new file mode 100755 index 0000000..aab0f0f --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/add-pd/add-pd.component.scss @@ -0,0 +1,7 @@ +mat-form-field { + margin: 0 2%; + } +.mat-form-field-appearance-legacy .mat-hint{ + color:rgba(0, 0, 0, 0.8) !important; +} + \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/masters.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/add-pd/add-pd.component.spec.ts old mode 100644 new mode 100755 similarity index 56% rename from ng6-seed/src/app/settings/masters/masters.component.spec.ts rename to ng6-seed/src/app/personal-discussion/manage-pd/list-pd/add-pd/add-pd.component.spec.ts index accdb83..15dfc81 --- a/ng6-seed/src/app/settings/masters/masters.component.spec.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/add-pd/add-pd.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { MastersComponent } from './masters.component'; +import { AddPdComponent } from './add-pd.component'; -describe('MastersComponent', () => { - let component: MastersComponent; - let fixture: ComponentFixture; +describe('AddPdComponent', () => { + let component: AddPdComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ MastersComponent ] + declarations: [ AddPdComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(MastersComponent); + fixture = TestBed.createComponent(AddPdComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/add-pd/add-pd.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/add-pd/add-pd.component.ts new file mode 100755 index 0000000..5443987 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/add-pd/add-pd.component.ts @@ -0,0 +1,743 @@ +import { Component, OnInit, ViewEncapsulation, Output, EventEmitter, OnDestroy } from '@angular/core'; +import { FormBuilder, FormGroup, Validators, FormControl, FormArray } from '@angular/forms'; +import { ActivatedRoute, Router } from '@angular/router'; +import { CustomValidators } from 'ng2-validation'; +import { NotifierService } from 'angular-notifier'; +import { PdTrigerService } from '../../../pd-service/pd-triger.service'; +import { ListPdComponent } from '../list-pd.component'; +import { AwsService } from '../../../../AwsService/aws.service'; +import { TitleCasePipe } from '@angular/common'; +/**sweet alert */ +import Swal from 'sweetalert2'; +@Component({ + selector: 'app-add-pd', + templateUrl: './add-pd.component.html', + styleUrls: ['./add-pd.component.scss'], + providers:[TitleCasePipe], + encapsulation: ViewEncapsulation.None +}) +export class AddPdComponent implements OnInit, OnDestroy { + //@Output() loadParent = new EventEmitter(); + cancelStatus: boolean; + enablePDButton: boolean; + coapplicantFlag: boolean = false; + draftStatus: string; + PDTriggerStatus: string; + private notifier: NotifierService; + public _PDtriggerForm: FormGroup; + + addresses: FormArray; + coapplicants: FormArray; + addtional_requirements: FormArray; + + productList: any = []; + subProductList: any; + lenderList: any; + lenderBranchList: any; + customerSegmentAllList: any; + customerSegmentList: any; + productAllList : any = []; + stateList: any = []; + cityList: any = []; + pdTypeList: any; + billingList: any; + relationShipList: any; + pincodeList: any = []; + errorMessage: any; + titleList: any; + // Dynamic co applicant + createWithLongContent = false; + dynamicCoApplicant = []; + disableAfterSubmit: boolean; + pincodeflag : any = []; + isSubproductShown: boolean = true; + constructor(notifier: NotifierService, private _fb: FormBuilder, private route: ActivatedRoute, + private router: Router, private _pd: PdTrigerService, private _aws: AwsService, private ListPdComponent: ListPdComponent, + private titleCase : TitleCasePipe) { + this.notifier = notifier; + this.disableAfterSubmit = false; + } + public totalfiles: Array = []; + public totalFileName = []; + public lengthCheckToaddMore = 0; + ngOnInit() { + this.draftStatus = "DRAFT"; + this.PDTriggerStatus = "TRIGGERED"; + this.enablePDButton = false; + this.cancelStatus = false; + this.ListPdComponent.showListView(false); + this.getLenderList(); + this.getProductsList(); + this.getCustomerSegmentList(); + this.getStateCityList(); + this.getPDTypeList(); + this.getRelationMaster(); + this.getTitleMaster(); + this.loadFormData(); + + } + // load form data + loadFormData() { + this._PDtriggerForm = this._fb.group({ + fk_lender_id: [null], + pd_branch_id: [null], + lender_applicant_id: [null, Validators.compose([Validators.required])], + lender_contact_person: [null, Validators.compose([Validators.required])], + lender_contact_mobile: [null, Validators.compose([Validators.minLength(10), Validators.maxLength(12), Validators.pattern('^[0-9]*$')])], + lender_stdcode: [null, Validators.compose([Validators.minLength(3), Validators.maxLength(5), Validators.pattern('^[0-9]*$')])], + lender_landline: [null, Validators.compose([Validators.minLength(6), Validators.maxLength(8), Validators.pattern('^[0-9]*$')])], + //lender_billing: [null], + fk_product_id: [null], + fk_subproduct_id: [null], + fk_pd_type: [null], + fk_customer_segment: [null], + loan_amount: [null, Validators.compose([Validators.pattern('^[0-9]*$')])], + applicant_title_name: [''], + applicant_name: [null,Validators.compose([Validators.required])], + mobile_no: [null, Validators.compose([Validators.maxLength(10), Validators.minLength(10)])], + // landline : [null,Validators.compose([Validators.minLength(12),Validators.maxLength(13)])], + // email: [null], + applicant_stdcode: [null, Validators.compose([Validators.minLength(3), Validators.maxLength(5), Validators.pattern('^[0-9]*$')])], + applicant_landline: [null, Validators.compose([Validators.minLength(6), Validators.maxLength(8), Validators.pattern('^[0-9]*$')])], + company_name: [null], + remarks: [null], + // allocation_type: [null], + // sub_allocation_type: [null], + coapplicants: this._fb.array([]), + addresses: this._fb.array([this.createAddresses()]), + documents: this._fb.array([]), + addtional_requirements: this._fb.array([this.createRequiremnt()]) + }); + } + + lenderShortName:string; + /** FOR Dropdowns */ + selectedLender(lender) { + // console.log('lender',lender); + this.lenderBranchList = lender['branches']; + this.lenderShortName = lender['short_name']; + // console.log(this.lenderShortName); + this._PDtriggerForm.controls.pd_branch_id.setValue(null); + + if(this.lenderShortName == 'CLIX'){ + + let getProductAbbr = this.productAllList.map(dval => dval.product_abbr); + let ClixProductAbbr = ['BL','LAEP']; + let FilteredAbbr: any = []; + FilteredAbbr = ClixProductAbbr.map(x => { + let findIndex = getProductAbbr.indexOf(x); + return this.productAllList[findIndex]; + }); + this.productList = FilteredAbbr.length > 0 ? FilteredAbbr : this.productAllList; + } + else{ + this.productList = this.productAllList; + } + + + + + // console.log(this.productList); + + // console.log('this.productList',this.productList); + this._PDtriggerForm.controls['fk_product_id'].setValue(''); + this._PDtriggerForm.controls['fk_subproduct_id'].setValue(''); + this._PDtriggerForm.controls['fk_pd_type'].setValue(''); + this._PDtriggerForm.controls['fk_customer_segment'].setValue(''); + this._PDtriggerForm.controls['loan_amount'].setValue(''); + + } + + + + + getLenderList() { + this._pd.getLenderDetails().subscribe( + data => { + if (data.status == 200) { + this.lenderList = data.records + } + }, error => this.errorMessage = error); + } + + getProductsList() { + this._pd.getProductsDetails().subscribe( + data => { + if (data.status == 200) { + this.productAllList = data.records + } + }, error => this.errorMessage = error); + } + + getCustomerSegmentList() { + this._pd.getCustomersDetails().subscribe( + data => { + if (data.status == 200) { + this.customerSegmentAllList = data.records + } + }, error => this.errorMessage = error); + } + + //get State + getStateCityList() { + this._pd.getAllMasterDatas('STATE').subscribe( + data => { + if (data.status == 200) { + this.stateList = data.records.filter(item => item.isactive == 1); + } + }); + } + + //get PDType List + getPDTypeList() { + this._pd.getPDTypeDetails().subscribe( + data => { + if (data.status == 200) { + this.pdTypeList = data.records.pd_type; + + } + }, error => this.errorMessage = error); + } + + + //get sub product list based on prokduct id + getSubproductList(productID: string) { + let productabbr : any; + // console.log('productID',productID); + if(productID !== undefined && productID !== null && productID !== '') { + this.subProductList = this.productList.filter(item => item.product_id == productID); + this.subProductList = this.subProductList[0].subproducts; + this.subProductList = this.subProductList.filter(item => item.is_others == 0); + productabbr = this.productAllList.filter(item => item.product_id == productID)[0].product_abbr; + + } + else{ + productabbr = '' + this.subProductList = []; + this._PDtriggerForm.controls['fk_subproduct_id'].setValue(''); + this._PDtriggerForm.controls['fk_pd_type'].setValue(''); + this._PDtriggerForm.controls['fk_customer_segment'].setValue(''); + this._PDtriggerForm.controls['loan_amount'].setValue(''); + } + // console.log('productID',productID,productabbr); + /**customer segment */ + switch(productabbr){ + case 'BL' : + // console.log(1); + this.customerSegmentList = this.customerSegmentAllList.filter(s => (s.customer_segment).includes('Self')); + this._PDtriggerForm.controls['fk_subproduct_id'].setValue(null); + this.isSubproductShown = false; + break; + case 'LAEP': + // console.log(2); + this.customerSegmentList = this.customerSegmentAllList.filter(s => (s.customer_segment).includes('Self')); + this._PDtriggerForm.controls['fk_subproduct_id'].setValue(null); + this.isSubproductShown = false; + break; + default: + // console.log(3); + this.customerSegmentList = this.customerSegmentAllList; + this.isSubproductShown = true; + break; + } + + if(this.lenderShortName == 'CLIX' && productabbr != ''){ + this._PDtriggerForm.controls['fk_pd_type'].setValue('1'); + this._PDtriggerForm.controls['fk_customer_segment'].setValue('5'); + this._PDtriggerForm.controls['loan_amount'].setValue(0); + } + } + + + + //get city list details based on state id + getCityList(stateID: string,index) { + this._pd.getStateWiseCities(stateID).subscribe(data => { + if (data.status == 200) { + this.cityList[index] = data.records.cities; + this.pincodeList[index] = data.records.pincode; + } + }); + } + + // get relation master details + getRelationMaster() { + let relation = "RELATIONSHIPS"; + this._pd.getAllMasterDatas(relation).subscribe( + data => { + if (data.status == 200) { + this.relationShipList = data.records; + } + }, error => this.errorMessage = error); + } + + // get title master + getTitleMaster() { + let relation = "TITLES"; + this._pd.getAllMasterDatas(relation).subscribe( + data => { + if (data.status == 200) { + this.titleList = data.records.filter(val => val.isactive == 1); + } + }, error => this.errorMessage = error); + } + + /** FOR Documents */ + addMoreDocs() { + if (this.totalfiles.length != 0) { + if (this.documents.value[0].doc_name != "" && ((this.lengthCheckToaddMore) === (this.totalfiles.length))) { + this.documents.insert(0, this.generateDocuments()) + this.lengthCheckToaddMore = this.lengthCheckToaddMore + 1; + } + } + else if (this.totalfiles.length === 0 && this.lengthCheckToaddMore === 0) { + this.documents.insert(0, this.generateDocuments()) + this.lengthCheckToaddMore = this.lengthCheckToaddMore + 1; + } + } + + generateDocuments(): FormGroup { + return this._fb.group({ + doc_name: [null],//Validators.compose([Validators.required]) + documentFile: [null],//, Validators.compose([Validators.required]) + }); + } + + get documents(): FormArray { + return this._PDtriggerForm.get('documents') as FormArray; + }; + + get pdMain() { + return this._PDtriggerForm.controls; + } + + removeItem(index: number) { + this.totalfiles.splice(index, 1); + this.totalFileName.splice(index, 1); + this.documents.removeAt(index); + this.lengthCheckToaddMore = this.lengthCheckToaddMore - 1; + } + + /** FOR Coapplicant */ + get pdCoApplicant() { return this._PDtriggerForm.get('coapplicants') as FormArray; } + + addCoApplicant() { + this.coapplicants = this._PDtriggerForm.get('coapplicants') as FormArray; + this.coapplicants.push(this.createCoApplicant()); + } + + createCoApplicant(): FormGroup { + return this._fb.group({ + label: ['Applicant'], + applicant_title_name:[null], + coapplicant_name: [null, Validators.compose([Validators.required])], + coapplicant_mobile_no: [null,Validators.compose([Validators.minLength(10),Validators.maxLength(10)])], + coapplicant_stdcode:[null, Validators.compose([Validators.minLength(3), Validators.maxLength(5), Validators.pattern('^[0-9]*$')])], + coapplicant_landline: [null, Validators.compose([Validators.minLength(6), Validators.maxLength(8), Validators.pattern('^[0-9]*$')])], + company_name:[null], + relationship: [null], + }); + }; + + removeCoApplicant(i: number) { + const control = this._PDtriggerForm.controls['coapplicants']; + control.removeAt(i); + } + + /** FOr Adress */ + get pdAddresses() { return this._PDtriggerForm.get('addresses') as FormArray; } + createAddresses(): FormGroup { + return this._fb.group({ + addressline1: [null], + fk_city: [null], + fk_state: [null], + pincode: [null],/** ,Validators.compose([Validators.minLength(6),Validators.maxLength(6)]) */ + other_pincode: [null, Validators.compose([Validators.minLength(6), Validators.maxLength(6)])], + }); + }; + addAddresses() { + this.addresses = this._PDtriggerForm.get('addresses') as FormArray; + this.addresses.push(this.createAddresses()); + } + + removeAddresses(index: number) { + const address_control = this._PDtriggerForm.controls['addresses']; + address_control.removeAt(index); + } + + get pdRequirements() { return this._PDtriggerForm.get('addtional_requirements') as FormArray; } + createRequiremnt(): FormGroup { + return this._fb.group({ + add_req_id: [null], + add_requirement: [null], + isactive: [1], + }); + }; + addRequiremnts() { + this.addtional_requirements = this._PDtriggerForm.get('addtional_requirements') as FormArray; + this.addtional_requirements.push(this.createRequiremnt()); + } + + removeRequirements(index: number) { + const requirement_control = this._PDtriggerForm.controls['addtional_requirements']; + requirement_control.removeAt(index); + } + + public fileSelectionEvent(fileInput: any, oldIndex: number) { + + + if (fileInput.target.files && fileInput.target.files[0]) { + var reader = new FileReader(); + reader.onload = (event: any) => { + } + + if (oldIndex == 0) { + this.totalfiles.unshift((fileInput.target.files[0])) + this.totalFileName.unshift(fileInput.target.files[0].name) + } + else { + this.totalfiles[oldIndex] = (fileInput.target.files[0]); + this.totalFileName[oldIndex] = fileInput.target.files[0].name + } + + reader.readAsDataURL(fileInput.target.files[0]); + } + + if (this.totalfiles.length == 1) { + this.lengthCheckToaddMore = 1; + } + } + getPincode(e,i){ this.pincodeflag[i] = e == 1 ? true : false;} + // save pd in draft + saveDraftPD(formValue: any, status: string) { + //alert('Inside The Draft PD'); + this.submitPdDetails(formValue, status); + } + //trigger pd + triggerPD(formValue: any, status: string) { + this._PDtriggerForm.controls['fk_lender_id'].setValidators([Validators.required]); + this._PDtriggerForm.controls['fk_lender_id'].updateValueAndValidity(); + + + + // if(formValue.fk_product_id != '4'){ + // this._PDtriggerForm.controls['fk_subproduct_id'].setValidators([Validators.required]); + // this._PDtriggerForm.controls['fk_subproduct_id'].updateValueAndValidity(); + // } + if(formValue.fk_product_id == '4'){ + this._PDtriggerForm.controls['fk_subproduct_id'].setValue(null); + } + + if(this.lenderShortName != 'CLIX'){ + + this._PDtriggerForm.controls['fk_pd_type'].setValidators([Validators.required]); + this._PDtriggerForm.controls['fk_pd_type'].updateValueAndValidity(); + + this._PDtriggerForm.controls['fk_customer_segment'].setValidators([Validators.required]); + this._PDtriggerForm.controls['fk_customer_segment'].updateValueAndValidity(); + + this._PDtriggerForm.controls['loan_amount'].setValidators([Validators.required]); + this._PDtriggerForm.controls['loan_amount'].updateValueAndValidity(); + + } + + this._PDtriggerForm.controls['applicant_name'].setValidators([Validators.required]); + this._PDtriggerForm.controls['applicant_name'].updateValueAndValidity(); + this._PDtriggerForm.controls['applicant_title_name'].setValidators([Validators.required]); + this._PDtriggerForm.controls['applicant_title_name'].updateValueAndValidity(); + + this._PDtriggerForm.controls['mobile_no'].setValidators([Validators.required]); + this._PDtriggerForm.controls['mobile_no'].updateValueAndValidity(); + + // this._PDtriggerForm.controls['addressline1'].setValidators([Validators.required]); + // this._PDtriggerForm.controls['addressline1'].updateValueAndValidity(); + + // this._PDtriggerForm.controls['fk_city'].setValidators([Validators.required]); + // this._PDtriggerForm.controls['fk_city'].updateValueAndValidity(); + + // this._PDtriggerForm.controls['fk_state'].setValidators([Validators.required]); + // this._PDtriggerForm.controls['fk_state'].updateValueAndValidity(); + + // this._PDtriggerForm.controls['pincode'].setValidators([Validators.required]); + // this._PDtriggerForm.controls['pincode'].updateValueAndValidity(); + setTimeout(() => { + this.clearCustomValidatorFields(); + }, 10000); + this.submitPdDetails(formValue, status); + } + + // this is for clear custom validator required fields + clearCustomValidatorFields() { + this._PDtriggerForm.controls['fk_lender_id'].clearValidators(); + this._PDtriggerForm.controls['fk_lender_id'].updateValueAndValidity(); + + this._PDtriggerForm.controls['fk_product_id'].clearValidators(); + this._PDtriggerForm.controls['fk_product_id'].updateValueAndValidity(); + + // if(this._PDtriggerForm.controls.fk_product_id.value != '4'){ + // this._PDtriggerForm.controls['fk_subproduct_id'].clearValidators(); + // this._PDtriggerForm.controls['fk_subproduct_id'].updateValueAndValidity(); + // } + if(this._PDtriggerForm.controls.fk_product_id.value == '4'){ + this._PDtriggerForm.controls['fk_subproduct_id'].setValue(null); + } + + this._PDtriggerForm.controls['fk_pd_type'].clearValidators(); + this._PDtriggerForm.controls['fk_pd_type'].updateValueAndValidity(); + + this._PDtriggerForm.controls['fk_customer_segment'].clearValidators(); + this._PDtriggerForm.controls['fk_customer_segment'].updateValueAndValidity(); + + this._PDtriggerForm.controls['loan_amount'].clearValidators(); + this._PDtriggerForm.controls['loan_amount'].updateValueAndValidity(); + + this._PDtriggerForm.controls['applicant_name'].clearValidators(); + this._PDtriggerForm.controls['applicant_name'].updateValueAndValidity(); + + this._PDtriggerForm.controls['applicant_title_name'].clearValidators(); + this._PDtriggerForm.controls['applicant_title_name'].updateValueAndValidity(); + + this._PDtriggerForm.controls['mobile_no'].clearValidators(); + this._PDtriggerForm.controls['mobile_no'].updateValueAndValidity(); + + // this._PDtriggerForm.controls['addressline1'].clearValidators(); + // this._PDtriggerForm.controls['addressline1'].updateValueAndValidity(); + + // this._PDtriggerForm.controls['fk_city'].clearValidators(); + // this._PDtriggerForm.controls['fk_city'].updateValueAndValidity(); + + // this._PDtriggerForm.controls['fk_state'].clearValidators(); + // this._PDtriggerForm.controls['fk_state'].updateValueAndValidity(); + + // this._PDtriggerForm.controls['pincode'].clearValidators(); + // this._PDtriggerForm.controls['pincode'].updateValueAndValidity(); + + this.validateAllFormFields(this._PDtriggerForm); + } + + // common function for both draft and process pd + submitPdDetails(formValue: any, status: string) { + // console.log('inside the submitPdDetails data'); + if (this._PDtriggerForm.invalid) { + this.validateAllFormFields(this._PDtriggerForm); + this.notifier.notify('warning', 'Please Fill All Mandatory Fields.!'); + return; + } + else { + if ((formValue.lender_contact_mobile == '' || formValue.lender_contact_mobile == null) && (formValue.lender_stdcode == '' || formValue.lender_stdcode == null && formValue.lender_landline == '' || formValue.lender_landline == null)) { + this.notifier.notify('warning', 'Either Mobile or Landline Need.!'); + return; + } + else if (formValue.mobile_no != null && formValue.mobile_no.length != 10){ + this.notifier.notify('warning', 'Please Check Applicant Mobile Number.!'); + return; + } + else { + this.disableAfterSubmit = true; + + let lender_landline_no; + let applicant_landline_no; + + if(!formValue.lender_stdcode || !formValue.lender_landline){ + lender_landline_no = null; + } + else if(!formValue.lender_stdcode && !formValue.lender_landline){ + lender_landline_no = null; + } + else if(formValue.lender_stdcode && formValue.lender_landline){ + lender_landline_no = formValue.lender_stdcode + '-' + formValue.lender_landline; + } + else{ + lender_landline_no = null; + } + + if(!formValue.applicant_stdcode || !formValue.applicant_landline){ + applicant_landline_no = null; + } + else if(!formValue.applicant_stdcode && !formValue.applicant_landline){ + applicant_landline_no = null; + } + else if(formValue.applicant_stdcode && formValue.applicant_landline){ + applicant_landline_no = formValue.applicant_stdcode + '-' + formValue.applicant_landline; + } + else{ + applicant_landline_no = null; + } + + let pd_details: any = { + "fk_lender_id": formValue.fk_lender_id, + "lender_applicant_id": formValue.lender_applicant_id, + "pd_branch_id": formValue.pd_branch_id, + "pd_contact_person": formValue.lender_contact_person, + "pd_contact_mobileno": formValue.lender_contact_mobile, + "pd_contact_landline": lender_landline_no, + "fk_product_id": formValue.fk_product_id, + "fk_subproduct_id": formValue.fk_product_id != 4 ? formValue.fk_subproduct_id != '' || formValue.fk_subproduct_id != 0 ? formValue.fk_subproduct_id : null : null, + "fk_pd_type": formValue.fk_pd_type, + "fk_customer_segment": formValue.fk_customer_segment, + "loan_amount": formValue.loan_amount, + "addressline1": !formValue.addresses[0].addressline1 ? null : this.titleCase.transform(formValue.addresses[0].addressline1), + "fk_city": formValue.addresses[0].fk_city, + "fk_state": formValue.addresses[0].fk_state, + "pincode": formValue.addresses[0].pincode, + "other_pincode": formValue.addresses[0].other_pincode, + "remarks": formValue.remarks, + "pd_status": status, + "fk_createdby": this._aws.getlocale(), + }; + + + var pd_applicant_details: any = []; + var addresses_details: any = []; + if (formValue.applicant_name) { + pd_applicant_details.push({ + "applicant_name": this.titleCase.transform(formValue.applicant_name), + "applicant_title_name": formValue.applicant_title_name, + "company_name": formValue.company_name, + "mobile_no": formValue.mobile_no, + "landline": applicant_landline_no, + "applicant_type": 1, + "relation": "", + }); + } + + formValue.coapplicants.forEach((itemElement, itemIndex) => { + + let coapplicant_landline_no; + + if(!itemElement.coapplicant_stdcode || !itemElement.coapplicant_landline){ + coapplicant_landline_no = null; + } + else if(!itemElement.coapplicant_stdcode && !itemElement.coapplicant_landline){ + coapplicant_landline_no = null; + } + else if(itemElement.coapplicant_stdcode && itemElement.coapplicant_landline){ + coapplicant_landline_no = formValue.coapplicant_stdcode + '-' + itemElement.applicant_landline; + } + else{ + coapplicant_landline_no = null; + } + + // if (itemElement.coapplicant_stdcode != null || itemElement.coapplicant_landline != null) { + // if (itemElement.coapplicant_stdcode != '' && itemElement.coapplicant_landline != '') { + // coapplicant_landline_no = formValue.coapplicant_stdcode + '-' + itemElement.applicant_landline; + // } + // else { + // coapplicant_landline_no = null; + // } + // } + // else { + // coapplicant_landline_no = null; + // } + + let obj1 = { + "applicant_name":this.titleCase.transform(itemElement.coapplicant_name), + "applicant_title_name": itemElement.applicant_title_name, + "company_name": itemElement.company_name, + "mobile_no":itemElement.coapplicant_mobile_no, + "landline": coapplicant_landline_no, + "applicant_type":0, + "relation": "", + } + pd_applicant_details.push(obj1) + }); + + if (formValue.addresses.length > 0) { + formValue.addresses.forEach((addressElement, itemIndex) => { + let addressobj = { + "addressline1": !addressElement.addressline1 ? null : this.titleCase.transform(addressElement.addressline1), + "fk_city": addressElement.fk_city, + "fk_state": addressElement.fk_state, + "pincode": addressElement.pincode, + "other_pincode": addressElement.other_pincode, + } + addresses_details.push(addressobj); + }); + } + + + // docs details + let pd_form: FormData = new FormData(); + + for (let j = 0; j < this.totalfiles.length; j++) { + pd_form.append('pddocuments[]', this.totalfiles[j]) + } + + //reverseFileNames=this.totalFileName.reverse(); + + let AllFilesObj = [] + + formValue.documents.forEach((element, index) => { + AllFilesObj.push(element.doc_name); + }); + pd_form.append("pd_details", JSON.stringify(pd_details)) + + if (pd_applicant_details.length > 0) { + pd_form.append("pd_applicant_details", JSON.stringify(pd_applicant_details)) + } + + if(addresses_details.length>0){ + pd_form.append("addresses", JSON.stringify(addresses_details)); + } + + pd_form.append("pd_document_titles", JSON.stringify(AllFilesObj)) + + if (formValue.addtional_requirements.length > 0) { + pd_form.append("addtional_requirements", JSON.stringify(formValue.addtional_requirements)) + } + + this._pd.addPdDetails(pd_form).subscribe(result => { + if (result.status == 200) { + this.disableAfterSubmit = false; + this.notifier.notify('success', 'PD Saved.'); + this.loadPdListCompoent(true); + } + else { + this.disableAfterSubmit = false; + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + } + }, error => { + this.disableAfterSubmit = false; + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!' + '-' + error.error_text + ' occur'); + }); + } + } + } + loadPdListCompoent(from: boolean) { + //alert(from); + if (from) { + // alert('if'+from); + this.router.navigate(['../../'], { relativeTo: this.route }); + this.ListPdComponent.pdListLoad(true); + } + else { + // alert(from); + this.router.navigate(['../../'], { relativeTo: this.route }); + this.ListPdComponent.showListView(true); + } + + } + ngOnDestroy(): void { + this.ListPdComponent.showListView(true); + } + /** To Reset Popup Data */ + onReset() { + this.loadFormData(); + this.disableAfterSubmit = false; + } + // validate all form group and form array fields + validateAllFormFields(formGroup: any) { + Object.keys(formGroup.controls).forEach(field => { + const control = formGroup.get(field); + + if (control instanceof FormControl) { + control.markAsTouched({ onlySelf: true }); + } else if (control instanceof FormGroup) { + this.validateAllFormFields(control); + } else if (control instanceof FormArray) { + this.validateAllFormFields(control); + } + }); + } + +} \ No newline at end of file diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/all-pd/all-pd.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/all-pd/all-pd.component.html new file mode 100755 index 0000000..2702d87 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/all-pd/all-pd.component.html @@ -0,0 +1,153 @@ + + + + + + filter_list + + Advance Filter + + + + + +
+ + + {{type.type_name}} + +     + + + {{status.pd_status_name}} + +     + + + + +     + + + + + + + + {{pro.name}} + +     + + + {{city.name}} + +     + + + {{ent.full_name}} + + + + +     + + + +
+ + + + + +
+
+
+ +
+
+ + + + + +
{{details.pd_id}}
+ {{details.pd_type_name}} +
+
+ + + + {{details.is_child == 0 ? details.applicant_name : 'Add On PD - ' + details.parent_pd_id }} + +
+ {{details.lender_applicant_id}} + -({{details.customer_segment_abbr}} ) +
+
+ + + {{details.lender_short_name}} +
+ {{details.product_abbr}}/{{details.subproduct_abbr}} +
+ + {{details.loan_amount}} +
+
+ + + {{details.pd_date_of_initiation}} +
+ + {{details.city_name}}-{{details.pincode_id == 1 ? details.other_pincode : details.pincode }} +
+
+ + + {{details.pd_status}} + QC COMPLETED +
+ {{ (details.updatedon)? (details.updatedon | slice:0:10):(details.updatedon) }} + + {{ (details.updatedon)? (details.updatedon | slice:0:10):(details.updatedon) }} + + {{details.scheduled_on}} + +
+
+ + + + + + + + + + + +
+ + + +
+ + + + \ No newline at end of file diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/all-pd/all-pd.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/all-pd/all-pd.component.scss new file mode 100755 index 0000000..4043f5c --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/all-pd/all-pd.component.scss @@ -0,0 +1,21 @@ +.ic-change:hover { + transform: scale(1.1); + color: green; +} +.cell{ + display:inline !important; +} +.cellhide{ + display: none !important; +} +.center{ + text-align:center; +} +.fontsize{ + font-size:14px; +} + +.toolbar-space { + flex: 0.01 0 auto; +} + \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/uom/uom-list/uom-list.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/all-pd/all-pd.component.spec.ts old mode 100644 new mode 100755 similarity index 56% rename from ng6-seed/src/app/settings/masters/component/uom/uom-list/uom-list.component.spec.ts rename to ng6-seed/src/app/personal-discussion/manage-pd/list-pd/all-pd/all-pd.component.spec.ts index b21e752..382c71e --- a/ng6-seed/src/app/settings/masters/component/uom/uom-list/uom-list.component.spec.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/all-pd/all-pd.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { UomListComponent } from './uom-list.component'; +import { AllPdComponent } from './all-pd.component'; -describe('UomListComponent', () => { - let component: UomListComponent; - let fixture: ComponentFixture; +describe('AllPdComponent', () => { + let component: AllPdComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ UomListComponent ] + declarations: [ AllPdComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(UomListComponent); + fixture = TestBed.createComponent(AllPdComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/all-pd/all-pd.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/all-pd/all-pd.component.ts new file mode 100755 index 0000000..e41df4a --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/all-pd/all-pd.component.ts @@ -0,0 +1,223 @@ +import { Component,ViewChild, OnInit, ViewEncapsulation, Input, Output, EventEmitter, OnDestroy, AfterViewInit, OnChanges, SimpleChanges } from '@angular/core'; +import { PdTrigerService } from './../../../pd-service/pd-triger.service'; +import { MatPaginator, MatSort, MatTableDataSource, PageEvent } from '@angular/material'; +import { FormGroup, FormBuilder } from '@angular/forms'; +import { DatePipe } from '@angular/common'; +import { NotifierService } from 'angular-notifier'; + +@Component({ + selector: 'app-all-pd', + templateUrl: './all-pd.component.html', + styleUrls: ['./all-pd.component.scss'], + encapsulation: ViewEncapsulation.None + +}) + +export class AllPdComponent implements OnInit, OnChanges { + xpandStatus: boolean = false; + PRODUCTS:any[]=[]; + ENTITY: any[]=[] + CITY: any[]=[] + PDType: any[]=[] + pdStatus: any[]=[] + searchForm:FormGroup; + pipe = new DatePipe('en-US'); + private notifier: NotifierService; + recordStatus: boolean; + errorMessage:any[]=[]; + tabStatus:string="ALL"; + public dataLengthTab1: number; + public dataSourceTab1 = new MatTableDataSource(); + displayedColumns = ['PDType','Name','Lenderid','Address','Status','Action']; + + @ViewChild(MatPaginator) paginator: MatPaginator; + @ViewChild(MatSort) sort: MatSort; + + @Input() bindFilterValue: string; + + @Output() loadPdView = new EventEmitter(); + + // data source variable details + PdListData:any[] = []; + + // pagination variable details + length = 5; + pageIndex = 0; + pageSize = 10; + pageEvent: PageEvent; + todaydate:Date = new Date(); + constructor(private _pd: PdTrigerService,private _fb:FormBuilder,notifier: NotifierService,) { + this.notifier = notifier; + this.searchForm = this._fb.group( + { + pd_type:[null], + pd_status:[null], + pd_from_date:[null], + pd_to_date:[null], + pd_city:[null], + pd_products:[null], + pd_lender:[null], + pd_name:[null], + pd_applicant_id:[null], + }); + this.getcommonDropDown(); + } + + ngOnInit() { + this.recordStatus=false; + // this.loadPDDetails(); + //this.getcommonDropDown(); + } + + // get changes for filter from parent componnet filter + ngOnChanges(changes: SimpleChanges) { + let filteredText = changes.bindFilterValue.currentValue ? changes.bindFilterValue.currentValue.trim() : changes.bindFilterValue.currentValue; + filteredText = filteredText ? filteredText.toLowerCase() : filteredText; + this.dataSourceTab1.filter = filteredText; + +} + +// load inprogress pd list + + loadPDDetails() { + //this._pd.getTabStatusPdDetails(this.tabStatus) + this._pd.getPdDetails() + .subscribe( + data => { + if (data.status == 200) { + this.PdListData = data.records; + this.dataLengthTab1 = data.records.length; + this.dataSourceTab1.data = this.PdListData; + } + else{ + this.PdListData=[]; + this.dataSourceTab1 = null; + this.recordStatus=true; + } + } + // , error => {this.errorMessage = error}); + ,error => { + this.errorMessage.push(error); + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!' + '-' + error.error_text + ' occur'); + alert(error.html_format); + }); + } + pageChange(e) { + console.log(e); + } + viewPD(pdid:string){ + this.loadPdView.next(pdid); + + } + + titleCaseWord(word:string) { + if (!word) return word; + return word[0].toUpperCase() + word.substr(1).toLowerCase(); + } + + /** + * Common Search + * sriram + */ + + getcommonDropDown(): void + { + this._pd.getAllMasterDatas('PDSTATUS').subscribe(res=> + { + if(res.dataStatus==true) + { + this.pdStatus = res.records.filter(status=>status.isactive==1); + } + }); + + this._pd.getAllMasterDatas('PDTYPE').subscribe(res=> + { + if(res.dataStatus==true) + { + this.PDType = res.records.filter(type=>type.isactive==1); + } + }); + + this._pd.getListOfCities().subscribe(res=> + { + if(res.dataStatus==true) + { + this.CITY = res.records; + } + }); + this._pd.getAllMasterDatas('ENTITY').subscribe(res=> + { + if(res.dataStatus==true) + { + this.ENTITY = res.records.filter(ent=>ent.isactive==1); + } + }); + this._pd.getAllMasterDatas('PRODUCTS').subscribe(res=> + { + if(res.dataStatus==true) + { + this.PRODUCTS = res.records.filter(pro=>pro.isactive==1); + } + }); + + } + checkDate(e) + { + console.log(e); + } + + searchItem() + { + + if(this.searchForm.value.pd_type !=null) + { + + }else + { + this.searchForm.value.pd_type = []; + } + + if(this.searchForm.value.pd_status !=null) + { + + }else + { + this.searchForm.value.pd_status = []; + } + + this.searchForm.value.pd_from_date = this.pipe.transform(this.searchForm.value.pd_from_date,'yyyy-MM-dd'); + this.searchForm.value.pd_to_date = this.pipe.transform(this.searchForm.value.pd_to_date,'yyyy-MM-dd'); + // console.log(JSON.stringify(this.searchForm.value)); + this._pd.overAllSearchFormDetails(this.searchForm.value).subscribe(res=> + { + this.xpandStatus = false; + if(res['dataStatus']==true) + { + this.dataSourceTab1.data = res['records']; + // console.log('records',res['records']); + this.dataSourceTab1.paginator = this.paginator; + }else{ + this.notifier.notify('warning', 'No Records Found !'); + this.dataSourceTab1.paginator['length'] = 0; + this.dataSourceTab1.paginator['pageIndex'] = 0; + this.dataSourceTab1.data = []; + // console.log('records-records',res['records']); + } + },error => { + this.errorMessage.push(error); + this.notifier.notify('warning', 'Something Went Wrong Try Again.!' + '-' + error.error_text + ' occur'); + alert(error.html_format); + }); + } + + onReset(){ + this.searchForm.reset(); + this.loadPDDetails(); + this.xpandStatus = false; + } + + ngAfterViewInit() { + this.dataSourceTab1.paginator = this.paginator; + this.dataSourceTab1.sort = this.sort; + } +} diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/completed-pd/completed-pd.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/completed-pd/completed-pd.component.html new file mode 100755 index 0000000..4342e3a --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/completed-pd/completed-pd.component.html @@ -0,0 +1,126 @@ + + + + + + + + filter_list + + Advance Filter + + + + + +
+ + + {{type.type_name}} + +     + + + + + +     + + + + + + + + {{pro.name}} + +     + + + {{city.name}} + +     + + + {{ent.full_name}} + + + + +     + + + +
+ + + +
+
+
+ +
+
+ + + + + +
{{details.pd_id}}
+ {{details.pd_type_name}} +
+
+ + + + + {{details.is_child == 0 ? details.applicant_name : 'Add On PD - ' + details.parent_pd_id }} +
+ {{details.lender_applicant_id}} -({{details.customer_segment_abbr}} ) +
+
+ + + {{details.lender_short_name}}
+ {{details.product_abbr}}/{{details.subproduct_abbr}}
+ {{details.loan_amount}} +
+
+ + + {{details.pd_date_of_initiation}}
+ {{details.city_name}}-{{details.pincode_id == 1 ? details.other_pincode : details.pincode }} +
+
+ + + {{details.pd_status}}
+ {{ (details.updatedon)? (details.updatedon | slice:0:10):(details.updatedon) }} + +
+
+ + + + + + + +
+ +
+ + + diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/completed-pd/completed-pd.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/completed-pd/completed-pd.component.scss new file mode 100755 index 0000000..dc8d754 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/completed-pd/completed-pd.component.scss @@ -0,0 +1,19 @@ +.ic-change:hover { + transform: scale(1.1); + color: green; +} +.cell{ + display:inline !important; +} +.cellhide{ + display: none !important; +} +.center{ + text-align:center; +} +.fontsize{ + font-size:14px; +} +.toolbar-space { + flex: 0.01 0 auto; +} diff --git a/ng6-seed/src/app/settings/masters/component/product/product-list/product-list.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/completed-pd/completed-pd.component.spec.ts old mode 100644 new mode 100755 similarity index 54% rename from ng6-seed/src/app/settings/masters/component/product/product-list/product-list.component.spec.ts rename to ng6-seed/src/app/personal-discussion/manage-pd/list-pd/completed-pd/completed-pd.component.spec.ts index a2c901b..4b63f47 --- a/ng6-seed/src/app/settings/masters/component/product/product-list/product-list.component.spec.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/completed-pd/completed-pd.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { ProductListComponent } from './product-list.component'; +import { CompletedPdComponent } from './completed-pd.component'; -describe('ProductListComponent', () => { - let component: ProductListComponent; - let fixture: ComponentFixture; +describe('CompletedPdComponent', () => { + let component: CompletedPdComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ ProductListComponent ] + declarations: [ CompletedPdComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(ProductListComponent); + fixture = TestBed.createComponent(CompletedPdComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/completed-pd/completed-pd.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/completed-pd/completed-pd.component.ts new file mode 100755 index 0000000..93d5948 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/completed-pd/completed-pd.component.ts @@ -0,0 +1,236 @@ +import { Component,ViewChild, OnInit, ViewEncapsulation, Input, Output, EventEmitter, OnDestroy, AfterViewInit, OnChanges, SimpleChanges } from '@angular/core'; +import { PdTrigerService } from './../../../pd-service/pd-triger.service'; +import { MatPaginator, MatSort, MatTableDataSource, PageEvent } from '@angular/material'; +import { FormGroup, FormBuilder } from '@angular/forms'; +import { DatePipe } from '@angular/common'; +import { NotifierService } from 'angular-notifier'; + +@Component({ + selector: 'app-completed-pd', + templateUrl: './completed-pd.component.html', + styleUrls: ['./completed-pd.component.scss'], + encapsulation: ViewEncapsulation.None + +}) + +export class CompletedPdComponent implements OnInit, OnChanges { + xpandStatus: boolean = false; + PRODUCTS: any[]=[]; + CITY: any[]=[]; + ENTITY: any[]=[]; + PDType: any[]=[]; + pdStatus: any[]=[]; + searchForm:FormGroup; + pipe = new DatePipe('en-US'); + private notifier: NotifierService; + recordStatus: boolean; + errorMessage:any[]=[]; + tabStatus:string="COMPLETED"; + public dataLengthTab4: number; + public dataSourceTab4 = new MatTableDataSource(); + + displayedColumns = ['PDType','Name','Lenderid','Address','Status','Action']; + + @ViewChild(MatPaginator) paginator: MatPaginator; + @ViewChild(MatSort) sort: MatSort; + + @Input() bindFilterValue: string; + @Output() loadPdView = new EventEmitter(); + + // data source variable details + completedPdListData:any[] = []; + + // pagination variable details + length = 5; + pageIndex = 0; + pageSize = 10; + pageEvent: PageEvent; + todaydate:Date = new Date(); + + constructor(private _pd: PdTrigerService,public _fb:FormBuilder,notifier: NotifierService,) { + this.notifier = notifier; + + this.searchForm = this._fb.group( + { + pd_type:[null], + pd_status:['COMPLETED'], + pd_from_date:[null], + pd_to_date:[null], + pd_city:[null], + pd_products:[null], + pd_lender:[null], + pd_name:[null], + pd_applicant_id:[null], + }); + this.getcommonDropDown(); + } + + ngOnInit() { + this.recordStatus=false; + // this.loadPDDetails(); + // this.getcommonDropDown(); + } + + + // get changes for filter from parent componnet filter + ngOnChanges(changes: SimpleChanges) { + // let filteredText = changes.bindFilterValue.currentValue; + let filteredText = changes.bindFilterValue.currentValue ? changes.bindFilterValue.currentValue.trim() : changes.bindFilterValue.currentValue; + // filteredText = filteredText ? filteredText.trim() : filteredText; + filteredText = filteredText ? filteredText.toLowerCase() : filteredText; + this.dataSourceTab4.filter = filteredText; +} + +// load inprogress pd list + + loadPDDetails() { + this._pd.getTabStatusPdDetails(this.tabStatus) + .subscribe( + data => { + if (data.status == 200) { + this.completedPdListData = data.records; + this.dataLengthTab4 = data.records.length; + this.dataSourceTab4.data = this.completedPdListData; + } + else{ + this.completedPdListData=[]; + this.dataLengthTab4= null; + this.recordStatus=true; + } + } + // , error => this.errorMessage = error); + ,error => { + this.errorMessage.push(error); + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!' + '-' + error.error_text + ' occur'); + alert(error.html_format); + }); + } + pageChange(e) { + console.log(e); + } + viewPD(pdid:string){ + this.loadPdView.next(pdid); + + } + + titleCaseWord(word:string) { + if (!word) return word; + return word[0].toUpperCase() + word.substr(1).toLowerCase(); + } + + + /** + * Common Search + * sriram + */ + + getcommonDropDown(): void + { + this._pd.getAllMasterDatas('PDSTATUS').subscribe(res=> + { + if(res.dataStatus==true) + { + this.pdStatus = res.records.filter(status=>status.isactive==1 && status.pd_status_name==this.tabStatus); + // this.searchForm.controls['pd_status'].setValue(this.pdStatus[0]); + } + }); + + this._pd.getAllMasterDatas('PDTYPE').subscribe(res=> + { + if(res.dataStatus==true) + { + this.PDType = res.records.filter(type=>type.isactive==1); + } + }); + + // this._pd.getAllMasterDatas('CITY').subscribe(res=> + // { + // if(res.dataStatus==true) + // { + // this.CITY = res.records.filter(city=>city.isactive==1); + // } + // }); + this._pd.getListOfCities().subscribe(res=> + { + if(res.dataStatus==true) + { + this.CITY = res.records; + } + }); + this._pd.getAllMasterDatas('ENTITY').subscribe(res=> + { + if(res.dataStatus==true) + { + this.ENTITY = res.records.filter(ent=>ent.isactive==1); + } + }); + this._pd.getAllMasterDatas('PRODUCTS').subscribe(res=> + { + if(res.dataStatus==true) + { + this.PRODUCTS = res.records.filter(pro=>pro.isactive==1); + } + }); + } + + checkDate(e) + { + console.log(e); + } + searchItem() + { + + if(this.searchForm.value.pd_type !=null) + { + + }else + { + this.searchForm.value.pd_type = []; + } + + if(this.searchForm.value.pd_status !=null) + { + + }else + { + this.searchForm.value.pd_status = []; + } + + this.searchForm.value.pd_from_date = this.pipe.transform(this.searchForm.value.pd_from_date,'yyyy-MM-dd'); + this.searchForm.value.pd_to_date = this.pipe.transform(this.searchForm.value.pd_to_date,'yyyy-MM-dd'); + + this._pd.overAllSearchFormDetails(this.searchForm.value).subscribe(res=> + { + this.xpandStatus = false; + + if(res['dataStatus']==true) + { + this.dataSourceTab4 = res['records']; + this.dataSourceTab4.paginator = this.paginator; + }else{ + this.notifier.notify('warning', 'No Records Found !'); + + this.dataSourceTab4.paginator['length'] = 0; + this.dataSourceTab4.paginator['pageIndex'] = 0; + this.dataSourceTab4.data = []; + } + },error => { + this.errorMessage.push(error); + this.notifier.notify('warning', 'Something Went Wrong Try Again.!' + '-' + error.error_text + ' occur'); + alert(error.html_format); + }); + } + onReset(){ + this.searchForm.reset(); + this.loadPDDetails(); + this.xpandStatus = false; + } + + ngAfterViewInit() { + this.dataSourceTab4.paginator = this.paginator; + this.dataSourceTab4.sort = this.sort; + } + +} + + diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-applicant/edit-pd-applicant.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-applicant/edit-pd-applicant.component.html new file mode 100755 index 0000000..8679a50 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-applicant/edit-pd-applicant.component.html @@ -0,0 +1,120 @@ +
+ +

+
+ {{pageTitle}} + +
+
+ + +
+

+ + + + + + Applicant 1 + + + + + + {{tl.name}} + + + + + + + + + + + + + + + + Enter Valid Mobile Number. + + + + + Enter Valid STD Code. +  -  + + + Enter Valid Landline Number. + + + + + + + Applicant {{i+2}} + + + + + + {{tl.name}} + + + + + + + + + + + + + + Enter Valid Mobile Number. + + + + + + + Enter Valid STD Number. +  -  + + + Enter Valid Landline Number. + + + + + + + + + + + + + + + + +
+ + + + \ No newline at end of file diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-applicant/edit-pd-applicant.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-applicant/edit-pd-applicant.component.scss new file mode 100755 index 0000000..6795e1e --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-applicant/edit-pd-applicant.component.scss @@ -0,0 +1,8 @@ +mat-form-field { + margin: 0 2%; + } +.paragraph_change { + color: #fff !important; + background-color: #e00201 !important; + // padding: 10px !important; +} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/company/company-list/company-list.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-applicant/edit-pd-applicant.component.spec.ts old mode 100644 new mode 100755 similarity index 51% rename from ng6-seed/src/app/settings/masters/component/company/company-list/company-list.component.spec.ts rename to ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-applicant/edit-pd-applicant.component.spec.ts index f9d0a52..73b41f6 --- a/ng6-seed/src/app/settings/masters/component/company/company-list/company-list.component.spec.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-applicant/edit-pd-applicant.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { CompanyListComponent } from './company-list.component'; +import { EditPdApplicantComponent } from './edit-pd-applicant.component'; -describe('CompanyListComponent', () => { - let component: CompanyListComponent; - let fixture: ComponentFixture; +describe('EditPdApplicantComponent', () => { + let component: EditPdApplicantComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ CompanyListComponent ] + declarations: [ EditPdApplicantComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(CompanyListComponent); + fixture = TestBed.createComponent(EditPdApplicantComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-applicant/edit-pd-applicant.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-applicant/edit-pd-applicant.component.ts new file mode 100755 index 0000000..c5b9c65 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-applicant/edit-pd-applicant.component.ts @@ -0,0 +1,326 @@ +import { Component, OnInit,ViewEncapsulation, Inject } from '@angular/core'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { FormBuilder, FormGroup, Validators, FormControl, FormArray } from '@angular/forms'; +import { CustomValidators } from 'ng2-validation'; +import { NotifierService } from 'angular-notifier'; +import { PdTrigerService } from '../../../pd-service/pd-triger.service'; +import { TitleCasePipe } from '@angular/common'; + +@Component({ + selector: 'app-edit-pd-applicant', + templateUrl: './edit-pd-applicant.component.html', + styleUrls: ['./edit-pd-applicant.component.scss'], + providers:[TitleCasePipe], + encapsulation: ViewEncapsulation.None, +}) +export class EditPdApplicantComponent implements OnInit { + public pageTitle: string = "Applicant Details"; + errorMessage: any; + public _EditApplicantForm:FormGroup; + public notifier: NotifierService; + mainApplicantData: any[]; + coApplicantData: any[]; + coApplicantItems:FormArray; + emptyData:any; + relationShipList:any; + titleList: any; + CSAbbr:any; + disableAfterSubmit: boolean; + + constructor(private _fb: FormBuilder, + private _pd: PdTrigerService, notifier: NotifierService, private dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any,private titleCase : TitleCasePipe) { + + this.notifier=notifier; + this.disableAfterSubmit = false; + } + + ngOnInit() { + this.CSAbbr = this.data.SegmentAbbr != '' ? this.data.SegmentAbbr != null ? this.data.SegmentAbbr : '' :'' ; + if(this.data.records.length>0){ + this.mainApplicantData= this.data.records.filter(item => item.applicant_type == 1); + this.coApplicantData= this.data.records.filter(item => item.applicant_type == 0); + this.loadApplicantFormData(); + } + else{ + this.loadEmptyFormData() + } + this.getRelationMaster(); + this.getTitleMaster(); + + } + loadEmptyFormData() { + this._EditApplicantForm = this._fb.group({ + fk_applicant_primary_id: [null], + applicant_name: [null, Validators.compose([Validators.required])], + mobile_no: [null, Validators.compose([Validators.minLength(10),Validators.maxLength(12)])], + stdcode: [null, Validators.compose([Validators.minLength(3),Validators.maxLength(5)])], + landline: [null, Validators.compose([Validators.minLength(6),Validators.maxLength(8)])], + company_name: [null], + applicant_type: [1], + coApplicantItems: this._fb.array([]), +}); + + } + + loadApplicantFormData() { + let stdcode; + let landline; + if(this.mainApplicantData[0].landline != null){ + let stdcodesearch = this.mainApplicantData[0].landline.search("-"); + stdcode = this.mainApplicantData[0].landline.substr(0,stdcodesearch) ; + landline = this.mainApplicantData[0].landline.substr(+stdcodesearch + 1,8) ; + }else{ + stdcode = ''; + landline = ''; + } + + this._EditApplicantForm = this._fb.group({ + fk_applicant_primary_id: [this.mainApplicantData[0].pd_co_applicant_id], + applicant_name: [this.titleCase.transform(this.mainApplicantData[0].applicant_name), Validators.compose([Validators.required])], + mobile_no: [this.mainApplicantData[0].mobile_no, Validators.compose([Validators.minLength(10),Validators.maxLength(12)])], + stdcode: [stdcode, Validators.compose([Validators.minLength(3),Validators.maxLength(5)])], + landline: [landline, Validators.compose([Validators.minLength(6),Validators.maxLength(8)])], + company_name: [this.mainApplicantData[0].company_name], + applicant_type: [this.mainApplicantData[0].applicant_type, Validators.compose([Validators.required])], + applicant_title_name: [this.mainApplicantData[0].applicant_title_name, Validators.compose([Validators.required])], + + coApplicantItems: this._fb.array([]), +}); + // bind dynamic co applicant data + if(this.coApplicantData.length > 0){ + for(let value of this.coApplicantData){ + this.addCoApplicant(value); + } + } + + } + createItem(listData): FormGroup { + if(listData){ + let stdcode; + let landline; + if(listData.landline != null){ + let stdcodesearch = listData.landline.search("-"); + stdcode = listData.landline.substr(0,stdcodesearch); + landline = listData.landline.substr(+stdcodesearch + 1,8);} + else{ + stdcode = ''; + landline = ''; + } + return this._fb.group({ + label: ['Co Applicant'], + fk_applicant_primary_id: [listData.pd_co_applicant_id], + applicant_title_name: [listData.applicant_title_name, Validators.compose([Validators.required])], + coapplicantName: [this.titleCase.transform(listData.applicant_name), Validators.compose([Validators.required])], + coapplicant_mobile_no: [listData.mobile_no,Validators.compose([Validators.minLength(10),Validators.maxLength(12),Validators.pattern('^[0-9]*$')])], + coapplicant_stdcode: [stdcode, Validators.compose([Validators.minLength(3),Validators.maxLength(5)])], + // landline: [landline, Validators.compose([Validators.minLength(6),Validators.maxLength(8)])], + coapplicant_landline: [landline,Validators.compose([Validators.minLength(6),Validators.maxLength(8)])], + // relationship: [listData.relation], + applicant_type: [listData.applicant_type, Validators.compose([Validators.required])], + company_name: [listData.company_name], + }); + } + else{ + return this._fb.group({ + label: ['Co Applicant'], + fk_applicant_primary_id: [null], + applicant_title_name: [null, Validators.compose([Validators.required])], + coapplicantName: [null, Validators.compose([Validators.required])], + coapplicant_mobile_no: [null, Validators.compose([Validators.minLength(10),Validators.maxLength(12),Validators.pattern('^[0-9]*$')])], + coapplicant_stdcode: [null, Validators.compose([Validators.minLength(3),Validators.maxLength(5)])], + coapplicant_landline: [null,Validators.compose([Validators.minLength(6),Validators.maxLength(8)])], + //coapplicant_landline: [null, Validators.compose([Validators.minLength(8),Validators.maxLength(12)])], + // relationship: [null], + applicant_type: [0], + company_name: [null], + }); + } + + }; + addCoApplicant(listData) { + if(this._EditApplicantForm.valid){ + this.coApplicantItems = this._EditApplicantForm.get('coApplicantItems') as FormArray; + this.coApplicantItems.push(this.createItem(listData)); + } + + } + + get pdMainApplicant() { return this._EditApplicantForm.controls; } + get pdCoApplicant() { return this._EditApplicantForm.get('coApplicantItems') as FormArray; } + updatePdApplicant(formValue: any) { + if(this._EditApplicantForm.invalid) { + this.validateAllFormFields(this._EditApplicantForm); + this.notifier.notify('warning', 'Please Fill All Mandatory Fields.!'); + return; + } + else { + if((formValue.mobile_no == '') && (formValue.stdcode == '' || formValue.landline == '')){ + this.notifier.notify('warning', 'Either Mobile or Landline Need.!'); + return; + } + else if(formValue.mobile_no.length != 10){ + this.notifier.notify('warning', 'Please Check Applicant Mobile Number.!'); + return; + } + else{ + let concat_landline1 + // if(formValue.stdcode != null && formValue.landline != null){ + // if(formValue.stdcode == '' && formValue.landline == ''){ + // concat_landline1 = null; + // }else { + // let std = formValue.stdcode == '' ? '' : formValue.stdcode; + // let landline = formValue.landline == '' ? '' : formValue.landline; + // concat_landline1 = std+'-'+landline; + // } + // } + // else if(formValue.stdcode == '' && formValue.landline == ''){ + // concat_landline1 = null; + // }else{ + // concat_landline1 = null; + // } + + if(!formValue.stdcode || !formValue.landline){ + concat_landline1 = null; + } + else if(!formValue.stdcode && !formValue.landline){ + concat_landline1 = null; + } + else if(formValue.stdcode && formValue.landline){ + let std = formValue.stdcode == '' ? '' : formValue.stdcode; + let landline = formValue.landline == '' ? '' : formValue.landline; + concat_landline1 = std+'-'+landline; + } + else{ + concat_landline1 = null; + } + + let pd_applicant_details : any=[{ + "fk_pd_id": this.data.pdID, + "pd_co_applicant_id": formValue.fk_applicant_primary_id, + "applicant_name":this.titleCase.transform(formValue.applicant_name), + "company_name":formValue.company_name, + "mobile_no":formValue.mobile_no, + "landline":concat_landline1, + "applicant_type":formValue.applicant_type, + // "relation":formValue.relationship, + "applicant_title_name": formValue.applicant_title_name, + "isactive":1 + }]; + formValue.coApplicantItems.forEach((itemElement, itemIndex) => { + + let concat_landline + // if(itemElement.coapplicant_stdcode != null && itemElement.coapplicant_landline != null){ + // if(itemElement.coapplicant_stdcode == '' && itemElement.coapplicant_landline == ''){ + // concat_landline = null; + // }else{ + // let std = itemElement.coapplicant_stdcode == '' ? '' : itemElement.coapplicant_stdcode; + // let landline = itemElement.coapplicant_landline == '' ? '' : itemElement.coapplicant_landline; + // concat_landline = std+'-'+landline; + // } + // }else if(itemElement.coapplicant_stdcode == '' && itemElement.coapplicant_landline == ''){ + // concat_landline = null; + // }else{ + // concat_landline = null; + // } + if(!itemElement.coapplicant_stdcode || !itemElement.coapplicant_landline){ + concat_landline = null; + } + else if(!itemElement.coapplicant_stdcode && !itemElement.coapplicant_landline){ + concat_landline = null; + } + else if(itemElement.coapplicant_stdcode && itemElement.coapplicant_landline){ + let std = itemElement.coapplicant_stdcode == '' ? '' : itemElement.coapplicant_stdcode; + let landline = itemElement.coapplicant_landline == '' ? '' : itemElement.coapplicant_landline; + concat_landline = std+'-'+landline; + } + else{ + concat_landline = null; + } + + let obj1 = { + "fk_pd_id": this.data.pdID, + "pd_co_applicant_id": itemElement.fk_applicant_primary_id, + "applicant_title_name":itemElement.applicant_title_name, + "applicant_name":this.titleCase.transform(itemElement.coapplicantName), + // "relation":itemElement.relationship, + "mobile_no":itemElement.coapplicant_mobile_no, + "landline":concat_landline, + "applicant_type":itemElement.applicant_type, + "company_name":itemElement.company_name, + "isactive":1 + } + pd_applicant_details.push(obj1) + }); + this.disableAfterSubmit = true; + this._pd.updatePdApplicant(pd_applicant_details).subscribe(result => { + if (result.status == 200) { + this.disableAfterSubmit = false; + this.notifier.notify('success', 'PD Details Updated.'); + this.dialogRef.close(); + } + else { + this.disableAfterSubmit = false; + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + } + }, error => { + this.disableAfterSubmit = false; + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!' + '-' + error.error_text + ' occur'); + }); + } + } + } + + // get relation master details + getRelationMaster(){ + let relation ="RELATIONSHIPS"; + this._pd.getAllMasterDatas(relation).subscribe( + data => { + if (data.status == 200) { + this.relationShipList=data.records; + + } + }, error => this.errorMessage = error); + } + // get title master + getTitleMaster() { + let relation ="TITLES"; + this._pd.getAllMasterDatas(relation).subscribe( + data => { + if (data.status == 200) { + this.titleList=data.records.filter(val=>val.isactive==1); + + } + }, error => this.errorMessage = error); + + } + /** To Reset Popup Data */ + onReset() { + this.disableAfterSubmit = false; + if(this.data.records.length>0){ + this.loadApplicantFormData(); + } + else{ + this.loadEmptyFormData(); + } + } + /** For Popup Close Button */ + closeEditComponent(): void { + this.dialogRef.close(); + } + + // validate all form group and form array fields +validateAllFormFields(formGroup: any) { + Object.keys(formGroup.controls).forEach(field => { + const control = formGroup.get(field); + + if (control instanceof FormControl) { + control.markAsTouched({ onlySelf: true }); + } else if (control instanceof FormGroup) { + this.validateAllFormFields(control); + } else if (control instanceof FormArray) { + this.validateAllFormFields(control); + } + }); +} +} diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-master/edit-pd-master.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-master/edit-pd-master.component.html new file mode 100755 index 0000000..01a01b3 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-master/edit-pd-master.component.html @@ -0,0 +1,233 @@ +
+ +

+
+ {{pageTitle}} +
+
+ + +
+

+ + + + + + + + + + Select + + + + {{LL.full_name}} + + + + + + + + + + + + + + + Enter + Valid Mobile Number. + + + + + Enter + Valid STD Code. +  -  + + + Enter + Valid Landline Number. + + + + + + Select + + + {{LB.branch_name}} + + + + + + + Select + + + {{PL.product_name}} + + + + + + + + + + Select + + + {{SPL.subproduct_name}} + + + + + + + + + Select + + {{CSL.abbr}} + + + + + + + Select + + {{PDL.type_name}} + + + + + + + + + + {{"₹"}} {{pdMain.loan_amount.value | numberToWords}} Only + + Enter valid amount. + + + + + + + +
+ + + Address Details #{{i+1}} Deactivited + + + + + + + + + + Select + + {{SL.name}} + + + + + + + + Select + + {{CL.city_name}} + + + + + + + + Select + {{PL.pincode}} + + + + + + + + + + + + + + +    + + + + + +
+ + + + + +
+ +
+ + Remarks + + +
+
+ + + +
+
+ +
+ \ No newline at end of file diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-master/edit-pd-master.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-master/edit-pd-master.component.scss new file mode 100755 index 0000000..e592fb8 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-master/edit-pd-master.component.scss @@ -0,0 +1,18 @@ +mat-form-field { + margin: 0 2%; + } +.paragraph_change { + color: #fff !important; + background-color: #e00201 !important; + // padding: 10px !important; +} + .cdk-global-overlay-wrapper{ + justify-content: center !important; +} + mat-dialog-actions{ + border-top: 2px solid #e00201; + } + +.mat-form-field-appearance-legacy .mat-hint{ + color:rgba(0, 0, 0, 0.8) !important; +} diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-type-dialog/pd-type-dialog.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-master/edit-pd-master.component.spec.ts old mode 100644 new mode 100755 similarity index 53% rename from ng6-seed/src/app/settings/masters/component/pd/pd-type-dialog/pd-type-dialog.component.spec.ts rename to ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-master/edit-pd-master.component.spec.ts index ec0f1b7..c2b08e2 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-type-dialog/pd-type-dialog.component.spec.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-master/edit-pd-master.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { PdTypeDialogComponent } from './pd-type-dialog.component'; +import { EditPdMasterComponent } from './edit-pd-master.component'; -describe('PdTypeDialogComponent', () => { - let component: PdTypeDialogComponent; - let fixture: ComponentFixture; +describe('EditPdMasterComponent', () => { + let component: EditPdMasterComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ PdTypeDialogComponent ] + declarations: [ EditPdMasterComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(PdTypeDialogComponent); + fixture = TestBed.createComponent(EditPdMasterComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-master/edit-pd-master.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-master/edit-pd-master.component.ts new file mode 100755 index 0000000..6012ea1 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/edit-pd-master/edit-pd-master.component.ts @@ -0,0 +1,628 @@ +import { Component, OnInit,ViewEncapsulation, Inject } from '@angular/core'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { FormBuilder, FormGroup, Validators, FormControl, FormArray } from '@angular/forms'; +import { CustomValidators } from 'ng2-validation'; +import { NotifierService } from 'angular-notifier'; +import { PdTrigerService } from '../../../pd-service/pd-triger.service'; +import { TitleCasePipe } from '@angular/common'; + +@Component({ + selector: 'app-edit-pd-master', + templateUrl: './edit-pd-master.component.html', + styleUrls: ['./edit-pd-master.component.scss'], + providers:[TitleCasePipe], + encapsulation: ViewEncapsulation.None +}) +export class EditPdMasterComponent implements OnInit { + public pageTitle: string = "PD Details"; + pdid: any; + errorMessage: any; + productList:any; + productAllList:any; + subProductList:any; + lenderList:any; + customerSegmentAllList:any; + customerSegmentList:any; + stateList:any; + cityList:any = []; + pdTypeList:any; + billingList:any; + lenderBranchList: any; + pincodeList: any = []; + addressesList : any = []; + addressesDeactivited : any = []; + applicantLength:number; + // draftStatus: string; + // PDTriggerStatus: string; + enablePDButton: boolean; + currentPDStatus: string; + disableAfterSubmit: boolean; + + pincodeflag : any = []; + public _EditPDtriggerForm:FormGroup; + public notifier: NotifierService; + addresses: FormArray; + + // create values for status check + pdStatusCheck :any={ + "DRAFT" :'DRAFT', + "TRIGGERED" :'TRIGGERED', + "ALLOCATED" :'ALLOCATED', + "SCHEDULED" :'SCHEDULED', + "INPROGRESS" :'INPROGRESS', + "COMPLETED" :'COMPLETED', + "QC_COMPLETED" :'QC_COMPLETED', + }; + lenderShortName: any; + isSubproductShown: boolean = true; + productShortName : any; + constructor(private _fb: FormBuilder, + private _pd: PdTrigerService, notifier: NotifierService,private dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any,private titleCase : TitleCasePipe) { + this.notifier=notifier + this.currentPDStatus = data.records.pd_status; + this.pdid = data.records.pd_id; + this.disableAfterSubmit = false; + } + + ngOnInit() { + // this.draftStatus="DRAFT"; + // this.PDTriggerStatus="TRIGGERED"; + this.getCustomerSegmentList(); + this.getLenderList(); + this.getProductsList(); + this.getStateCityList(); + this.getPDTypeList(); + // this.getAddresses(); + this.loadFormData(); + this.applicantLength=this.data.applicantLength; + } + + + + getLenderList(){ + this._pd.getLenderDetails().subscribe( + data => { + if (data.status == 200) { + this.lenderList=data.records; + if(this.data.records.fk_lender_id != null){ + let x = this.lenderList.filter(item => item.entity_id == this.data.records.fk_lender_id) + this.lenderBranchList = x[0]['branches']; + this.lenderShortName = x[0]['short_name'] ; + this.filterProductAbbr(x[0]['short_name'],1); + } + } + } + //, error => this.errorMessage = error); + , error => { + // this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!' + '-' + error.error_text + ' occur'); + }); + } + selectedLender(lender){ + // alert(JSON.stringify(lender['branches '])); + this.lenderBranchList = lender['branches']; + this.lenderShortName = lender['short_name']; + this.filterProductAbbr(lender['short_name'],2); + this._EditPDtriggerForm.controls.pd_branch_id.setValue(null); + + } + filterProductAbbr(param,flag){ + if(param == 'CLIX'){ + // console.log(this.productAllList); + let getProductAbbr = this.productAllList.map(dval => dval.product_abbr); + // console.log('getProductAbbr',getProductAbbr); + let ClixProductAbbr = ['BL','LAEP']; + // console.log(ClixProductAbbr); + let FilteredAbbr: any = []; + FilteredAbbr = ClixProductAbbr.map(x => { + let findIndex = getProductAbbr.indexOf(x); + return this.productAllList[findIndex]; + }); + // console.log('FilteredAbbr',FilteredAbbr); + this.productList = FilteredAbbr.length > 0 ? FilteredAbbr : this.productAllList; + + // this.productList = this.productAllList; + } + else{ + this.productList = this.productAllList; + } + if(flag != 1){ + this._EditPDtriggerForm.controls['fk_product_id'].setValue(''); + this._EditPDtriggerForm.controls['fk_subproduct_id'].setValue(''); + this._EditPDtriggerForm.controls['fk_pd_type'].setValue(''); + this._EditPDtriggerForm.controls['fk_customer_segment'].setValue(''); + this._EditPDtriggerForm.controls['loan_amount'].setValue(''); + } + } + getCustomerSegmentList(){ + this._pd.getCustomersDetails().subscribe( + data => { + if (data.status == 200) { + this.customerSegmentAllList=data.records + } + }, error => this.errorMessage = error); + } + + getProductsList(){ + this._pd.getProductsDetails().subscribe( + data => { + if (data.status == 200) { + // this.productList=data.records + this.productAllList = data.records + if(this.data.records.fk_product_id){ + this.getSubproductList(this.data.records.fk_product_id,1); + } + } + }, error => this.errorMessage = error); + } + + // getStateCityList(){ + // this._pd.getStateCityDetails().subscribe( + // data => { + // if (data.status == 200) { + // this.stateList=data.records + // if(this.data.records.fk_state){ + // this.getCityList(this.data.records.fk_state); + // } + + // } + // }, error => this.errorMessage = error); + // } + getStateCityList(){ + this._pd.getAllMasterDatas('STATE').subscribe( + data => { + if (data.status == 200) { + this.stateList = data.records.filter(item => item.isactive == 1); + } + }); + } + + getPDTypeList(){ + this._pd.getPDTypeDetails().subscribe( + data => { + if (data.status == 200) { + this.pdTypeList=data.records.pd_type; + + } + }, error => this.errorMessage = error); + } + + loadFormData() { + let stdcode; + let landline; + if(this.data.records.pd_contact_landline){ + if(this.data.records.pd_contact_landline != null){ + let stdcodesearch = this.data.records.pd_contact_landline.search("-"); + stdcode = this.data.records.pd_contact_landline.substr(0,stdcodesearch); + landline = this.data.records.pd_contact_landline.substr(+stdcodesearch + 1,8); + } + else{ + stdcode = ''; + landline = ''; + } + } + + // let getpincodeid = this.data.records.pincode != '' ? this.data.records.pincode != null ? (this.pincodeList.filter(data => data.pincode == this.data.records.pincode).pincode_id) + // : this.data.records.pincode + // : this.data.records.pincode; + + this._EditPDtriggerForm = this._fb.group({ + pd_id: [this.data.records.pd_id], + fk_lender_id: [this.data.records.fk_lender_id, Validators.compose([Validators.required])], + lender_applicant_id: [this.data.records.lender_applicant_id, Validators.compose([Validators.required])], + pd_branch_id:[this.data.records.pd_branch_id, Validators.compose([Validators.required])], + pd_contact_person: [this.data.records.pd_contact_person, Validators.compose([Validators.required])], + pd_contact_mobileno: [this.data.records.pd_contact_mobileno, Validators.compose([Validators.minLength(10),Validators.maxLength(12),Validators.pattern('^[0-9]*$')])], + lender_stdcode: [stdcode, Validators.compose([Validators.minLength(3),Validators.maxLength(5)])], + lender_landline: [landline,Validators.compose([Validators.minLength(6),Validators.maxLength(8)])], + fk_product_id: [this.data.records.fk_product_id], + fk_subproduct_id: [this.data.records.fk_subproduct_id], + fk_pd_type: [this.data.records.fk_pd_type], + fk_customer_segment: [this.data.records.fk_customer_segment], + loan_amount: [this.data.records.loan_amount,Validators.compose([Validators.pattern('^[0-9]*$')])], + addresses: this._fb.array([]), + //   addressline1: [this.data.records.addressline1.toUpperCase()], + // fk_city: [this.data.records.fk_city], + // fk_state: [this.data.records.fk_state], + //   pincode : [this.data.records.pincode_id], + // other_pincode:[this.data.records.other_pincode,Validators.compose([Validators.minLength(6),Validators.maxLength(6),Validators.pattern('^[0-9]*$')])], + remarks: [this.data.records.remarks], + }); + const addressesArray = this._EditPDtriggerForm.get('addresses') as FormArray; + this._pd.getAddressesDetails(this.pdid).subscribe( + data => { + if (data.status == 200) { + this.addressesList = data.records.filter(item => item.isactive == 1); + + if (this.addressesList.length > 0) { + + this.addressesList.forEach((val,index)=>{ + this.addressesDeactivited[index] = true; + let obj = { + pd_address_id:val.pd_address_id, + addressline1: !val.addressline1 ? null : this.titleCase.transform(val.addressline1), + fk_city: val.fk_city, + fk_state: val.fk_state, +   pincode: val.pincode_id, + other_pincode:val.other_pincode, + isactive:1, + } + this.getCityList(val.fk_state,index); + this.getPincode(val.pincode_id,index); + this.addressesDeactivited[this.addressesList.length] = true; + addressesArray.push(this.createAddresses(obj)); + }); + } + else{ + this.addressesDeactivited[0] = true; + addressesArray.push(this.createAddresses(null)); + } + } + else{ + this.addressesDeactivited[0] = true; + addressesArray.push(this.createAddresses(null)); + } + }); + } + + get pdMain() { return this._EditPDtriggerForm.controls; } + + //get sub product list based on prokduct id + getSubproductList(productID:string,flag:number){ + // console.log('productID',productID); + this.customerSegmentList=this.customerSegmentAllList; + + + if (productID !== undefined && productID !== null && productID !== '') { + this.productShortName = this.productAllList.filter(item => item.product_id == productID)[0].product_abbr; + this.subProductList=this.productAllList.filter(item => item.product_id == productID); + this.subProductList=this.subProductList[0].subproducts; + } + else { + this.productShortName = ''; + this.subProductList=[]; + } + // console.log('this.productAbbr',this.productShortName); + switch (this.productShortName) { + case 'BL': + // console.log(1); + this.customerSegmentList = this.customerSegmentAllList.filter(s => (s.customer_segment).includes('Self')); + if(this.lenderShortName == 'CLIX' && flag==2 ){ this._EditPDtriggerForm.controls['fk_customer_segment'].setValue('5'); } + this._EditPDtriggerForm.controls['fk_subproduct_id'].setValue(null); + this.subProductList=[]; + this.isSubproductShown = false; + break; + case 'LAEP': + // console.log(2); + this.customerSegmentList = this.customerSegmentAllList.filter(s => (s.customer_segment).includes('Self')); + this._EditPDtriggerForm.controls['fk_subproduct_id'].setValue(null); + if(this.lenderShortName == 'CLIX' && flag==2 ){ this._EditPDtriggerForm.controls['fk_customer_segment'].setValue('5'); } + this.subProductList=[]; + this.isSubproductShown = false; + break; + default: + // console.log(3); + this.customerSegmentList = this.customerSegmentAllList; + // console.log('productID', productID); + this.isSubproductShown = true; + break; + } + } + // //get city list details based on state id + // getCityList(stateID:string){ + // this.cityList= this.stateList.filter(item => item.state_id == stateID); + // this.cityList=this.cityList[0].cities; + // } + //get city list details based on state id + getCityList(stateID:string,i){ + + this._pd.getStateWiseCities(stateID).subscribe(data=>{ + if (data.status == 200) { + + this.cityList[i] = data.records.cities; + this.pincodeList[i] = data.records.pincode; + } + }); + } + + get pdAddresses() { return this._EditPDtriggerForm.get('addresses') as FormArray; } + createAddresses(data): FormGroup { + if(data == null){ + return this._fb.group({ + fk_pd_id:[this.pdid], + pd_address_id:[null], + addressline1: [null], + fk_city: [null], + fk_state: [null], + pincode: [null],/** ,Validators.compose([Validators.minLength(6),Validators.maxLength(6)]) */ + other_pincode: [null, Validators.compose([Validators.minLength(6), Validators.maxLength(6)])], + isactive:[1], + }); + } + else{ + return this._fb.group({ + fk_pd_id:[this.pdid], + pd_address_id:[data.pd_address_id], +   addressline1: [data.addressline1 != null ? this.titleCase.transform(data.addressline1) : null], + fk_city: [data.fk_city], + fk_state: [data.fk_state], +   pincode : [data.pincode], + other_pincode:[data.other_pincode,Validators.compose([Validators.minLength(6),Validators.maxLength(6),Validators.pattern('^[0-9]*$')])], + isactive:[data.isactive], + }); + } + }; + addAddresses(index) { + this.addresses = this._EditPDtriggerForm.get('addresses') as FormArray; + this.addresses.push(this.createAddresses(null)); + } + + removeAddresses(index: number,strflag : any) { + const address_control = this._EditPDtriggerForm.controls['addresses']; + if(strflag == 'Deactivited'){ + address_control.controls[index]['controls'].isactive.setValue(0); + this.addressesDeactivited[index] = false; + } + else if(strflag == 'Activited'){ + address_control.controls[index]['controls'].isactive.setValue(1); + this.addressesDeactivited[index] = true; + } + + + + // address_control.controls[index]['controls'].showHide(); + // isactive.setValue(0); + // this.showHide = true; + // var div = document.getElementById('newpost'); + // if (div.style.display !== 'none') { + // div.style.display = 'none'; + // } + // else { + // div.style.display = 'block'; + // } + + // address_control.controls[index].disable(); + + // address_control.removeAt(index); + } + + getPincode(e,i){ this.pincodeflag[i] = e == 1 ? true : false;} + + // save pd in draft + saveDraftPD(formValue: any, status:string){ + this.clearCustomValidatorFields(); + this.submitPdDetails(formValue, status); + } + + triggerPD(formValue: any, status:any){ + // console.log('functionclicked',formValue, status); + // this._EditPDtriggerForm.controls['fk_lender_id'].setValidators([Validators.required]); + // this._EditPDtriggerForm.controls['fk_lender_id'].updateValueAndValidity(); + + // this._EditPDtriggerForm.controls['fk_product_id'].setValidators([Validators.required]); + // this._EditPDtriggerForm.controls['fk_product_id'].updateValueAndValidity(); + + // this._EditPDtriggerForm.controls['fk_subproduct_id'].setValidators([Validators.required]); + // this._EditPDtriggerForm.controls['fk_subproduct_id'].updateValueAndValidity(); + + // this._EditPDtriggerForm.controls['fk_pd_type'].setValidators([Validators.required]); + // this._EditPDtriggerForm.controls['fk_pd_type'].updateValueAndValidity(); + + // this._EditPDtriggerForm.controls['fk_customer_segment'].setValidators([Validators.required]); + // this._EditPDtriggerForm.controls['fk_customer_segment'].updateValueAndValidity(); + + // this._EditPDtriggerForm.controls['loan_amount'].setValidators([Validators.required]); + // this._EditPDtriggerForm.controls['loan_amount'].updateValueAndValidity(); + + // this._EditPDtriggerForm.controls['addressline1'].setValidators([Validators.required]); + // this._EditPDtriggerForm.controls['addressline1'].updateValueAndValidity(); + + // this._EditPDtriggerForm.controls['fk_city'].setValidators([Validators.required]); + // this._EditPDtriggerForm.controls['fk_city'].updateValueAndValidity(); + + // this._EditPDtriggerForm.controls['fk_state'].setValidators([Validators.required]); + // this._EditPDtriggerForm.controls['fk_state'].updateValueAndValidity(); + + // this._EditPDtriggerForm.controls['pincode'].setValidators([Validators.required]); + // this._EditPDtriggerForm.controls['pincode'].updateValueAndValidity(); + + // if(this.applicantLength==0){ + // this.notifier.notify('error', 'Please add applicants.!'); + + // } + setTimeout(() => { + this.clearCustomValidatorFields(); + }, 10000); + this.submitPdDetails(formValue, status); + } + + // this is for clear custom validator required fields + clearCustomValidatorFields(){ + + this._EditPDtriggerForm.controls['fk_lender_id'].clearValidators(); + this._EditPDtriggerForm.controls['fk_lender_id'].updateValueAndValidity(); + + this._EditPDtriggerForm.controls['fk_product_id'].clearValidators(); + this._EditPDtriggerForm.controls['fk_product_id'].updateValueAndValidity(); + + this._EditPDtriggerForm.controls['fk_subproduct_id'].clearValidators(); + this._EditPDtriggerForm.controls['fk_subproduct_id'].updateValueAndValidity(); + + this._EditPDtriggerForm.controls['fk_pd_type'].clearValidators(); + this._EditPDtriggerForm.controls['fk_pd_type'].updateValueAndValidity(); + + this._EditPDtriggerForm.controls['fk_customer_segment'].clearValidators(); + this._EditPDtriggerForm.controls['fk_customer_segment'].updateValueAndValidity(); + + this._EditPDtriggerForm.controls['loan_amount'].clearValidators(); + this._EditPDtriggerForm.controls['loan_amount'].updateValueAndValidity(); + + // this._EditPDtriggerForm.controls['addressline1'].clearValidators(); + // this._EditPDtriggerForm.controls['addressline1'].updateValueAndValidity(); + + // this._EditPDtriggerForm.controls['fk_city'].clearValidators(); + // this._EditPDtriggerForm.controls['fk_city'].updateValueAndValidity(); + + // this._EditPDtriggerForm.controls['fk_state'].clearValidators(); + // this._EditPDtriggerForm.controls['fk_state'].updateValueAndValidity(); + + // this._EditPDtriggerForm.controls['pincode'].clearValidators(); + // this._EditPDtriggerForm.controls['pincode'].updateValueAndValidity(); + + this.validateAllFormFields(this._EditPDtriggerForm); + } + + submitPdDetails(formValue: any, status:any) { + // let updateStatus = this.currentPDStatus == this.pdStatusCheck.DRAFT ? status : this.currentPDStatus == this.pdStatusCheck.TRIGGERED ? status : this.currentPDStatus; + let updateStatus = this.currentPDStatus; + + if(status != 1){ + if(this._EditPDtriggerForm.invalid) { + this.validateAllFormFields(this._EditPDtriggerForm); + this.notifier.notify('warning', 'Please Fill All Mandatory Fields.!'); + return; + } + } + + + if(this.lenderShortName == 'CLIX'){ + const control = this._EditPDtriggerForm.controls['addresses']; + let CtrlLength = control.controls.length; + if (CtrlLength > 0) { + let cnt = 0; + while (cnt < CtrlLength) { + + let ChildCtrl: any = control.controls[cnt] + ChildCtrl.controls['addressline1'].setValidators([Validators.required]); + ChildCtrl.controls['addressline1'].updateValueAndValidity(); + cnt++; + } + + this._EditPDtriggerForm.controls['fk_product_id'].setValidators([Validators.required]); + this._EditPDtriggerForm.controls['fk_product_id'].updateValueAndValidity(); + + + this._EditPDtriggerForm.controls['pd_branch_id'].setValidators([Validators.required]); + this._EditPDtriggerForm.controls['pd_branch_id'].updateValueAndValidity(); + + this._EditPDtriggerForm.controls['pd_contact_person'].setValidators([Validators.required]); + this._EditPDtriggerForm.controls['pd_contact_person'].updateValueAndValidity(); + + this._EditPDtriggerForm.controls['pd_contact_mobileno'].setValidators([Validators.required]); + this._EditPDtriggerForm.controls['pd_contact_mobileno'].updateValueAndValidity(); + + this._EditPDtriggerForm.controls['fk_pd_type'].clearValidators(); + this._EditPDtriggerForm.controls['fk_pd_type'].updateValueAndValidity(); + + this._EditPDtriggerForm.controls['fk_customer_segment'].clearValidators(); + this._EditPDtriggerForm.controls['fk_customer_segment'].updateValueAndValidity(); + + this._EditPDtriggerForm.controls['loan_amount'].clearValidators(); + this._EditPDtriggerForm.controls['loan_amount'].updateValueAndValidity(); + + if(this._EditPDtriggerForm.invalid) { + this.validateAllFormFields(this._EditPDtriggerForm); + this.notifier.notify('warning', 'Please Fill All Mandatory Fields.!'); + return; + } + } + } + + let my_array = this._EditPDtriggerForm.value; + let concat_landline + if(my_array.lender_stdcode != null && my_array.lender_landline != null){ + if(my_array.lender_stdcode == '' && my_array.lender_landline == ''){ + concat_landline = null; + }else{ + let std = my_array.lender_stdcode == '' ? '' : my_array.lender_stdcode; + let landline = my_array.lender_landline == '' ? '' : my_array.lender_landline; + concat_landline = std+'-'+landline; + } + }else if(my_array.lender_stdcode == '' && my_array.lender_landerline == ''){ + concat_landline = null; + }else{ + concat_landline = null; + } + + if((my_array.pd_contact_mobileno == '' || my_array.pd_contact_mobileno == null) && (concat_landline == '' || concat_landline == null )){ + this.notifier.notify('warning', 'Either Mobile or Landline Need.!'); + return; + } + else{ + let filteredAddressesdata = my_array.addresses.filter(item => item.isactive == 1); + let lenderMasterArray = { + "pd_id": my_array.pd_id, + "fk_lender_id": my_array.fk_lender_id, + "lender_applicant_id": my_array.lender_applicant_id, + "pd_branch_id":my_array.pd_branch_id, + "pd_contact_person": my_array.pd_contact_person, + "pd_contact_mobileno": my_array.pd_contact_mobileno, + "pd_contact_landline": concat_landline, + "fk_product_id": my_array.fk_product_id, + "fk_subproduct_id": my_array.fk_product_id != '4' ? my_array.fk_subproduct_id : null, + "fk_pd_type": my_array.fk_pd_type, + "fk_customer_segment": my_array.fk_customer_segment, + "loan_amount": my_array.loan_amount, +   "addressline1": filteredAddressesdata[0].addressline1 != null ? this.titleCase.transform(filteredAddressesdata[0].addressline1) : null, + "fk_city": filteredAddressesdata[0].fk_city, + "fk_state": filteredAddressesdata[0].fk_state, +   "pincode": filteredAddressesdata[0].pincode, + "other_pincode":filteredAddressesdata[0].other_pincode, + "remarks": my_array.remarks, + } + + this.disableAfterSubmit = true; + this._pd.editPdMasterDetails(lenderMasterArray, updateStatus).subscribe(result => { + if (result.status == 200) { + this.disableAfterSubmit = false; + this._pd.updatePDAddress(my_array.addresses).subscribe(result => { + if (result.status == 200) { + this.notifier.notify('success', 'PD Details Updated.'); + this.dialogRef.close(); + } + else { + this.notifier.notify('success', 'PD Details Updated.'); + this.notifier.notify('warning', 'Something Wents Wrong in Address Try Again.!'); + }//else + }, error => { + // this.notifier.notify('warning', 'Something Wents Wrong in Address Try Again.!'); + this.notifier.notify('warning', 'Something Wents Wrong in Address Section Try Again.!' + '-' + error.error_text + ' occur'); + }); + } + else { + this.disableAfterSubmit = false; + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + }//else + }, error => { + // this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + this.disableAfterSubmit = false; + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!' + '-' + error.error_text + ' occur'); + });//error closed + }//else closed + + } + /** To Reset Popup Data */ + onReset() { + this.disableAfterSubmit = false; + this.loadFormData(); + } + /** For Popup Close Button */ + closeEditMasterComponent(): void { + this.dialogRef.close(); + } + // validate all form group and form array fields +validateAllFormFields(formGroup: any) { + Object.keys(formGroup.controls).forEach(field => { + const control = formGroup.get(field); + + if (control instanceof FormControl) { + control.markAsTouched({ onlySelf: true }); + } else if (control instanceof FormGroup) { + this.validateAllFormFields(control); + } else if (control instanceof FormArray) { + this.validateAllFormFields(control); + } + }); +} +} diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/initiate-additional-pd/initiate-additional-pd.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/initiate-additional-pd/initiate-additional-pd.component.html new file mode 100644 index 0000000..7053097 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/initiate-additional-pd/initiate-additional-pd.component.html @@ -0,0 +1,41 @@ +
+ +

+
+ {{pageTitle}} +
+
+ +
+

+ + + Customer Segment + + + {{segment.abbr}} + + + + + Applicant + + + {{appt.applicant_name | titlecase}} + + + + + Applicant Mobile Number + + + + +
+

Note : Changes once made can't be revoked. Are you sure of the Customer Segment?

+
+
+ +
+
+ diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/initiate-additional-pd/initiate-additional-pd.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/initiate-additional-pd/initiate-additional-pd.component.scss new file mode 100644 index 0000000..518a880 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/initiate-additional-pd/initiate-additional-pd.component.scss @@ -0,0 +1,7 @@ +.paragraph_change { + color: #fff !important; + background-color: #e00201 !important; + } + mat-form-field { + margin: 0 2%; + } \ No newline at end of file diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/initiate-additional-pd/initiate-additional-pd.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/initiate-additional-pd/initiate-additional-pd.component.spec.ts new file mode 100644 index 0000000..40c5164 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/initiate-additional-pd/initiate-additional-pd.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { InitiateAdditionalPdComponent } from './initiate-additional-pd.component'; + +describe('InitiateAdditionalPdComponent', () => { + let component: InitiateAdditionalPdComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ InitiateAdditionalPdComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(InitiateAdditionalPdComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/initiate-additional-pd/initiate-additional-pd.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/initiate-additional-pd/initiate-additional-pd.component.ts new file mode 100644 index 0000000..ad92ed3 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/initiate-additional-pd/initiate-additional-pd.component.ts @@ -0,0 +1,116 @@ +import { Component, OnInit, Inject } from '@angular/core'; +import { FormBuilder, FormGroup, Validators, FormControl, FormArray } from '@angular/forms'; +import { MatDialog, MatDialogRef, MAT_DIALOG_DATA , DialogPosition} from '@angular/material'; +import { PdTrigerService } from './../../../pd-service/pd-triger.service'; +import { NotifierService } from 'angular-notifier'; + +@Component({ + selector: 'app-initiate-additional-pd', + templateUrl: './initiate-additional-pd.component.html', + styleUrls: ['./initiate-additional-pd.component.scss'] +}) +export class InitiateAdditionalPdComponent implements OnInit { + pageTitle: string; + private notifier: NotifierService; + additionalPDForm:FormGroup; + customerSegmentList: any=[]; + applicantList: any =[]; + constructor(notifier: NotifierService,private _fb: FormBuilder, private _pd: PdTrigerService, @Inject(MAT_DIALOG_DATA) public data: any, private dialogRef: MatDialogRef) { + this.notifier = notifier; + this.pageTitle="Choose customer segment For this PD address" + this.applicantList = this.data.applicants_details; + this.applicantList = this.applicantList.filter(appt => appt.applicant_type != 2 && appt.applicant_type != 3); + } + + ngOnInit() { + this.initForm(); + this._pd.getCustomersDetails().subscribe( + data => { + if (data.status == 200) { + this.customerSegmentList = data.records + } + }); + this.data.type===false ? this.additionalPDForm.controls['fk_customer_segment'].disable():this.additionalPDForm.controls['fk_customer_segment'].enable(); + + if(this.data.applicant_id){ + this.additionalPDForm.controls['pd_co_applicant_id'].setValue(this.data.applicant_id); + this.toGetMobileNo(this.data.applicant_id); + // this.additionalPDForm.controls['pd_co_applicant_id'].disable(); + } + // else { this.additionalPDForm.controls['pd_co_applicant_id'].enable(); } + } + initForm(){ + return this.additionalPDForm = this._fb.group({ + pd_id:[this.data.type===false ? this.data.pd_id : ''], + parent_pd_id: [this.data.type===true ? this.data.pd_id : ''], + fk_customer_segment: [this.data.type===false ? this.data.fk_customer_segment :'',Validators.required], + pd_co_applicant_id:[this.data.type===false ? '' : '',Validators.required], + mobile_no:[this.data.type===false ? '' : '',Validators.required], + fk_address_id:[this.data.pd_address_id,Validators.required], + pd_status:[this.data.pd_status,Validators.required], + }); + } + /** To Get City And Pincode Data For Address Form + * Param 'stateID' -> selected StateId + */ + toGetMobileNo(applicantID) { + let mobile = this.applicantList.filter(val=>val.pd_co_applicant_id == applicantID).map(val=>val.mobile_no)[0] + if(mobile != '' && mobile != null){ + this.additionalPDForm.controls['mobile_no'].setValue(mobile); + } + else{ + this.additionalPDForm.controls['mobile_no'].setValue(''); + } + } + + // save details +submitDetails(values: any) { + if (this.additionalPDForm.invalid) { + this.validateAllFormFields(this.additionalPDForm); + this.notifier.notify('warning',"Please Check All Manatory Fields.."); + return; + } + let update_details: any; + if(this.data.type){ + update_details= {"pd_id":values.pd_id, + "parent_pd_id":values.parent_pd_id, + "fk_customer_segment":values.fk_customer_segment , + "fk_address_id":values.fk_address_id, + "pd_status":"TRIGGERED", + "pd_co_applicant_id":values.pd_co_applicant_id, + "mobile_no":values.mobile_no}; + } + else{ + update_details={"pd_id":values.pd_id, + "pd_status":"TRIGGERED", + "parent_pd_id":values.parent_pd_id, + "fk_customer_segment":values.fk_customer_segment , + "fk_primary_address_id":values.fk_address_id}; + } + + this._pd.initiateAddressPdProcess(update_details).subscribe(data => { + this.notifier.notify('success', 'Saved Successfully.'); + setTimeout(() =>{ + this.dialogRef.close({update_status:true}); + },3000); + }, error => { + // this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!' + '-' + error.error_text + ' occur'); + // alert(error); + }); +} +// validate all form group and form array fields +validateAllFormFields(formGroup: any) { + Object.keys(formGroup.controls).forEach(field => { + const control = formGroup.get(field); + if (control instanceof FormControl) { + control.markAsTouched({ onlySelf: true }); + } else if (control instanceof FormGroup) { + this.validateAllFormFields(control); + } else if (control instanceof FormArray) { + this.validateAllFormFields(control); + } + }); +} + +} diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/inprogress-pd/inprogress-pd.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/inprogress-pd/inprogress-pd.component.html new file mode 100755 index 0000000..a127a43 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/inprogress-pd/inprogress-pd.component.html @@ -0,0 +1,122 @@ + + + + + + + filter_list + + Advance Filter + + + + + +
+ + + {{type.type_name}} + +     + + + + + +     + + + + + + + + {{pro.name}} + +     + + + {{city.name}} + +     + + + {{ent.full_name}} + + + + +     + + + +
+ + + +
+
+
+ +
+
+ + + +
{{details.pd_id}}
+ {{details.pd_type_name}} +
+
+ + + + + {{details.is_child == 0 ? details.applicant_name : 'Add On PD - ' + details.parent_pd_id }} +
+ {{details.lender_applicant_id}} -({{details.customer_segment_abbr}} ) +
+
+ + + {{details.lender_short_name}}
+ {{details.product_abbr}}/{{details.subproduct_abbr}}
+ {{details.loan_amount}} +
+
+ + + {{details.pd_date_of_initiation}}
+ {{details.city_name}}-{{details.pincode_id == 1 ? details.other_pincode : details.pincode }} +
+
+ + + {{details.pd_status}}
+ {{ (details.updatedon)? (details.updatedon | slice:0:10):(details.updatedon) }} + +
+
+ + + + + + + +
+ +
+ + + diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/inprogress-pd/inprogress-pd.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/inprogress-pd/inprogress-pd.component.scss new file mode 100755 index 0000000..b500faa --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/inprogress-pd/inprogress-pd.component.scss @@ -0,0 +1,19 @@ +.ic-change:hover { + transform: scale(1.1); + color: green; +} +.cell{ + display:inline !important; +} +.cellhide{ + display: none !important; +} +.center{ + text-align:center; +} +.fontsize{ + font-size:14px; +} +.toolbar-space { + flex: 0.01 0 auto; +} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/states/states-dialog/states-dialog.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/inprogress-pd/inprogress-pd.component.spec.ts old mode 100644 new mode 100755 similarity index 53% rename from ng6-seed/src/app/settings/masters/component/states/states-dialog/states-dialog.component.spec.ts rename to ng6-seed/src/app/personal-discussion/manage-pd/list-pd/inprogress-pd/inprogress-pd.component.spec.ts index ce8f2a8..e8d3985 --- a/ng6-seed/src/app/settings/masters/component/states/states-dialog/states-dialog.component.spec.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/inprogress-pd/inprogress-pd.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { StatesDialogComponent } from './states-dialog.component'; +import { InprogressPdComponent } from './inprogress-pd.component'; -describe('StatesDialogComponent', () => { - let component: StatesDialogComponent; - let fixture: ComponentFixture; +describe('InprogressPdComponent', () => { + let component: InprogressPdComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ StatesDialogComponent ] + declarations: [ InprogressPdComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(StatesDialogComponent); + fixture = TestBed.createComponent(InprogressPdComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/inprogress-pd/inprogress-pd.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/inprogress-pd/inprogress-pd.component.ts new file mode 100755 index 0000000..dfd27ad --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/inprogress-pd/inprogress-pd.component.ts @@ -0,0 +1,224 @@ +import { Component,ViewChild, OnInit, ViewEncapsulation, Input, Output, EventEmitter, OnDestroy, AfterViewInit, OnChanges, SimpleChanges } from '@angular/core'; +import { PdTrigerService } from './../../../pd-service/pd-triger.service'; +import { MatPaginator, MatSort, MatTableDataSource, PageEvent } from '@angular/material'; +import { FormBuilder, FormGroup } from '@angular/forms'; +import { DatePipe } from '@angular/common'; +import { NotifierService } from 'angular-notifier'; + +@Component({ + selector: 'app-inprogress-pd', + templateUrl: './inprogress-pd.component.html', + styleUrls: ['./inprogress-pd.component.scss'], + encapsulation: ViewEncapsulation.None +}) +export class InprogressPdComponent implements OnInit, OnChanges { + xpandStatus: boolean = false; + PRODUCTS: any[]=[]; + ENTITY: any[]=[]; + CITY: any[]=[]; + PDType: any[]=[]; + pdStatus: any[]=[]; + recordStatus: boolean; + errorMessage:any[]=[]; + tabStatus:string="INPROGRESS"; + pipe = new DatePipe('en-US'); + todaydate:Date = new Date(); + private notifier: NotifierService; + public dataLengthTab2: number; + public dataSourceTab2 = new MatTableDataSource(); + + displayedColumns = ['PDType','Name','Lenderid','Address','Status','Action']; + + @ViewChild(MatPaginator) paginator: MatPaginator; + @ViewChild(MatSort) sort: MatSort; + + @Input() bindFilterValue: string; + @Output() loadPdView = new EventEmitter(); + + // data source variable details + progressPdListData:any[] = []; + + // pagination variable details + length = 5; + pageIndex = 0; + pageSize = 10; + pageEvent: PageEvent; + searchForm:FormGroup; + constructor(private _pd: PdTrigerService,public _fb:FormBuilder,notifier: NotifierService) { + this.notifier = notifier; + + this.searchForm = this._fb.group( + { + pd_type:[null], + pd_status:['INPROGRESS'], + pd_from_date:[null], + pd_to_date:[null], + pd_city:[null], + pd_products:[null], + pd_lender:[null], + pd_name:[null], + pd_applicant_id:[null], + }); + this.getcommonDropDown(); + } + + ngOnInit() { + this.recordStatus=false; + // this.loadPDDetails(); + // this.getcommonDropDown(); + } + + // get changes for filter from parent componnet filter + ngOnChanges(changes: SimpleChanges) { + // let filteredText = changes.bindFilterValue.currentValue; + // filteredText = filteredText ? filteredText.trim() : filteredText; + let filteredText = changes.bindFilterValue.currentValue ? changes.bindFilterValue.currentValue.trim() : changes.bindFilterValue.currentValue; + filteredText = filteredText ? filteredText.toLowerCase() : filteredText; + this.dataSourceTab2.filter = filteredText; +} + +// load inprogress pd list + + loadPDDetails() { + this._pd.getTabStatusPdDetails(this.tabStatus) + .subscribe( + data => { + if (data.status == 200) { + this.progressPdListData = data.records; + this.dataLengthTab2 = data.records.length; + this.dataSourceTab2.data = this.progressPdListData; + }else{ + this.progressPdListData =[]; + this.dataSourceTab2 = null; + this.recordStatus=true; + } + },error => { + this.errorMessage.push(error); + this.notifier.notify('warning', 'Something Went Wrong Try Again.!' + '-' + error.error_text + ' occur'); + alert(error.html_format); + }); + } + pageChange(e) { + console.log(e); + } + viewPD(pdid:string){ + this.loadPdView.next(pdid); + + } + titleCaseWord(word:string) { + if (!word) return word; + return word[0].toUpperCase() + word.substr(1).toLowerCase(); + } + + + /** + * Common Search + * sriram + */ + + getcommonDropDown() : void + { + this._pd.getAllMasterDatas('PDSTATUS').subscribe(res=> + { + if(res.dataStatus==true) + { + this.pdStatus = res.records.filter(status=>status.isactive==1 && status.pd_status_name == this.tabStatus); + } + // this.searchForm.controls['pd_status'].setValue(this.pdStatus[0]); + }); + + this._pd.getAllMasterDatas('PDTYPE').subscribe(res=> + { + if(res.dataStatus==true) + { + this.PDType = res.records.filter(type=>type.isactive==1); + } + }); + + // this._pd.getAllMasterDatas('CITY').subscribe(res=> + // { + // if(res.dataStatus==true) + // { + // this.CITY = res.records.filter(city=>city.isactive==1); + // } + // }); + this._pd.getListOfCities().subscribe(res=> + { + if(res.dataStatus==true) + { + this.CITY = res.records; + } + }); + this._pd.getAllMasterDatas('ENTITY').subscribe(res=> + { + if(res.dataStatus==true) + { + this.ENTITY = res.records.filter(ent=>ent.isactive==1); + } + }); + this._pd.getAllMasterDatas('PRODUCTS').subscribe(res=> + { + if(res.dataStatus==true) + { + this.PRODUCTS = res.records.filter(pro=>pro.isactive==1); + } + }); + } + checkDate(e) + { + console.log(e); + } + searchItem() + { + + if(this.searchForm.value.pd_type !=null) + { + + }else + { + this.searchForm.value.pd_type = []; + } + + if(this.searchForm.value.pd_status !=null) + { + + }else + { + this.searchForm.value.pd_status = []; + } + + this.searchForm.value.pd_from_date = this.pipe.transform(this.searchForm.value.pd_from_date,'yyyy-MM-dd'); + this.searchForm.value.pd_to_date = this.pipe.transform(this.searchForm.value.pd_to_date,'yyyy-MM-dd'); + + this._pd.overAllSearchFormDetails(this.searchForm.value).subscribe(res=> + { + this.xpandStatus = false; + if(res['dataStatus']==true) + { + this.dataSourceTab2 = res['records']; + this.dataSourceTab2.paginator = this.paginator; + }else{ + this.notifier.notify('warning', 'No Records Found !'); + this.dataSourceTab2.paginator['length'] = 0; + this.dataSourceTab2.paginator['pageIndex'] = 0; + this.dataSourceTab2.data = []; + } + },error => { + this.errorMessage.push(error); + this.notifier.notify('warning', 'Something Went Wrong Try Again.!' + '-' + error.error_text + ' occur'); + alert(error.html_format); + }); + } + + onReset(){ + this.searchForm.reset(); + this.loadPDDetails(); + this.xpandStatus = false; + } + + ngAfterViewInit() { + this.dataSourceTab2.paginator = this.paginator; + this.dataSourceTab2.sort = this.sort; + } + +} diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.html new file mode 100755 index 0000000..15217dd --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.html @@ -0,0 +1,50 @@ + + +
+
+ + + +
+
+ + +
+
+ + + + select_all All + + + + schedule Scheduled + + + + + hdr_strong  In Progress + + + + done  Completed + + + + + + done_all QC Completed + + + + + + + +
+
+ + + + + \ No newline at end of file diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.scss new file mode 100755 index 0000000..8a4c290 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.scss @@ -0,0 +1,27 @@ +.ic-change:hover { + transform: scale(1.1); + color: green; +} +.cell{ + display:inline !important; +} +.cellhide{ + display: none !important; +} +.center{ + text-align:center; +} +.fontsize{ + font-size:14px; +} + +.mat-ink-bar{ + background-color:#e00201; +} +.mat-tab-label-active{ + color: #e00201 !important; + } + .mat-fab.mat-accent{ + color:#e00201 !important; + background-color: #fff !important; + } diff --git a/ng6-seed/src/app/settings/register/register.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.spec.ts old mode 100644 new mode 100755 similarity index 55% rename from ng6-seed/src/app/settings/register/register.component.spec.ts rename to ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.spec.ts index 6c19551..e915993 --- a/ng6-seed/src/app/settings/register/register.component.spec.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { RegisterComponent } from './register.component'; +import { ListPdComponent } from './list-pd.component'; -describe('RegisterComponent', () => { - let component: RegisterComponent; - let fixture: ComponentFixture; +describe('ListPdComponent', () => { + let component: ListPdComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ RegisterComponent ] + declarations: [ ListPdComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(RegisterComponent); + fixture = TestBed.createComponent(ListPdComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.ts new file mode 100755 index 0000000..a5a0d1c --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/list-pd.component.ts @@ -0,0 +1,96 @@ +import { Component,ViewChild, OnInit, ViewEncapsulation, OnDestroy, OnChanges } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { NotifierService } from 'angular-notifier'; +import { PdTrigerService } from '../../pd-service/pd-triger.service'; +import { MatPaginator, MatSort, MatTableDataSource, PageEvent, MatTabChangeEvent } from '@angular/material'; +import { AllPdComponent } from './all-pd/all-pd.component'; +import { InprogressPdComponent } from './inprogress-pd/inprogress-pd.component'; +import { ScheduledPdComponent } from './scheduled-pd/scheduled-pd.component'; +import { CompletedPdComponent } from './completed-pd/completed-pd.component'; +import { QcCompletedPdComponent } from './qc-completed-pd/qc-completed-pd.component'; + + +@Component({ + selector: 'app-list-pd', + templateUrl: './list-pd.component.html', + styleUrls: ['./list-pd.component.scss'], + encapsulation: ViewEncapsulation.None +}) +export class ListPdComponent implements OnInit, OnDestroy { + public filterValue: string; + private notifier: NotifierService; + recordStatus: boolean; + noRecordFound:boolean; + viewPdList:boolean; + viewMapPdList:boolean; + errorMessage: any; + public allTab:boolean; + public inprogressTab:boolean = false; + public scheduledTab:boolean = false; + public completedTab:boolean = false; + public getTabIndex:number=0; + + @ViewChild(AllPdComponent) allTabC:AllPdComponent; + @ViewChild(InprogressPdComponent) inprogressTabC: InprogressPdComponent; + @ViewChild(ScheduledPdComponent) scheduledTabC:ScheduledPdComponent; + @ViewChild(CompletedPdComponent) completedTabC: CompletedPdComponent; + @ViewChild(QcCompletedPdComponent) qcCompletedTabC: QcCompletedPdComponent; + + // roles checks for enables events + roleAccessDetails:any + public userRoleID = +localStorage.getItem('user_role') ; + constructor( notifier: NotifierService, private route: ActivatedRoute, + private router: Router, private _pd: PdTrigerService) { + this.notifier = notifier; + this.roleAccessDetails=this._pd.getRoleAccessDetails(); + } + + ngOnInit() { + this.viewPdList = true; + this.recordStatus=false; + this.allTab=true; + + } + // after view call all tabs component + ngAfterViewInit() { + this.allTabC.loadPDDetails(); + } + + // view pd list in map view + viewMapPdDetails(){ + this.viewPdList = !this.viewPdList; + this.router.navigate([ '../pdlist/pdmaplist'], { relativeTo: this.route }); + + } + // add pd + addPdDetails() { + this.viewPdList = !this.viewPdList; + this.router.navigate([ '../pdlist/addpd'], { relativeTo: this.route }); + + } + showListView(status: boolean){ + this.viewPdList = status; + + } + pdListLoad(status: boolean){ + this.viewPdList = status; + this.getTabIndex==0 ? this.allTabC.loadPDDetails() : this.getTabIndex==1 ? this.scheduledTabC.loadPDDetails() : this.getTabIndex==2 ? this.inprogressTabC.loadPDDetails() : this.getTabIndex==3 ? this.completedTabC.loadPDDetails() : this.qcCompletedTabC.loadPDDetails(); + + } + viewPDDetails(pdid:string){ + this.viewPdList = !this.viewPdList; + this.router.navigate([ '../pdlist/viewpd',pdid], { relativeTo: this.route }); + + } + //get tab changes + onTabClick(event: MatTabChangeEvent) { + this.getTabIndex=event.index; + this.getTabIndex==0 ? this.allTabC.loadPDDetails() : this.getTabIndex==1 ? this.scheduledTabC.loadPDDetails() : this.getTabIndex==2 ? this.inprogressTabC.loadPDDetails() : this.getTabIndex==3 ? this.completedTabC.loadPDDetails() : this.qcCompletedTabC.loadPDDetails(); + + } + + ngOnDestroy(): void { + this.viewPdList=false; + } + +} diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/map-pd-view/map-pd-view.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/map-pd-view/map-pd-view.component.html new file mode 100755 index 0000000..52f0889 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/map-pd-view/map-pd-view.component.html @@ -0,0 +1,100 @@ + +
+
+
+ + + + +
+ +
+
+ +
+
+
+ +
+ + + +
+ + +
+
+
+ + + +
+
+ {{details.applicat_details[0].applicant_name}} ({{details.customer_segment_abbr}})
+ {{details.lender_full_name}} ({{details.lender_applicant_id}})
+
+
+ + +
+
+
+ + +  {{details.city_name}}/{{details.state_name}}-{{details.pincode}}
+ {{details.product_abbr}}/{{details.subproduct_abbr}}
+ + {{details.pd_date_of_initiation}} - + {{details.pd_status}} + +
+
+
+ +
+
+ + + +

No Record Found ...

+ +
+
+ +
+ +
+ + + +
+
+ + + + +
+

{{getMap.applicant_details | titlecase}}

+
+
+

{{getMap.lender_details}}

+
+ +
+
+
+
+
+
+
+ II Full   II Smart +
+
+
+
+ + \ No newline at end of file diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/map-pd-view/map-pd-view.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/map-pd-view/map-pd-view.component.scss new file mode 100755 index 0000000..80a496f --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/map-pd-view/map-pd-view.component.scss @@ -0,0 +1,45 @@ +@import "../../../../../assets/styles/scss/material.variables"; + +:host { + margin-left: -5px; + margin-right: -5px; + margin-top: -5px; + display: block; + height: 100%; +} +.sebm-google-map-container { + width: 100%; + height: 500px; + display: flex; +} + +$mat-toolbar-height-desktop: 64px !default; +$mat-toolbar-height-mobile-portrait: 56px !default; +$mat-toolbar-height-mobile-landscape: 48px !default; + +.mat-card-top { + margin-top: -($mat-toolbar-height-desktop); +} + +@media ($mat-xsmall) and (orientation: portrait) { + .mat-card-top { + margin-top: -($mat-toolbar-height-mobile-portrait); + } +} + +@media ($mat-small) and (orientation: landscape) { + .mat-card-top { + margin-top: -($mat-toolbar-height-mobile-landscape); + } +} +::-webkit-scrollbar { + width: 0px; /* remove scrollbar space */ + background: transparent; /* optional: just make scrollbar invisible */ +} +/* optional: show position indicator in red */ +::-webkit-scrollbar-thumb { + background: #FF0000; +} +::ng-deep .body-container{ + padding:0px !important; +} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/title/title-list/title-list.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/map-pd-view/map-pd-view.component.spec.ts old mode 100644 new mode 100755 similarity index 54% rename from ng6-seed/src/app/settings/masters/component/title/title-list/title-list.component.spec.ts rename to ng6-seed/src/app/personal-discussion/manage-pd/list-pd/map-pd-view/map-pd-view.component.spec.ts index cce70c5..1d70a89 --- a/ng6-seed/src/app/settings/masters/component/title/title-list/title-list.component.spec.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/map-pd-view/map-pd-view.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { TitleListComponent } from './title-list.component'; +import { MapPdViewComponent } from './map-pd-view.component'; -describe('TitleListComponent', () => { - let component: TitleListComponent; - let fixture: ComponentFixture; +describe('MapPdViewComponent', () => { + let component: MapPdViewComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ TitleListComponent ] + declarations: [ MapPdViewComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(TitleListComponent); + fixture = TestBed.createComponent(MapPdViewComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/map-pd-view/map-pd-view.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/map-pd-view/map-pd-view.component.ts new file mode 100755 index 0000000..077d1a1 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/map-pd-view/map-pd-view.component.ts @@ -0,0 +1,162 @@ +import { Component, ViewChild, OnInit, OnDestroy } from '@angular/core'; +import { MatPaginator, MatSort, MatTableDataSource, PageEvent } from '@angular/material'; +import { ActivatedRoute, Router } from '@angular/router'; +import { NotifierService } from 'angular-notifier'; +import { MatDialog } from '@angular/material'; +import { PdTrigerService } from './../../../pd-service/pd-triger.service'; +import { GetGeometricLocationService } from './../../../location-service/get-geometric-location.service'; +import { ListPdComponent } from './../list-pd.component'; +// import { PdAllocationComponent } from './../pd-allocation/pd-allocation.component'; +import { SmartPdAllocationComponent } from './../smart-pd-allocation/smart-pd-allocation.component'; +import { TelePdAllocationComponent } from '././../tele-pd-allocation/tele-pd-allocation.component'; +// import { SchedulePdComponent } from './../schedule-pd/schedule-pd.component'; + +@Component({ + selector: 'app-map-pd-view', + templateUrl: './map-pd-view.component.html', + styleUrls: ['./map-pd-view.component.scss'] +}) +export class MapPdViewComponent implements OnInit, OnDestroy { + private notifier:NotifierService; + lat:string + lng:string + mapDetails:any[] = []; + recordStatus: boolean; + noRecordFound: boolean = true; + errorMessage: any; + // pagination variable details + length = 50; + pageIndex = 0; + pageSize = 10; + pageEvent: PageEvent; +// data source variable details +pdListData = null; +public dataLength: number; +public dataSource = new MatTableDataSource(); +@ViewChild(MatPaginator) paginator: MatPaginator; +@ViewChild(MatSort) sort: MatSort; +pdList:any[] = []; + + // create values for status check + pdStatusCheck :any={ + "DRAFT" :'DRAFT', + "TRIGGERED" :'TRIGGERED', + "ALLOCATED" :'ALLOCATED', + "SCHEDULED" :'SCHEDULED', + "INPROGRESS" :'INPROGRESS', + "COMPLETED" :'COMPLETED', + "QC_COMPLETED" :'QC_COMPLETED', + }; + // roles checks for enables events + roleAccessDetails:any + public getColor(type: number): string{ + + return type == 1 ? "#009688" : "#673ab7" ; + } + + constructor(notifier:NotifierService,private route: ActivatedRoute, + private router: Router,private _pd: PdTrigerService,private dialog: MatDialog,private _geolocation: GetGeometricLocationService, private ListPdComponent : ListPdComponent) { + this.notifier=notifier; + this.roleAccessDetails=this._pd.getRoleAccessDetails(); + } + + ngOnInit() { + this.ListPdComponent.showListView(false); + this.recordStatus=false + this.loadPdDetails(this.pdStatusCheck.TRIGGERED,this.pdStatusCheck.ALLOCATED); + } + ngAfterViewInit() { + this.dataSource.paginator = this.paginator; + this.dataSource.sort = this.sort; + } + + loadPdDetails(triStatus,allocStatus){ + this._pd.getPdMapList(triStatus,allocStatus).subscribe(responseList => { + if(responseList.length>0){ + if(responseList[0].dataStatus===true){ + let filterValue=responseList[0].records.filter(val=>val.fk_pd_type !='3') + this.pdList= this.pdList.concat.apply(this.pdList, filterValue); + } + if(responseList[1].dataStatus===true){ + let filterValue=responseList[1].records.filter(val=>val.fk_pd_type !='3') + this.pdList= this.pdList.concat.apply(this.pdList, filterValue); + } + if(this.pdList.length>0){ + this.pdListData = this.pdList; + this.dataLength = this.pdList.length; + this.dataSource.data = this.pdListData; + this.getMapViewLocations(this.pdList); + } + else { + this.pdList=[]; + this.dataLength = null; + this.recordStatus=true; + } + + } + else { + this.pdList=[]; + this.dataLength = null; + this.recordStatus=true; + } + },error => this.errorMessage = error); + } + + + getMapViewLocations(getData:any){ + getData.forEach(element => { + if(element.addressline1 && element.pincode && element.state_name && element.city_name){ + this._geolocation.findLocations(element.addressline1,element.pincode,element.state_name,element.city_name) + .subscribe(response => { + if (response.status == 'OK') { + this.lat = response.results[0].geometry.location.lat; + this.lng = response.results[0].geometry.location.lng; + response.results[0].applicant_details = element.applicant_name + ' ( Id:'+element.pd_id+')'; + response.results[0].lender_details = element.lender_short_name + '( Id:'+element.lender_applicant_id+')'; + this.mapDetails.push(response.results[0]); + } + // else if (response.status == 'ZERO_RESULTS') { + // console.log('geocodingAPIService', 'ZERO_RESULTS', response.status); + // } else { + // console.log('geocodingAPIService', 'Other error', response.status); + // } + }); + } + + + }); + } + + pageChange(e) { + console.log(e); + } + // go list view + goList(){ + this.ListPdComponent.showListView(true); + this.router.navigate([ '../../' ], { relativeTo: this.route }); + + } + + ngOnDestroy(): void { + this.ListPdComponent.showListView(true); + + } + //Global filter + applyFilter(filterValue: string) { + filterValue = filterValue.trim(); // Remove whitespace + filterValue = filterValue.toLowerCase(); // Datasource defaults to lowercase matches + this.dataSource.filter = filterValue; + } + // this is for map tooltip open + onMouseOver(infoWindow, gm) { + + if (gm.lastOpen != null) { + gm.lastOpen.close(); + } + + gm.lastOpen = infoWindow; + + infoWindow.open(); +} + +} diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/model-edit-pd-report/model-edit-pd-report.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/model-edit-pd-report/model-edit-pd-report.component.html new file mode 100755 index 0000000..8379ac7 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/model-edit-pd-report/model-edit-pd-report.component.html @@ -0,0 +1,23 @@ + +

+
+ Edit PD Report Details +
+ +

+ +
+
+ + +
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/model-edit-pd-report/model-edit-pd-report.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/model-edit-pd-report/model-edit-pd-report.component.scss new file mode 100755 index 0000000..21a517b --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/model-edit-pd-report/model-edit-pd-report.component.scss @@ -0,0 +1,8 @@ +::ng-deep .cdk-global-overlay-wrapper{ + justify-content: center !important; + overflow: hidden; +} +.paragraph_change { + color: #fff !important; + background-color: #e00201 !important; + } \ No newline at end of file diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/model-edit-pd-report/model-edit-pd-report.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/model-edit-pd-report/model-edit-pd-report.component.spec.ts new file mode 100755 index 0000000..03efc6e --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/model-edit-pd-report/model-edit-pd-report.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ModelEditPdReportComponent } from './model-edit-pd-report.component'; + +describe('ModelEditPdReportComponent', () => { + let component: ModelEditPdReportComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ModelEditPdReportComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ModelEditPdReportComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/model-edit-pd-report/model-edit-pd-report.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/model-edit-pd-report/model-edit-pd-report.component.ts new file mode 100755 index 0000000..652fe5f --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/model-edit-pd-report/model-edit-pd-report.component.ts @@ -0,0 +1,97 @@ +import { Component, OnInit, ViewChild , Input, Inject} from '@angular/core'; +import { FormGroup, FormBuilder, Validators } from '@angular/forms'; +import { PdTrigerService } from '../../../../pd-service/pd-triger.service'; +import { NotifierService } from "angular-notifier"; + + +import { + MatDialog, + MatDialogRef, + MAT_DIALOG_DATA +} from '@angular/material'; + +@Component({ + selector: 'app-model-edit-pd-report', + templateUrl: './model-edit-pd-report.component.html', + styleUrls: ['./model-edit-pd-report.component.scss'] +}) +export class ModelEditPdReportComponent implements OnInit { + + @Input() questionId: number; + ngForm: FormGroup; + name = 'ng2-ckeditor'; + ckeConfig: any; + recordData: any; + log = ''; + showEditor: boolean= false; + @ViewChild('myckeditor') ckeditor: any; +/** + * Notifier service + */ + private notifier: NotifierService; + constructor( private _formBuilder: FormBuilder, + private pdTrigerService: PdTrigerService, + notifier: NotifierService , + private dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any) { + this.notifier = notifier; + this.ngForm = this._formBuilder.group({ + report_template_id: [], + fk_template_id: [], + content: [null, Validators.compose([Validators.required])], + isactive:[1] + }) + // this.mycontent = `

My html content

`; + } + + ngOnInit() { + // alert(JSON.stringify(this.data)); + // this.ngForm.controls['content'].setValue('

Home

'); + this.pdTrigerService.getActualPDReportModelTemplate(this.data).subscribe(data => { + if(data['dataStatus']){ + this.recordData = data.records[0]; + this.ngForm = this._formBuilder.group({ + content: [this.recordData.pd_report_latest_version_blob, Validators.compose([Validators.required])], + isactive:[this.recordData.isactive] + }); + this.showEditor = true; + } + },err => { + + }); + // this.ckeConfig = { + // allowedContent: false, + // extraPlugins: 'divarea', + // forcePasteAsPlainText: true + // }; + } + + onChange($event: any): void { + // console.log('onChange'); + // this.log += new Date() + "
"; + } + + myClick(): void { + let template = this.ngForm.controls['content'].value; + // alert(template); + let data = { + content: template, + pd_id: this.data.startId + } + + // alert(JSON.stringify(data)); + // var formValues = this.ngForm.value; + // Object.keys(formValues).forEach((key) => (formValues[key] == null) && delete formValues[key]); + + this.pdTrigerService.updatePDReportDetails(data).subscribe(data=>{ + this.notifier.notify('success', 'Your Changes Updated.!'); + this.dialogRef.close({ + status: true + } + ); + }, err => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + + }) + } +} diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/pd-report.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/pd-report.component.html new file mode 100755 index 0000000..4564cf0 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/pd-report.component.html @@ -0,0 +1,107 @@ + + +
+ + + + + + + + +

{{ pd.doc_name }}

+ +

{{pd.createdby}} ({{pd.createdon}})

+
+ + +
+ + +
+ + + + View More + + + + +
+ +
+ +
+
+ +
+ + +
+
+ + + +
+ +
+
+ +
+
+ + +
+
+
+
+
+
+
{{message}}
+
+ + + +
+
+
+
+ +
+ +
+ + + +
+ +
+ + +
+ +
+ + + +
+ +
+
+ +
+
+ + +
+ \ No newline at end of file diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/pd-report.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/pd-report.component.scss new file mode 100755 index 0000000..ce799dd --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/pd-report.component.scss @@ -0,0 +1,128 @@ +@import "./../../../../../assets/styles/scss/components/messages"; +:host { + margin-left: -5px; + margin-right: -5px; + margin-top: -5px; + display: block; +} +:host /deep/ { + mat-sidenav { + max-width: 400px; + max-height: 500px; + overflow-y: auto; + } + .mat-sidenav-content { + padding: 0; + + } + @media (min-width: 959px) { + .mat-sidenav-side { + background-color: transparent; + box-shadow: none!important; + } + + } +} +.mat-menu-item-active { + color: red !important; +} +.mat-expansion-panel-header-description { + color: rgba(0, 0, 0, 87); +} +.mat-card-content { + background-color: white; +} +.mat-card-actions { + background-color: white; +} + +.text-ellipsis { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.custm-list-item { + cursor: pointer; +} + + +$base-card-box-shadow:1.5px 2.6px 24px 0 rgba(0, 35, 136, 0.08) !important; +$product-bg-color-hover: rgba(103, 58, 183, 0.7); +.p-list-main { + background: white; + margin: auto; + position: relative; + overflow: hidden !important; + border-radius: 10px 10px 10px 10px; + box-shadow: $base-card-box-shadow; + transform: scale(0.95); + transition: box-shadow 0.5s, transform 0.5s; + &:hover { + transform: scale(1); + box-shadow: 5px 20px 30px rgba(0, 0, 0, 0.2); + } + .p-list { + position: relative; + .top { + height: 100%; + width: 100%; + // background: url(https://s-media-cache-ak0.pinimg.com/736x/49/80/6f/49806f3f1c7483093855ebca1b8ae2c4.jpg) no-repeat center center; + -webkit-background-size: 100%; + -moz-background-size: 100%; + -o-background-size: 100%; + background-size: 100%; + } + .bottom { + width: 200%; + height: 15%; + transition: transform 0.5s; + h1 { + margin: 0; + padding: 0; + } + p { + margin: 0; + padding: 0; + } + .left { + height: 100%; + width: 50%; + background: #f4f4f4; + position: relative; + float: left; + .details { + padding: 5px; + float: left; + // width: calc(70% - 40px); + } + + } + .right { + width: 50%; + background: #A6CDDE; + color: white; + float: right; + height: 200%; + overflow: hidden; + .details { + padding: 20px; + float: right; + width: calc(70% - 40px); + } + + + } + } + } + +} + +.custm-list-item { + cursor: pointer; + } + .footer { + position: fixed; + bottom: 2%; + right: 2%; +} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/city/city-list/city-list.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/pd-report.component.spec.ts old mode 100644 new mode 100755 similarity index 55% rename from ng6-seed/src/app/settings/masters/component/city/city-list/city-list.component.spec.ts rename to ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/pd-report.component.spec.ts index 8f3c58b..6629a05 --- a/ng6-seed/src/app/settings/masters/component/city/city-list/city-list.component.spec.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/pd-report.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { CityListComponent } from './city-list.component'; +import { PdReportComponent } from './pd-report.component'; -describe('CityListComponent', () => { - let component: CityListComponent; - let fixture: ComponentFixture; +describe('PdReportComponent', () => { + let component: PdReportComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ CityListComponent ] + declarations: [ PdReportComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(CityListComponent); + fixture = TestBed.createComponent(PdReportComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/pd-report.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/pd-report.component.ts new file mode 100755 index 0000000..7c5dbb2 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/pd-report.component.ts @@ -0,0 +1,329 @@ +import { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser'; +import { Component, ViewChild, OnInit, ViewEncapsulation, OnDestroy, Inject } from '@angular/core'; +import { FormBuilder, FormGroup, Validators, FormControl, FormArray, AbstractControl } from '@angular/forms'; +import { ActivatedRoute, Router } from '@angular/router'; +import { NotifierService } from 'angular-notifier'; +import { ListPdComponent } from './../list-pd.component'; + +import { saveAs as importedSaveAs } from "file-saver"; + +import { PdTrigerService } from '../../../pd-service/pd-triger.service'; +import { + MatDialog, + MatDialogRef, + MAT_DIALOG_DATA +} from "@angular/material"; +import { ModelEditPdReportComponent } from './model-edit-pd-report/model-edit-pd-report.component'; +import { QcReviewComponent } from './qc-review/qc-review.component'; +import { HttpResponse } from "@angular/common/http"; + +/**sweet alert */ +// import Swal from 'sweetalert2'; + +@Component({ + selector: 'app-pd-report', + templateUrl: './pd-report.component.html', + styleUrls: ['./pd-report.component.scss'] +}) +export class PdReportComponent implements OnInit { + Url: SafeUrl; + startPD: any; + //public src = 'https://vadimdez.github.io/ng2-pdf-viewer/assets/pdf-test.pdf'; + public src = 'https://lender7.s3.ap-south-1.amazonaws.com/pd1/pd_report_original_version.pdf?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJ3QDSPT3LDSWRYUQ%2F20181210%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Date=20181210T053116Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature=6e25703a1e339dd5f081fa8aca5b8b2d81ba161d8cfd708759de899abf72146b'; + //public src; + public document; + public generateBtn: Boolean = false; + public reGenerateBtn: Boolean = false; + public pdReportVersionList = []; + // public src; + pdReportRecords: any; + latestPDDetails: any; + message: any; + selectedIndex: Number; + private notifier: NotifierService; + constructor(notifier: NotifierService, private fb: FormBuilder, private route: ActivatedRoute, + private router: Router, public pdTrigerService: PdTrigerService, private listPDComponent: ListPdComponent, + private dialog: MatDialog, private sanitizer: DomSanitizer) { + this.startPD = this.route.snapshot.params['pdid']; + this.notifier = notifier; + // this.src = 'https://lender7.s3.ap-south-1.amazonaws.com/pd1/pd_report_original_version.pdf?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJ3QDSPT3LDSWRYUQ%2F20181210%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Date=20181210T073026Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature=35aa183cbbfc835f96719a5e9aa552c79b3a1b7d8bca043f7d738d730755dcbb'; + // this.src = this.sanitizer.bypassSecurityTrustResourceUrl("https://lender7.s3.ap-south-1.amazonaws.com/pd1/pd_report_original_version.pdf?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJ3QDSPT3LDSWRYUQ%2F20181210%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Date=20181210T053116Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature=6e25703a1e339dd5f081fa8aca5b8b2d81ba161d8cfd708759de899abf72146b"); + // alert(JSON.stringify(this.src)); + // this.document = { name: 'Angular 2', + // description: 'An amazing Angular 2 pdf', + // url: { url: 'https://lender7.s3.ap-south-1.amazonaws.com/pd1/pd_report_original_version.pdf?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJ3QDSPT3LDSWRYUQ%2F20181210%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Date=20181210T053116Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature=6e25703a1e339dd5f081fa8aca5b8b2d81ba161d8cfd708759de899abf72146b', withCredentials: true } }; + // this.Url = this.sanitizer.bypassSecurityTrustResourceUrl("https://lender7.s3.ap-south-1.amazonaws.com/pd1/pd_report_original_version.pdf?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJ3QDSPT3LDSWRYUQ%2F20181207%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Date=20181207T122031Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature=fac718f35d195ecb45d1dc7049fbaf0fa3158f237deeedac3bae60f8ec22e822"); + } + + ngOnInit() { + this.listPDComponent.showListView(false); + this.getPdReportDetails(); + this.getPdReportVersionList(); + // start + + // end + const elemSidebar = document.querySelector('.app-inner .mail-sidebar'); + const elemContent = document.querySelector('.app-inner .main-content'); + + if (window.matchMedia(`(min-width: 1560px)`).matches && !this.isMac()) { + // Ps.initialize(elemSidebar, { wheelSpeed: 2, suppressScrollX: true }); + // Ps.initialize(elemContent, { wheelSpeed: 2, suppressScrollX: true }); + } + + // this.loadTemplates(this.startPD); + // this.next = 1; + // this.previous = 2; + } + + + isMac(): boolean { + let bool = false; + if (navigator.platform.toUpperCase().indexOf('MAC') >= 0 || navigator.platform.toUpperCase().indexOf('IPAD') >= 0) { + bool = true; + } + return bool; + } + + + + + isOver(): boolean { + return window.matchMedia(`(max-width: 1560px)`).matches; + } + + reGeneratePFReport() { + let data = { + "pd_id": this.startPD, + "regenerate": "1" + }; + this.pdTrigerService.getPDReportFinalDocument(data).subscribe(data => { + if (data.dataStatus) { + this.notifier.notify('success', 'Your Changes Updated.!'); + this.getPdReportVersionList(); + } else { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + } + }, err => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + }) + } + generateNewPDReport() { + let data = { + "pd_id": this.startPD + }; + this.pdTrigerService.getPDReportFinalDocument(data).subscribe(data => { + if (data.dataStatus) { + this.notifier.notify('success', 'Your Changes Updated.!'); + this.getPdReportVersionList(); + } else { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + } + }, err => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + }) + } + + public qcStatus: string = ''; + getPdReportVersionList() { + this.pdTrigerService.getPdDocVersionList(this.startPD).subscribe(data => { + if (data.status == 200 && data.dataStatus) { + this.pdReportVersionList = [...data.records.reports_urls].reverse(); + let datas = this.pdReportVersionList.filter((a) => { return a.is_latest == 1; }) + this.latestPDDetails = datas[0]; + this.selectedIndex = 0; + this.qcStatus = data.records.pdstatus; + // alert(JSON.stringify(this.latestPDDetails)); + this.reGenerateBtn = true; + } else { + // this.reGenerateBtn = true; + this.generateBtn = true; + this.message = data.msg; + } + }, err => { + + }) + } + + getPdReportDetails() { + this.pdTrigerService.getPdFinalReportDetails(this.startPD).subscribe(data => { + if (data.status == 200) { + // this.pdReportRecords = data.records.question_answers; + this.pdReportRecords = data.records; + // this.pdReportRecords = data.records.qu; + } + }, err => { + + }) + } + + + + // load pd view component + loadPdViewCompoent() { + this.router.navigate(['../../viewpd', this.startPD], { relativeTo: this.route }); + } + + // add questions popup model call + addNewQuestion() { + const dialogRef = this.dialog.open(ModelEditPdReportComponent, { + data: { startId: this.startPD, version_id: this.latestPDDetails.doc_name }, + disableClose: true + }); + dialogRef.afterClosed() + .subscribe(dataresult => { + if(dataresult.status==true){ + this.getPdReportVersionList(); + } + // this.getPdReportFinalTemplateDetails(); + // this.getQuestionsMasters(); + // this.getBranch(); + // this.isPopupOpened = false; + }); + } + + changeVersion(pd: any,selIndex:Number): void { + this.latestPDDetails = pd; + this.selectedIndex = selIndex; + } + + + + reportReview(status): void { + const dialogRef = this.dialog.open(QcReviewComponent, { + data: { startId: this.startPD, data_status: status }, + disableClose: true + }); + dialogRef.afterClosed() + .subscribe(dataresult => { + if(dataresult.status==true){ + this.getPdReportVersionList(); + } + // this.getPdReportFinalTemplateDetails(); + // this.getQuestionsMasters(); + // this.getBranch(); + // this.isPopupOpened = false; + }); + } + + changeDocumentEdit(): void { + + + const dialogRef = this.dialog.open(DialogChangeCurrentVenrsion, { + disableClose: true + }); + dialogRef.afterClosed() + .subscribe(dataresult => { + if (dataresult) { + let data = { + "pd_id": this.startPD, + "doc_name": this.latestPDDetails.doc_name + }; + this.pdTrigerService.swapOlderPDReportToLatest(data).subscribe(data => { + if (data.status == 200) { + this.notifier.notify('success', 'Your Changes Updated.!'); + this.getPdReportVersionList(); + } else { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + } + }, err => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + }) + } else { + } + }); + + + // Swal('User Created'); + // swal({ + // title: 'Error!', + // text: 'Do you want to continue', + // type: 'error', + // confirmButtonText: 'Cool' + // }); + + // Swal({ + // title: 'Are you sure?', + // type: 'warning', + // showCancelButton: true, + // confirmButtonColor: '#3085d6', + // cancelButtonColor: '#d33', + // confirmButtonText: SwalButtonText + // }).then((result) => { + // if (result.value) { + // // this._mastersService.editMasterDetails(ActiveDatas,'CITY') + // // .subscribe(dataresult=>{ + // // if (dataresult.dataStatus == true){ + // // Swal(this.SwalMessage,'success'); + // // this.getCity(); + // // } + // // else{ + // // Swal("Sorry Try Again !"); + // // } + // // }); + // } + // else{ + // // this.getCity(); + // }s + // }) + } + + export() { + this.pdTrigerService.pdReportExportExcel().subscribe((blob: HttpResponse) => { + if (blob) { + // console.log(blob); + let datass = blob.headers.get('content-disposition'); + let fileName = datass.split(/"/)[1]; + // this.notifier.notify('success', 'Your Changes Updated.!'); + const blobs = new Blob([blob.body], + { type: 'application/vnd.ms-excel' }); + const file = new File([blobs], fileName, + { type: 'application/vnd.ms-excel' }); + // console.log(file); + importedSaveAs(file); + } else { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + } + }, err => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + }) + } +} + + + +@Component({ + selector: 'dialog-overview-example-dialog', + styles: [` +.listHover: hover { + background: yellow; + }` + ], + template: ` +
+

Document is marked as final

+

Because you've marked the document as final, you can edit this document.

+
+ + +
+
+ ` +}) +export class DialogChangeCurrentVenrsion implements OnInit { + + public m_questions: any; + + public m_question_forms: any; + constructor( + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data) { + } + + ngOnInit(): void { + } + + getConfirmation(confim: Boolean) { + this.dialogRef.close(confim); + } + +} diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.html new file mode 100755 index 0000000..bda833b --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.html @@ -0,0 +1,49 @@ +
+

QC Complete

+ + +
+

+ Once QC is Completed further edit will not be possible on this document. +

+
+
+
+
+ +
+
+ + Remarks + + +
+
+
+
+ + + + + +
+ +
+

QC Notes

+ +
+
+
+ + Remarks + + +
+
+
+
+ + + + +
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/company/company-dialog/company-dialog.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.scss old mode 100644 new mode 100755 similarity index 100% rename from ng6-seed/src/app/settings/masters/component/company/company-dialog/company-dialog.component.scss rename to ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.scss diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.spec.ts new file mode 100755 index 0000000..0d0b84d --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { QcReviewComponent } from './qc-review.component'; + +describe('QcReviewComponent', () => { + let component: QcReviewComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ QcReviewComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(QcReviewComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.ts new file mode 100755 index 0000000..7fa06f1 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.ts @@ -0,0 +1,109 @@ +import { Component, OnInit, ViewChild , Input, Inject} from '@angular/core'; +import { FormGroup, FormBuilder, Validators } from '@angular/forms'; +import { PdTrigerService } from '../../../../pd-service/pd-triger.service'; +import { NotifierService } from "angular-notifier"; + + +import { + MatDialog, + MatDialogRef, + MAT_DIALOG_DATA +} from '@angular/material'; + +@Component({ + selector: 'app-qc-review', + templateUrl: './qc-review.component.html', + styleUrls: ['./qc-review.component.scss'] +}) +export class QcReviewComponent implements OnInit { + + conformation: Boolean = false; + @Input() questionId: number; + ngForm: FormGroup; + recordData: any; + showForm: Boolean; + showStatus : any; +/** + * Notifier service + */ + private notifier: NotifierService; + constructor( private _formBuilder: FormBuilder, + private pdTrigerService: PdTrigerService, + notifier: NotifierService , + private dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any) { + this.notifier = notifier; + this.showStatus = this.data.data_status; + // this.mycontent = `

My html content

`; + } + + ngOnInit() { + this.getQcCompleteReviewStatus(); + } + + getQcCompleteReviewStatus() { + let type ; ''; + if( this.showStatus === 'REMARKS'){ + type = 'QC_REMARKS'; + this.pdTrigerService.getQCReportFinalReviewDetails(this.data.startId, type).subscribe(data => { + if(data['dataStatus']){ + this.recordData = data.records[0]; + this.ngForm = this._formBuilder.group({ + qc_remarks: [this.recordData.qc_remarks], + pd_status: [this.recordData.pd_status] + }) + this.showForm = true; + } + },err => { + + }); + } else if(this.showStatus === 'COMPLETE') { + type = 'QC'; + this.pdTrigerService.getQCReportFinalReviewDetails(this.data.startId, type).subscribe(data => { + if(data['dataStatus']){ + this.recordData = data.records[0]; + this.ngForm = this._formBuilder.group({ + qc_feedback: [this.recordData.qc_feedback], + qc_rating: [Number(this.recordData.qc_rating)], + pd_status: ["QC_COMPLETED"], + }) + this.showForm = true; + } + },err => { + + }); + } else { + } + + } + + onChange($event: any): void { + // this.log += new Date() + "
"; + } + + myClick(): void { + let template = this.ngForm.value; + template.pd_id = this.data.startId; + this.pdTrigerService.pdReviewStatusUpdate(template).subscribe(data=>{ + this.notifier.notify('success', 'Your Changes Updated.!'); + this.dialogRef.close({ + status: true + }); + }, err => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + + }) + } + + + + // ============================= + + ratingClicked: number; + itemIdRatingClicked: string; + rating : number = 1; + + ratingComponentClick(e){ + this.ngForm.controls.qc_rating.setValue(e.rating); + } +} diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-requirement/pd-requirement.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-requirement/pd-requirement.component.html new file mode 100755 index 0000000..21e191b --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-requirement/pd-requirement.component.html @@ -0,0 +1,38 @@ +
+ +

+
+ {{pageTitle}} +
+
+ + +
+

+ + + + + + + + + + + + + + + + + + + + + + +
+ + + + diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-requirement/pd-requirement.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-requirement/pd-requirement.component.scss new file mode 100755 index 0000000..9bb4a04 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-requirement/pd-requirement.component.scss @@ -0,0 +1,7 @@ +mat-form-field { + margin: 0 2%; + } +.paragraph_change { + color: #fff !important; + background-color: #e00201 !important; +} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/company/company-dialog/company-dialog.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-requirement/pd-requirement.component.spec.ts old mode 100644 new mode 100755 similarity index 53% rename from ng6-seed/src/app/settings/masters/component/company/company-dialog/company-dialog.component.spec.ts rename to ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-requirement/pd-requirement.component.spec.ts index 3592097..d7f724e --- a/ng6-seed/src/app/settings/masters/component/company/company-dialog/company-dialog.component.spec.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-requirement/pd-requirement.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { CompanyDialogComponent } from './company-dialog.component'; +import { PdRequirementComponent } from './pd-requirement.component'; -describe('CompanyDialogComponent', () => { - let component: CompanyDialogComponent; - let fixture: ComponentFixture; +describe('PdRequirementComponent', () => { + let component: PdRequirementComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ CompanyDialogComponent ] + declarations: [ PdRequirementComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(CompanyDialogComponent); + fixture = TestBed.createComponent(PdRequirementComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-requirement/pd-requirement.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-requirement/pd-requirement.component.ts new file mode 100755 index 0000000..cd18dae --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-requirement/pd-requirement.component.ts @@ -0,0 +1,111 @@ +import { Component, OnInit,ViewEncapsulation, Inject } from '@angular/core'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { FormBuilder, FormGroup, Validators, FormControl, FormArray } from '@angular/forms'; +import { CustomValidators } from 'ng2-validation'; +import { NotifierService } from 'angular-notifier'; +import { PdTrigerService } from '../../../pd-service/pd-triger.service'; + +@Component({ + selector: 'app-pd-requirement', + templateUrl: './pd-requirement.component.html', + styleUrls: ['./pd-requirement.component.scss'], + encapsulation: ViewEncapsulation.None, +}) +export class PdRequirementComponent implements OnInit { + public pageTitle: string = "Additional Requirements Details"; + public _EditPDRequirementForm:FormGroup; + public notifier: NotifierService; + addtional_requirements: FormArray; + public const_requirement : any = { + "add_req_id": '', + "add_requirement":'', + "earning_ans": '', + "isactive": 1, + }; + constructor(private _fb: FormBuilder, + private _pd: PdTrigerService, notifier: NotifierService,private dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any) { + this.notifier=notifier + } + + ngOnInit() { + this.loadForm(); + + } + loadForm() { + this._EditPDRequirementForm = this._fb.group({ + pdid: [this.data.pdID], + addtional_requirements: this._fb.array([]) +}); +// bind dynamic co applicant data + if(this.data.records.length > 0){ + this.data.records.forEach((itemElement, itemIndex) => { + this.addRequiremnts(itemElement) + }); + } + else { + this.addRequiremnts(this.const_requirement) + } + } + + get pdRequirements() { return this._EditPDRequirementForm.get('addtional_requirements') as FormArray; } + createRequiremnt(receive:any): FormGroup { + return this._fb.group({ + add_req_id:[receive.add_req_id], + add_requirement: [receive.add_requirement, Validators.compose([Validators.required])], + isactive: [receive.isactive], + }); + }; + addRequiremnts(getData:any) { + if(this._EditPDRequirementForm.valid){ + this.addtional_requirements = this._EditPDRequirementForm.get('addtional_requirements') as FormArray; + this.addtional_requirements.push(this.createRequiremnt(getData)); + } + else { + this.validateAllFormFields(this._EditPDRequirementForm); + } + } + + // removeRequirements(index: number) { + // const requirement_control = this._EditPDRequirementForm.controls['additional_requirements']; + // requirement_control.removeAt(index); + // } + + updateAdditionalRequirement(formValue: any) { + if(this._EditPDRequirementForm.invalid) { + this.validateAllFormFields(this._EditPDRequirementForm) + return; + } + else { + let records:any=formValue; + + this._pd.saveAdditionalRequirements(records).subscribe(result => { + if (result.status == 200) { + this.notifier.notify('success', 'Additional Requirements Updated.'); + this.dialogRef.close(); + } + else { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + } + }, error => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + }); + } + } + + // validate all form group and form array fields +validateAllFormFields(formGroup: any) { + Object.keys(formGroup.controls).forEach(field => { + const control = formGroup.get(field); + + if (control instanceof FormControl) { + control.markAsTouched({ onlySelf: true }); + } else if (control instanceof FormGroup) { + this.validateAllFormFields(control); + } else if (control instanceof FormArray) { + this.validateAllFormFields(control); + } + }); +} + +} diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-status-change-dialogue/pd-status-change-dialogue.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-status-change-dialogue/pd-status-change-dialogue.component.html new file mode 100644 index 0000000..b458693 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-status-change-dialogue/pd-status-change-dialogue.component.html @@ -0,0 +1,30 @@ +

{{dialoge_title_content}}

+ +
+

+ {{dialoge_content}} +

+ + +

{{completeness_message}}

+
  • + {{ forms }} +
+
+ +
+ +
+
+
+
+ +
+ + + + + + + + \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-list/industry_classification-list.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-status-change-dialogue/pd-status-change-dialogue.component.scss similarity index 100% rename from ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-list/industry_classification-list.component.spec.ts rename to ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-status-change-dialogue/pd-status-change-dialogue.component.scss diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-status-change-dialogue/pd-status-change-dialogue.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-status-change-dialogue/pd-status-change-dialogue.component.spec.ts new file mode 100644 index 0000000..56b4907 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-status-change-dialogue/pd-status-change-dialogue.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PdStatusChangeDialogueComponent } from './pd-status-change-dialogue.component'; + +describe('PdStatusChangeDialogueComponent', () => { + let component: PdStatusChangeDialogueComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ PdStatusChangeDialogueComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(PdStatusChangeDialogueComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-status-change-dialogue/pd-status-change-dialogue.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-status-change-dialogue/pd-status-change-dialogue.component.ts new file mode 100644 index 0000000..d62a553 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-status-change-dialogue/pd-status-change-dialogue.component.ts @@ -0,0 +1,79 @@ +import { Component, OnInit, ViewChild , Input, Inject} from '@angular/core'; +import { NotifierService } from "angular-notifier"; +import {MatDialog,MatDialogRef,MAT_DIALOG_DATA } from '@angular/material'; +import { PdTrigerService } from '../../../pd-service/pd-triger.service'; + +@Component({ + selector: 'app-pd-status-change-dialogue', + templateUrl: './pd-status-change-dialogue.component.html', + styleUrls: ['./pd-status-change-dialogue.component.scss'] +}) +export class PdStatusChangeDialogueComponent implements OnInit { + + conformation: Boolean = false; + private notifier: NotifierService; + dialoge_title_content: string; + dialoge_content: string; + dialoge_subcontent : any = []; + completeness_message: string; + enableAddonPD : boolean; + CompletenessCheck: boolean; + addonStatus: string ="ADD_ON_PENDING"; + public Loading: boolean; + + constructor(notifier: NotifierService , private pd: PdTrigerService,private dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data: any) + { + this.notifier = notifier; + this.dialoge_title_content = this.data.pd_status=='INPROGRESS' ? 'Start Discussion' : this.data.pd_status=='COMPLETED' ? 'Complete Discussion' : 'Change Discussion'; + this.dialoge_content = this.data.pd_status=='INPROGRESS' ? 'Are you starting the Discussion ?' : this.data.pd_status=='COMPLETED' ? 'Please confirm you are completing the Discussion and forwarding for Quality Check ?' : 'Change Discussion'; + this.enableAddonPD = false; + this.CompletenessCheck = this.data.pd_status=='INPROGRESS' ? true : this.data.pd_status=='COMPLETED' ? false : true; + this.Loading = this.data.pd_status=='INPROGRESS' ? false : this.data.pd_status=='COMPLETED' ? true : false; + } + + ngOnInit() { + if(this.data.pd_status=='COMPLETED'){ + let params: any={}; + params.pd_id = this.data.pdid; + + this.pd.pdFormsCompletenessCheck(this.data.pdid).subscribe(result => { + if (result.dataStatus === true) { + if(result.records.length > 0){ + this.completeness_message = result.msg ; + this.dialoge_subcontent = result.records; + this.Loading = false; + } + else{ + this.CompletenessCheck = true; + this.Loading = false; + this.pd.getPDCompleteDetails(params).subscribe(result => { + if (result.dataStatus === true) { + this.enableAddonPD = result.records.address_count>0 ? true: false; + } + }); + } + } + }); + } + } + + changePDStatus(status: string): void { + let update_status = { + "pd_id":this.data.pdid, + }; + this.pd.editPdMasterDetails(update_status, status).subscribe(result => { + if (result.status == 200) { + this.dialogRef.close({update_status:true}); + this.notifier.notify('success', this.data.pd_status=='INPROGRESS' ? 'Discussions Started Successfully' : this.data.pd_status=='COMPLETED' ? 'Discussions Completed Successfully' : 'Discussions Updated Successfully'); + } + else { + this.dialogRef.close({update_status:false}); + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + } + }, error => { + this.dialogRef.close({update_status:false}); + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + }); + } + +} diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/qc-completed-pd/qc-completed-pd.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/qc-completed-pd/qc-completed-pd.component.html new file mode 100755 index 0000000..57af8f0 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/qc-completed-pd/qc-completed-pd.component.html @@ -0,0 +1,124 @@ + + + + + + + filter_list + + Advance Filter + + + + + +
+ + + {{type.type_name}} + +     + + + + + +     + + + + + + + + {{pro.name}} + +     + + + {{city.name}} + +     + + + {{ent.full_name}} + + + + +     + + + +
+ + + +
+ + +
+
+ +
+
+ + + +
{{details.pd_id}}
+ {{details.pd_type_name}} +
+
+ + + + + {{details.is_child == 0 ? details.applicant_name : 'Add On PD - ' + details.parent_pd_id }} +
+ {{details.lender_applicant_id}} -({{details.customer_segment_abbr}} ) +
+
+ + + {{details.lender_short_name}}
+ {{details.product_abbr}}/{{details.subproduct_abbr}}
+ {{details.loan_amount}} +
+
+ + + {{details.pd_date_of_initiation}}
+ {{details.city_name}}-{{details.pincode_id == 1 ? details.other_pincode : details.pincode }} +
+
+ + + QC COMPLETED
+ {{ (details.updatedon)? (details.updatedon | slice:0:10):(details.updatedon) }} + +
+
+ + + + + + + +
+ +
+ + + diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/qc-completed-pd/qc-completed-pd.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/qc-completed-pd/qc-completed-pd.component.scss new file mode 100755 index 0000000..b500faa --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/qc-completed-pd/qc-completed-pd.component.scss @@ -0,0 +1,19 @@ +.ic-change:hover { + transform: scale(1.1); + color: green; +} +.cell{ + display:inline !important; +} +.cellhide{ + display: none !important; +} +.center{ + text-align:center; +} +.fontsize{ + font-size:14px; +} +.toolbar-space { + flex: 0.01 0 auto; +} \ No newline at end of file diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/qc-completed-pd/qc-completed-pd.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/qc-completed-pd/qc-completed-pd.component.spec.ts new file mode 100755 index 0000000..104b88d --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/qc-completed-pd/qc-completed-pd.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { QcCompletedPdComponent } from './qc-completed-pd.component'; + +describe('QcCompletedPdComponent', () => { + let component: QcCompletedPdComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ QcCompletedPdComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(QcCompletedPdComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/qc-completed-pd/qc-completed-pd.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/qc-completed-pd/qc-completed-pd.component.ts new file mode 100755 index 0000000..9e83f30 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/qc-completed-pd/qc-completed-pd.component.ts @@ -0,0 +1,207 @@ +import { Component, ViewChild, OnInit, ViewEncapsulation, Input, Output, EventEmitter, OnDestroy, AfterViewInit, OnChanges, SimpleChanges } from '@angular/core'; +import { PdTrigerService } from './../../../pd-service/pd-triger.service'; +import { MatPaginator, MatSort, MatTableDataSource, PageEvent } from '@angular/material'; +import { FormBuilder, FormGroup } from '@angular/forms'; +import { DatePipe } from '@angular/common'; +import { NotifierService } from 'angular-notifier'; + +@Component({ + selector: 'app-qc-completed-pd', + templateUrl: './qc-completed-pd.component.html', + styleUrls: ['./qc-completed-pd.component.scss'], + encapsulation: ViewEncapsulation.None + +}) + +export class QcCompletedPdComponent implements OnInit, OnChanges { + xpandStatus: boolean = false; + PRODUCTS: any[] = []; + ENTITY: any[] = []; + CITY: any[] = []; + PDType: any[] = []; + pdStatus: any[] = []; + recordStatus: boolean; + errorMessage: any[] = []; + tabStatus: string = "QC_COMPLETED"; + pipe = new DatePipe('en-US'); + todaydate:Date = new Date(); + public dataLengthTab5: number; + public dataSourceTab5 = new MatTableDataSource(); + searchForm: FormGroup; + displayedColumns = ['PDType', 'Name', 'Lenderid', 'Address', 'Status', 'Action']; + private notifier: NotifierService; + + @ViewChild(MatPaginator) paginator: MatPaginator; + @ViewChild(MatSort) sort: MatSort; + + @Input() bindFilterValue: string; + @Output() loadPdView = new EventEmitter(); + + // data source variable details + qcCompletedPdListData: any[] = []; + + // pagination variable details + length = 5; + pageIndex = 0; + pageSize = 10; + pageEvent: PageEvent; + + constructor(private _pd: PdTrigerService, public _fb: FormBuilder,notifier: NotifierService,) { + this.notifier = notifier; + + this.searchForm = this._fb.group( + { + pd_type: [null], + pd_status: ['QC_COMPLETED'], + pd_from_date: [null], + pd_to_date: [null], + pd_city: [null], + pd_products: [null], + pd_lender: [null], + pd_name: [null], + pd_applicant_id: [null], + }); + this.getcommonDropDown(); + } + + ngOnInit() { + this.recordStatus = false; + // this.loadPDDetails(); + // this.getcommonDropDown(); + } + + ngAfterViewInit() { + this.dataSourceTab5.paginator = this.paginator; + this.dataSourceTab5.sort = this.sort; + } + + // get changes for filter from parent componnet filter + ngOnChanges(changes: SimpleChanges) { + let filteredText = changes.bindFilterValue.currentValue; + filteredText = filteredText ? filteredText.trim() : filteredText; + filteredText = filteredText ? filteredText.toLowerCase() : filteredText; + this.dataSourceTab5.filter = filteredText; + } + + // load inprogress pd list + + loadPDDetails() { + this._pd.getTabStatusPdDetails(this.tabStatus) + .subscribe( + data => { + if (data.status == 200) { + this.qcCompletedPdListData = data.records; + this.dataLengthTab5 = data.records.length; + this.dataSourceTab5.data = this.qcCompletedPdListData; + } + else { + this.qcCompletedPdListData = []; + this.dataLengthTab5 = null; + this.recordStatus = true; + } + } + // , error => this.errorMessage = error); + ,error => { + this.errorMessage.push(error); + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!' + '-' + error.error_text + ' occur'); + alert(error.html_format); + }); + } + pageChange(e) { + console.log(e); + } + viewPD(pdid: string) { + this.loadPdView.next(pdid); + + } + titleCaseWord(word: string) { + if (!word) return word; + return word[0].toUpperCase() + word.substr(1).toLowerCase(); + } + + /** + * Common Search + * sriram + */ + + getcommonDropDown():void { + this._pd.getAllMasterDatas('PDSTATUS').subscribe(res => { + if (res.dataStatus == true) { + this.pdStatus = res.records.filter(status => status.isactive == 1 && status.pd_status_name == this.tabStatus); + // this.searchForm.controls['pd_status'].setValue(this.pdStatus[0]); + } + }); + + this._pd.getAllMasterDatas('PDTYPE').subscribe(res => { + if (res.dataStatus == true) { + this.PDType = res.records.filter(type => type.isactive == 1); + } + }); + // this._pd.getAllMasterDatas('CITY').subscribe(res => { + // if (res.dataStatus == true) { + // this.CITY = res.records.filter(city => city.isactive == 1); + // } + // }); + this._pd.getListOfCities().subscribe(res=> + { + if(res.dataStatus==true) + { + this.CITY = res.records; + } + }); + + this._pd.getAllMasterDatas('ENTITY').subscribe(res => { + if (res.dataStatus == true) { + this.ENTITY = res.records.filter(ent => ent.isactive == 1); + } + }); + this._pd.getAllMasterDatas('PRODUCTS').subscribe(res => { + if (res.dataStatus == true) { + this.PRODUCTS = res.records.filter(pro => pro.isactive == 1); + } + }); + } + checkDate(e) { + console.log(e); + } + searchItem() { + + if (this.searchForm.value.pd_type != null) { + + } else { + this.searchForm.value.pd_type = []; + } + + if (this.searchForm.value.pd_status != null) { + + } else { + this.searchForm.value.pd_status = []; + } + + this.searchForm.value.pd_from_date = this.pipe.transform(this.searchForm.value.pd_from_date, 'yyyy-MM-dd'); + this.searchForm.value.pd_to_date = this.pipe.transform(this.searchForm.value.pd_to_date, 'yyyy-MM-dd'); + + this._pd.overAllSearchFormDetails(this.searchForm.value).subscribe(res => { + this.xpandStatus = false; + if (res['dataStatus'] == true) { + this.dataSourceTab5 = res['records']; + this.dataSourceTab5.paginator = this.paginator; + }else{ + this.notifier.notify('warning', 'No Records Found !'); + this.dataSourceTab5.paginator['length'] = 0; + this.dataSourceTab5.paginator['pageIndex'] = 0; + this.dataSourceTab5.data = []; + } + },error => { + this.errorMessage.push(error); + this.notifier.notify('warning', 'Something Went Wrong Try Again.!' + '-' + error.error_text + ' occur'); + alert(error.html_format); + }); + } + + onReset(){ + this.searchForm.reset(); + this.loadPDDetails(); + this.xpandStatus = false; + } +} diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/scheduled-pd/scheduled-pd.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/scheduled-pd/scheduled-pd.component.html new file mode 100755 index 0000000..3bf5cf7 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/scheduled-pd/scheduled-pd.component.html @@ -0,0 +1,126 @@ + + + + + + + filter_list + + Advance Filter + + + + + +
+ + + {{type.type_name}} + +     + + + + + +     + + + + + + + + {{pro.name}} + +     + + + {{city.name}} + +     + + + {{ent.full_name}} + + + + +     + + + +
+ + +
+ +
+
+ +
+
+ + + +
{{details.pd_id}}
+ {{details.pd_type_name}} +
+
+ + + + + {{details.is_child == 0 ? details.applicant_name : 'Add On PD - ' + details.parent_pd_id }} +
+ {{details.lender_applicant_id}} -({{details.customer_segment_abbr}} ) +
+
+ + + {{details.lender_short_name}}
+ {{details.product_abbr}}/{{details.subproduct_abbr}}
+ {{details.loan_amount}} +
+
+ + + {{details.pd_date_of_initiation}}
+ {{details.city_name}}-{{details.pincode_id == 1 ? details.other_pincode : details.pincode }} +
+
+ + + {{details.pd_status}}
+ + {{details.scheduled_on}} + + +
+
+ + + + + + + +
+ +
+ + + + diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/scheduled-pd/scheduled-pd.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/scheduled-pd/scheduled-pd.component.scss new file mode 100755 index 0000000..b500faa --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/scheduled-pd/scheduled-pd.component.scss @@ -0,0 +1,19 @@ +.ic-change:hover { + transform: scale(1.1); + color: green; +} +.cell{ + display:inline !important; +} +.cellhide{ + display: none !important; +} +.center{ + text-align:center; +} +.fontsize{ + font-size:14px; +} +.toolbar-space { + flex: 0.01 0 auto; +} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/regions/regions-list/regions-list.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/scheduled-pd/scheduled-pd.component.spec.ts old mode 100644 new mode 100755 similarity index 54% rename from ng6-seed/src/app/settings/masters/component/regions/regions-list/regions-list.component.spec.ts rename to ng6-seed/src/app/personal-discussion/manage-pd/list-pd/scheduled-pd/scheduled-pd.component.spec.ts index 6b77ed4..26d8567 --- a/ng6-seed/src/app/settings/masters/component/regions/regions-list/regions-list.component.spec.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/scheduled-pd/scheduled-pd.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { RegionsListComponent } from './regions-list.component'; +import { ScheduledPdComponent } from './scheduled-pd.component'; -describe('RegionsListComponent', () => { - let component: RegionsListComponent; - let fixture: ComponentFixture; +describe('ScheduledPdComponent', () => { + let component: ScheduledPdComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ RegionsListComponent ] + declarations: [ ScheduledPdComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(RegionsListComponent); + fixture = TestBed.createComponent(ScheduledPdComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/scheduled-pd/scheduled-pd.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/scheduled-pd/scheduled-pd.component.ts new file mode 100755 index 0000000..9fa6b5e --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/scheduled-pd/scheduled-pd.component.ts @@ -0,0 +1,225 @@ +import { Component,ViewChild, OnInit, ViewEncapsulation, Input, Output, EventEmitter, OnDestroy, AfterViewInit, OnChanges, SimpleChanges } from '@angular/core'; +import { PdTrigerService } from './../../../pd-service/pd-triger.service'; +import { MatPaginator, MatSort, MatTableDataSource, PageEvent } from '@angular/material'; +import { FormBuilder, FormGroup } from '@angular/forms'; +import { DatePipe } from '@angular/common'; +import { NotifierService } from 'angular-notifier'; + +@Component({ + selector: 'app-scheduled-pd', + templateUrl: './scheduled-pd.component.html', + styleUrls: ['./scheduled-pd.component.scss'], + encapsulation: ViewEncapsulation.None +}) +export class ScheduledPdComponent implements OnInit, OnChanges { + xpandStatus: boolean = false; + PRODUCTS: any[]=[]; + ENTITY: any[]=[]; + CITY: any[]=[]; + PDType: any[]=[]; + pdStatus: any[]=[]; + recordStatus: boolean; + errorMessage:any[]=[]; + tabStatus:string="SCHEDULED"; + pipe = new DatePipe('en-US'); + searchForm:FormGroup; + todaydate:Date = new Date(); + public dataLengthTab3: number; + public dataSourceTab3 = new MatTableDataSource(); + private notifier: NotifierService; + + displayedColumns = ['PDType','Name','Lenderid','Address','Status','Action']; + + @ViewChild(MatPaginator) paginator: MatPaginator; + @ViewChild(MatSort) sort: MatSort; + + @Input() bindFilterValue: string; + @Output() loadPdView = new EventEmitter(); + + // data source variable details + scheduledPdListData:any[] = []; + + // pagination variable details + length = 5; + pageIndex = 0; + pageSize = 10; + pageEvent: PageEvent; + + constructor(private _pd: PdTrigerService,public _fb:FormBuilder,notifier: NotifierService,) { + this.notifier = notifier; + + this.searchForm = this._fb.group( + { + pd_type:[null], + pd_status:['SCHEDULED'], + pd_from_date:[null], + pd_to_date:[null], + pd_city:[null], + pd_products:[null], + pd_lender:[null], + pd_name:[null], + pd_applicant_id:[null], + }); + this.getcommonDropDown(); + } + + ngOnInit() { + this.recordStatus=false; + // this.loadPDDetails(); + //this.getcommonDropDown(); + } + ngAfterViewInit() { + this.dataSourceTab3.paginator = this.paginator; + this.dataSourceTab3.sort = this.sort; + } + + // get changes for filter from parent componnet filter + ngOnChanges(changes: SimpleChanges) { + // let filteredText = changes.bindFilterValue.currentValue; + // filteredText = filteredText ? filteredText.trim() : filteredText; + let filteredText = changes.bindFilterValue.currentValue ? changes.bindFilterValue.currentValue.trim() : changes.bindFilterValue.currentValue; + filteredText = filteredText ? filteredText.toLowerCase() : filteredText; + this.dataSourceTab3.filter = filteredText; +} + +// load inprogress pd list + + loadPDDetails() { + this._pd.getTabStatusPdDetails(this.tabStatus) + .subscribe( + data => { + if (data.status == 200) { + this.scheduledPdListData = data.records; + this.dataLengthTab3 = data.records.length; + this.dataSourceTab3.data = this.scheduledPdListData; + } + else{ + this.scheduledPdListData=[]; + this.dataLengthTab3 = null; + this.recordStatus=true; + } + } + // , error => this.errorMessage = error); + ,error => { + this.errorMessage.push(error); + alert(error.html_format); + }); + } + pageChange(e) { + console.log(e); + } + viewPD(pdid:string){ + this.loadPdView.next(pdid); + + } + titleCaseWord(word:string) { + if (!word) return word; + return word[0].toUpperCase() + word.substr(1).toLowerCase(); + } +/** + * Common Search + * sriram + */ + + getcommonDropDown() : void + { + this._pd.getAllMasterDatas('PDSTATUS').subscribe(res=> + { + if(res.dataStatus==true) + { + this.pdStatus = res.records.filter(status=>status.isactive==1 && status.pd_status_name==this.tabStatus); + // this.searchForm.controls['pd_status'].setValue(this.pdStatus[0]); + } + }); + + this._pd.getAllMasterDatas('PDTYPE').subscribe(res=> + { + if(res.dataStatus==true) + { + this.PDType = res.records.filter(type=>type.isactive==1); + } + }); + // this._pd.getAllMasterDatas('CITY').subscribe(res=> + // { + // if(res.dataStatus==true) + // { + // this.CITY = res.records.filter(city=>city.isactive==1); + // } + // }); + this._pd.getListOfCities().subscribe(res=> + { + if(res.dataStatus==true) + { + this.CITY = res.records; + } + }); + + this._pd.getAllMasterDatas('ENTITY').subscribe(res=> + { + if(res.dataStatus==true) + { + this.ENTITY = res.records.filter(ent=>ent.isactive==1); + } + }); + this._pd.getAllMasterDatas('PRODUCTS').subscribe(res=> + { + if(res.dataStatus==true) + { + this.PRODUCTS = res.records.filter(pro=>pro.isactive==1); + } + }); + } + checkDate(e) + { + console.log(e); + } + searchItem() + { + + if(this.searchForm.value.pd_type !=null) + { + + }else + { + this.searchForm.value.pd_type = []; + } + + if(this.searchForm.value.pd_status !=null) + { + + }else + { + this.searchForm.value.pd_status = []; + } + + this.searchForm.value.pd_from_date = this.pipe.transform(this.searchForm.value.pd_from_date,'yyyy-MM-dd'); + this.searchForm.value.pd_to_date = this.pipe.transform(this.searchForm.value.pd_to_date,'yyyy-MM-dd'); + + this._pd.overAllSearchFormDetails(this.searchForm.value).subscribe(res=> + { + this.xpandStatus = false; + if(res['dataStatus']==true) + { + this.dataSourceTab3 = res['records']; + this.dataSourceTab3.paginator = this.paginator; + }else{ + this.notifier.notify('warning', 'No Records Found !'); + this.dataSourceTab3.paginator['length'] = 0; + this.dataSourceTab3.paginator['pageIndex'] = 0; + this.dataSourceTab3.data = []; + } + },error => { + this.errorMessage.push(error); + this.notifier.notify('warning', 'Something Went Wrong Try Again.!' + '-' + error.error_text + ' occur'); + alert(error.html_format); + }); + } + + onReset(){ + this.searchForm.reset(); + this.loadPDDetails(); + this.xpandStatus = false; + } + +} + diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/smart-pd-allocation/smart-pd-allocation.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/smart-pd-allocation/smart-pd-allocation.component.html new file mode 100755 index 0000000..04422b6 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/smart-pd-allocation/smart-pd-allocation.component.html @@ -0,0 +1,103 @@ +

+
+ {{pageTitle}} +
+
+ + +
+ +

+ + + +
+ + + +
+
+
+ + {{officer.first_name}} + +
+
+ {{officer.mobile_no}} +
+ +
+ +
+ +
+ +
+ + +

No central officer available.

+
+
+
+ + +
+ + +
+
+
+ + {{excutive.first_name}} + +
+
+ {{excutive.mobile_no}} +
+
+ PD in hand - {{excutive.count}} + +
+
+ +
+ +
+ +
+ + +

No executive available.

+
+
+
+ + + + + + +
+ + +
+

Central Officer: {{selectedCentralItem.first_name | titlecase }}

+

Executive: {{selectedExcutiveItem.first_name | titlecase}}

+
+
+ + + +
+ +
+ + + + + + + \ No newline at end of file diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/smart-pd-allocation/smart-pd-allocation.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/smart-pd-allocation/smart-pd-allocation.component.scss new file mode 100755 index 0000000..de092b6 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/smart-pd-allocation/smart-pd-allocation.component.scss @@ -0,0 +1,14 @@ +.example-full-width{ + width: 100%; +} +.view_more { + cursor: pointer; + color: #e00201 !important; + // text-decoration-line: underline; + // text-decoration-style: dotted; + // font-weight: bold; + +} +.text_change { + color: #e00201 !important; +} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/designation/designation-dialog/designation-dialog.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/smart-pd-allocation/smart-pd-allocation.component.spec.ts old mode 100644 new mode 100755 similarity index 51% rename from ng6-seed/src/app/settings/masters/component/designation/designation-dialog/designation-dialog.component.spec.ts rename to ng6-seed/src/app/personal-discussion/manage-pd/list-pd/smart-pd-allocation/smart-pd-allocation.component.spec.ts index e49243a..7854427 --- a/ng6-seed/src/app/settings/masters/component/designation/designation-dialog/designation-dialog.component.spec.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/smart-pd-allocation/smart-pd-allocation.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { DesignationDialogComponent } from './designation-dialog.component'; +import { SmartPdAllocationComponent } from './smart-pd-allocation.component'; -describe('DesignationDialogComponent', () => { - let component: DesignationDialogComponent; - let fixture: ComponentFixture; +describe('SmartPdAllocationComponent', () => { + let component: SmartPdAllocationComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ DesignationDialogComponent ] + declarations: [ SmartPdAllocationComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(DesignationDialogComponent); + fixture = TestBed.createComponent(SmartPdAllocationComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/smart-pd-allocation/smart-pd-allocation.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/smart-pd-allocation/smart-pd-allocation.component.ts new file mode 100755 index 0000000..2b3c9c4 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/smart-pd-allocation/smart-pd-allocation.component.ts @@ -0,0 +1,108 @@ +import { Component, OnInit, Inject } from '@angular/core'; +import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { FormBuilder, FormGroup, Validators, FormControl, FormArray } from '@angular/forms'; +import { NotifierService } from 'angular-notifier'; +import { PdTrigerService } from '../../../pd-service/pd-triger.service'; +// import { AllocationViewMoreComponent } from './../allocation-view-more/allocation-view-more.component'; + +@Component({ + selector: 'app-smart-pd-allocation', + templateUrl: './smart-pd-allocation.component.html', + styleUrls: ['./smart-pd-allocation.component.scss'] +}) +export class SmartPdAllocationComponent implements OnInit { + + public pageTitle: string = "Allocate To Central Officer"; + public _pdAllocationForm: FormGroup; + public pdCentralOfficerList: any = []; + public pdExcutiveList: any = []; + errorMessage: any; + notifier : NotifierService; + // isDisabled: boolean; + showFirstCard: boolean; + showSecondCard: boolean; + selectedCentralItem: any; + selectedExcutiveItem: any; + checkFirstItem:string =''; + checkSecondItem:string =''; + + constructor( notifier: NotifierService, + private _fb: FormBuilder, private dialog: MatDialog, + private dialogRef: MatDialogRef, + private _pd: PdTrigerService, + @Inject(MAT_DIALOG_DATA) public data: any) { + this.notifier=notifier; + } + + ngOnInit() { + this.showFirstCard=true; + // this.isDisabled=true; + this.getPDOfficerList(this.data.pd_id); + } + +// pd officer list + getPDOfficerList(pdID:string){ + this._pd.getPdOfficerList(pdID).subscribe( + data => { + if (data.status == 200) { + this.pdCentralOfficerList= data.records.centralpdofficers; + this.pdExcutiveList= data.records.pdofficers.filter(item => item.fk_pd_type_id == 2); + } + }, error => this.errorMessage = error); + + } + + /** To update pd officer*/ + updateAllocation(centralOfficer:any,excutiveOfficer:any) { + if(!centralOfficer){ + this.notifier.notify('warning', 'Please Choose Central Officer.!'); + } + else if(!excutiveOfficer){ + this.notifier.notify('warning', 'Please Choose Executive.!'); + } + else { + let updateData = { + "pd_id":this.data.pd_id, + "central_pd_officer_id":centralOfficer.fk_user_id, + "executive_id":excutiveOfficer.fk_user_id, + } + this._pd.updatePdOfficer(updateData).subscribe( + result => { + if (result.status == 200) { + this.notifier.notify('success', 'PD Allocated.!'); + this.dialogRef.close(); + } + else { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + this.errorMessage = "Something Wents Wrong Try Again.!"; + } + }, error => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + this.errorMessage = "Some Thing Wents Wrong Try Again.!"; + // this.dialogRef.close(); + }); + } + } + getFirstCard() { + this.showSecondCard=false; + this.showFirstCard=true; + this.pageTitle = "Allocate To Central Officer"; + this.checkFirstItem = this.selectedCentralItem ? this.selectedCentralItem.fk_user_id : ''; + + } + getSecondCard(){ + this.showFirstCard=false; + this.showSecondCard=true; + this.pageTitle = "Allocate To Executive"; + this.checkSecondItem = this.selectedExcutiveItem ? this.selectedExcutiveItem.fk_user_id : ''; + + + } +/** For Popup Close Button */ + closeAllocationComponent(): void { + this.dialogRef.close(); + } + + // officer view more + +} diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/tele-pd-allocation/tele-pd-allocation.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/tele-pd-allocation/tele-pd-allocation.component.html new file mode 100755 index 0000000..3149421 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/tele-pd-allocation/tele-pd-allocation.component.html @@ -0,0 +1,67 @@ +

+
+ {{pageTitle}} +
+
+ + +
+ +

+ + + + + + +
+
+
+ + {{officer.first_name}} + +
+
+ {{officer.mobile_no}} +
+ +
+ +
+ +
+ +
+ + +

No central officer available.

+
+
+ + + +
+ + +
+

Central Officer: {{selectedItem.first_name}}

+
+
+ +
+ +
+ + + + + + + + + + + diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/tele-pd-allocation/tele-pd-allocation.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/tele-pd-allocation/tele-pd-allocation.component.scss new file mode 100755 index 0000000..de092b6 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/tele-pd-allocation/tele-pd-allocation.component.scss @@ -0,0 +1,14 @@ +.example-full-width{ + width: 100%; +} +.view_more { + cursor: pointer; + color: #e00201 !important; + // text-decoration-line: underline; + // text-decoration-style: dotted; + // font-weight: bold; + +} +.text_change { + color: #e00201 !important; +} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-list/relation-ship-list.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/tele-pd-allocation/tele-pd-allocation.component.spec.ts old mode 100644 new mode 100755 similarity index 53% rename from ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-list/relation-ship-list.component.spec.ts rename to ng6-seed/src/app/personal-discussion/manage-pd/list-pd/tele-pd-allocation/tele-pd-allocation.component.spec.ts index 9bc48ca..4ff90d4 --- a/ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-list/relation-ship-list.component.spec.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/tele-pd-allocation/tele-pd-allocation.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { RelationShipListComponent } from './relation-ship-list.component'; +import { TelePdAllocationComponent } from './tele-pd-allocation.component'; -describe('RelationShipListComponent', () => { - let component: RelationShipListComponent; - let fixture: ComponentFixture; +describe('TelePdAllocationComponent', () => { + let component: TelePdAllocationComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ RelationShipListComponent ] + declarations: [ TelePdAllocationComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(RelationShipListComponent); + fixture = TestBed.createComponent(TelePdAllocationComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/tele-pd-allocation/tele-pd-allocation.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/tele-pd-allocation/tele-pd-allocation.component.ts new file mode 100755 index 0000000..e250ba7 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/tele-pd-allocation/tele-pd-allocation.component.ts @@ -0,0 +1,80 @@ +import { Component, OnInit, Inject } from '@angular/core'; +import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { FormBuilder, FormGroup, Validators, FormControl, FormArray } from '@angular/forms'; +import { NotifierService } from 'angular-notifier'; +import { PdTrigerService } from '../../../pd-service/pd-triger.service'; +// import { AllocationViewMoreComponent } from './../allocation-view-more/allocation-view-more.component'; + +@Component({ + selector: 'app-tele-pd-allocation', + templateUrl: './tele-pd-allocation.component.html', + styleUrls: ['./tele-pd-allocation.component.scss'] +}) +export class TelePdAllocationComponent implements OnInit { + public pageTitle: string = "Allocate To Central Officer"; + public _pdAllocationForm: FormGroup; + public pdCentralOfficerList: any = []; + errorMessage: any; + notifier : NotifierService; + selectedItem:any; + isDisabled: boolean; + constructor( notifier: NotifierService, + private _fb: FormBuilder, private dialog: MatDialog, + private dialogRef: MatDialogRef, + private _pd: PdTrigerService, + @Inject(MAT_DIALOG_DATA) public data: any) { + this.notifier=notifier; + } + + ngOnInit() { + this.isDisabled=true; + this.getPDOfficerList(this.data.pd_id); + + } + +// pd officer list + getPDOfficerList(pdID:string){ + this._pd.getPdOfficerList(pdID).subscribe( + data => { + if (data.status == 200) { + this.pdCentralOfficerList= data.records.centralpdofficers; + + } + }, error => this.errorMessage = error); + + } + + /** To update pd officer*/ + updatePdOfficer(allocateDetails:any) { + if(!allocateDetails){ + this.notifier.notify('warning', 'Please Choose Central Officer.!'); + } + else { + let updateData = { + "pd_id":this.data.pd_id, + "central_pd_officer_id":allocateDetails.fk_user_id, + } + this._pd.updatePdOfficer(updateData).subscribe( + result => { + if (result.status == 200) { + this.notifier.notify('success', 'PD Allocated.!'); + this.dialogRef.close(); + } + else { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + this.errorMessage = "Something Wents Wrong Try Again.!"; + } + }, error => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + this.errorMessage = "Some Thing Wents Wrong Try Again.!"; + // this.dialogRef.close(); + }); + } + } +/** For Popup Close Button */ + closeAllocationComponent(): void { + this.dialogRef.close(); + } + // officer view more +} + diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.html new file mode 100755 index 0000000..a5c7d9d --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.html @@ -0,0 +1,395 @@ + + + + +
+
+ + + + +
+
+
+ {{master.pd_type_name}} +
+
+
+
+ +
+
+
+ {{master.lender_short_name}} +
+
+ {{master.branch_name}} +
+
+
+
+ + + +
+
+
+ {{master.lender_applicant_id}} +
+
+ {{master.pd_date_of_initiation}} +
+
+
+
+ + +
+
+
+ {{master.product_name}}
+ {{master.subproduct_name}} +
+ +
+
+
+ + +
+
+
+ Loan Amount +
+
+ {{master.loan_amount}}
+
+
+
+
+ + +
+
{{master.loan_amount | numberToWords}} Only
+ +
+
+ +
+ +
+ Lender Contact Details + + + {{master.pd_contact_person}} + + + {{master.pd_contact_mobileno}} + + +
+
+
+
+
+
+
+ + + + + + +
+
+ + +
+
+ + + +
+
+ + +
+
+
+ {{master.pd_status==pdStatusCheck.QC_COMPLETED ? 'QC Completed' : master.pd_status==pdStatusCheck.ADD_ON_PENDING ? 'Completed' : master.pd_status | titlecase}} +
+
+ + + + +
+
+
+
+
+
+
+ {{master.pd_allocated_to | titlecase}} +
+
+ {{master.executive_name | titlecase}} +
+
+ {{master.centralofficer | titlecase}} +
+
+
+ {{master.scheduled_on}} +
+
+
+
+
+
+
+ + + + + + + +
+
+
+ {{addresses.addtional_pd_data[0].pd_status==pdStatusCheck.QC_COMPLETED ? 'QC Completed' : addresses.addtional_pd_data[0].pd_status==pdStatusCheck.ADD_ON_PENDING ? 'Completed' : addresses.addtional_pd_data[0].pd_status | titlecase}} +
+
+ + + +
+
+
+
+
+ {{addresses.addtional_pd_data[0].pd_allocated_to | titlecase}} +
+
+ {{addresses.addtional_pd_data[0].executive_name | titlecase}} +
+
+ {{addresses.addtional_pd_data[0].centralofficer | titlecase}} +
+
+
+ {{addresses.addtional_pd_data[0].scheduled_on}} +
+
+
+
+
+
+ +
+
+ + +
+ +
+ + +
+
+ + {{addresses.addressline1}},
{{addresses.city_name}},
{{addresses.state_name}}-{{addresses.pincode_id == 1 ? addresses.other_pincode : addresses.pincode }}
+
+
+
+ people + {{addresses.addtional_pd_data[0].customer_segment_abbr}} +
+
+ + + +
+
+ +
+ + + Remarks + +
+ +

{{master.remarks}}

+
+
+
+ +
+ +
+
+ +

PD Details

+ + + Applicants + + +
+ Applicants +
+
+ +
+
+ + + + +

+ +  {{applicant.applicant_name}} +     + + +  {{applicant.mobile_no}} +     + + +  {{applicant.landline}} + + ( Applicant ) + {{applicant.relation_name}} +

+
+
+
+ + +

No Applicant

+
+
+
+ + Additional Requirements + + + +
+ Additional Requirements +
+
+ +
+
+ + + +

{{requirement.add_requirement}}

+
+
+
+ + +

No Additional Requirements

+
+
+
+ + Documents + + + +

No Document

+
+
+
+ + QC Notes +
+
QC Notes
+
+

+ {{ pdMasterData[0]?.qc_remarks}}

+ +
+ + QC Feedback +
+
+
QC Feedback
+
+
+
+
+ {{ pdMasterData[0]?.qc_rating}} +
+
+ +
+
+
+
+
+ {{ pdMasterData[0]?.qc_feedback}} +
+
+ + +

No Feedback

+
+
+
+ + PD History +
+ + + {{master.time}}  + {{master.user}}
{{master.log}} +
+
+ {{metadata.display_name}} : {{metadata.display_value}}
+
+
+
+ +
+ +
+
+ + +

No History

+
+
+
+
+
+
+
\ No newline at end of file diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.scss new file mode 100755 index 0000000..62f3666 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.scss @@ -0,0 +1,53 @@ + +.cardEdit { + float:right; + padding-top:3%; +} +.minheight { + min-height: 100%; +} +::ng-deep .body-container{ + padding: 0rem !important; +} + +.metaDataStyle{ + height:89px !important; +} + +// .headerdesign{ +// border-radius: 5px !important; +// // border-bottom-left-radius: 5px !important; +// // border-bottom-right-radius: 5px !important; +// box-shadow: 0 5px 11px 0 rgba(0,0,0,.18), 0 4px 15px 0 rgba(0,0,0,.15) !important; +// } + +:host { + margin-left: -5px; + margin-right: -5px; + margin-top: -5px; + display: block; +} +.wrapper { + margin: 6px; +} + +.content-data{ + h2{ + font-size: 1.5rem; + } +} +@media(max-width:767px){ + .profile-center{ + text-align: center; + } +} + +// .mat-list .mat-list-item.center .mat-list-item-content{ +// justify-content: center; +// // color: #fff +// } +// .mat-list .mat-list-item.center .mat-list-text>*{ +// margin: 0 auto 0 0; +// } + + diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.spec.ts new file mode 100755 index 0000000..51de6af --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ViewPdComponent } from './view-pd.component'; + +describe('ViewPdComponent', () => { + let component: ViewPdComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ViewPdComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ViewPdComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.ts new file mode 100755 index 0000000..edc1877 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/view-pd/view-pd.component.ts @@ -0,0 +1,413 @@ +import { Component, OnInit, ViewEncapsulation, EventEmitter, Input, Output, OnDestroy, Pipe, PipeTransform } from '@angular/core'; +import { FormBuilder, FormGroup, Validators, FormControl, FormArray } from '@angular/forms'; +import { ActivatedRoute, Router } from '@angular/router'; +import { MatDialog } from '@angular/material'; +import { DatePipe } from '@angular/common'; +import { NotifierService } from 'angular-notifier'; +import { PdTrigerService } from '../../../pd-service/pd-triger.service'; +// import { PdAllocationComponent } from '../pd-allocation/pd-allocation.component'; +import { SmartPdAllocationComponent } from '../smart-pd-allocation/smart-pd-allocation.component'; +import { TelePdAllocationComponent } from './../tele-pd-allocation/tele-pd-allocation.component'; +import { ListPdComponent } from '../list-pd.component'; +// import { SchedulePdComponent } from '../schedule-pd/schedule-pd.component'; +import { EditPdApplicantComponent } from '../edit-pd-applicant/edit-pd-applicant.component'; +import { EditPdMasterComponent } from '../edit-pd-master/edit-pd-master.component'; +import { PdRequirementComponent } from '../pd-requirement/pd-requirement.component'; +import { PdStatusChangeDialogueComponent } from './../pd-status-change-dialogue/pd-status-change-dialogue.component'; +import { InitiateAdditionalPdComponent } from './../initiate-additional-pd/initiate-additional-pd.component'; + +/**sweet alert */ +import Swal from 'sweetalert2'; + +@Component({ + selector: 'app-view-pd', + templateUrl: './view-pd.component.html', + styleUrls: ['./view-pd.component.scss'], + encapsulation: ViewEncapsulation.None +}) +export class ViewPdComponent implements OnInit, OnDestroy { + pipe = new DatePipe('en-US'); + private notifier: NotifierService; + public userRoleID = +localStorage.getItem('user_role'); + errorMessage: any; + pdMasterData: any = []; + pdAddressesData: any = []; + pdApplicantData: any = []; + pdDocumentsData: any = []; + masterPdLogsData: any = []; + applicantPDLogsData: any = []; + pdAdditionalReqData: any = []; + FilteredFieldNames: any = []; + localcount: any; + localstring: any; + localMandatoryFields: any = + [{ 'backEnd_FieldName': "fk_lender_id", 'frontEnd_FieldName': "Lender Name" }, + { 'backEnd_FieldName': "lender_applicant_id", 'frontEnd_FieldName': "Loan Applicant ID" }, + { 'backEnd_FieldName': "fk_product_id", 'frontEnd_FieldName': "Product Name" }, + { 'backEnd_FieldName': "fk_subproduct_id", 'frontEnd_FieldName': "Sub Product Name" }, + { 'backEnd_FieldName': "fk_pd_type", 'frontEnd_FieldName': "PD Type" }, + { 'backEnd_FieldName': "fk_customer_segment", 'frontEnd_FieldName': "Customer Segment" }, + { 'backEnd_FieldName': "loan_amount", 'frontEnd_FieldName': "Loan Amount" }, + { 'backEnd_FieldName': "pd_contact_person", 'frontEnd_FieldName': "Lender Contact Person" }, + { 'backEnd_FieldName': "pd_contact_mobileno", 'frontEnd_FieldName': "Lender's Mobile Number" }, + { 'backEnd_FieldName': "pd_branch_id", 'frontEnd_FieldName': "Branch" }, + { 'backEnd_FieldName': "pd_contact_landline", 'frontEnd_FieldName': "Lender's Landline Number" }, + { 'backEnd_FieldName': "main_applicant", 'frontEnd_FieldName': "Applicant Master" }]; + // localAddressMandortyField: any = [ + // { 'backEnd_FieldName': "addressline1", 'frontEnd_FieldName': "Address at which PD is to be done" }, + // { 'backEnd_FieldName': "fk_city", 'frontEnd_FieldName': "City" }, + // { 'backEnd_FieldName': "fk_state", 'frontEnd_FieldName': "State" }, + // { 'backEnd_FieldName': "pincode", 'frontEnd_FieldName': "Pincode" } + // ]; + viewID: string; + viewParams: any; + destroyType: number = 1; + currentPDStatus: string; + enableStartPD: boolean; + CustomerSegmentAbbr:string; + // create values for status check + pdStatusCheck: any = { + "DRAFT": 'DRAFT', + "TRIGGERED": 'TRIGGERED', + "ALLOCATED": 'ALLOCATED', + "SCHEDULED": 'SCHEDULED', + "INPROGRESS": 'INPROGRESS', + "COMPLETED": 'COMPLETED', + "ADD_ON_PENDING": 'ADD_ON_PENDING', + "QC_COMPLETED": 'QC_COMPLETED', + }; + + mandatoryFieldsValidations: any = []; + + // roles checks for enables events + roleAccessDetails:any; + + + // @Input() childData: string; + // @Output() loadParent = new EventEmitter(); + public _EditPDtriggerForm: FormGroup; + constructor(notifier: NotifierService, private dialog: MatDialog, private _fb: FormBuilder, + private _pd: PdTrigerService, private route: ActivatedRoute, private router: Router, private ListPdComponent: ListPdComponent) { + this.notifier = notifier; + this.enableStartPD = false; + this.roleAccessDetails=this._pd.getRoleAccessDetails(); + } + + ngOnInit() { + this.ListPdComponent.showListView(false); + this.route.params.subscribe(params => { + this.viewID = params['pdid']; + }); + this.viewPdDetails(this.viewID); + } + pd_QC_Rating: Number; + + viewPdDetails(editID: string) { + this.pdMasterData = []; + this._pd.editPdDetails(editID).subscribe( + data => { + if (data.status == 200) { + let masterData: any = data.records.pd_master_details; + this.pdMasterData.push(masterData[0]); + this.mandatoryFieldsValidations = masterData[1].mandatory_fields; + this.pd_QC_Rating = Number(this.pdMasterData.qc_rating); + this.pdApplicantData = data.records.applicants_details; + this.pdApplicantData = this.pdApplicantData.filter(appt => appt.applicant_type != 2); + this.CustomerSegmentAbbr = this.pdMasterData[0].customer_segment_abbr; + this.pdDocumentsData = data.records.pd_documnets; + this.masterPdLogsData = Object.keys(data.records.pd_logs.master).map(function (key) { + return data.records.pd_logs.master[key]; + }); + + this.pdMasterData[0].addresses = data.records.pd_address.filter(item => item.isactive == 1); + + this.currentPDStatus = data.records.pd_master_details[0].pd_status; + this.pdAdditionalReqData = data.records.pd_additional_requirements; + // enable pd start time + if (data.records.pd_master_details[0].scheduled_on_for_validation) { + let courrentDateTime: string = this.pipe.transform(new Date(), 'yyyy-MM-dd HH:mm'); + let scheduledDateTime: string = data.records.pd_master_details[0].scheduled_on_for_validation; + let diffInMs: number = Date.parse(courrentDateTime) - Date.parse(scheduledDateTime); + let diffInHours: number = Math.floor(diffInMs / 1000 / 60 / 60); + if (diffInHours >= -4) { + this.enableStartPD = true; + } + else { + this.enableStartPD = false; + } + } + else { + this.enableStartPD = false; + } + } + }, error => this.errorMessage = error); + } + + loadPdListCompoent() { + this.destroyType = 2; + this.router.navigate(['../../'], { relativeTo: this.route }); + this.ListPdComponent.pdListLoad(true); + } + + // isactiveBranch(id: number,isactive : number){ + + // let ActiveDatas = isactive == 0 + // ? { 'branch_id':id,'isactive': '1'} + // : { 'branch_id':id,'isactive': '0'} + + // //if is active '1' have TO deactive So deactive messages + // if(isactive == 1){ + // this.SwalButtonText = 'Yes, deactivate it!'; + // this.SwalMessage = 'Deactivated!'; + // } + // else{ + // this.SwalButtonText = 'Yes, activate it!'; + // this.SwalMessage = 'Activated!'; + // } + + // Swal({ + // title: 'Are you sure?', + // type: 'warning', + // showCancelButton: true, + // confirmButtonColor: '#3085d6', + // cancelButtonColor: '#d33', + // confirmButtonText: this.SwalButtonText + // }).then((result) => { + // if (result.value) { + // this._mastersService.editMasterDetails(ActiveDatas,'BRANCH') + // .subscribe(dataresult=>{ + // if (dataresult.dataStatus == true){ + // Swal(this.SwalMessage,'success'); + // this.getBranch(); + // } + // else{ + // Swal("Sorry Try Again !"); + // } + // }); + // } + // else{ + // this.getBranch(); + // } + // }) + // } + + // Maponclick(master: any) { + // let url = "https://www.google.com/maps/place/" + // let concat_url = url + master.addressline1 + '/' + master.city_name + ',' + master.pincode + ',' + master.state_name; + // window.open(concat_url, '_blank'); + // } + + editPdMaster(masterData: any, flag) { + let record = { + "records": masterData, + "applicantLength": this.pdApplicantData.length + } + const dialogPDMaster = this.dialog.open(EditPdMasterComponent, { + data: record, + position: { right: '0' }, + width: '80%', + disableClose: true + }); + dialogPDMaster.afterOpen() + .subscribe(dataresult => { + if (flag == 1) { + let ffd: any = []; + this.FilteredFieldNames.forEach(field => { + ffd.push(field.frontEnd_FieldName); + }); + + // this.notifier.notify('info', 'Please Fill ' + ffd.join(' , ') + ' Fields.!'); + Swal({ + title: 'Please complete the below details', + confirmButtonColor: "red", + // html:true, + //text:'Please Fill' + ffd.forEach(data=>{ data }) + ' ! ', + text: ffd.join(' , ') + }); + // Swal({ + // title: "HTML Title!", + // text: "...
" + flag + "
...", + + // }) ; + } + }); + dialogPDMaster.afterClosed().subscribe(dataresult => { + + this.viewPdDetails(this.viewID) + }); + } + editPdApplicant(applicantData: any,CSAbbr : any) { + let setPdDetails = { + "pdID": this.viewID, + "records": applicantData, + "SegmentAbbr":CSAbbr, + } + const dialogApplicant = this.dialog.open(EditPdApplicantComponent, { + data: setPdDetails, + position: { right: '0' }, + width: '60%', + disableClose: true + }); + dialogApplicant.afterClosed() + .subscribe(dataresult => { + // this.notifier.notify('success', 'Successfully allocated.!'); + this.viewPdDetails(this.viewID) + }); + } + // edit pd addtional requirements + editAdditionalRequirement(requirementData: any) { + let setPdDetails = { + "pdID": this.viewID, + "records": requirementData + } + const dialogRequirement = this.dialog.open(PdRequirementComponent, { + data: setPdDetails, + position: { right: '0' }, + width: '60%', + disableClose: true + }); + dialogRequirement.afterClosed() + .subscribe(dataresult => { + // this.notifier.notify('success', 'Successfully allocated.!'); + this.viewPdDetails(this.viewID) + }); + } + // pd allocation to + + + // pd schedule details + + // start pd + getPDStart(pdDetails: any, status: string) { + this.destroyType = 3; + if (status == this.pdStatusCheck.ALLOCATED || status == this.pdStatusCheck.SCHEDULED) { + const dialogRef = this.dialog.open(PdStatusChangeDialogueComponent, { + data: { pdid: pdDetails.assigned_pd, pd_status: this.pdStatusCheck.INPROGRESS }, + disableClose: true, + minWidth: '30%', + maxWidth: '40%', + }); + dialogRef.afterClosed() + .subscribe(dataresult => { + if (dataresult.update_status == true) { + this.router.navigate(['../../startpd',pdDetails.assigned_pd], { relativeTo: this.route }); + } + }); + } + else { + this.router.navigate(['../../startpd', pdDetails.assigned_pd], { relativeTo: this.route }); + } + } + + getPDIDReport(pdID: any) { + this.destroyType = 3; + this.router.navigate(['../../pd_report', pdID], { relativeTo: this.route }); + } + + // // direct trigger the pd + // directTriggerPD(data: any,masterdetail : any){ + // let pdid = masterdetail.pd_id; + + // if(data.length>0){ + // let getValues = data.filter(val =>val).map(Val => Val); + // this.FilteredFieldNames = getValues.map(x => { + // let findIndex = this.localMandatoryFields.map(val => val.backEnd_FieldName).indexOf(x); + // return this.localMandatoryFields[findIndex]; + // }); + // this.localcount = 1; + // this.editPdMaster(masterdetail); + // } + + // else { + // let lenderMasterArray = { + // "pd_id": pdid, + // } + // this._pd.editPdMasterDetails(lenderMasterArray, this.pdStatusCheck.TRIGGERED).subscribe(result => { + // if (result.status == 200) { + // this.notifier.notify('success', 'PD Status Updated.'); + // this.viewPdDetails(this.viewID); + // } + // else { + // this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + // }//else + // }, error => { + // this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + // });//error closed + // } + + // } + + + // direct trigger the pd + directTriggerPD(data: any, masterdetail: any) { + + let pdid = masterdetail.pd_id; + let getValues = data.filter(val => val).map(Val => Val); + this.FilteredFieldNames = getValues.map(x => { + let findIndex = this.localMandatoryFields.map(val => val.backEnd_FieldName).indexOf(x); + return this.localMandatoryFields[findIndex]; + }); + + if (data.length > 0) { + this.localcount = 1; + this.editPdMaster(masterdetail, this.localcount); + } + else { + let lenderMasterArray = { "pd_id": pdid } + this._pd.editPdMasterDetails(lenderMasterArray, this.pdStatusCheck.TRIGGERED).subscribe(result => { + if (result.status == 200) { + this.notifier.notify('success', 'PD Status Updated.'); + this.viewPdDetails(this.viewID); + } + else { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + } + }, error => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + }); + } + + } + + // this is for initiate additional pd + initiateAddtionalPD(parentData: any, childData: any, type: boolean){ + let masterApplicantID = '' + if(parentData.main_applicant){ + masterApplicantID = this.pdApplicantData.filter(appt => appt.applicant_name == parentData.main_applicant)[0].pd_co_applicant_id;} + const dialogRef = this.dialog.open(InitiateAdditionalPdComponent, { + data: { "type":type,"pd_id":parentData.pd_id,"fk_customer_segment":parentData.fk_customer_segment, "pd_status":parentData.pd_status, "pd_address_id": childData.pd_address_id,"applicant_id":masterApplicantID,"applicants_details":this.pdApplicantData}, + disableClose: true, + // position: { right: '0' }, + minWidth: '40%', + maxWidth: '60%', + }); + dialogRef.afterClosed() + .subscribe(dataresult => { + if (dataresult.update_status == true) { + this.viewPdDetails(this.viewID) + } + }); + } + + + // updateViewComponent(editBack:string) { + + // if(editBack=='1'){ + // this.showEditMasterComponent=!this.showEditMasterComponent + // } + // else if(editBack=='2'){ + // this.showEditApplicantComponent=!this.showEditApplicantComponent + // } + // else if(editBack=='3'){ + // this.showEditMasterComponent=!this.showEditMasterComponent + // } + // this.viewPdDetails(this.childData); + // } + ngOnDestroy(): void { + if (this.destroyType == 1) { + this.ListPdComponent.pdListLoad(true); + } + + } + +} \ No newline at end of file diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.component.html new file mode 100755 index 0000000..92d06be --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.component.html @@ -0,0 +1,3 @@ +

+ manage-pd works! +

diff --git a/ng6-seed/src/app/settings/masters/component/uom/uom-dialog/uom-dialog.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.component.scss old mode 100644 new mode 100755 similarity index 100% rename from ng6-seed/src/app/settings/masters/component/uom/uom-dialog/uom-dialog.component.scss rename to ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.component.scss diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.component.spec.ts new file mode 100755 index 0000000..bd5932b --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ManagePdComponent } from './manage-pd.component'; + +describe('ManagePdComponent', () => { + let component: ManagePdComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ManagePdComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ManagePdComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.component.ts new file mode 100755 index 0000000..1d31fea --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; +@Component({ + template: ` +
+ +
+ ` +}) +export class ManagePdComponent { +} diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.module.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.module.spec.ts new file mode 100755 index 0000000..dc60f4b --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.module.spec.ts @@ -0,0 +1,13 @@ +import { ManagePdModule } from './manage-pd.module'; + +describe('ManagePdModule', () => { + let managePdModule: ManagePdModule; + + beforeEach(() => { + managePdModule = new ManagePdModule(); + }); + + it('should create an instance', () => { + expect(managePdModule).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.module.ts b/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.module.ts new file mode 100755 index 0000000..c4afadd --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.module.ts @@ -0,0 +1,212 @@ +import {NgModule} from '@angular/core'; +import {CommonModule} from '@angular/common'; + +import { CKEditorModule } from 'ng2-ckeditor'; +import { PdfViewerModule } from 'ng2-pdf-viewer'; + +import { + MatCardModule, + MatIconModule, + MatInputModule, + MatRadioModule, + MatButtonModule, MatTableModule, MatPaginatorModule, + MatProgressBarModule, MatDialogModule, MatSortModule, + MatToolbarModule, MatSelectModule, MatListModule, MatGridListModule, + MatTabsModule, MatCheckboxModule, + MatBadgeModule, MatExpansionModule, MatStepperModule, MatSidenavModule, + MatMenuModule, MatButtonToggleModule,MatChipsModule,MatProgressSpinnerModule, + MatAutocompleteModule, MatDatepickerModule } from '@angular/material'; + +import {MatSlideToggleModule} from '@angular/material/slide-toggle'; +import {FormsModule, ReactiveFormsModule} from '@angular/forms'; +import {FileUploadModule} from 'ng2-file-upload/ng2-file-upload'; +import {TreeModule} from 'angular-tree-component'; +import {NgxDatatableModule} from '@swimlane/ngx-datatable'; +import {FlexLayoutModule} from '@angular/flex-layout'; +import {MatTooltipModule} from '@angular/material/tooltip'; + +import {NgxMatSelectSearchModule} from 'ngx-mat-select-search'; +import 'hammerjs'; +import {NotifierModule, NotifierOptions} from 'angular-notifier'; +import {OwlDateTimeModule, OwlNativeDateTimeModule} from 'ng-pick-datetime'; + +import {AgmCoreModule} from '@agm/core'; +import {MAT_MOMENT_DATE_FORMATS, MomentDateAdapter} from '@angular/material-moment-adapter'; +import {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from '@angular/material/core'; +import {ManagePdRoutingModule} from './manage-pd.routing'; +import {ListPdComponent} from './list-pd/list-pd.component'; +import {ManagePdComponent} from './manage-pd.component'; +import {MapPdViewComponent} from './list-pd/map-pd-view/map-pd-view.component'; +import {AddPdComponent} from '../manage-pd/list-pd/add-pd/add-pd.component'; +import {ViewPdComponent} from '../manage-pd/list-pd/view-pd/view-pd.component'; +// import {PdAllocationComponent} from '../manage-pd/list-pd/pd-allocation/pd-allocation.component'; +import {SmartPdAllocationComponent} from './list-pd/smart-pd-allocation/smart-pd-allocation.component'; +import {PdTrigerService} from '../pd-service/pd-triger.service'; +import {GetGeometricLocationService} from '../location-service/get-geometric-location.service'; +// import {SchedulePdComponent} from './list-pd/schedule-pd/schedule-pd.component'; +import {EditPdApplicantComponent} from './list-pd/edit-pd-applicant/edit-pd-applicant.component'; +import {EditPdMasterComponent} from './list-pd/edit-pd-master/edit-pd-master.component'; +// import {StartPdComponent} from './list-pd/start-pd/start-pd.component'; +import {InprogressPdComponent} from './list-pd/inprogress-pd/inprogress-pd.component'; +import {AllPdComponent} from './list-pd/all-pd/all-pd.component'; +import {ScheduledPdComponent} from './list-pd/scheduled-pd/scheduled-pd.component'; +import {CompletedPdComponent} from './list-pd/completed-pd/completed-pd.component'; +import {QcCompletedPdComponent} from './list-pd/qc-completed-pd/qc-completed-pd.component'; + +// import {ClientInfoComponent} from './list-pd/start-pd/forms/client-info/client-info.component'; +// import {SupplierInfoComponent} from './list-pd/start-pd/forms/supplier-info/supplier-info.component'; +// import {PersonalInfoComponent} from './list-pd/start-pd/forms/personal-info/personal-info.component'; +// import {CurrentLoanComponent} from "./list-pd/start-pd/forms/current-loan/current-loan.component"; +// import {LoanDetailsComponent} from "./list-pd/start-pd/forms/loan-details/loan-details.component"; +// import {OtherIncomeComponent} from "./list-pd/start-pd/forms/other-income/other-income.component"; +// import { AssetsInfoComponent } from './list-pd/start-pd/forms/assets-info/assets-info.component'; +// import {AddressComponent} from "./list-pd/start-pd/forms/address/address.component"; +// import {FamilyDetailsComponent} from "./list-pd/start-pd/forms/family-details/family-details.component"; +// import {BankingDetailsComponent} from "./list-pd/start-pd/forms/banking-details/banking-details.component"; +// import {StockComponent} from "./list-pd/start-pd/forms/stock/stock.component"; +// import {EmploymentInfoComponent} from "./list-pd/start-pd/forms/employment-info/employment-info.component"; +// import {BusinessInfoComponent} from "./list-pd/start-pd/forms/business-info/business-info.component"; +// import {FinancialInfoComponent} from "./list-pd/start-pd/forms/financial-info/financial-info.component"; +// import { LenderRepresentativeComponent } from './list-pd/start-pd/forms/lender-representative/lender-representative.component'; +// import { AssessedIncomeComponent } from './list-pd/start-pd/forms/assessed-income/assessed-income.component'; +import { TelePdAllocationComponent } from './list-pd/tele-pd-allocation/tele-pd-allocation.component'; + +import { PdReportComponent, DialogChangeCurrentVenrsion } from './list-pd/pd-report/pd-report.component'; + +// import { AllocationViewMoreComponent } from './list-pd/allocation-view-more/allocation-view-more.component'; +import { PdRequirementComponent } from './list-pd/pd-requirement/pd-requirement.component'; +// import { GeneralInfoComponent } from './list-pd/start-pd/forms/general-info/general-info.component'; +import { ModelEditPdReportComponent } from './list-pd/pd-report/model-edit-pd-report/model-edit-pd-report.component'; +// import { OtherApplicantDetailsComponent } from './list-pd/start-pd/forms/dialogue/other-applicant-details/other-applicant-details.component'; +// import { NeighbourHoodComponent } from './list-pd/start-pd/forms/neighbour-hood/neighbour-hood.component'; + +// import ngx-viewer module +import { NgxViewerModule } from 'ngx-viewer'; +import { ResizableModule } from 'angular-resizable-element'; + +// import { FinalRemarksComponent } from './list-pd/start-pd/forms/final-remarks/final-remarks.component'; + +// import { BusinessOtherFamilyMemberComponent } from './list-pd/start-pd/forms/dialogue/business-other-family-member/business-other-family-member.component'; +import { QcReviewComponent } from './list-pd/pd-report/qc-review/qc-review.component'; +import { SharedModule } from "app/shared/shared.module"; +// import { BusinessInfoGroupComponent } from './list-pd/start-pd/forms/business-info-group/business-info-group.component'; +import { SearchRelationPipe } from './../pd-pipes/search-relation.pipe'; +import { NumberToWordsPipe } from './../pd-pipes/number-to-words.pipe'; +import { RupeeCurrencyFormatPipe } from './../pd-pipes/rupee-currency-format.pipe'; +import { DeleteRecordsCountPipe } from './../pd-pipes/delete-records-count.pipe'; +// import { BusinessAssetsInfoComponent } from './list-pd/start-pd/forms/business-assets-info/business-assets-info.component'; +// import { BusinessBankingDetailsComponent } from './list-pd/start-pd/forms/business-banking-details/business-banking-details.component'; +// import { SalesDetailsComponent } from './list-pd/start-pd/forms/assessed-income/sales-details/sales-details.component'; +// import { DailySalesDetailsComponent } from './list-pd/start-pd/forms/assessed-income/daily-sales-details/daily-sales-details.component'; +// import { SalesCalculationComponent } from './list-pd/start-pd/forms/assessed-income/sales-calculation/sales-calculation.component'; +// import { ManageSalesComponent } from './list-pd/start-pd/forms/assessed-income/AI-diologue/manage-sales/manage-sales.component'; +// import { PurchaseDetailsComponent } from './list-pd/start-pd/forms/assessed-income/purchase-details/purchase-details.component'; +// import { BusinessExpenseDetailsComponent } from './list-pd/start-pd/forms/assessed-income/business-expense-details/business-expense-details.component'; +// import { HouseHoldDetailsComponent } from './list-pd/start-pd/forms/assessed-income/house-hold-details/house-hold-details.component'; +// import { OtherBusinessIncomeDetailsComponent } from './list-pd/start-pd/forms/assessed-income/other-business-income-details/other-business-income-details.component'; +// import { ManagePurchaseComponent } from './list-pd/start-pd/forms/assessed-income/AI-diologue/manage-purchase/manage-purchase.component'; +// import { ManageBusinesExpenseComponent } from './list-pd/start-pd/forms/assessed-income/AI-diologue/manage-busines-expense/manage-busines-expense.component'; +// import { ManageHouseHoldComponent } from './list-pd/start-pd/forms/assessed-income/AI-diologue/manage-house-hold/manage-house-hold.component'; +// import { ManageOtherBusinessIncomeComponent } from './list-pd/start-pd/forms/assessed-income/AI-diologue/manage-other-business-income/manage-other-business-income.component'; +// import { GrossProfitCalculationComponent } from './list-pd/start-pd/forms/assessed-income/gross-profit-calculation/gross-profit-calculation.component'; +// import { ManageDailySalesComponent } from './list-pd/start-pd/forms/assessed-income/AI-diologue/manage-daily-sales/manage-daily-sales.component'; +import { PdStatusChangeDialogueComponent } from './list-pd/pd-status-change-dialogue/pd-status-change-dialogue.component'; +import { PdLocatedMapViewDirective } from './../pd-directive/pd-located-map-view.directive'; +import { ViewLocationComponent } from './../pd-directive/view-location/view-location.component'; +import { GetAnswerableFormsPipe } from './../pd-pipes/get-answerable-forms.pipe'; +// import { ConfirmAiDetailsComponent } from './list-pd/start-pd/forms/assessed-income/confirm-ai-details/confirm-ai-details.component'; +// import { RentalVerificationComponent } from './list-pd/start-pd/forms/rental-verification/rental-verification.component'; + import { InitiateAdditionalPdComponent } from './list-pd/initiate-additional-pd/initiate-additional-pd.component'; +// import { ManageDailyPurchaseComponent } from './list-pd/start-pd/forms/assessed-income/AI-diologue/manage-daily-purchase/manage-daily-purchase.component'; +// import { DailyPurchaseDetailsComponent } from './list-pd/start-pd/forms/assessed-income/daily-purchase-details/daily-purchase-details.component'; +// import { ManageRentalVerificationComponent } from './list-pd/start-pd/forms/rental-verification/manage-rental-verification/manage-rental-verification.component'; +// import { FuturePlansAndBusinessEnvironmentComponent } from './list-pd/start-pd/forms/future-plans-and-business-environment/future-plans-and-business-environment.component'; +// import { ImageCropComponent } from './list-pd/start-pd/forms/dialogue/image-crop/image-crop.component'; + +/** + * Custom angular notifier options + */ +const pdCustomNotifierOptions: NotifierOptions = { + position: { + horizontal: { + position: 'right', + distance: 12 + }, + vertical: { + position: 'top', + distance: 32, + gap: 10 + } + }, + theme: 'material', + behaviour: { + autoHide: 2000, + onClick: 'hide', + onMouseover: 'pauseAutoHide', + showDismissButton: true, + stacking: 4 + }, + animations: { + enabled: true, + show: { + preset: 'slide', + speed: 300, + easing: 'ease' + }, + hide: { + preset: 'fade', + speed: 300, + easing: 'ease', + offset: 50 + }, + shift: { + speed: 300, + easing: 'ease' + }, + overlap: 150 + } +}; + +@NgModule({ + declarations: [TelePdAllocationComponent, ListPdComponent, ManagePdComponent, MapPdViewComponent, AddPdComponent, ViewPdComponent, SmartPdAllocationComponent, EditPdApplicantComponent, EditPdMasterComponent, InprogressPdComponent, AllPdComponent, ScheduledPdComponent, CompletedPdComponent, QcCompletedPdComponent, PdReportComponent, PdRequirementComponent, ModelEditPdReportComponent, DialogChangeCurrentVenrsion, QcReviewComponent, SearchRelationPipe, RupeeCurrencyFormatPipe, NumberToWordsPipe, DeleteRecordsCountPipe, PdLocatedMapViewDirective, ViewLocationComponent, GetAnswerableFormsPipe,PdStatusChangeDialogueComponent,InitiateAdditionalPdComponent], + imports: [ + CommonModule, + ManagePdRoutingModule, + NgxViewerModule, + SharedModule, + NotifierModule.withConfig(pdCustomNotifierOptions), + CKEditorModule, + PdfViewerModule, + MatCardModule, + MatIconModule, + MatAutocompleteModule, + MatInputModule, + MatRadioModule, + MatTableModule, + MatPaginatorModule, + MatButtonModule, + MatProgressBarModule, + MatToolbarModule, + FlexLayoutModule, + NgxDatatableModule, + MatChipsModule,MatProgressSpinnerModule, + FormsModule,MatSlideToggleModule, + MatSelectModule, MatListModule,MatGridListModule, MatTabsModule, MatBadgeModule, MatCheckboxModule,MatStepperModule,MatSidenavModule ,MatMenuModule, MatButtonToggleModule, + ReactiveFormsModule, + FileUploadModule, + TreeModule, + MatDatepickerModule, + MatDialogModule,MatSortModule, + NgxMatSelectSearchModule,MatTooltipModule, MatExpansionModule,ResizableModule, + AgmCoreModule.forRoot({apiKey: 'AIzaSyCXsHTus6hyIB8jYvt9ZEIbZve-2vWeQRg'}),OwlDateTimeModule, + OwlNativeDateTimeModule, + ], + exports: [PdLocatedMapViewDirective, SmartPdAllocationComponent, TelePdAllocationComponent ,EditPdApplicantComponent, EditPdMasterComponent, CompletedPdComponent, QcCompletedPdComponent, PdRequirementComponent, ViewLocationComponent,PdStatusChangeDialogueComponent,InitiateAdditionalPdComponent], + providers: [PdTrigerService, GetGeometricLocationService,{provide: MAT_DATE_LOCALE, useValue: 'en-GB'}, + {provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE]}, + {provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS}, PdLocatedMapViewDirective], + + entryComponents: [SmartPdAllocationComponent, EditPdApplicantComponent, EditPdMasterComponent, TelePdAllocationComponent, PdRequirementComponent, ModelEditPdReportComponent, DialogChangeCurrentVenrsion, QcReviewComponent, ViewLocationComponent,PdStatusChangeDialogueComponent,InitiateAdditionalPdComponent], +}) +export class ManagePdModule { +} \ No newline at end of file diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.routing.ts b/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.routing.ts new file mode 100755 index 0000000..03587bb --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.routing.ts @@ -0,0 +1,51 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { ManagePdComponent } from './manage-pd.component'; +import { ListPdComponent } from './list-pd/list-pd.component'; +import { MapPdViewComponent } from './list-pd/map-pd-view/map-pd-view.component'; +import { AddPdComponent } from '../manage-pd/list-pd/add-pd/add-pd.component'; +import { ViewPdComponent } from '../manage-pd/list-pd/view-pd/view-pd.component'; +import { PdReportComponent } from './list-pd/pd-report/pd-report.component'; +/* +* manage pd router +*/ +const routes: Routes = [ + { + path: '', + component: ManagePdComponent, + children: [ + { + path: '', + pathMatch: 'full', + redirectTo: 'pdlist' + }, { + path: 'pdlist', + component: ListPdComponent, + children: [ + { + path: 'pdmaplist', + component: MapPdViewComponent, + }, + { + path: 'addpd', + component: AddPdComponent, + }, + { + path: 'viewpd/:pdid', + component: ViewPdComponent, + }, + { + path: 'pd_report/:pdid', + component: PdReportComponent, + } + ] + } + ] + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class ManagePdRoutingModule { } diff --git a/ng6-seed/src/app/personal-discussion/pd-directive/pd-located-map-view.directive.ts b/ng6-seed/src/app/personal-discussion/pd-directive/pd-located-map-view.directive.ts new file mode 100644 index 0000000..c60aa1a --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/pd-directive/pd-located-map-view.directive.ts @@ -0,0 +1,50 @@ +import { Directive, OnInit, ElementRef, Renderer2 ,HostListener,HostBinding,Input} from '@angular/core'; +import { MatDialog,MatDialogRef,MAT_DIALOG_DATA } from '@angular/material'; +import { GetGeometricLocationService } from './../location-service/get-geometric-location.service'; +import { ViewLocationComponent } from './../pd-directive/view-location/view-location.component'; + +@Directive({ + selector: '[appPdLocatedMapView]' +}) +export class PdLocatedMapViewDirective { + + @Input() value:any; + @HostBinding('style.cursor') evPoint : string = 'none'; + lat : String; + lang: String; + constructor(private elm : ElementRef , private render:Renderer2,private dialog: MatDialog, private _geolocation: GetGeometricLocationService) { } + ngOnInit() + { + } + + @HostListener('mouseenter') mouseover(event: Event){ + this.evPoint = 'pointer'; + } + + @HostListener('click') onclick(event: Event) +{ + if(this.value.addressline1 && this.value.pincode && this.value.state_name && this.value.city_name){ + this._geolocation.findLocations(this.value.addressline1,this.value.pincode,this.value.state_name,this.value.city_name) + .subscribe(response => { + if (response.status == 'OK') { + let address_content: string = this.value.addressline1.toUpperCase() + ','+this.value.city_name.toUpperCase()+ ','+this.value.state_name.toUpperCase(); + address_content = this.value.pincode_id=='1' ? address_content+'-'+this.value.other_pincode : address_content+'-'+this.value.pincode + this.lat = response.results[0].geometry.location.lat; + this.lang = response.results[0].geometry.location.lng; + const dialogRef = this.dialog.open(ViewLocationComponent, { + data: {"lat": this.lat, "lang":this.lang,"content":address_content}, + disableClose: false, + minWidth:'30%', + maxWidth:'30%', + }); + } + }); + } + +} +@HostListener('mouseleave') mouseleave(event: Event) +{ + this.evPoint = 'none'; +} + +} diff --git a/ng6-seed/src/app/personal-discussion/pd-directive/view-location/view-location.component.html b/ng6-seed/src/app/personal-discussion/pd-directive/view-location/view-location.component.html new file mode 100644 index 0000000..dfa7a82 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/pd-directive/view-location/view-location.component.html @@ -0,0 +1,30 @@ +

+
+ PD Address +
+
+ +
+

+ +
+
+ + + + +

{{message_content}}

+
+ +
+
+
+
+
+ + diff --git a/ng6-seed/src/app/personal-discussion/pd-directive/view-location/view-location.component.scss b/ng6-seed/src/app/personal-discussion/pd-directive/view-location/view-location.component.scss new file mode 100644 index 0000000..b5967f6 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/pd-directive/view-location/view-location.component.scss @@ -0,0 +1,48 @@ +@import "../../../../assets/styles/scss/material.variables"; + +:host { + margin-left: -5px; + margin-right: -5px; + margin-top: -5px; + display: block; + height: 100%; +} +.sebm-google-map-container { + width: 100%; + height: 350px; + display: flex; +} + +$mat-toolbar-height-desktop: 64px !default; +$mat-toolbar-height-mobile-portrait: 56px !default; +$mat-toolbar-height-mobile-landscape: 48px !default; + +.mat-card-top { + margin-top: -($mat-toolbar-height-desktop); +} +::ng-deep .mat-dialog-container{ + overflow: hidden; +} + +@media ($mat-xsmall) and (orientation: portrait) { + .mat-card-top { + margin-top: -($mat-toolbar-height-mobile-portrait); + } +} + +@media ($mat-small) and (orientation: landscape) { + .mat-card-top { + margin-top: -($mat-toolbar-height-mobile-landscape); + } +} +::-webkit-scrollbar { + width: 0px; /* remove scrollbar space */ + background: transparent; /* optional: just make scrollbar invisible */ +} +/* optional: show position indicator in red */ +::-webkit-scrollbar-thumb { + background: #FF0000; +} +::ng-deep .body-container{ + padding:0px !important; +} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/type-of-activity/activity-list/activity-list.component.spec.ts b/ng6-seed/src/app/personal-discussion/pd-directive/view-location/view-location.component.spec.ts similarity index 53% rename from ng6-seed/src/app/settings/masters/component/type-of-activity/activity-list/activity-list.component.spec.ts rename to ng6-seed/src/app/personal-discussion/pd-directive/view-location/view-location.component.spec.ts index 4d660e1..86244b7 100644 --- a/ng6-seed/src/app/settings/masters/component/type-of-activity/activity-list/activity-list.component.spec.ts +++ b/ng6-seed/src/app/personal-discussion/pd-directive/view-location/view-location.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { ActivityListComponent } from './activity-list.component'; +import { ViewLocationComponent } from './view-location.component'; -describe('ActivityListComponent', () => { - let component: ActivityListComponent; - let fixture: ComponentFixture; +describe('ViewLocationComponent', () => { + let component: ViewLocationComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ ActivityListComponent ] + declarations: [ ViewLocationComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(ActivityListComponent); + fixture = TestBed.createComponent(ViewLocationComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/ng6-seed/src/app/personal-discussion/pd-directive/view-location/view-location.component.ts b/ng6-seed/src/app/personal-discussion/pd-directive/view-location/view-location.component.ts new file mode 100644 index 0000000..61023b1 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/pd-directive/view-location/view-location.component.ts @@ -0,0 +1,30 @@ +import { Component, OnInit, Input, Output, Inject } from '@angular/core'; +import { MatDialog, MatDialogRef, MAT_DIALOG_DATA , DialogPosition} from '@angular/material'; + +@Component({ + selector: 'app-view-location', + templateUrl: './view-location.component.html', + styleUrls: ['./view-location.component.scss'] +}) +export class ViewLocationComponent implements OnInit { + message_content: String; + constructor(@Inject(MAT_DIALOG_DATA) public data: any, private dialogRef: MatDialogRef) { + this.message_content=this.data.content; + } + + ngOnInit() { + } + + // this is for map tooltip open + onMouseOver(infoWindow, gm) { + + if (gm.lastOpen != null) { + gm.lastOpen.close(); + } + + gm.lastOpen = infoWindow; + + infoWindow.open(); +} + +} diff --git a/ng6-seed/src/app/personal-discussion/pd-pipes/delete-records-count.pipe.spec.ts b/ng6-seed/src/app/personal-discussion/pd-pipes/delete-records-count.pipe.spec.ts new file mode 100644 index 0000000..c729fa4 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/pd-pipes/delete-records-count.pipe.spec.ts @@ -0,0 +1,8 @@ +import { DeleteRecordsCountPipe } from './delete-records-count.pipe'; + +describe('DeleteRecordsCountPipe', () => { + it('create an instance', () => { + const pipe = new DeleteRecordsCountPipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/personal-discussion/pd-pipes/delete-records-count.pipe.ts b/ng6-seed/src/app/personal-discussion/pd-pipes/delete-records-count.pipe.ts new file mode 100644 index 0000000..c41f3c7 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/pd-pipes/delete-records-count.pipe.ts @@ -0,0 +1,18 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'deleteRecordsCount' +}) +export class DeleteRecordsCountPipe implements PipeTransform { + + transform(value: any): any { + if(value.length>0){ + let filterData = value.filter(val=>val.isactive===true); + return filterData.length; + } + else { + return 0; + } + } + +} diff --git a/ng6-seed/src/app/personal-discussion/pd-pipes/get-answerable-forms.pipe.spec.ts b/ng6-seed/src/app/personal-discussion/pd-pipes/get-answerable-forms.pipe.spec.ts new file mode 100644 index 0000000..3c8e9d7 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/pd-pipes/get-answerable-forms.pipe.spec.ts @@ -0,0 +1,8 @@ +import { GetAnswerableFormsPipe } from './get-answerable-forms.pipe'; + +describe('GetAnswerableFormsPipe', () => { + it('create an instance', () => { + const pipe = new GetAnswerableFormsPipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/personal-discussion/pd-pipes/get-answerable-forms.pipe.ts b/ng6-seed/src/app/personal-discussion/pd-pipes/get-answerable-forms.pipe.ts new file mode 100644 index 0000000..0ba56f5 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/pd-pipes/get-answerable-forms.pipe.ts @@ -0,0 +1,17 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'getAnswerableForms' +}) +export class GetAnswerableFormsPipe implements PipeTransform { + + transform(value: any, args?: any): any { + if(value.length>0){ + return value.filter(val=>val.isAnswerable===true); + } + else { + return []; + } + } + +} diff --git a/ng6-seed/src/app/personal-discussion/pd-pipes/number-to-words.pipe.spec.ts b/ng6-seed/src/app/personal-discussion/pd-pipes/number-to-words.pipe.spec.ts new file mode 100644 index 0000000..a67a5af --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/pd-pipes/number-to-words.pipe.spec.ts @@ -0,0 +1,8 @@ +import { NumberToWordsPipe } from './number-to-words.pipe'; + +describe('NumberToWordsPipe', () => { + it('create an instance', () => { + const pipe = new NumberToWordsPipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/personal-discussion/pd-pipes/number-to-words.pipe.ts b/ng6-seed/src/app/personal-discussion/pd-pipes/number-to-words.pipe.ts new file mode 100644 index 0000000..3810440 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/pd-pipes/number-to-words.pipe.ts @@ -0,0 +1,139 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'numberToWords' +}) +export class NumberToWordsPipe implements PipeTransform { + transform(price: any): any{ + + price = price.toString(); + let atemp = price.split("."); + let amount = atemp[0]; + + var sglDigit = ["Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"], + dblDigit = ["Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"], + tensPlace = ["", "Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"], + + handle_tens = function(dgt, prevDgt) { + return 0 == dgt ? "" : " " + (1 == dgt ? dblDigit[prevDgt] : tensPlace[dgt]) + }, + handle_utlc = function(dgt, nxtDgt, denom) { + return (0 != dgt && 1 != nxtDgt ? " " + sglDigit[dgt] : "") + (0 != nxtDgt || dgt > 0 ? " " + denom : "") + }; + + var str = "", + digitIdx = 0, + digit = 0, + nxtDigit = 0, + words = []; + if (amount += "", isNaN(parseInt(amount))) str = ""; + else if (parseInt(amount) > 0 && amount.length <= 10) { + for (digitIdx = amount.length - 1; digitIdx >= 0; digitIdx--) + switch (digit = amount[digitIdx] - 0, nxtDigit = digitIdx > 0 ? amount[digitIdx - 1] - 0 : 0, amount.length - digitIdx - 1) { + case 0: + words.push(handle_utlc(digit, nxtDigit, "")); + break; + case 1: + words.push(handle_tens(digit, amount[digitIdx + 1])); + break; + case 2: + words.push(0 != digit ? " " + sglDigit[digit] + " Hundred" + (0 != amount[digitIdx + 1] && 0 != amount[digitIdx + 2] ? " and" : "") : ""); + break; + case 3: + words.push(handle_utlc(digit, nxtDigit, "Thousand")); + break; + case 4: + words.push(handle_tens(digit, amount[digitIdx + 1])); + break; + case 5: + words.push(handle_utlc(digit, nxtDigit, "Lakh")); + break; + case 6: + words.push(handle_tens(digit, amount[digitIdx + 1])); + break; + case 7: + words.push(handle_utlc(digit, nxtDigit, "Crore")); + break; + case 8: + words.push(handle_tens(digit, amount[digitIdx + 1])); + break; + case 9: + words.push(0 != digit ? " " + sglDigit[digit] + " Hundred" + (0 != amount[digitIdx + 1] || 0 != amount[digitIdx + 2] ? " and" : " Crore") : "") + // break; + // case 10: + // words.push(0 != digit ? " " + sglDigit[digit] + " Lakh" + (0 != price[digitIdx + 1] || 0 != price[digitIdx + 2] ? " and" : " Hundred" + (0 != price[digitIdx + 1] || 0 != price[digitIdx + 2] || 0 != price[digitIdx + 3] ? " and" : " Crore")) + // : "") + // break; + } + str = words.reverse().join("") + // str =(str.length > 2 && str.charAt(str.length-2)==',') ? str.slice(0, -2) : str; + } else str = ""; + return str + + } + +//References +// transform(amount: any): any { +// let words: any = ['', 'One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine', 'Ten', 'Eleven', 'Twelve', 'Thirteen', 'Fourteen', 'Fifteen', 'Sixteen', 'Seventeen', 'Eighteen', 'Nineteen', 'Twenty']; +// words[30] = 'Thirty'; +// words[40] = 'Forty'; +// words[50] = 'Fifty'; +// words[60] = 'Sixty'; +// words[70] = 'Seventy'; +// words[80] = 'Eighty'; +// words[90] = 'Ninety'; +// amount = amount.toString(); +// let atemp = amount.split("."); +// let number = atemp[0].split(",").join(""); +// let n_length = number.length; +// let words_string = ""; +// let value: any; +// if (n_length <= 9) { +// var n_array = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0); +// var received_n_array = new Array(); +// for (var i = 0; i < n_length; i++) { +// received_n_array[i] = number.substr(i, 1); +// } +// for (var i = 9 - n_length, j = 0; i < 9; i++ , j++) { +// n_array[i] = received_n_array[j]; +// } +// for (var i = 0, j = 1; i < 9; i++ , j++) { +// if (i == 0 || i == 2 || i == 4 || i == 7) { +// if (n_array[i] == 1) { +// n_array[j] = 10 + (+n_array[j]); +// n_array[i] = 0; +// } +// } +// } +// value = ""; +// for (var i = 0; i < 9; i++) { +// if (i == 0 || i == 2 || i == 4 || i == 7) { +// value = n_array[i] * 10; +// } else { +// value = n_array[i]; +// } +// if (value != 0) { +// words_string += words[value] + " "; +// } +// if ((i == 1 && value != 0) || (i == 0 && value != 0 && n_array[i + 1] == 0)) { +// words_string += "Crores, "; +// } +// if ((i == 3 && value != 0) || (i == 2 && value != 0 && n_array[i + 1] == 0)) { +// words_string += "Lakhs, "; +// } +// if ((i == 5 && value != 0) || (i == 4 && value != 0 && n_array[i + 1] == 0)) { +// words_string += "Thousand, "; +// } +// if (i == 6 && value != 0 && (n_array[i + 1] != 0 && n_array[i + 2] != 0)) { +// words_string += "Hundred and "; +// } else if (i == 6 && value != 0) { +// words_string += "Hundred "; +// } +// } +// words_string = words_string.split(" ").join(" "); +// words_string=(words_string.length > 2 && words_string.charAt(words_string.length-2)==',') ? words_string.slice(0, -2) : words_string; +// } +// return words_string; +// } + +} diff --git a/ng6-seed/src/app/personal-discussion/pd-pipes/rupee-currency-format.pipe.spec.ts b/ng6-seed/src/app/personal-discussion/pd-pipes/rupee-currency-format.pipe.spec.ts new file mode 100644 index 0000000..d084463 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/pd-pipes/rupee-currency-format.pipe.spec.ts @@ -0,0 +1,8 @@ +import { RupeeCurrencyFormatPipe } from './rupee-currency-format.pipe'; + +describe('RupeeCurrencyFormatPipe', () => { + it('create an instance', () => { + const pipe = new RupeeCurrencyFormatPipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/personal-discussion/pd-pipes/rupee-currency-format.pipe.ts b/ng6-seed/src/app/personal-discussion/pd-pipes/rupee-currency-format.pipe.ts new file mode 100644 index 0000000..bf97902 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/pd-pipes/rupee-currency-format.pipe.ts @@ -0,0 +1,28 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'rupeeCurrencyFormat' +}) +export class RupeeCurrencyFormatPipe implements PipeTransform { + + transform(value: any): any { + if (!isNaN(value) && value) { + var currencySymbol = '₹'; + //var output = Number(input).toLocaleString('en-IN'); <-- This method is not working fine in all browsers! + var result = value.toString().split('.'); + + var lastThree = result[0].substring(result[0].length - 3); + var otherNumbers = result[0].substring(0, result[0].length - 3); + if (otherNumbers != '') + lastThree = ',' + lastThree; + var output = otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ",") + lastThree; + + if (result.length > 1) { + output += "." + result[1]; + } + + return currencySymbol + output; + } +} + +} diff --git a/ng6-seed/src/app/personal-discussion/pd-pipes/search-relation.pipe.spec.ts b/ng6-seed/src/app/personal-discussion/pd-pipes/search-relation.pipe.spec.ts new file mode 100755 index 0000000..df24b27 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/pd-pipes/search-relation.pipe.spec.ts @@ -0,0 +1,8 @@ +import { SearchRelationPipe } from './search-relation.pipe'; + +describe('SearchRelationPipe', () => { + it('create an instance', () => { + const pipe = new SearchRelationPipe(); + expect(pipe).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/personal-discussion/pd-pipes/search-relation.pipe.ts b/ng6-seed/src/app/personal-discussion/pd-pipes/search-relation.pipe.ts new file mode 100755 index 0000000..8274b2f --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/pd-pipes/search-relation.pipe.ts @@ -0,0 +1,23 @@ +import { Pipe, PipeTransform } from '@angular/core'; + +@Pipe({ + name: 'searchRelation' +}) +export class SearchRelationPipe implements PipeTransform { + + transform(value: any, searchItem:any): any { + let findExistIndex = searchItem.existRelationList.filter(sVal=>sVal.relation_to==searchItem.currentApplicantID); + if(findExistIndex.length>0){ + let check = value.filter(function(fVal){ + return !findExistIndex.some(function(sVal){ + return fVal.pd_co_applicant_id==searchItem.currentApplicantID || fVal.pd_co_applicant_id == sVal.pd_co_applicant_id; + }); + }) + return check; + } + else { + return value.filter(fVal=>fVal.pd_co_applicant_id!=searchItem.currentApplicantID); + } + } + +} diff --git a/ng6-seed/src/app/personal-discussion/pd-service/pd-triger.service.spec.ts b/ng6-seed/src/app/personal-discussion/pd-service/pd-triger.service.spec.ts new file mode 100755 index 0000000..0331223 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/pd-service/pd-triger.service.spec.ts @@ -0,0 +1,12 @@ +import { TestBed } from '@angular/core/testing'; + +import { PdTrigerService } from './pd-triger.service'; + +describe('PdTrigerService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: PdTrigerService = TestBed.get(PdTrigerService); + expect(service).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/personal-discussion/pd-service/pd-triger.service.ts b/ng6-seed/src/app/personal-discussion/pd-service/pd-triger.service.ts new file mode 100755 index 0000000..3cf1788 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/pd-service/pd-triger.service.ts @@ -0,0 +1,740 @@ +/** Common Import Section */ +import { Injectable } from '@angular/core'; +import { Observable, of, forkJoin } from 'rxjs'; +import { HttpClient, HttpParams } from '@angular/common/http'; +import { catchError, map } from 'rxjs/operators'; + +/** Imported Service Files Are., */ +import { AwsService } from '../../AwsService/aws.service'; + +/** Environment */ +import { environment } from 'environments/environment' +import { RequestOptions } from "@angular/http"; +import { ResponseContentType } from "@angular/http"; +import { ResponseOptions } from "@angular/http"; +import { HttpResponse } from "@angular/common/http"; +import { tap } from "rxjs/internal/operators/tap"; + +const currentdate = new Date().toJSON().slice(0, 19).replace('T', ' '); + +/** Master Interface */ +export interface Master { + master_id: number; + master_name: string; + constant_name: string; +} + +@Injectable() + + +export class PdTrigerService { + + // private apiUrl = "http://ssa.sineedge.com/sparqapi/api/"; + // private apiUrl = "http://192.168.0.5:9999/AWSEC2/sparqapi/api/"; + MAP_API_KEY: string; + MAP_API_URL: string; + // private apiUrl = "http://ssa.sineedge.com/sparqapi/api/"; + private apiUrl = environment.apiEndpoint; + + constructor(private _http: HttpClient, + private _aws: AwsService) { + this.MAP_API_KEY = 'AIzaSyBtdO5k6CRntAMJCF-H5uZjTCoSGX95cdk' + this.MAP_API_URL = `https://maps.googleapis.com/maps/api/geocode/json?key=${this.MAP_API_KEY}&address=`; + } + + // get add pd master details + getAllMasterDatas(TableName: string): Observable { + return this._http.post(this.apiUrl + 'getListOfMaster', { "master_name": TableName }) + .pipe( + catchError(this.handleError('role', [])) + ) + } + // saveForm(records: any): Observable { + // records.fk_createdby = this._aws.getlocale(); + // let params = { records } + // return this._http.post(this.apiUrl + 'savePDFormDetails', params) + // .pipe( + // catchError(this.handleError('role', [])) + // ) + // } + // retriveForm(params): Observable { + // return this._http.post(this.apiUrl + 'getPDFormDetails', params) + // .pipe( + // catchError(this.handleError('role', [])) + // ) + // } + + // /* To get Files., */ + // retriveFile(PDID,FormID,CompanyID): Observable { + // return this._http.post(this.apiUrl + 'getPDImages', { "records":{ "pd_id":PDID,"form_id":FormID,"company_id":CompanyID}}) + // .pipe( + // catchError(this.handleError('role', [])) + // ) + // } + + // downloadPDF(url): any { + // return this._http.get(url, { responseType: ResponseContentType.Blob }).map( + // (res) => { + // return new Blob([res.blob()], { type: 'application/pdf' }) + // } + // } + + downloadPDF(url): any { + + return this._http.get>(url).map( + (res) => { + return new Blob([], { type: 'application/pdf' }); + }); + } + + // getBlobImage(imageUrl: string): Observable { + // return this._http.get(imageUrl, { responseType: 'blob' }); + // } + + /* To get addresses From T_PD_ADDRESS table., + * Used In 1) edit pd trigger component + * 2) Address Form + */ + getAddressesDetails(pdID): Observable { + return this._http.post(this.apiUrl + 'getPDAddress', { "pd_id": pdID }) + .pipe( + catchError(this.handleError('role', [])) + ) + } + + updatePDAddress(editData: any): Observable { + return this._http.post(this.apiUrl + "updatePDAddress", { "records": editData }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + getProductsDetails():Observable { + return this._http.get(this.apiUrl + 'getListOfProducts') + .pipe( + catchError(this.handleError('role', [])) + ) + } + + // get lenders list + getLenderDetails(): Observable { + return this._http.get(this.apiUrl + 'getListOfLenders') + .pipe( + catchError(this.handleError('role', [])) + ) + } + + // get customers list + getCustomersDetails(): Observable { + return this._http.get(this.apiUrl + 'getListOfCustomerSegments') + .pipe( + catchError(this.handleError('role', [])) + ) + } + + // get Pd Allocation type details list + getPDAllocationDetails(): Observable { + return this._http.get(this.apiUrl + 'getListOfPDAllocationTypes') + .pipe( + catchError(this.handleError('role', [])) + ) + } + + /* get state and city details + This Api OnlyFor Bussiness info Details This Will Have 'Throughout state' option + */ + // getStateCityDetails(): Observable { + // return this._http.post(this.apiUrl + 'getListOfStatesCities','') + // .pipe( + // catchError(this.handleError('role', [])) + // ) + // } + + // get pd type and allocation type details + getPDTypeDetails(): Observable { + return this._http.get(this.apiUrl + 'getListOfPDAllocationTypes') + .pipe( + catchError(this.handleError('role', [])) + ) + } + + // add pd details + addPdDetails(pdForm: any): Observable { + return this._http.post(this.apiUrl + "triggerNewPD", pdForm) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // get pd details + getPdDetails(): Observable { + return this._http.get(this.apiUrl + "listLessPDDetails/get") + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // get status based pd list + getTabStatusPdDetails(status: string): Observable { + const tabStatus = status ? + { params: new HttpParams().set('status', status) } : {}; + return this._http.get(this.apiUrl + "listLessPDDetails/get", tabStatus) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // get edit row pd details + editPdDetails(editId: string): Observable { + let httpParams = new HttpParams().set('pdid', editId); + return this._http.post(this.apiUrl + "getFullPDDetails", httpParams) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // update pd master details + editPdMasterDetails(editData: any, status: string): Observable { + editData.pd_status = status; + editData.fk_updatedby = this._aws.getlocale(); + // editData.updatedon = currentdate; + return this._http.post(this.apiUrl + "updatePDMaster", { records: editData }) + + .pipe( + catchError(this.handleError('operation', [])) + ) + } + // initiate address for pd process + initiateAddressPdProcess(updateDate: any): Observable { + updateDate.fk_updatedby = this._aws.getlocale(); + // editData.updatedon = currentdate; + return this._http.post(this.apiUrl + "updatePDMaster", { records: updateDate }) + + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // update pd applicant + updatePdApplicant(editData: any): Observable { + // editData.fk_updatedby = this._aws.getlocale(); + // editData.updatedon = currentdate; + return this._http.post(this.apiUrl + "updatePDApplicants", { "pd_applicant_details": editData }) + + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // get pd allocation to details + getPdOfficerList(pdID: string): Observable { + return this._http.post(this.apiUrl + "getListPDOfficers", { "pdid": pdID }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // update pd officer + updatePdOfficer(updateData: any): Observable { + updateData.fk_updatedby = this._aws.getlocale(); + // updateData.updatedon = currentdate; + return this._http.post(this.apiUrl + "allocatePD", { "records": updateData }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // update pd schedule + // updateSchedule(updateData: any): Observable { + // updateData.fk_scheduled_by = this._aws.getlocale(); + // // updateData.createdon = currentdate; + // return this._http.post(this.apiUrl + "schdulePD", { "records": updateData }) + // .pipe( + // catchError(this.handleError('operation', [])) + // ) + // } + + //load pd template details + loadPDTemplates(pdId: string): Observable { + const options = pdId ? + { params: new HttpParams().set('pd_id', pdId) } : {}; + return this._http.get(this.apiUrl + "loadFullTemplate", options) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // load PD question answers + // getAnswersForPD(list: any): Observable { + // let httpParams = new HttpParams(); + // httpParams = httpParams.append("category_id", list.category_id); + // httpParams = httpParams.append("pd_id", list.pd_id); + // httpParams = httpParams.append("question_id", list.question_id); + // httpParams = httpParams.append("template_id", list.template_id); + + // return this._http.post(this.apiUrl + "getAnswersForPD", httpParams) + // .pipe( + // catchError(this.handleError('operation', [])) + // ) + // } + + // save pd answers + // savePDQuestions(saveData: any): Observable { + // saveData.createdby = this._aws.getlocale(); + // saveData.fk_createdon = currentdate; + // // saveData[0].fk_updatedby = this._aws.getlocale(); + // // saveData[0].updatedon = currentdate; + // + // return this._http.post(this.apiUrl + "savePDQuestions", {"records": saveData}) + // .pipe( + // catchError(this.handleError('operation', [])) + // ) + // } + // get assessed income form details + // getAssessedIncomeFormDetails(formDetails): Observable { + // return this._http.post(this.apiUrl + "getAssessedIncome", formDetails) + // .pipe( + // catchError(this.handleError('operation', [])) + // ) + // } + + private handleError(operation = 'operation', result?: T) { + return (error: any): Observable => { + return of(result as T); + }; + } + // common Pd form details get for the Pd Process + // getPDFormDetailsWithID(params: any): Observable { + // return this._http.post(this.apiUrl + "getPDFormDetails", params) + // .pipe( + // catchError(this.handleError('operation', [])) + // ) + // } + + // common Pd form details get for the Pd Process + // getPDFormDetailsWithCompanyID(pdID, formID,companyID): Observable { + // return this._http.post(this.apiUrl + "getPDFormDetails", { "pd_id": pdID, "pd_form_id": formID,"company_id": companyID}) + // .pipe( + // catchError(this.handleError('operation', [])) + // ) + // } + + // save Pd form details + // savePDFormDetailsWithID(saveData: any): Observable { + // saveData.fk_createdby = this._aws.getlocale(); + // // saveData[0].fk_updatedby = this._aws.getlocale(); + // // saveData[0].updatedon = currentdate; + + // return this._http.post(this.apiUrl + "savePDFormDetails", { "records": saveData }) + // .pipe( + // catchError(this.handleError('operation', [])) + // ) + // } + + // save pd answers + // savePDQuestions(saveData: any): Observable { + // saveData.createdby = this._aws.getlocale(); + // //saveData.fk_createdon = currentdate; + // // saveData[0].fk_updatedby = this._aws.getlocale(); + // // saveData[0].updatedon = currentdate; + + // return this._http.post(this.apiUrl + "savePDQuestions", { "records": saveData }) + // .pipe( + // catchError(this.handleError('operation', [])) + // ) + // } + + + // get Pd Final report Question Answer + + getPdFinalReportDetails(pdId: number): Observable { + return this._http.post(this.apiUrl + "getFinalPDReportQuestions", { "pd_id": pdId }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + getPDReportFinalDocument(pdId: any): Observable { + pdId.fk_createdby = this._aws.getlocale(); + return this._http.post(this.apiUrl + "generatePDReport", { "records": pdId }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + getActualPDReportModelTemplate(pdId: any): Observable { + return this._http.post(this.apiUrl + "getLatestPDReportBlob ", { "records": { "pd_id": pdId } }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + updatePDReportDetails(records: any): Observable { + return this._http.post(this.apiUrl + "saveNewVersionOfPDReport ", { "records": records }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + getPdDocVersionList(pdId: number): Observable { + return this._http.post(this.apiUrl + "getListOfPDReportVersions", { "records": { "pd_id": pdId } }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + swapOlderPDReportToLatest(pdId: any): Observable { + pdId.fk_createdby = this._aws.getlocale(); + return this._http.post(this.apiUrl + "swapOlderPDReportToLatest", { "records": pdId }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + /* To get TypeofActivity's Product And Service From About Business, + * Used In 1) SupplierForm + * 2) ClientForm + * 3) AI - Sales Tab - Sales DailyWise & Sales ItemWise + */ + // getTypeofActivityForSuppliedInfoForm(pd_id: any,company_id:any): Observable { + // return this._http.post(this.apiUrl + "getTypeOfActivetyFromBusinessForm", { "records": { "pd_id": pd_id,"company_id":company_id } }) + // .pipe( + // catchError(this.handleError('operation', [])) + // ) + // } + + getQCReportFinalReviewDetails(pd_id: any, flag: string): Observable { + return this._http.post(this.apiUrl + "getQCLenderRemarks", { "records": { "pd_id": pd_id, "flag": flag } }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // pd review status update details + pdReviewStatusUpdate(editData: any): Observable { + editData.fk_updatedby = this._aws.getlocale(); + // editData.updatedon = currentdate; + return this._http.post(this.apiUrl + "updatePDMaster", { records: editData }) + + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + //pd report export excel + pdReportExportExcel(): Observable> { + // const options: any = { + // observe: 'response', + // responseType: 'blob' as 'json' + // }; + return this._http.get>(this.apiUrl + "downloadExcel", { + observe: 'response', + responseType: 'blob' as 'json' + }) + .pipe( + tap>( + res => res, + err => { + catchError(this.handleError('operation', [])) + } + ) + // catchError(this.handleError('operation', [])) + ) + } + + // inWords(num) { + // let a : any = ['','one ','two ','three ','four ', 'five ','six ','seven ','eight ','nine ','ten ','eleven ','twelve ','thirteen ','fourteen ','fifteen ','sixteen ','seventeen ','eighteen ','nineteen ']; + // let b : any = ['', '', 'twenty','thirty','forty','fifty', 'sixty','seventy','eighty','ninety']; + // if ((num = num.toString()).length > 9) return 'overflow'; + // let n : any = ('000000000' + num).substr(-9).match(/^(\d{2})(\d{2})(\d{2})(\d{1})(\d{2})$/); + // if (!n) return; var str = ''; + // str += (n[1] != 0) ? (a[Number(n[1])] || b[n[1][0]] + ' ' + a[n[1][1]]) + 'crore ' : ''; + // str += (n[2] != 0) ? (a[Number(n[2])] || b[n[2][0]] + ' ' + a[n[2][1]]) + 'lakh ' : ''; + // str += (n[3] != 0) ? (a[Number(n[3])] || b[n[3][0]] + ' ' + a[n[3][1]]) + 'thousand ' : ''; + // str += (n[4] != 0) ? (a[Number(n[4])] || b[n[4][0]] + ' ' + a[n[4][1]]) + 'hundred ' : ''; + // str += (n[5] != 0) ? ((str != '') ? 'and ' : '') + (a[Number(n[5])] || b[n[5][0]] + ' ' + a[n[5][1]]) + 'only ' : ''; + // return str; + // } + + // convertNumberToWords(amount) { + // //let words : any = new Array(); + // let words: any = ['', 'One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine', 'Ten', 'Eleven', 'Twelve', 'Thirteen', 'Fourteen', 'Fifteen', 'Sixteen', 'Seventeen', 'Eighteen', 'Nineteen', 'Twenty']; + // words[30] = 'Thirty'; + // words[40] = 'Forty'; + // words[50] = 'Fifty'; + // words[60] = 'Sixty'; + // words[70] = 'Seventy'; + // words[80] = 'Eighty'; + // words[90] = 'Ninety'; + // amount = amount.toString(); + // let atemp = amount.split("."); + // let number = atemp[0].split(",").join(""); + // let n_length = number.length; + // let words_string = ""; + // let value: any; + // if (n_length <= 9) { + // var n_array = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0); + // var received_n_array = new Array(); + // for (var i = 0; i < n_length; i++) { + // received_n_array[i] = number.substr(i, 1); + // } + // for (var i = 9 - n_length, j = 0; i < 9; i++ , j++) { + // n_array[i] = received_n_array[j]; + // } + // for (var i = 0, j = 1; i < 9; i++ , j++) { + // if (i == 0 || i == 2 || i == 4 || i == 7) { + // if (n_array[i] == 1) { + // n_array[j] = 10 + (+n_array[j]); + // n_array[i] = 0; + // } + // } + // } + // value = ""; + // for (var i = 0; i < 9; i++) { + // if (i == 0 || i == 2 || i == 4 || i == 7) { + // value = n_array[i] * 10; + // } else { + // value = n_array[i]; + // } + // if (value != 0) { + // words_string += words[value] + " "; + // } + // if ((i == 1 && value != 0) || (i == 0 && value != 0 && n_array[i + 1] == 0)) { + // words_string += "Crores "; + // } + // if ((i == 3 && value != 0) || (i == 2 && value != 0 && n_array[i + 1] == 0)) { + // words_string += "Lakhs "; + // } + // if ((i == 5 && value != 0) || (i == 4 && value != 0 && n_array[i + 1] == 0)) { + // words_string += "Thousand "; + // } + // if (i == 6 && value != 0 && (n_array[i + 1] != 0 && n_array[i + 2] != 0)) { + // words_string += "Hundred and "; + // } else if (i == 6 && value != 0) { + // words_string += "Hundred "; + // } + // } + // words_string = words_string.split(" ").join(" "); + // } + // return words_string; + // } + + // save additional requirements + saveAdditionalRequirements(saveData: any): Observable { + saveData.createdby = this._aws.getlocale(); + + return this._http.post(this.apiUrl + "savePDAdditionalRequiremets", { "records": saveData }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + + /* To get TypeofActivity's Product From About Business, + * To get RawMaterial's From Supplier Form, + * Used In 1) StockForm + * 2) AI - Purchase Tab + */ + // getProductsFromBusinessAndSupplier(pdid: any,companyid: any): Observable { + // // { "pd_id":"104","company_id":"1"} + // return this._http.post(this.apiUrl + "getProductsFromBusiness", { "pd_id" : pdid , "company_id":companyid }) + // .pipe( + // catchError(this.handleError('operation', [])) + // ) + // } + + + // getCompaniesListsForBusiness(pdid: any): Observable { + // return this._http.post(this.apiUrl + "getCompaniesListsForBusiness", { "records":{ "pd_id" : pdid}}) + // .pipe( + // catchError(this.handleError('operation', [])) + // ) + // } + + /** To get StateWise City List For + * 1) Family Form + * 2) add PD + */ + getStateWiseCities(stateid:any): Observable { + return this._http.post(this.apiUrl + "getListOfStatesAndCities", { "records":{ "state_id" : stateid}}) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + /** To get Family Member Name For + * 1) Family Form + */ + // getFamilyDetails(pdid:any): Observable { + // return this._http.post(this.apiUrl + "getFamilyDetails", { "pd_id" : pdid}) + // .pipe( + // catchError(this.handleError('operation', [])) + // ) + // } + + /** To get Family Member Name For + * 1) other income form - (income earned field) + * 2) bussiness form - (partner_name field) + */ + // getAllPersonsName(pdid:any): Observable { + // return this._http.post(this.apiUrl + "getAllPersonsName", { "pd_id" : pdid}) + // .pipe( + // catchError(this.handleError('operation', [])) + // ) + // } + + /** To get Business Asset For + * 1) Current Loan Form(where Business Asset loan Details is 'Yes' means name is displayed) + */ + // getAssetsWithLoanFromBusiness(pdid:any): Observable { + // return this._http.post(this.apiUrl + "getAssetsWithLoanFromBusiness",{ "pd_id" : pdid}) + // .pipe(catchError(this.handleError('operation', []))) + // } + + /** To get Enduse For Dropdown + * 1) loan details + */ +// getEndUseForLoan(pdid: any,subproductid: any): Observable { +// return this._http.post(this.apiUrl + "getEndUseOfLoan",{ "records":{"pd_id" : pdid,"sub_product_id":subproductid}}) +// .pipe( +// catchError(this.handleError('operation', [])) +// ) +// } + + // private handleError(operation = 'operation', result?: T) { + // return (error: any): Observable => { + // return of(result as T); + // }; + // } + + /**Search Filter + * Sriram + */ + + overAllSearchFormDetails(searchItem) { + let records = { 'records': searchItem }; + return this._http.post(this.apiUrl + 'filterPDList', records).pipe( + catchError(this.handleError('operation', [])) + ); + } + + // get list of cities for p serach options + getListOfCities() { + return this._http.get(this.apiUrl + 'getListOfCities') + .pipe( + catchError(this.handleError('role', [])) + ) + } + + // save assessed sales item wise + // saveAssessedDetails(methodURl: string,saveData:any){ + // //saveData.createdby = this._aws.getlocale(); + // return this._http.post(this.apiUrl + methodURl, { "records": saveData }) + // .pipe( + // catchError(this.handleError('operation', [])) + // ) + // } + + // this is for pd map details only for triggered/ allocated status + getPdMapList(triggeredStatus, allocatedStatus): Observable { + const firstStatus = triggeredStatus ? + { params: new HttpParams().set('status', triggeredStatus) } : {}; + let response1 = this._http.get(this.apiUrl + "listLessPDDetails/get", firstStatus); + const secondStatus = allocatedStatus ? + { params: new HttpParams().set('status', allocatedStatus) } : {}; + let response2 = this._http.get(this.apiUrl + "listLessPDDetails/get", secondStatus); + return forkJoin([response1, response2]); + } + // getPDCompleteDetails + getPDCompleteDetails(details: any): Observable { + return this._http.post(this.apiUrl + "getPDCompleteDetails",{ "records":details}) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // pdFormsCompletenessCheck + pdFormsCompletenessCheck(PDID: any): Observable { + return this._http.post(this.apiUrl + "pdFormsCompletenessCheck",{ "pd_id":PDID}) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + //set role access + getRoleAccessDetails() { + let setValues:any={}; + + setValues.trigger=true; + setValues.allocate=true; + setValues.schedule=true; + setValues.discussions=true; + setValues.reports=true; + function roleResult(value){ + switch (value) { + //central manager + case "1": + setValues.reports=true; + return setValues; + // pd manager + case "3": + setValues.trigger=true; + setValues.allocate=true; + setValues.schedule=true; + setValues.discussions=true; + return setValues; + // pd executive + case "4": + setValues.schedule=true; + setValues.discussions=true; + return setValues; + // pd officer + case "5": + setValues.schedule=true; + setValues.discussions=true; + return setValues; + // Admin + case "10": + setValues.trigger=true; + setValues.allocate=true; + setValues.schedule=true; + setValues.discussions=true; + setValues.reports=true; + return setValues; + default: + setValues.trigger=false; + setValues.allocate=false; + setValues.schedule=false; + setValues.discussions=false; + setValues.reports=false; + return setValues; + } + } + + // let result = roleResult(localStorage.getItem('user_role')); + //return result ; + return setValues; + + } + + //To Get State City Name Pincode + //From Name : Rental Information + // getStateCityNamesAndPincode(values): Observable { + // return this._http.post(this.apiUrl + 'getStateCityNamesAndPincode', { "records":values }) + // .pipe( + // catchError(this.handleError('role', [])) + // ) + // } + + // getBase64ImageFromURL(url): Observable { + // return this._http.post(this.apiUrl + 'convertBase64', { "img_url":url }) + // .pipe(catchError(this.handleError('role', []))) + // } + + // updatePDPhoto(values): Observable { + // values.fk_updatedby = this._aws.getlocale(); + // return this._http.post(this.apiUrl + 'updatePDPhoto', { "records":values }) + // .pipe(catchError(this.handleError('role', []))) + // } + +} diff --git a/ng6-seed/src/app/personal-discussion/personal-discussion.module.spec.ts b/ng6-seed/src/app/personal-discussion/personal-discussion.module.spec.ts new file mode 100755 index 0000000..5d31755 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/personal-discussion.module.spec.ts @@ -0,0 +1,13 @@ +import { PersonalDiscussionModule } from './personal-discussion.module'; + +describe('PersonalDiscussionModule', () => { + let personalDiscussionModule: PersonalDiscussionModule; + + beforeEach(() => { + personalDiscussionModule = new PersonalDiscussionModule(); + }); + + it('should create an instance', () => { + expect(personalDiscussionModule).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/personal-discussion/personal-discussion.module.ts b/ng6-seed/src/app/personal-discussion/personal-discussion.module.ts new file mode 100755 index 0000000..0bc51ae --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/personal-discussion.module.ts @@ -0,0 +1,55 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; +import { CKEditorModule } from 'ng2-ckeditor'; +import { PdfViewerModule } from 'ng2-pdf-viewer'; +import { + MatCardModule, + MatIconModule, + MatInputModule, + MatRadioModule, + MatButtonModule,MatTableModule,MatPaginatorModule, + MatProgressBarModule,MatDialogModule, MatSortModule, + MatToolbarModule,MatSelectModule, MatListModule, MatGridListModule, MatTabsModule, MatCheckboxModule, MatBadgeModule, MatExpansionModule } from '@angular/material'; +import {MatSlideToggleModule} from '@angular/material/slide-toggle'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { FileUploadModule } from 'ng2-file-upload/ng2-file-upload'; +import { TreeModule } from 'angular-tree-component'; +import { NgxDatatableModule } from '@swimlane/ngx-datatable'; +import { FlexLayoutModule } from '@angular/flex-layout'; +import { MatTooltipModule } from '@angular/material/tooltip'; + +import { NgxMatSelectSearchModule } from 'ngx-mat-select-search'; +import 'hammerjs'; +import { ManagePdModule } from './manage-pd/manage-pd.module'; + +import { personalDiscussionRoutes } from './personal-discussion.routing'; + +@NgModule({ + imports: [ + CommonModule, + RouterModule.forChild(personalDiscussionRoutes), + CKEditorModule, + PdfViewerModule, + ManagePdModule, + MatCardModule, + MatIconModule, + MatInputModule, + MatRadioModule, + MatTableModule, + MatPaginatorModule, + MatButtonModule, + MatProgressBarModule, + MatToolbarModule, + FlexLayoutModule, + NgxDatatableModule, + FormsModule,MatSlideToggleModule, + MatSelectModule, MatListModule,MatGridListModule, MatTabsModule, MatBadgeModule, MatCheckboxModule, + ReactiveFormsModule, + FileUploadModule, + TreeModule, + MatDialogModule,MatSortModule, + NgxMatSelectSearchModule,MatTooltipModule, MatExpansionModule, + ] +}) +export class PersonalDiscussionModule { } diff --git a/ng6-seed/src/app/personal-discussion/personal-discussion.routing.ts b/ng6-seed/src/app/personal-discussion/personal-discussion.routing.ts new file mode 100755 index 0000000..2854d0c --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/personal-discussion.routing.ts @@ -0,0 +1,18 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { ManagePdModule } from './manage-pd/manage-pd.module'; +export const personalDiscussionRoutes: Routes = [{ + path: '', + loadChildren:'./manage-pd/manage-pd.module#ManagePdModule', +// children:[{ +// path:'managepd', +// loadChildren:'./manage-pd/manage-pd.module#ManagePdModule' +// } +// ] +}]; + +// @NgModule({ +// imports: [RouterModule.forChild(routes)], +// exports: [RouterModule] +// }) +// export class PersonalDiscussionRoutingModule { } diff --git a/ng6-seed/src/app/quality-check/qc-list/qc-list.component.html b/ng6-seed/src/app/quality-check/qc-list/qc-list.component.html new file mode 100755 index 0000000..bbe37f0 --- /dev/null +++ b/ng6-seed/src/app/quality-check/qc-list/qc-list.component.html @@ -0,0 +1,31 @@ + + + +
+
+ + + +
+
+ + + + done Completed + + + + done_all QC Completed + + + + + + + +
+
+ + + + diff --git a/ng6-seed/src/app/quality-check/qc-list/qc-list.component.scss b/ng6-seed/src/app/quality-check/qc-list/qc-list.component.scss new file mode 100755 index 0000000..123db6e --- /dev/null +++ b/ng6-seed/src/app/quality-check/qc-list/qc-list.component.scss @@ -0,0 +1,23 @@ +.ic-change:hover { + transform: scale(1.1); + color: green; +} +.cell{ + display:inline !important; +} +.cellhide{ + display: none !important; +} +.center{ + text-align:center; +} +.fontsize{ + font-size:14px; +} + +.mat-ink-bar{ + background-color:red; +} +.mat-tab-label-active{ + color: red !important; + } \ No newline at end of file diff --git a/ng6-seed/src/app/quality-check/qc-list/qc-list.component.spec.ts b/ng6-seed/src/app/quality-check/qc-list/qc-list.component.spec.ts new file mode 100755 index 0000000..e2a5c8c --- /dev/null +++ b/ng6-seed/src/app/quality-check/qc-list/qc-list.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { QcListComponent } from './qc-list.component'; + +describe('QcListComponent', () => { + let component: QcListComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ QcListComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(QcListComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/quality-check/qc-list/qc-list.component.ts b/ng6-seed/src/app/quality-check/qc-list/qc-list.component.ts new file mode 100755 index 0000000..d93e2a6 --- /dev/null +++ b/ng6-seed/src/app/quality-check/qc-list/qc-list.component.ts @@ -0,0 +1,71 @@ +import { Component,ViewChild, OnInit, ViewEncapsulation, OnDestroy, OnChanges } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { NotifierService } from 'angular-notifier'; +import { MatPaginator, MatSort, MatTableDataSource, PageEvent, MatTabChangeEvent } from '@angular/material'; +import { CompletedPdComponent } from './../../personal-discussion/manage-pd/list-pd/completed-pd/completed-pd.component'; +import { QcCompletedPdComponent } from './../../personal-discussion/manage-pd/list-pd/qc-completed-pd/qc-completed-pd.component'; + +@Component({ + selector: 'app-qc-list', + templateUrl: './qc-list.component.html', + styleUrls: ['./qc-list.component.scss'], + encapsulation: ViewEncapsulation.None +}) +export class QcListComponent implements OnInit { + public filterValue: string; + private notifier: NotifierService; + recordStatus: boolean; + noRecordFound:boolean; + viewPdList:boolean; + viewMapPdList:boolean; + errorMessage: any; + public allTab:boolean; + public inprogressTab:boolean = false; + public scheduledTab:boolean = false; + public completedTab:boolean = false; + public getTabIndex:number=0; + + @ViewChild(CompletedPdComponent) completedTabC: CompletedPdComponent; + @ViewChild(QcCompletedPdComponent) qcCompletedTabC: QcCompletedPdComponent; + + constructor( notifier: NotifierService, private route: ActivatedRoute, + private router: Router) { + this.notifier = notifier; + } + + ngOnInit() { + this.viewPdList = true; + this.recordStatus=false; + this.allTab=true; + + } + // after view call all tabs component + ngAfterViewInit() { + this.completedTabC.loadPDDetails(); + } + + showListView(status: boolean){ + this.viewPdList = status; + + } + pdListLoad(status: boolean){ + this.viewPdList = status; + this.getTabIndex==0 ? this.completedTabC.loadPDDetails() : this.qcCompletedTabC.loadPDDetails(); + + } + viewPDDetails(pdid:string){ + this.viewPdList = !this.viewPdList; + this.router.navigate([ '../qclist/viewpd',pdid], { relativeTo: this.route }); + + } + //get tab changes + onTabClick(event: MatTabChangeEvent) { + this.getTabIndex=event.index; + this.getTabIndex==0 ? this.completedTabC.loadPDDetails() : this.qcCompletedTabC.loadPDDetails(); + } + + ngOnDestroy(): void { + this.viewPdList=false; + } + +} diff --git a/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/model-edit-pd-report/model-edit-pd-report.component.html b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/model-edit-pd-report/model-edit-pd-report.component.html new file mode 100755 index 0000000..e7b33e5 --- /dev/null +++ b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/model-edit-pd-report/model-edit-pd-report.component.html @@ -0,0 +1,22 @@ +
+

+
+ Edit PD Report Details +
+ +

+ +
+
+ + +
+ +
+
+ + + + +
+ diff --git a/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/model-edit-pd-report/model-edit-pd-report.component.scss b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/model-edit-pd-report/model-edit-pd-report.component.scss new file mode 100755 index 0000000..21a517b --- /dev/null +++ b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/model-edit-pd-report/model-edit-pd-report.component.scss @@ -0,0 +1,8 @@ +::ng-deep .cdk-global-overlay-wrapper{ + justify-content: center !important; + overflow: hidden; +} +.paragraph_change { + color: #fff !important; + background-color: #e00201 !important; + } \ No newline at end of file diff --git a/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/model-edit-pd-report/model-edit-pd-report.component.spec.ts b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/model-edit-pd-report/model-edit-pd-report.component.spec.ts new file mode 100755 index 0000000..03efc6e --- /dev/null +++ b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/model-edit-pd-report/model-edit-pd-report.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ModelEditPdReportComponent } from './model-edit-pd-report.component'; + +describe('ModelEditPdReportComponent', () => { + let component: ModelEditPdReportComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ModelEditPdReportComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ModelEditPdReportComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/model-edit-pd-report/model-edit-pd-report.component.ts b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/model-edit-pd-report/model-edit-pd-report.component.ts new file mode 100755 index 0000000..c1fc032 --- /dev/null +++ b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/model-edit-pd-report/model-edit-pd-report.component.ts @@ -0,0 +1,98 @@ +import { Component, OnInit, ViewChild , Input, Inject} from '@angular/core'; +import { FormGroup, FormBuilder, Validators } from '@angular/forms'; +import { QcService } from './../../../qc-service/qc.service'; +import { NotifierService } from "angular-notifier"; + + +import { + MatDialog, + MatDialogRef, + MAT_DIALOG_DATA +} from '@angular/material'; + +@Component({ + selector: 'app-model-edit-pd-report', + templateUrl: './model-edit-pd-report.component.html', + styleUrls: ['./model-edit-pd-report.component.scss'], +}) +export class ModelEditPdReportComponent implements OnInit { + + @Input() questionId: number; + ngForm: FormGroup; + name = 'ng2-ckeditor'; + ckeConfig: any; + recordData: any; + log = ''; + showEditor: boolean= false; + @ViewChild('myckeditor') ckeditor: any; +/** + * Notifier service + */ + private notifier: NotifierService; + constructor( private _formBuilder: FormBuilder, + private pdTrigerService: QcService, + notifier: NotifierService , + private dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any) { + this.notifier = notifier; + this.ngForm = this._formBuilder.group({ + report_template_id: [], + fk_template_id: [], + content: [null, Validators.compose([Validators.required])], + isactive:[1] + }) + // this.mycontent = `

My html content

`; + } + + ngOnInit() { + // alert(JSON.stringify(this.data)); + // this.ngForm.controls['content'].setValue('

Home

'); + this.pdTrigerService.getActualPDReportModelTemplate(this.data).subscribe(data => { + if(data['dataStatus']){ + this.recordData = data.records[0]; + this.ngForm = this._formBuilder.group({ + content: [this.recordData.content, Validators.compose([Validators.required])], + isactive:[this.recordData.isactive] + }); + this.showEditor = true; + } + },err => { + + }); + this.ckeConfig = { + // allowedContent: false, + // extraPlugins: 'divarea', + // forcePasteAsPlainText: true, + height:250, + }; + } + + onChange($event: any): void { + console.log('onChange'); + // this.log += new Date() + "
"; + } + + myClick(): void { + let template = this.ngForm.controls['content'].value; + // alert(template); + let data = { + content: template, + pd_id: this.data.startId + } + + // alert(JSON.stringify(data)); + // var formValues = this.ngForm.value; + // Object.keys(formValues).forEach((key) => (formValues[key] == null) && delete formValues[key]); + + this.pdTrigerService.updatePDReportDetails(data).subscribe(data=>{ + this.notifier.notify('success', 'Your Changes Updated.!'); + this.dialogRef.close({ + status: true + } + ); + }, err => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + + }) + } +} diff --git a/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-pd-report.component.html b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-pd-report.component.html new file mode 100644 index 0000000..77805c4 --- /dev/null +++ b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-pd-report.component.html @@ -0,0 +1,110 @@ + + +
+ + + + + + + + +

{{ pd.doc_name }}

+ +
+

{{pd.createdby}} ({{pd.createdon}})

+ + + +
+ + +
+ + + + View More + + + + +
+ +
+ +
+
+ +
+ + +
+
+ + + +
+ +
+
+ +
+
+ + +
+
+
+
+
+
+
{{message}}
+
+ + + +
+
+
+
+ +
+ +
+ + + +
+ +
+ + +
+ +
+ + + +
+ +
+
+ +
+
+ + +
+ \ No newline at end of file diff --git a/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-pd-report.component.scss b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-pd-report.component.scss new file mode 100644 index 0000000..cb94a35 --- /dev/null +++ b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-pd-report.component.scss @@ -0,0 +1,128 @@ +@import "./../../../../assets/styles/scss/components/messages"; +:host { + margin-left: -5px; + margin-right: -5px; + margin-top: -5px; + display: block; +} +:host /deep/ { + mat-sidenav { + max-width: 400px; + max-height: 500px; + overflow-y: auto; + } + .mat-sidenav-content { + padding: 0; + + } + @media (min-width: 959px) { + .mat-sidenav-side { + background-color: transparent; + box-shadow: none!important; + } + + } +} +.mat-menu-item-active { + color: red !important; +} +.mat-expansion-panel-header-description { + color: rgba(0, 0, 0, 87); +} +.mat-card-content { + background-color: white; +} +.mat-card-actions { + background-color: white; +} + +.text-ellipsis { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.custm-list-item { + cursor: pointer; +} + + +$base-card-box-shadow:1.5px 2.6px 24px 0 rgba(0, 35, 136, 0.08) !important; +$product-bg-color-hover: rgba(103, 58, 183, 0.7); +.p-list-main { + background: white; + margin: auto; + position: relative; + overflow: hidden !important; + border-radius: 10px 10px 10px 10px; + box-shadow: $base-card-box-shadow; + transform: scale(0.95); + transition: box-shadow 0.5s, transform 0.5s; + &:hover { + transform: scale(1); + box-shadow: 5px 20px 30px rgba(0, 0, 0, 0.2); + } + .p-list { + position: relative; + .top { + height: 100%; + width: 100%; + // background: url(https://s-media-cache-ak0.pinimg.com/736x/49/80/6f/49806f3f1c7483093855ebca1b8ae2c4.jpg) no-repeat center center; + -webkit-background-size: 100%; + -moz-background-size: 100%; + -o-background-size: 100%; + background-size: 100%; + } + .bottom { + width: 200%; + height: 15%; + transition: transform 0.5s; + h1 { + margin: 0; + padding: 0; + } + p { + margin: 0; + padding: 0; + } + .left { + height: 100%; + width: 50%; + background: #f4f4f4; + position: relative; + float: left; + .details { + padding: 5px; + float: left; + // width: calc(70% - 40px); + } + + } + .right { + width: 50%; + background: #A6CDDE; + color: white; + float: right; + height: 200%; + overflow: hidden; + .details { + padding: 20px; + float: right; + width: calc(70% - 40px); + } + + + } + } + } + +} + +.custm-list-item { + cursor: pointer; + } + .footer { + position: fixed; + bottom: 2%; + right: 2%; +} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/city/city-dialog/city-dialog.component.spec.ts b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-pd-report.component.spec.ts similarity index 54% rename from ng6-seed/src/app/settings/masters/component/city/city-dialog/city-dialog.component.spec.ts rename to ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-pd-report.component.spec.ts index fbe710d..c6d26d2 100644 --- a/ng6-seed/src/app/settings/masters/component/city/city-dialog/city-dialog.component.spec.ts +++ b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-pd-report.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { CityDialogComponent } from './city-dialog.component'; +import { QcPdReportComponent } from './qc-pd-report.component'; -describe('CityDialogComponent', () => { - let component: CityDialogComponent; - let fixture: ComponentFixture; +describe('QcPdReportComponent', () => { + let component: QcPdReportComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ CityDialogComponent ] + declarations: [ QcPdReportComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(CityDialogComponent); + fixture = TestBed.createComponent(QcPdReportComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-pd-report.component.ts b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-pd-report.component.ts new file mode 100644 index 0000000..8775e7f --- /dev/null +++ b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-pd-report.component.ts @@ -0,0 +1,334 @@ +import { DomSanitizer, SafeResourceUrl, SafeUrl } from '@angular/platform-browser'; +import { Component, ViewChild, OnInit, ViewEncapsulation, OnDestroy, Inject } from '@angular/core'; +import { FormBuilder, FormGroup, Validators, FormControl, FormArray, AbstractControl } from '@angular/forms'; +import { ActivatedRoute, Router } from '@angular/router'; +import { NotifierService } from 'angular-notifier'; +import { QcListComponent } from './../qc-list.component'; + +import { saveAs as importedSaveAs } from "file-saver"; + +import { QcService } from './../../qc-service/qc.service'; +import { + MatDialog, + MatDialogRef, + MAT_DIALOG_DATA +} from "@angular/material"; +import { ModelEditPdReportComponent } from './model-edit-pd-report/model-edit-pd-report.component'; +import { QcReviewComponent } from './qc-review/qc-review.component'; +import { HttpResponse } from "@angular/common/http"; + +@Component({ + selector: 'app-qc-pd-report', + templateUrl: './qc-pd-report.component.html', + styleUrls: ['./qc-pd-report.component.scss'] +}) +export class QcPdReportComponent implements OnInit { + + Url: SafeUrl; + startPD: any; + // public src = 'https://vadimdez.github.io/ng2-pdf-viewer/assets/pdf-test.pdf'; + // public src = 'https://lender7.s3.ap-south-1.amazonaws.com/pd1/pd_report_original_version.pdf?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJ3QDSPT3LDSWRYUQ%2F20181210%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Date=20181210T053116Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature=6e25703a1e339dd5f081fa8aca5b8b2d81ba161d8cfd708759de899abf72146b'; + public src; + public document; + public generateBtn: Boolean = false; + public reGenerateBtn: Boolean = false; + public pdReportVersionList = []; + // public src; + pdReportRecords: any; + latestPDDetails: any; + message: any; + selectedIndex: Number; + + private notifier: NotifierService; + constructor(notifier: NotifierService, private fb: FormBuilder, private route: ActivatedRoute, + private router: Router, public pdTrigerService: QcService, private listPDComponent: QcListComponent, + private dialog: MatDialog, private sanitizer: DomSanitizer) { + this.startPD = this.route.snapshot.params['pdid']; + this.notifier = notifier; + // this.src = 'https://lender7.s3.ap-south-1.amazonaws.com/pd1/pd_report_original_version.pdf?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJ3QDSPT3LDSWRYUQ%2F20181210%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Date=20181210T073026Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature=35aa183cbbfc835f96719a5e9aa552c79b3a1b7d8bca043f7d738d730755dcbb'; + // this.src = this.sanitizer.bypassSecurityTrustResourceUrl("https://lender7.s3.ap-south-1.amazonaws.com/pd1/pd_report_original_version.pdf?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJ3QDSPT3LDSWRYUQ%2F20181210%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Date=20181210T053116Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature=6e25703a1e339dd5f081fa8aca5b8b2d81ba161d8cfd708759de899abf72146b"); + // alert(JSON.stringify(this.src)); + // this.document = { name: 'Angular 2', + // description: 'An amazing Angular 2 pdf', + // url: { url: 'https://lender7.s3.ap-south-1.amazonaws.com/pd1/pd_report_original_version.pdf?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJ3QDSPT3LDSWRYUQ%2F20181210%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Date=20181210T053116Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature=6e25703a1e339dd5f081fa8aca5b8b2d81ba161d8cfd708759de899abf72146b', withCredentials: true } }; + // this.Url = this.sanitizer.bypassSecurityTrustResourceUrl("https://lender7.s3.ap-south-1.amazonaws.com/pd1/pd_report_original_version.pdf?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAJ3QDSPT3LDSWRYUQ%2F20181207%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Date=20181207T122031Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature=fac718f35d195ecb45d1dc7049fbaf0fa3158f237deeedac3bae60f8ec22e822"); + } + + ngOnInit() { + this.listPDComponent.showListView(false); + this.getPdReportDetails(); + this.getPdReportVersionList(); + // start + + // end + const elemSidebar = document.querySelector('.app-inner .mail-sidebar'); + const elemContent = document.querySelector('.app-inner .main-content'); + + if (window.matchMedia(`(min-width: 1560px)`).matches && !this.isMac()) { + // Ps.initialize(elemSidebar, { wheelSpeed: 2, suppressScrollX: true }); + // Ps.initialize(elemContent, { wheelSpeed: 2, suppressScrollX: true }); + } + + // this.loadTemplates(this.startPD); + // this.next = 1; + // this.previous = 2; + } + + + isMac(): boolean { + let bool = false; + if (navigator.platform.toUpperCase().indexOf('MAC') >= 0 || navigator.platform.toUpperCase().indexOf('IPAD') >= 0) { + bool = true; + } + return bool; + } + + + + + isOver(): boolean { + return window.matchMedia(`(max-width: 1560px)`).matches; + } + + reGeneratePFReport() { + let data = { + "pd_id": this.startPD, + "regenerate": "1" + }; + this.pdTrigerService.getPDReportFinalDocument(data).subscribe(data => { + if (data.dataStatus) { + this.notifier.notify('success', 'Your Changes Updated.!'); + this.getPdReportVersionList(); + } else { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + } + }, err => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + }) + } + generateNewPDReport() { + let data = { + "pd_id": this.startPD + }; + this.pdTrigerService.getPDReportFinalDocument(data).subscribe(data => { + if (data.dataStatus) { + this.notifier.notify('success', 'Your Changes Updated.!'); + this.getPdReportVersionList(); + } else { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + } + }, err => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + }) + } + + public qcStatus: string = ''; + getPdReportVersionList() { + this.pdTrigerService.getPdDocVersionList(this.startPD).subscribe(data => { + if (data.status == 200 && data.dataStatus) { + this.pdReportVersionList = [...data.records.reports_urls].reverse(); + let datas = this.pdReportVersionList.filter((a) => { return a.is_latest == 1; }) + this.latestPDDetails = datas[0]; + this.selectedIndex = 0; + + this.qcStatus = data.records.pdstatus; + // alert(JSON.stringify(this.latestPDDetails)); + this.generateBtn=false; + this.reGenerateBtn = true; + } else { + // this.reGenerateBtn = true; + this.generateBtn = true; + this.message = data.msg; + } + }, err => { + + }) + } + + getPdReportDetails() { + this.pdTrigerService.getPdFinalReportDetails(this.startPD).subscribe(data => { + if (data.status == 200) { + // this.pdReportRecords = data.records.question_answers; + this.pdReportRecords = data.records; + // this.pdReportRecords = data.records.qu; + } + }, err => { + + }) + } + + + + // load pd view component + loadPdViewCompoent() { + this.router.navigate(['../../viewpd', this.startPD], { relativeTo: this.route }); + } + + // add questions popup model call + addNewQuestion() { + const dialogRef = this.dialog.open(ModelEditPdReportComponent, { + data: { startId: this.startPD, version_id: this.latestPDDetails.doc_name }, + maxWidth: '100vw', + maxHeight: '100vh', + height: '100%', + width: '100%', + disableClose: true + }); + dialogRef.afterClosed() + .subscribe(dataresult => { + if(dataresult.status==true){ + this.getPdReportVersionList(); + } + // this.getPdReportFinalTemplateDetails(); + // this.getQuestionsMasters(); + // this.getBranch(); + // this.isPopupOpened = false; + }); + } + + changeVersion(pd: any,selIndex: Number): void { + this.latestPDDetails = pd; + this.selectedIndex = selIndex; + } + + + + reportReview(status): void { + const dialogRef = this.dialog.open(QcReviewComponent, { + data: { startId: this.startPD, data_status: status }, + disableClose: true + }); + dialogRef.afterClosed() + .subscribe(dataresult => { + if(dataresult.status==true){ + this.getPdReportVersionList(); + } + // this.getPdReportFinalTemplateDetails(); + // this.getQuestionsMasters(); + // this.getBranch(); + // this.isPopupOpened = false; + }); + } + + changeDocumentEdit(): void { + + + const dialogRef = this.dialog.open(DialogChangeCurrentVenrsion, { + disableClose: true + }); + dialogRef.afterClosed() + .subscribe(dataresult => { + if (dataresult) { + let data = { + "pd_id": this.startPD, + "doc_name": this.latestPDDetails.doc_name + }; + this.pdTrigerService.swapOlderPDReportToLatest(data).subscribe(data => { + if (data.status == 200) { + this.notifier.notify('success', 'Your Changes Updated.!'); + this.getPdReportVersionList(); + } else { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + } + }, err => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + }) + } else { + } + }); + + + // Swal('User Created'); + // swal({ + // title: 'Error!', + // text: 'Do you want to continue', + // type: 'error', + // confirmButtonText: 'Cool' + // }); + + // Swal({ + // title: 'Are you sure?', + // type: 'warning', + // showCancelButton: true, + // confirmButtonColor: '#3085d6', + // cancelButtonColor: '#d33', + // confirmButtonText: SwalButtonText + // }).then((result) => { + // if (result.value) { + // // this._mastersService.editMasterDetails(ActiveDatas,'CITY') + // // .subscribe(dataresult=>{ + // // if (dataresult.dataStatus == true){ + // // Swal(this.SwalMessage,'success'); + // // this.getCity(); + // // } + // // else{ + // // Swal("Sorry Try Again !"); + // // } + // // }); + // } + // else{ + // // this.getCity(); + // }s + // }) + } + + export() { + this.pdTrigerService.pdReportExportExcel().subscribe((blob: HttpResponse) => { + if (blob) { + console.log(blob); + let datass = blob.headers.get('content-disposition'); + let fileName = datass.split(/"/)[1]; + // this.notifier.notify('success', 'Your Changes Updated.!'); + const blobs = new Blob([blob.body], + { type: 'application/vnd.ms-excel' }); + const file = new File([blobs], fileName, + { type: 'application/vnd.ms-excel' }); + console.log(file); + importedSaveAs(file); + } else { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + } + }, err => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + }) + } +} + + + +@Component({ + selector: 'dialog-overview-example-dialog', + styles: [` +.listHover: hover { + background: yellow; + }` + ], + template: ` +
+

Document is marked as final

+

Because you've marked the document as final, you can edit this document.

+
+ + +
+
+ ` +}) +export class DialogChangeCurrentVenrsion implements OnInit { + + public m_questions: any; + + public m_question_forms: any; + constructor( + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data) { + } + + ngOnInit(): void { + } + + getConfirmation(confim: Boolean) { + this.dialogRef.close(confim); + } + +} diff --git a/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-review/qc-review.component.html b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-review/qc-review.component.html new file mode 100755 index 0000000..bda833b --- /dev/null +++ b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-review/qc-review.component.html @@ -0,0 +1,49 @@ +
+

QC Complete

+ + +
+

+ Once QC is Completed further edit will not be possible on this document. +

+
+
+
+
+ +
+
+ + Remarks + + +
+
+
+
+ + + + + +
+ +
+

QC Notes

+ +
+
+
+ + Remarks + + +
+
+
+
+ + + + +
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/register/register.component.scss b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-review/qc-review.component.scss old mode 100644 new mode 100755 similarity index 100% rename from ng6-seed/src/app/settings/register/register.component.scss rename to ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-review/qc-review.component.scss diff --git a/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-review/qc-review.component.spec.ts b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-review/qc-review.component.spec.ts new file mode 100755 index 0000000..0d0b84d --- /dev/null +++ b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-review/qc-review.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { QcReviewComponent } from './qc-review.component'; + +describe('QcReviewComponent', () => { + let component: QcReviewComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ QcReviewComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(QcReviewComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-review/qc-review.component.ts b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-review/qc-review.component.ts new file mode 100755 index 0000000..77f1818 --- /dev/null +++ b/ng6-seed/src/app/quality-check/qc-list/qc-pd-report/qc-review/qc-review.component.ts @@ -0,0 +1,109 @@ +import { Component, OnInit, ViewChild , Input, Inject} from '@angular/core'; +import { FormGroup, FormBuilder, Validators } from '@angular/forms'; +import { QcService } from './../../../qc-service/qc.service'; +import { NotifierService } from "angular-notifier"; + + +import { + MatDialog, + MatDialogRef, + MAT_DIALOG_DATA +} from '@angular/material'; + +@Component({ + selector: 'app-qc-review', + templateUrl: './qc-review.component.html', + styleUrls: ['./qc-review.component.scss'] +}) +export class QcReviewComponent implements OnInit { + + conformation: Boolean = false; + @Input() questionId: number; + ngForm: FormGroup; + recordData: any; + showForm: Boolean; + showStatus : any; +/** + * Notifier service + */ + private notifier: NotifierService; + constructor( private _formBuilder: FormBuilder, + private pdTrigerService: QcService, + notifier: NotifierService , + private dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any) { + this.notifier = notifier; + this.showStatus = this.data.data_status; + // this.mycontent = `

My html content

`; + } + + ngOnInit() { + this.getQcCompleteReviewStatus(); + } + + getQcCompleteReviewStatus() { + let type ; ''; + if( this.showStatus === 'REMARKS'){ + type = 'QC_REMARKS'; + this.pdTrigerService.getQCReportFinalReviewDetails(this.data.startId, type).subscribe(data => { + if(data['dataStatus']){ + this.recordData = data.records[0]; + this.ngForm = this._formBuilder.group({ + qc_remarks: [this.recordData.qc_remarks], + pd_status: [this.recordData.pd_status] + }) + this.showForm = true; + } + },err => { + + }); + } else if(this.showStatus === 'COMPLETE') { + type = 'QC'; + this.pdTrigerService.getQCReportFinalReviewDetails(this.data.startId, type).subscribe(data => { + if(data['dataStatus']){ + this.recordData = data.records[0]; + this.ngForm = this._formBuilder.group({ + qc_feedback: [this.recordData.qc_feedback], + qc_rating: [Number(this.recordData.qc_rating)], + pd_status: ["QC_COMPLETED"], + }) + this.showForm = true; + } + },err => { + + }); + } else { + } + + } + + onChange($event: any): void { + // this.log += new Date() + "
"; + } + + myClick(): void { + let template = this.ngForm.value; + template.pd_id = this.data.startId; + this.pdTrigerService.pdReviewStatusUpdate(template).subscribe(data=>{ + this.notifier.notify('success', 'Your Changes Updated.!'); + this.dialogRef.close({ + status:true + }); + }, err => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + + }) + } + + + + // ============================= + + ratingClicked: number; + itemIdRatingClicked: string; + rating : number = 1; + + ratingComponentClick(e){ + this.ngForm.controls.qc_rating.setValue(e.rating); + } +} diff --git a/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.html b/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.html new file mode 100755 index 0000000..2940f75 --- /dev/null +++ b/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.html @@ -0,0 +1,385 @@ + + + +
+
+ + + + + +
+
+
+ {{master.pd_type_name}} +
+
+
+
+ + + +
+
+
+ {{master.lender_short_name}} +
+
+ {{master.branch_name}} +
+
+
+
+ + +
+
+
+ {{master.lender_applicant_id}} +
+
+ {{master.pd_date_of_initiation}} +
+
+
+
+ + + + +
+
+
+ {{master.product_name}}
+ {{master.subproduct_name}} +
+ +
+
+
+ + +
+
+
+ Loan Amount +
+
+ {{master.loan_amount}} +
+ +
+
+
+
+
+ Lender Contact Details + + + {{master.pd_contact_person}} + + + {{master.pd_contact_mobileno}} + + +
+ + + + +
+ + +
+
+
+
+
+ + + + + + + +
+
+
+
+ + + +
+
+ +
+
+
+ {{master.pd_status==pdStatusCheck.QC_COMPLETED ? 'QC Completed' : master.pd_status==pdStatusCheck.ADD_ON_PENDING ? 'Completed' : master.pd_status | titlecase}} +
+
+ + + +
+
+
+
+
+
+
+ {{master.pd_allocated_to | titlecase}} +
+
+ {{master.executive_name | titlecase}} +
+
+ {{master.centralofficer | titlecase}} +
+
+
+ {{master.scheduled_on}} +
+
+
+ +
+
+
+
+ + + + + + + +
+
+
+ {{addresses.addtional_pd_data[0].pd_status==pdStatusCheck.QC_COMPLETED ? 'QC Completed' : addresses.addtional_pd_data[0].pd_status==pdStatusCheck.ADD_ON_PENDING ? 'Completed' : addresses.addtional_pd_data[0].pd_status | titlecase}} +
+
+ + +
+
+
+
+
+ {{addresses.addtional_pd_data[0].pd_allocated_to | titlecase}} +
+
+ {{addresses.addtional_pd_data[0].executive_name | titlecase}} +
+
+ {{addresses.addtional_pd_data[0].centralofficer | titlecase}} +
+
+
+ {{addresses.addtional_pd_data[0].scheduled_on}} +
+
+
+
+
+
+ +
+
+ + +
+
+ + +
+
+ {{addresses.addressline1}},
{{addresses.city_name}},
{{addresses.state_name}}-{{addresses.pincode_id == 1 ? addresses.other_pincode : addresses.pincode }}
+
+
+
+ + + +
+
+ + + +
+ + + Remarks + +
+ +

{{master.remarks}}

+
+
+ +
+ +
+ +
+
+ + +

PD Details

+ + + Applicants + + +
+ Applicants +
+
+ +
+
+ + + + +

+ +  {{applicant.applicant_name}} +     + + +  {{applicant.mobile_no}} +     + + +  {{applicant.landline}} + + ( Applicant ) + {{applicant.relation_name}} +

+
+
+
+ + +

No Applicant

+
+
+
+ + Additional Requirements + + + +
+ Additional Requirements +
+
+ +
+
+ + + +

{{requirement.add_requirement}}

+
+
+
+ + +

No Additional Requirements

+
+
+
+ + Documents + + + +

No Document

+
+
+
+ + QC Notes +
+
QC Notes
+
+

+ {{ pdMasterData[0]?.qc_remarks}}

+ +
+ + QC Feedback +
+
+
QC Feedback
+
+
+
+
+ {{ pdMasterData[0]?.qc_rating}} +
+
+ +
+
+
+
+
+ {{ pdMasterData[0]?.qc_feedback}} +
+
+ + +

No Feedback

+
+
+
+ + PD History +
+ + + {{master.time}}  + {{master.user}}
{{master.log}}
+ +
+ +
+
+ + +

No History

+
+
+
+
+
+
+
\ No newline at end of file diff --git a/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.scss b/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.scss new file mode 100755 index 0000000..d2bc8d1 --- /dev/null +++ b/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.scss @@ -0,0 +1,44 @@ +.cardEdit { + float:right; + padding-top:3%; +} +.minheight { + min-height: 100%; +} +::ng-deep .body-container{ + padding: 0rem !important; +} + +.metaDataStyle{ + height:89px !important; +} + + +:host { + margin-left: -5px; + margin-right: -5px; + margin-top: -5px; + display: block; +} +.wrapper { + margin: 6px; +} + +.content-data{ + h2{ + font-size: 1.5rem; + } +} +@media(max-width:767px){ + .profile-center{ + text-align: center; + } +} + +.mat-list .mat-list-item.center .mat-list-item-content{ + justify-content: center; +// color: #fff +} +.mat-list .mat-list-item.center .mat-list-text>*{ +margin: 0 auto 0 0; +} \ No newline at end of file diff --git a/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.spec.ts b/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.spec.ts new file mode 100755 index 0000000..4535b0d --- /dev/null +++ b/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { QcViewComponent } from './qc-view.component'; + +describe('QcViewComponent', () => { + let component: QcViewComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ QcViewComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(QcViewComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.ts b/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.ts new file mode 100755 index 0000000..82a5546 --- /dev/null +++ b/ng6-seed/src/app/quality-check/qc-list/qc-view/qc-view.component.ts @@ -0,0 +1,203 @@ +import { Component, OnInit,ViewEncapsulation, EventEmitter, Input, Output, OnDestroy } from '@angular/core'; +import { FormBuilder, FormGroup, Validators, FormControl, FormArray } from '@angular/forms'; +import { ActivatedRoute, Router } from '@angular/router'; +import { MatDialog } from '@angular/material'; +import { NotifierService } from 'angular-notifier'; +import { QcService } from './../../qc-service/qc.service'; +import { QcListComponent } from './../qc-list.component'; +// import { PdAllocationComponent } from './../../../personal-discussion/manage-pd/list-pd/pd-allocation/pd-allocation.component'; +import { SmartPdAllocationComponent } from './../../../personal-discussion/manage-pd/list-pd/smart-pd-allocation/smart-pd-allocation.component'; +import { TelePdAllocationComponent } from './../../../personal-discussion/manage-pd/list-pd/tele-pd-allocation/tele-pd-allocation.component'; +// import { SchedulePdComponent } from './../../../personal-discussion/manage-pd/list-pd/schedule-pd/schedule-pd.component'; +import { EditPdApplicantComponent } from './../../../personal-discussion/manage-pd/list-pd/edit-pd-applicant/edit-pd-applicant.component'; +import { EditPdMasterComponent } from './../../../personal-discussion/manage-pd/list-pd/edit-pd-master/edit-pd-master.component'; +import { PdRequirementComponent } from './../../../personal-discussion/manage-pd/list-pd/pd-requirement/pd-requirement.component'; +import { InitiateAdditionalPdComponent } from './../../../personal-discussion/manage-pd/list-pd/initiate-additional-pd/initiate-additional-pd.component'; + +import {DatePipe } from '@angular/common'; +@Component({ + selector: 'app-qc-view', + templateUrl: './qc-view.component.html', + styleUrls: ['./qc-view.component.scss'], + encapsulation: ViewEncapsulation.None +}) +export class QcViewComponent implements OnInit, OnDestroy { + pipe = new DatePipe('en-US'); + public selectedMoment = new Date(); + private notifier:NotifierService; + errorMessage: any; + pdMasterData: any=[]; + pdApplicantData: any=[]; + pdDocumentsData: any=[]; + masterPdLogsData: any=[]; + applicantPDLogsData: any=[]; + viewID:string; + viewParams:any; + destroyType:number=1; + currentPDStatus:string; + pdAdditionalReqData: any=[]; + enableStartPD: boolean; + public userRoleID = +localStorage.getItem('user_role'); + // create values for status check + pdStatusCheck :any={ + "DRAFT" :'DRAFT', + "TRIGGERED" :'TRIGGERED', + "ALLOCATED" :'ALLOCATED', + "SCHEDULED" :'SCHEDULED', + "INPROGRESS" :'INPROGRESS', + "COMPLETED" :'COMPLETED', + "ADD_ON_PENDING": 'ADD_ON_PENDING', + "QC_COMPLETED" :'QC_COMPLETED', + }; + public _EditPDtriggerForm:FormGroup; + pd_QC_Rating: Number; + constructor(notifier:NotifierService,private dialog: MatDialog,private _fb: FormBuilder, + private _qc: QcService,private route: ActivatedRoute,private router: Router, private QcListComponent: QcListComponent) { + this.notifier=notifier + this.enableStartPD=false; + } + + ngOnInit() { + this.QcListComponent.showListView(false); + this.route.params.subscribe(params => { + this.viewID = params['pdid']; + }); + + this.viewPdDetails(this.viewID); + } + viewPdDetails(editID:string){ + this.pdMasterData = []; + this._qc.editPdDetails(editID).subscribe( + data => { + if (data.status == 200) { + let masterData: any = data.records.pd_master_details; + this.pdMasterData.push(masterData[0]); + this.pd_QC_Rating = Number(this.pdMasterData.qc_rating); + this.pdApplicantData= data.records.applicants_details; + this.pdApplicantData = this.pdApplicantData.filter(appt => appt.applicant_type != 2); + this.pdDocumentsData=data.records.pd_documnets; + this.masterPdLogsData=data.records.pd_logs.master; + this.pdMasterData[0].addresses = data.records.pd_address.filter(item => item.isactive == 1); + //this.applicantPDLogsData= data.records.pd_logs.master; + this.currentPDStatus = data.records.pd_master_details[0].pd_status; + this.pdAdditionalReqData = data.records.pd_additional_requirements; + // enable pd start time + if(data.records.pd_master_details[0].scheduled_on_for_validation){ + let courrentDateTime: string = this.pipe.transform(new Date(), 'yyyy-MM-dd HH:mm'); + let scheduledDateTime: string=data.records.pd_master_details[0].scheduled_on_for_validation; + let diffInMs: number = Date.parse(courrentDateTime) - Date.parse(scheduledDateTime); + let diffInHours: number = Math.floor(diffInMs / 1000 / 60 / 60); + if(diffInHours>=-4){ + this.enableStartPD=true; + } + else { + this.enableStartPD=false; + } + } + else { + this.enableStartPD=false; + } + } + }, error => this.errorMessage = error); + } + + loadPdListCompoent() { + this.destroyType=2; + this.router.navigate([ '../../' ], { relativeTo: this.route }); + this.QcListComponent.pdListLoad(true); + } + + editPdMaster(masterData:any){ + let record = { + "records":masterData, + "applicantLength": this.pdApplicantData.length + } + const dialogPDMaster = this.dialog.open(EditPdMasterComponent, { + data: record, + position: { right: '0'}, + width: '80%', + disableClose: true + }); + dialogPDMaster.afterClosed() + .subscribe(dataresult => { + // this.notifier.notify('success', 'Successfully allocated.!'); + this.viewPdDetails(this.viewID) + }); + } + editPdApplicant(applicantData:any){ + let setPdDetails = { + "pdID":this.viewID, + "records":applicantData + } + const dialogApplicant = this.dialog.open(EditPdApplicantComponent, { + data: setPdDetails, + position: { right: '0'}, + width: '60%', + disableClose: true + }); + dialogApplicant.afterClosed() + .subscribe(dataresult => { + // this.notifier.notify('success', 'Successfully allocated.!'); + this.viewPdDetails(this.viewID) + }); + } + // edit pd addtional requirements + editAdditionalRequirement(requirementData:any){ + let setPdDetails = { + "pdID":this.viewID, + "records":requirementData + } + const dialogRequirement = this.dialog.open(PdRequirementComponent, { + data: setPdDetails, + position: { right: '0'}, + width: '60%', + disableClose: true + }); + dialogRequirement.afterClosed() + .subscribe(dataresult => { + // this.notifier.notify('success', 'Successfully allocated.!'); + this.viewPdDetails(this.viewID) + }); + } + // pd allocation to + + + // pd schedule details + + + // this is for initiate additional pd + initiateAddtionalPD(parentData: any, childData: any, type: boolean){ + const dialogRef = this.dialog.open(InitiateAdditionalPdComponent, { + data: { "type":type,"pd_id":parentData.pd_id,"fk_customer_segment":parentData.fk_customer_segment, "pd_status":parentData.pd_status, "pd_address_id": childData.pd_address_id}, + disableClose: true, + // position: { right: '0' }, + minWidth: '40%', + maxWidth: '60%', + }); + dialogRef.afterClosed() + .subscribe(dataresult => { + if (dataresult.update_status == true) { + this.viewPdDetails(this.viewID) + } + }); + } + + // start pd + getPDStart(pdID:any){ + this.destroyType=3; + this.router.navigate([ '../../startpd',pdID], { relativeTo: this.route }); + } + // pd report + getPDIDReport(pdID:any) { + this.destroyType=3; + this.router.navigate([ '../../pd_report',pdID], { relativeTo: this.route }); + } + ngOnDestroy(): void { + if(this.destroyType==1){ + this.QcListComponent.pdListLoad(true); + } + +} + +} + diff --git a/ng6-seed/src/app/quality-check/qc-service/qc.service.spec.ts b/ng6-seed/src/app/quality-check/qc-service/qc.service.spec.ts new file mode 100755 index 0000000..8dd6414 --- /dev/null +++ b/ng6-seed/src/app/quality-check/qc-service/qc.service.spec.ts @@ -0,0 +1,12 @@ +import { TestBed } from '@angular/core/testing'; + +import { QcService } from './qc.service'; + +describe('QcService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: QcService = TestBed.get(QcService); + expect(service).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/quality-check/qc-service/qc.service.ts b/ng6-seed/src/app/quality-check/qc-service/qc.service.ts new file mode 100755 index 0000000..3805f3c --- /dev/null +++ b/ng6-seed/src/app/quality-check/qc-service/qc.service.ts @@ -0,0 +1,595 @@ +/** Common Import Section */ +import { Injectable } from '@angular/core'; +import { Observable, of, forkJoin } from 'rxjs'; +import { HttpClient, HttpParams } from '@angular/common/http'; +import { catchError, map } from 'rxjs/operators'; + +/** Imported Service Files Are., */ +import { AwsService } from '../../AwsService/aws.service'; + +/** Environment */ +import { environment } from 'environments/environment' +import { RequestOptions } from "@angular/http"; +import { ResponseContentType } from "@angular/http"; +import { ResponseOptions } from "@angular/http"; +import { HttpResponse } from "@angular/common/http"; +import { tap } from "rxjs/internal/operators/tap"; + +const currentdate = new Date().toJSON().slice(0,19).replace('T',' '); +/** Master Interface */ +export interface Master { + master_id:number; + master_name:string; + constant_name:string; +} + +@Injectable( + { + providedIn: 'root' + } +) + + +export class QcService { + + // private apiUrl = "http://ssa.sineedge.com/sparqapi/api/"; + // private apiUrl = "http://192.168.0.5:9999/AWSEC2/sparqapi/api/"; + MAP_API_KEY: string; + MAP_API_URL: string; + // private apiUrl = "http://ssa.sineedge.com/sparqapi/api/"; + private apiUrl = environment.apiEndpoint; + + constructor(private _http: HttpClient, + private _aws: AwsService) { + this.MAP_API_KEY = 'AIzaSyBtdO5k6CRntAMJCF-H5uZjTCoSGX95cdk' + this.MAP_API_URL = `https://maps.googleapis.com/maps/api/geocode/json?key=${this.MAP_API_KEY}&address=`; + } + + // get add pd master details + getAllMasterDatas(TableName: string): Observable { + return this._http.post(this.apiUrl + 'getListOfMaster', { "master_name": TableName }) + .pipe( + catchError(this.handleError('role', [])) + ) + } + saveForm(records: any): Observable { + records.fk_createdby = this._aws.getlocale(); + let params = { records } + return this._http.post(this.apiUrl + 'savePDFormDetails', params) + .pipe( + catchError(this.handleError('role', [])) + ) + } + retriveForm(params): Observable { + return this._http.post(this.apiUrl + 'getPDFormDetails', params) + .pipe( + catchError(this.handleError('role', [])) + ) + } + + //get product and subproduct master details + getProductsDetails(): Observable { + return this._http.get(this.apiUrl + 'getListOfProducts') + .pipe( + catchError(this.handleError('role', [])) + ) + } + + // get lenders list + getLenderDetails(): Observable { + return this._http.get(this.apiUrl + 'getListOfLenders') + .pipe( + catchError(this.handleError('role', [])) + ) + } + + // get customers list + getCustomersDetails(): Observable { + return this._http.get(this.apiUrl + 'getListOfCustomerSegments') + .pipe( + catchError(this.handleError('role', [])) + ) + } + + // get Pd Allocation type details list + getPDAllocationDetails(): Observable { + return this._http.get(this.apiUrl + 'getListOfPDAllocationTypes') + .pipe( + catchError(this.handleError('role', [])) + ) + } + + // get state and city details + getStateCityDetails(): Observable { + return this._http.post(this.apiUrl + 'getListOfStatesCities','') + .pipe( + catchError(this.handleError('role', [])) + ) + } + + // get pd type and allocation type details + getPDTypeDetails(): Observable { + return this._http.get(this.apiUrl + 'getListOfPDAllocationTypes') + .pipe( + catchError(this.handleError('role', [])) + ) + } + + // add pd details + addPdDetails(pdForm: any): Observable { + return this._http.post(this.apiUrl + "triggerNewPD", pdForm) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // get pd details + getPdDetails(): Observable { + return this._http.get(this.apiUrl + "listLessPDDetails/get") + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // get status based pd list + getTabStatusPdDetails(status: string): Observable { + const tabStatus = status ? + { params: new HttpParams().set('status', status) } : {}; + return this._http.get(this.apiUrl + "listLessPDDetails/get", tabStatus) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // get edit row pd details + editPdDetails(editId: string): Observable { + let httpParams = new HttpParams().set('pdid', editId); + return this._http.post(this.apiUrl + "getFullPDDetails", httpParams) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // update pd master details + editPdMasterDetails(editData: any, status: string): Observable { + editData.pd_status = status; + editData.fk_updatedby = this._aws.getlocale(); + // editData.updatedon = currentdate; + return this._http.post(this.apiUrl + "updatePDMaster", { records: editData }) + + .pipe( + catchError(this.handleError('operation', [])) + ) + } + // initiate address for pd process + initiateAddressPdProcess(updateDate: any): Observable { + updateDate.fk_updatedby = this._aws.getlocale(); + // editData.updatedon = currentdate; + return this._http.post(this.apiUrl + "updatePDMaster", { records: updateDate }) + + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // update pd applicant + updatePdApplicant(editData: any): Observable { + // editData.fk_updatedby = this._aws.getlocale(); + // editData.updatedon = currentdate; + return this._http.post(this.apiUrl + "updatePDApplicants", { "pd_applicant_details": editData }) + + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // get pd allocation to details + getPdOfficerList(pdID: string): Observable { + return this._http.post(this.apiUrl + "getListPDOfficers", { "pdid": pdID }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // update pd officer + updatePdOfficer(updateData: any): Observable { + updateData.fk_updatedby = this._aws.getlocale(); + // updateData.updatedon = currentdate; + return this._http.post(this.apiUrl + "allocatePD", { "records": updateData }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // update pd schedule + updateSchedule(updateData: any): Observable { + updateData.fk_scheduled_by = this._aws.getlocale(); + // updateData.createdon = currentdate; + return this._http.post(this.apiUrl + "schdulePD", { "records": updateData }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + //load pd template details + loadPDTemplates(pdId: string): Observable { + const options = pdId ? + { params: new HttpParams().set('pd_id', pdId) } : {}; + return this._http.get(this.apiUrl + "loadFullTemplate", options) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // load PD question answers + getAnswersForPD(list: any): Observable { + let httpParams = new HttpParams(); + httpParams = httpParams.append("category_id", list.category_id); + httpParams = httpParams.append("pd_id", list.pd_id); + httpParams = httpParams.append("question_id", list.question_id); + httpParams = httpParams.append("template_id", list.template_id); + + return this._http.post(this.apiUrl + "getAnswersForPD", httpParams) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // save pd answers + // savePDQuestions(saveData: any): Observable { + // saveData.createdby = this._aws.getlocale(); + // saveData.fk_createdon = currentdate; + // // saveData[0].fk_updatedby = this._aws.getlocale(); + // // saveData[0].updatedon = currentdate; + // + // return this._http.post(this.apiUrl + "savePDQuestions", {"records": saveData}) + // .pipe( + // catchError(this.handleError('operation', [])) + // ) + // } + // get assessed income form details + getAssessedIncomeFormDetails(formDetails): Observable { + return this._http.post(this.apiUrl + "getAssessedIncome", formDetails) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + private handleError(operation = 'operation', result?: T) { + return (error: any): Observable => { + return of(result as T); + }; + } + // common Pd form details get for the Pd Process + getPDFormDetailsWithID(pdID, formID): Observable { + return this._http.post(this.apiUrl + "getPDFormDetails", { "pd_id": pdID, "pd_form_id": formID }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + // common Pd form details get for the Pd Process + getPDFormDetailsWithCompanyID(pdID, formID,companyID): Observable { + return this._http.post(this.apiUrl + "getPDFormDetails", { "pd_id": pdID, "pd_form_id": formID,"company_id": companyID}) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // save Pd form details + savePDFormDetailsWithID(saveData: any): Observable { + saveData.fk_createdby = this._aws.getlocale(); + // saveData[0].fk_updatedby = this._aws.getlocale(); + // saveData[0].updatedon = currentdate; + + return this._http.post(this.apiUrl + "savePDFormDetails", { "records": saveData }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // save pd answers + savePDQuestions(saveData: any): Observable { + saveData.createdby = this._aws.getlocale(); + //saveData.fk_createdon = currentdate; + // saveData[0].fk_updatedby = this._aws.getlocale(); + // saveData[0].updatedon = currentdate; + + return this._http.post(this.apiUrl + "savePDQuestions", { "records": saveData }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + + // get Pd Final report Question Answer + + getPdFinalReportDetails(pdId: number): Observable { + return this._http.post(this.apiUrl + "getFinalPDReportQuestions", { "pd_id": pdId }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + getPDReportFinalDocument(pdId: any): Observable { + pdId.fk_createdby = this._aws.getlocale(); + return this._http.post(this.apiUrl + "generatePDReport", { "records": pdId }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + getActualPDReportModelTemplate(pdId: any): Observable { + return this._http.post(this.apiUrl + "getLatestPDReportBlob ", { "records": { "pd_id": pdId } }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + updatePDReportDetails(records: any): Observable { + records.fk_updatedby=this._aws.getlocale(); + return this._http.post(this.apiUrl + "saveNewVersionOfPDReport ", { "records": records }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + getPdDocVersionList(pdId: number): Observable { + return this._http.post(this.apiUrl + "getListOfPDReportVersions", { "records": { "pd_id": pdId } }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + swapOlderPDReportToLatest(pdId: any): Observable { + pdId.fk_createdby = this._aws.getlocale(); + pdId.fk_updatedby = this._aws.getlocale(); + return this._http.post(this.apiUrl + "swapOlderPDReportToLatest", { "records": pdId }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + getTypeofActivityForSuppliedInfoForm(pd_id: any,company_id:any): Observable { + return this._http.post(this.apiUrl + "getTypeOfActivetyFromBusinessForm", { "records": { "pd_id": pd_id,"company_id":company_id } }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + getQCReportFinalReviewDetails(pd_id: any, flag: string): Observable { + return this._http.post(this.apiUrl + "getQCLenderRemarks", { "records": { "pd_id": pd_id, "flag": flag } }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // pd review status update details + pdReviewStatusUpdate(editData: any): Observable { + editData.fk_updatedby = this._aws.getlocale(); + // editData.updatedon = currentdate; + return this._http.post(this.apiUrl + "updatePDMaster", { records: editData }) + + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + //pd report export excel + pdReportExportExcel(): Observable> { + // const options: any = { + // observe: 'response', + // responseType: 'blob' as 'json' + // }; + return this._http.get>(this.apiUrl + "downloadExcel", { + observe: 'response', + responseType: 'blob' as 'json' + }) + .pipe( + tap>( + res => res, + err => { + catchError(this.handleError('operation', [])) + } + ) + // catchError(this.handleError('operation', [])) + ) + } + + // inWords(num) { + // let a : any = ['','one ','two ','three ','four ', 'five ','six ','seven ','eight ','nine ','ten ','eleven ','twelve ','thirteen ','fourteen ','fifteen ','sixteen ','seventeen ','eighteen ','nineteen ']; + // let b : any = ['', '', 'twenty','thirty','forty','fifty', 'sixty','seventy','eighty','ninety']; + // if ((num = num.toString()).length > 9) return 'overflow'; + // let n : any = ('000000000' + num).substr(-9).match(/^(\d{2})(\d{2})(\d{2})(\d{1})(\d{2})$/); + // if (!n) return; var str = ''; + // str += (n[1] != 0) ? (a[Number(n[1])] || b[n[1][0]] + ' ' + a[n[1][1]]) + 'crore ' : ''; + // str += (n[2] != 0) ? (a[Number(n[2])] || b[n[2][0]] + ' ' + a[n[2][1]]) + 'lakh ' : ''; + // str += (n[3] != 0) ? (a[Number(n[3])] || b[n[3][0]] + ' ' + a[n[3][1]]) + 'thousand ' : ''; + // str += (n[4] != 0) ? (a[Number(n[4])] || b[n[4][0]] + ' ' + a[n[4][1]]) + 'hundred ' : ''; + // str += (n[5] != 0) ? ((str != '') ? 'and ' : '') + (a[Number(n[5])] || b[n[5][0]] + ' ' + a[n[5][1]]) + 'only ' : ''; + // return str; + // } + + convertNumberToWords(amount) { + //let words : any = new Array(); + let words: any = ['', 'One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine', 'Ten', 'Eleven', 'Twelve', 'Thirteen', 'Fourteen', 'Fifteen', 'Sixteen', 'Seventeen', 'Eighteen', 'Nineteen', 'Twenty']; + words[30] = 'Thirty'; + words[40] = 'Forty'; + words[50] = 'Fifty'; + words[60] = 'Sixty'; + words[70] = 'Seventy'; + words[80] = 'Eighty'; + words[90] = 'Ninety'; + amount = amount.toString(); + let atemp = amount.split("."); + let number = atemp[0].split(",").join(""); + let n_length = number.length; + let words_string = ""; + let value: any; + if (n_length <= 9) { + var n_array = new Array(0, 0, 0, 0, 0, 0, 0, 0, 0); + var received_n_array = new Array(); + for (var i = 0; i < n_length; i++) { + received_n_array[i] = number.substr(i, 1); + } + for (var i = 9 - n_length, j = 0; i < 9; i++ , j++) { + n_array[i] = received_n_array[j]; + } + for (var i = 0, j = 1; i < 9; i++ , j++) { + if (i == 0 || i == 2 || i == 4 || i == 7) { + if (n_array[i] == 1) { + n_array[j] = 10 + (+n_array[j]); + n_array[i] = 0; + } + } + } + value = ""; + for (var i = 0; i < 9; i++) { + if (i == 0 || i == 2 || i == 4 || i == 7) { + value = n_array[i] * 10; + } else { + value = n_array[i]; + } + if (value != 0) { + words_string += words[value] + " "; + } + if ((i == 1 && value != 0) || (i == 0 && value != 0 && n_array[i + 1] == 0)) { + words_string += "Crores "; + } + if ((i == 3 && value != 0) || (i == 2 && value != 0 && n_array[i + 1] == 0)) { + words_string += "Lakhs "; + } + if ((i == 5 && value != 0) || (i == 4 && value != 0 && n_array[i + 1] == 0)) { + words_string += "Thousand "; + } + if (i == 6 && value != 0 && (n_array[i + 1] != 0 && n_array[i + 2] != 0)) { + words_string += "Hundred and "; + } else if (i == 6 && value != 0) { + words_string += "Hundred "; + } + } + words_string = words_string.split(" ").join(" "); + } + return words_string; + } + + // save additional requirements + saveAdditionalRequirements(saveData: any): Observable { + saveData.createdby = this._aws.getlocale(); + + return this._http.post(this.apiUrl + "savePDAdditionalRequiremets", { "records": saveData }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + /** For Stock Details + * To Get The Products With TypeofActivity From Business + **/ + stockFormAccess(pdid: any,companyid: any): Observable { + // { "pd_id":"104","company_id":"1"} + return this._http.post(this.apiUrl + "getProductsFromBusiness", { "pd_id" : pdid , "company_id":companyid }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + + getCompaniesListsForBusiness(pdid: any): Observable { + return this._http.post(this.apiUrl + "getCompaniesListsForBusiness", { "records":{ "pd_id" : pdid}}) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + /** To get StateWise City List For + * 1) Family Form + * 2) add PD + */ + getStateWiseCities(stateid:any): Observable { + return this._http.post(this.apiUrl + "getListOfStatesAndCities", { "records":{ "state_id" : stateid}}) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + /** To get Family Member Name For + * 1) Family Form + */ + getFamilyDetails(pdid:any): Observable { + return this._http.post(this.apiUrl + "getFamilyDetails", { "pd_id" : pdid}) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + /** To get Family Member Name For + * 1) other income form - (income earned field) + * 2) bussiness form - (partner_name field) + */ + getAllPersonsName(pdid:any): Observable { + return this._http.post(this.apiUrl + "getAllPersonsName", { "pd_id" : pdid}) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + /** To get Business Asset For + * 1) Current Loan Form(where Business Asset loan Details is 'Yes' means name is displayed) + */ + getAssetsWithLoanFromBusiness(pdid:any): Observable { + return this._http.post(this.apiUrl + "getAssetsWithLoanFromBusiness",{ "pd_id" : pdid}) + .pipe(catchError(this.handleError('operation', []))) + } + + getEndUseForLoan(pdid: any): Observable { + return this._http.post(this.apiUrl + "getEndUseOfLoan",{ "records":{ "pd_id" : pdid}}) + .pipe( + catchError(this.handleError('operation', [])) + ) +} + + // private handleError(operation = 'operation', result?: T) { + // return (error: any): Observable => { + // return of(result as T); + // }; + // } + + /**Search Filter + * Sriram + */ + + overAllSearchFormDetails(searchItem) { + let records = { 'records': searchItem }; + return this._http.post(this.apiUrl + 'filterPDList', records).pipe( + catchError(this.handleError('operation', [])) + ); + } + + // get list of cities for p serach options + getListOfCities() { + return this._http.get(this.apiUrl + 'getListOfCities') + .pipe( + catchError(this.handleError('role', [])) + ) + } + + // save assessed sales item wise + saveAssessedDetails(methodURl: string,saveData:any){ + //saveData.createdby = this._aws.getlocale(); + return this._http.post(this.apiUrl + methodURl, { "records": saveData }) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // this is for pd map details only for triggered/ allocated status + getPdMapList(triggeredStatus, allocatedStatus): Observable { + const firstStatus = triggeredStatus ? + { params: new HttpParams().set('status', triggeredStatus) } : {}; + let response1 = this._http.get(this.apiUrl + "listLessPDDetails/get", firstStatus); + const secondStatus = allocatedStatus ? + { params: new HttpParams().set('status', allocatedStatus) } : {}; + let response2 = this._http.get(this.apiUrl + "listLessPDDetails/get", secondStatus); + return forkJoin([response1, response2]); + } +} diff --git a/ng6-seed/src/app/quality-check/quality-check-routing.module.ts b/ng6-seed/src/app/quality-check/quality-check-routing.module.ts new file mode 100755 index 0000000..09bd331 --- /dev/null +++ b/ng6-seed/src/app/quality-check/quality-check-routing.module.ts @@ -0,0 +1,39 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { QualityCheckComponent } from './quality-check.component'; +import { QcListComponent } from './qc-list/qc-list.component'; +import { QcViewComponent } from './qc-list/qc-view/qc-view.component'; +import { QcPdReportComponent } from './qc-list/qc-pd-report/qc-pd-report.component'; + +const routes: Routes =[ + { + path: '', + component: QualityCheckComponent, + children: [ + { + path: '', + pathMatch: 'full', + redirectTo: 'qclist' + },{ + path: 'qclist', + component: QcListComponent, + children: [ + { + path: 'viewpd/:pdid', + component: QcViewComponent, + }, + { + path: 'pd_report/:pdid', + component: QcPdReportComponent, + }, + ] + } + ] + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class QualityCheckRoutingModule { } diff --git a/ng6-seed/src/app/quality-check/quality-check.component.html b/ng6-seed/src/app/quality-check/quality-check.component.html new file mode 100755 index 0000000..a744f4c --- /dev/null +++ b/ng6-seed/src/app/quality-check/quality-check.component.html @@ -0,0 +1,3 @@ +
+ +
diff --git a/ng6-seed/src/app/settings/user/user.component.scss b/ng6-seed/src/app/quality-check/quality-check.component.scss old mode 100644 new mode 100755 similarity index 100% rename from ng6-seed/src/app/settings/user/user.component.scss rename to ng6-seed/src/app/quality-check/quality-check.component.scss diff --git a/ng6-seed/src/app/settings/masters/component/branch/branch-dialog/branch-dialog.component.spec.ts b/ng6-seed/src/app/quality-check/quality-check.component.spec.ts old mode 100644 new mode 100755 similarity index 53% rename from ng6-seed/src/app/settings/masters/component/branch/branch-dialog/branch-dialog.component.spec.ts rename to ng6-seed/src/app/quality-check/quality-check.component.spec.ts index 17284f6..1004652 --- a/ng6-seed/src/app/settings/masters/component/branch/branch-dialog/branch-dialog.component.spec.ts +++ b/ng6-seed/src/app/quality-check/quality-check.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { BranchDialogComponent } from './branch-dialog.component'; +import { QualityCheckComponent } from './quality-check.component'; -describe('BranchDialogComponent', () => { - let component: BranchDialogComponent; - let fixture: ComponentFixture; +describe('QualityCheckComponent', () => { + let component: QualityCheckComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ BranchDialogComponent ] + declarations: [ QualityCheckComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(BranchDialogComponent); + fixture = TestBed.createComponent(QualityCheckComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/ng6-seed/src/app/quality-check/quality-check.component.ts b/ng6-seed/src/app/quality-check/quality-check.component.ts new file mode 100755 index 0000000..05fa82f --- /dev/null +++ b/ng6-seed/src/app/quality-check/quality-check.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-quality-check', + templateUrl: './quality-check.component.html', + styleUrls: ['./quality-check.component.scss'] +}) +export class QualityCheckComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/ng6-seed/src/app/quality-check/quality-check.module.spec.ts b/ng6-seed/src/app/quality-check/quality-check.module.spec.ts new file mode 100755 index 0000000..4375a5a --- /dev/null +++ b/ng6-seed/src/app/quality-check/quality-check.module.spec.ts @@ -0,0 +1,13 @@ +import { QualityCheckModule } from './quality-check.module'; + +describe('QualityCheckModule', () => { + let qualityCheckModule: QualityCheckModule; + + beforeEach(() => { + qualityCheckModule = new QualityCheckModule(); + }); + + it('should create an instance', () => { + expect(qualityCheckModule).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/quality-check/quality-check.module.ts b/ng6-seed/src/app/quality-check/quality-check.module.ts new file mode 100755 index 0000000..a036339 --- /dev/null +++ b/ng6-seed/src/app/quality-check/quality-check.module.ts @@ -0,0 +1,124 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { OwlDateTimeModule, OwlNativeDateTimeModule } from 'ng-pick-datetime'; +import { NotifierModule, NotifierOptions } from 'angular-notifier'; +import { FlexLayoutModule } from '@angular/flex-layout'; +import { + MatCardModule, + MatIconModule, + MatInputModule, + MatRadioModule, + MatButtonModule,MatTableModule,MatPaginatorModule, + MatProgressBarModule,MatDialogModule, MatSortModule, + MatToolbarModule,MatSelectModule, + MatListModule, MatMenuModule, + MatCheckboxModule, MatStepperModule, MatTabsModule, + MatExpansionModule, MatSidenavModule, MatButtonToggleModule, MatBadgeModule ,MatTooltipModule +} from '@angular/material'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { RouterModule } from '@angular/router'; +import { AgmCoreModule } from '@agm/core'; +import { CKEditorModule } from 'ng2-ckeditor'; +import { PdfViewerModule } from 'ng2-pdf-viewer'; +import {MAT_MOMENT_DATE_FORMATS, MomentDateAdapter} from '@angular/material-moment-adapter'; +import {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from '@angular/material/core'; +import { SharedModule } from "app/shared/shared.module"; +// import completed pd components from personal discussion module +import { ManagePdModule } from './../personal-discussion/manage-pd/manage-pd.module'; +//import qu routing ,and its components +import { QualityCheckRoutingModule } from './quality-check-routing.module'; +import { QualityCheckComponent } from './quality-check.component'; +import { QcListComponent } from './qc-list/qc-list.component'; +import { QcViewComponent } from './qc-list/qc-view/qc-view.component'; +// import { PdAllocationComponent } from './../personal-discussion/manage-pd/list-pd/pd-allocation/pd-allocation.component'; +import { SmartPdAllocationComponent } from './../personal-discussion/manage-pd/list-pd/smart-pd-allocation/smart-pd-allocation.component'; +// import { SchedulePdComponent } from './../personal-discussion/manage-pd/list-pd/schedule-pd/schedule-pd.component'; +import { EditPdApplicantComponent } from './../personal-discussion/manage-pd/list-pd/edit-pd-applicant/edit-pd-applicant.component'; +import { EditPdMasterComponent } from './../personal-discussion/manage-pd/list-pd/edit-pd-master/edit-pd-master.component'; +import { QcService } from './qc-service/qc.service'; +// import { QcStartComponent } from './qc-list/qc-start/qc-start.component'; +import { QcPdReportComponent, DialogChangeCurrentVenrsion } from './qc-list/qc-pd-report/qc-pd-report.component'; +import { QcReviewComponent } from './qc-list/qc-pd-report/qc-review/qc-review.component'; +import { ModelEditPdReportComponent } from './qc-list/qc-pd-report/model-edit-pd-report/model-edit-pd-report.component'; +import { PdLocatedMapViewDirective } from './../personal-discussion/pd-directive/pd-located-map-view.directive'; +import { InitiateAdditionalPdComponent } from './../personal-discussion/manage-pd/list-pd/initiate-additional-pd/initiate-additional-pd.component'; + + + +/** + * Custom angular notifier options + */ +const customNotifierOptions: NotifierOptions = { + position: { + horizontal: { + position: 'right', + distance: 12 + }, + vertical: { + position: 'top', + distance: 32, + gap: 10 + } + }, + theme: 'material', + behaviour: { + autoHide: 5000, + onClick: 'hide', + onMouseover: 'pauseAutoHide', + showDismissButton: true, + stacking: 4 + }, + animations: { + enabled: true, + show: { + preset: 'slide', + speed: 300, + easing: 'ease' + }, + hide: { + preset: 'fade', + speed: 300, + easing: 'ease', + offset: 50 + }, + shift: { + speed: 300, + easing: 'ease' + }, + overlap: 150 + } +}; + +@NgModule({ + imports: [ + CommonModule, + QualityCheckRoutingModule, + OwlDateTimeModule, OwlNativeDateTimeModule, + NotifierModule.withConfig(customNotifierOptions), + FlexLayoutModule, + MatCardModule, + MatIconModule, + MatInputModule, + MatRadioModule, + MatButtonModule,MatTableModule,MatPaginatorModule, + MatProgressBarModule,MatDialogModule, MatSortModule, + MatToolbarModule,MatSelectModule,MatListModule, MatMenuModule, + MatExpansionModule, + MatStepperModule, + MatTabsModule, + MatCheckboxModule,MatSidenavModule, MatButtonToggleModule, MatBadgeModule,MatTooltipModule, + SharedModule, + FormsModule, + ReactiveFormsModule, + AgmCoreModule.forRoot({apiKey: 'AIzaSyBtdO5k6CRntAMJCF-H5uZjTCoSGX95cdk'}), + CKEditorModule, + PdfViewerModule, + ManagePdModule, + ], + declarations: [QualityCheckComponent,QcListComponent, QcViewComponent, QcPdReportComponent,DialogChangeCurrentVenrsion, QcReviewComponent, ModelEditPdReportComponent], + entryComponents: [SmartPdAllocationComponent, EditPdApplicantComponent, EditPdMasterComponent,DialogChangeCurrentVenrsion, QcReviewComponent, ModelEditPdReportComponent, InitiateAdditionalPdComponent], + providers : [QcService,{provide: MAT_DATE_LOCALE, useValue: 'en-GB'}, + {provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE]}, + {provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS},PdLocatedMapViewDirective] +}) +export class QualityCheckModule { } diff --git a/ng6-seed/src/app/reports/pd-mis/pd-mis.component.html b/ng6-seed/src/app/reports/pd-mis/pd-mis.component.html new file mode 100644 index 0000000..0f540fb --- /dev/null +++ b/ng6-seed/src/app/reports/pd-mis/pd-mis.component.html @@ -0,0 +1,222 @@ + + +
+
+ PD MIS Report + + + +
+
+ + +
+
+
+
+
+ + + +
+ filter_list Filter
+
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Sl {{row.serialno}} Name of the Main Applicant + {{row.applicant}} Lender Ref No + {{row.application_id}} Sineedge Ref No + {{row.sineedge_ref}} Created + {{row.created_on | date: 'dd-MM-yyyy'}} Name of Underwriter + {{row.lender}} Lender Contact Person + {{row.lender_contact}} Lender Branch + {{row.branch}} PD City + {{row.city}} Outside City Limits (Yes/No) + {{row.is_outside_city_limit}} Date & Time of receiving PD Request + DD:MM:YY HH:MM + {{row.triggered | date: 'dd-MM-yyyy hh:mm a'}} Date & Time of Confirmation from PD Officer that PD fixed + DD:MM:YY HH:MM + {{row.scheduled | date: 'dd-MM-yyyy hh:mm a'}} Date & Time of Start of conducting PD + DD:MM:YY HH:MM + {{row.started | date: 'dd-MM-yyyy hh:mm a'}} Date & Time of End of conducting PD + DD:MM:YY HH:MM + {{row.complete | date: 'dd-MM-yyyy hh:mm a'}} Date & Time of sending PD Report to IMGC + DD:MM:YY HH:MM + + {{row.qc_complete | date: 'dd-MM-yyyy hh:mm a'}} PD Agency Name + {{row.pd_agency}} PD officer`s Name + {{row.pd_officer}} Status of the PD + {{row.current_status}} Earlier Remarks on Status for Reference + (Status 'as on Date' given in Bracket ..DD/MM) + {{row.remarks}}
+
+ +
+ +
+
+
+ +
+ +
+
+
+ + diff --git a/ng6-seed/src/app/reports/pd-mis/pd-mis.component.scss b/ng6-seed/src/app/reports/pd-mis/pd-mis.component.scss new file mode 100644 index 0000000..f1b9fb7 --- /dev/null +++ b/ng6-seed/src/app/reports/pd-mis/pd-mis.component.scss @@ -0,0 +1,64 @@ +/** Card title */ +.mat-card-title{ + font-size: 25px !important; +} + +/** CSS for "No record Found Text " and "Loading Text" */ +.nocontent { + color: red; + font-size: 16px; + text-align: center; + width: 100%; +} + +/** Filter Header Css (Overall) */ +.filter-header { + min-height: 64px; + padding: 8px 24px 0; +} + +/** Export Button CSS */ +.btn_export +{ + float: right; +} + +/** Report Card Common Css (Overall) */ +.report-card-container { + display: flex; + flex-direction: column; + min-width: 300px; +} + +/** Report Table Common Css (Overall)*/ +.report-table-container { + max-height: 600px; + width: 100%; + overflow: auto; + margin-top: 2%; +} + +/** Table Header Cell Css*/ +.mat-header-cell { + padding: 0 10px 0 10px; + white-space: pre-wrap; + font-size: 1rem !important; +} + +/** Table Body Cell Css*/ +.mat-cell { + padding: 0 10px 0 10px; + white-space: nowrap; +} + +/** Table Static Columns Css*/ +.mat-table-sticky { + border-right: 1px solid #e0e0e0; +} + +/** Table Footer Cell Css - not In use*/ +.mat-footer-cell { + font-weight: bold; + font-size: 1.2rem !important; + padding: 0 10px 0 10px; +} \ No newline at end of file diff --git a/ng6-seed/src/app/reports/pd-mis/pd-mis.component.spec.ts b/ng6-seed/src/app/reports/pd-mis/pd-mis.component.spec.ts new file mode 100644 index 0000000..ed0cd8b --- /dev/null +++ b/ng6-seed/src/app/reports/pd-mis/pd-mis.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { PdMisComponent } from './pd-mis.component'; + +describe('PdMisComponent', () => { + let component: PdMisComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ PdMisComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(PdMisComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/reports/pd-mis/pd-mis.component.ts b/ng6-seed/src/app/reports/pd-mis/pd-mis.component.ts new file mode 100644 index 0000000..388e9dd --- /dev/null +++ b/ng6-seed/src/app/reports/pd-mis/pd-mis.component.ts @@ -0,0 +1,239 @@ +import { Component, OnInit ,ViewChild,ElementRef,OnDestroy} from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; +import { ReportsService } from '../reports.service'; +import { DatePipe } from '@angular/common'; +import { FormGroup, FormControl,FormBuilder } from '@angular/forms'; +import * as XLSX from 'xlsx'; +import { MatSort,MatPaginator, MatTableDataSource } from '@angular/material'; + +@Component({ + selector: 'app-pd-mis', + templateUrl: './pd-mis.component.html', + styleUrls: ['./pd-mis.component.scss'] +}) +export class PdMisComponent implements OnInit { + + pipe = new DatePipe('en-US'); + maxDate: any; + minDate: any; + + api_data:any=[]; + filtered_data:any=[]; + + public Loading: boolean = true; + + public reportform: FormGroup; + + public dataLength: number; + public pageSize : number; + public dataSource = new MatTableDataSource(); + + displayedColumns = ['serialno', + 'applicant', + 'application_id', + 'sineedge_ref_no', + 'created_on', + 'name_of_underwriter', + 'lender_contact_person', + 'branch', + 'city', + 'ocl', + 'receiving_pd_date', + 'confirmation_pd_date', + 'start_of_conducting_pd_date', + 'end_of_conducting_pd_date', + 'sending_pd_report_date', + 'agency_name', + 'officer_name', + 'pd_status']; + + + + constructor(private reportsService:ReportsService,private route:ActivatedRoute,private router:Router,private form_builder:FormBuilder) { + this.reportform = this.form_builder.group({ from_date:[null],to_date:[null],city:[null],branch:[null],applicant_id:[null] }); + } + + ngOnInit(){ + this.maxDate = new Date(); + this.getMISDailyReport(); + } + + getMISDailyReport() { + + this.reportsService.retirveDataForMISDailyReport().subscribe( + data => { + + if(data.dataStatus == true){ + this.api_data = data.records; + this.dataLength = data.records.length; + this.pageSize = data.records.length; + if(data.records.length >= 1){ + this.api_data = this.api_data.map((val, i)=>{ + val['serialno'] = i + 1; + return val; + }) + } + this.dataSource.data = this.api_data; + this.Loading = false; + }else{ + this.dataLength = 0; + // this.Loading = true; + } + }) + } + + @ViewChild(MatPaginator) paginator: MatPaginator; + @ViewChild(MatSort) sort: MatSort; + // @ViewChild('TABLE') table: ElementRef; + @ViewChild('TABLE',{ read: ElementRef }) table: ElementRef; + + exportAsExcel():void { + + const ws: XLSX.WorkSheet=XLSX.utils.table_to_sheet(this.table.nativeElement); + const wb: XLSX.WorkBook = XLSX.utils.book_new(); + XLSX.utils.book_append_sheet(wb, ws, 'Sheet1'); + + /* save to file */ + XLSX.writeFile(wb, 'Daily MIS Report.xlsx'); + } + + ngAfterViewInit() { + + this.dataSource.paginator = this.paginator; + this.dataSource.sort = this.sort; + } + + /** For Display Tables Filtering */ + applyFilter(filterValue: string) { + filterValue = filterValue.trim(); // Remove whitespace + filterValue = filterValue.toLowerCase(); // Datasource defaults to lowercase matches + this.dataSource.filter = filterValue; + } + + searchform(value:any){ + + this.reportsService.retirveDataForMISDailyReport().subscribe( + data => { + if(data['dataStatus']==true) + { + this.filtered_data = data.records; + + if(value.applicant_id !== null && value.applicant_id != ''){ + this.filtered_data = this.filterForApplicantID(this.filtered_data,value.applicant_id); + } + if(value.city !== null && value.city != ''){ + this.filtered_data = this.filterForCity(this.filtered_data,value.city); + } + + if(value.branch !== null && value.branch != ''){ + // this.filtered_data = this.filtered_data.filter(val => val.branch == value.branch ); + // this.filtered_data = this.filtered_data.filter(val => this.customFilter(val,value.brach,3)); + this.filtered_data = this.filterForBranch(this.filtered_data,value.branch); + } + + if(value.from_date !== null && value.to_date !== null){ + // console.log('value',value.from_date); + // console.log('value',value.to_date); + let from_Date = this.pipe.transform(value.from_date,'yyyy-MM-dd HH:mm:ss'); + let to_Date = this.pipe.transform(value.to_date,'yyyy-MM-dd HH:mm:ss'); + this.filtered_data = this.filtered_data.filter(val => val.created_on >= from_Date && val.created_on <= to_Date ); + // console.log('this.filtered_data',this.filtered_data); + } + this.Loading = false; + this.dataLength = this.filtered_data.length; + this.pageSize = this.filtered_data.length; + if(this.filtered_data.length >= 1){ + this.api_data = this.filtered_data.map((val, i)=>{ + val['serialno'] = i + 1; + return val; + }) + } + this.dataSource.data = this.filtered_data; + } + else{ + this.dataSource.data = this.filtered_data; + this.dataLength = this.filtered_data.length; + } + }) + } + + filterForApplicantID(arrayData: any, Values: any) { + Values = Values.toLowerCase(); + if (Values) { + + let Filter: any = []; + + let getAllApplicationIDOnly = arrayData.map(v => v.application_id.replace(/[^A-Za-z0-9]/ig, "").toLowerCase()); + + let searched_filter_array = getAllApplicationIDOnly.filter(val => val.includes(Values)); + + Filter = searched_filter_array.map(x => { + let findIndex = getAllApplicationIDOnly.indexOf(x); + return arrayData[findIndex]; + }); + + return Filter.length > 0 ? Filter : arrayData; + } + else{ + return arrayData; + } + } + + filterForCity(arrayData: any, Values: any) { + Values = Values.toLowerCase(); + if (Values) { + let Filter: any = []; + + let getAllCityOnly = arrayData.map(v => v.city.replace(/[^A-Za-z0-9]/ig, "").toLowerCase()); + + let searched_filter_array = getAllCityOnly.filter(val => val.includes(Values)); + + Filter = searched_filter_array.map(x => { + let findIndex = getAllCityOnly.indexOf(x); + return arrayData[findIndex]; + }); + + return Filter.length > 0 ? Filter : arrayData; + } + else{ + return arrayData; + } + } + + filterForBranch(arrayData: any, Values: any) { + Values = Values.toLowerCase(); + if (Values) { + let Filter: any = []; + + let getAllBranchOnly = arrayData.map(v => v.branch.replace(/[^A-Za-z0-9]/ig, "").toLowerCase()); + + let searched_filter_array = getAllBranchOnly.filter(val => val.includes(Values)); + + Filter = searched_filter_array.map(x => { + let findIndex = getAllBranchOnly.indexOf(x); + return arrayData[findIndex]; + }); + + return Filter.length > 0 ? Filter : arrayData; + } + else{ + return arrayData; + } + } + + + // customFilter(array,value,flag){ + // if(flag == 3){ + // var str = array.branch.split("").join("").toLowercase(); + // return str.includes(value)?array:null; + // } + // } + + getDateObjects(values: any) { + + let selected_date = this.pipe.transform(values, 'yyyy/MM/dd'); + this.minDate = new Date(selected_date); + } + + } + diff --git a/ng6-seed/src/app/reports/reports-routing.module.ts b/ng6-seed/src/app/reports/reports-routing.module.ts new file mode 100644 index 0000000..58f7ff0 --- /dev/null +++ b/ng6-seed/src/app/reports/reports-routing.module.ts @@ -0,0 +1,16 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +import { PdMisComponent } from './pd-mis/pd-mis.component'; + +const routes: Routes = [ + { + path:'', + component:PdMisComponent + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class ReportsRoutingModule { } diff --git a/ng6-seed/src/app/reports/reports.module.spec.ts b/ng6-seed/src/app/reports/reports.module.spec.ts new file mode 100644 index 0000000..1874284 --- /dev/null +++ b/ng6-seed/src/app/reports/reports.module.spec.ts @@ -0,0 +1,13 @@ +import { ReportsModule } from './reports.module'; + +describe('ReportsModule', () => { + let reportsModule: ReportsModule; + + beforeEach(() => { + reportsModule = new ReportsModule(); + }); + + it('should create an instance', () => { + expect(reportsModule).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/reports/reports.module.ts b/ng6-seed/src/app/reports/reports.module.ts new file mode 100644 index 0000000..92dcd01 --- /dev/null +++ b/ng6-seed/src/app/reports/reports.module.ts @@ -0,0 +1,60 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +import { FlexLayoutModule } from '@angular/flex-layout'; + +import { MatInputModule } from '@angular/material'; +import { MatCardModule, + MatIconModule,MatButtonModule,MatSelectModule, + MatProgressBarModule,MatProgressSpinnerModule, + MatTableModule,MatPaginatorModule,MatSortModule } from '@angular/material'; + +import { MatListModule } from '@angular/material/list'; +import { MatSlideToggleModule } from '@angular/material/slide-toggle'; +import { MatFormFieldModule } from '@angular/material/form-field' +import { MatTooltipModule } from '@angular/material/tooltip'; +import { MatExpansionModule } from '@angular/material/expansion'; + +import { MatDatepickerModule} from '@angular/material/datepicker'; +import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core'; +import { MAT_MOMENT_DATE_FORMATS, MomentDateAdapter } from '@angular/material-moment-adapter'; + +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { NgxDatatableModule } from '@swimlane/ngx-datatable'; + +import { ReportsService } from '../reports/reports.service'; +import { ReportsRoutingModule } from './reports-routing.module'; +import { PdMisComponent } from './pd-mis/pd-mis.component'; + + +@NgModule({ + imports: [ + MatExpansionModule, + CommonModule, + MatFormFieldModule, + MatInputModule, + ReportsRoutingModule, + FormsModule, ReactiveFormsModule, + MatCardModule, + MatIconModule, + MatInputModule, + MatButtonModule, + MatTableModule, + MatPaginatorModule, + MatProgressBarModule,MatProgressSpinnerModule, + MatSortModule, + MatSelectModule, + FlexLayoutModule, + NgxDatatableModule, + MatSlideToggleModule, + MatTooltipModule, + MatListModule, + MatDatepickerModule, + ], + exports: [MatExpansionModule], + declarations: [PdMisComponent], + providers:[ReportsService,{provide: MAT_DATE_LOCALE, useValue: 'en-GB'},{provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE]}, + {provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS},] +}) + +export class ReportsModule { } diff --git a/ng6-seed/src/app/reports/reports.service.spec.ts b/ng6-seed/src/app/reports/reports.service.spec.ts new file mode 100644 index 0000000..7a1b474 --- /dev/null +++ b/ng6-seed/src/app/reports/reports.service.spec.ts @@ -0,0 +1,12 @@ +import { TestBed } from '@angular/core/testing'; + +import { ReportsService } from './reports.service'; + +describe('ReportsService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: ReportsService = TestBed.get(ReportsService); + expect(service).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/reports/reports.service.ts b/ng6-seed/src/app/reports/reports.service.ts new file mode 100644 index 0000000..d673c6f --- /dev/null +++ b/ng6-seed/src/app/reports/reports.service.ts @@ -0,0 +1,29 @@ +import { Injectable } from '@angular/core'; +import { HttpClient } from '@angular/common/http'; +import { Observable,of } from 'rxjs'; + +/** Imported Service Files Are., */ +import { AwsService } from '../AwsService/aws.service'; + +/** Environment */ +import { environment } from 'environments/environment' + +@Injectable({ + providedIn: 'root' +}) +export class ReportsService { + // baseUrl = 'http://192.168.0.14/kani/sine_db/sparqapi/api/PD_MIS_report'; + private apiUrl = environment.apiEndpoint; + + constructor(private _http: HttpClient,private _aws: AwsService) {} + + // getPDMISDailyReportLocal(): Observable { + // return this._http.get(this.baseUrl); + // } + + // get Details + retirveDataForMISDailyReport(): Observable { + return this._http.get(this.apiUrl + 'PD_MIS_report'); + } + +} diff --git a/ng6-seed/src/app/session/forgot-password/forgot-password-component.html b/ng6-seed/src/app/session/forgot-password/forgot-password-component.html old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/session/forgot-password/forgot-password-component.scss b/ng6-seed/src/app/session/forgot-password/forgot-password-component.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/session/forgot-password/forgot-password.component.ts b/ng6-seed/src/app/session/forgot-password/forgot-password.component.ts old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/session/lockscreen/lockscreen-component.html b/ng6-seed/src/app/session/lockscreen/lockscreen-component.html old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/session/lockscreen/lockscreen-component.scss b/ng6-seed/src/app/session/lockscreen/lockscreen-component.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/session/lockscreen/lockscreen.component.ts b/ng6-seed/src/app/session/lockscreen/lockscreen.component.ts old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/session/login/login-component.html b/ng6-seed/src/app/session/login/login-component.html old mode 100644 new mode 100755 index 56f2a1c..54fb484 --- a/ng6-seed/src/app/session/login/login-component.html +++ b/ng6-seed/src/app/session/login/login-component.html @@ -1,30 +1,51 @@
+
+ +

PD Genie +

+
-
+
+
+ info@sineedge.com | +91 9910112704 / +91 987104039 +

- \ No newline at end of file + + + + + \ No newline at end of file diff --git a/ng6-seed/src/app/session/login/login-component.scss b/ng6-seed/src/app/session/login/login-component.scss old mode 100644 new mode 100755 index e69de29..0829347 --- a/ng6-seed/src/app/session/login/login-component.scss +++ b/ng6-seed/src/app/session/login/login-component.scss @@ -0,0 +1,41 @@ +.form-bg { +//background-image:url('http://www.ssa.sineedge.com/beta/assets/images/login.jpg') !important; +//background-image: url(../../../assets/images/login_o.jpg); +//background-color: #F44336; + background: url(../../../assets/images/bg.png) repeat-x 0 0 #ffffff; + //height: 100vh !important; + background-position: center !important; + min-height: calc(90vh + 90px) !important; +} + +.signin-page{ + float: left; + width: 100%; + padding-bottom: 40px; +} + // .form-bg { + // float: left; + // width: 100%; + // background-color: repeat-x 0 0 #F44336; + // padding-bottom: 40px; + // } +.form-bg::before { + background-color: rgba(0, 0, 0, 0) !important; +} +.form-bg::after{ + background-color: #E00201; +} +.page-title{ + color:#E00201; + background-color:#ffffff; + font-weight: bold; +} +.page-footer{ + color:#E00201; + background-color:#ffffff; + font-size: 14px; +} +.bottom-sec,.mat-green{ + color:white !important; + font-weight: 700; +} \ No newline at end of file diff --git a/ng6-seed/src/app/session/login/login.component.ts b/ng6-seed/src/app/session/login/login.component.ts old mode 100644 new mode 100755 index b035b35..e0308b7 --- a/ng6-seed/src/app/session/login/login.component.ts +++ b/ng6-seed/src/app/session/login/login.component.ts @@ -20,7 +20,7 @@ import { CognitoService } from '../../AwsService/cognito.service'; styleUrls: ['./login-component.scss'], encapsulation: ViewEncapsulation.None, }) -export class LoginComponent { +export class LoginComponent implements OnInit{ changepass: FormGroup; email: string; password: string; @@ -43,6 +43,10 @@ export class LoginComponent { private router: Router, public aws: AwsService, public dialog: MatDialog, public shared:CognitoService,) { + } + ngOnInit(){ + this.loggedInCheck(); + } /** * @param email @@ -52,18 +56,15 @@ export class LoginComponent { login() { let auth = { 'Username': this.email, 'Password': this.password }; this.aws.dologin(auth).subscribe(res => { - console.log(res); if (res !== undefined) { + // local storage for validate user access + localStorage.setItem('user_role',res.idToken.payload["custom:role_id"]); this.router.navigate(['/home']); - console.log(this.shared.getToken()); } }, err => { - console.log(err.message); if (err.message == "New password is required.") { - //console.log("if"); this.newpassopen(); } else { - console.log("else"); } //alert(err.message); @@ -79,9 +80,7 @@ export class LoginComponent { dialogRef.afterClosed().subscribe(result => { if (result !== undefined) { let auth = { 'Username': this.email, 'Password': this.password, 'newpassword': result }; - console.log(auth); this.aws.dologin(auth).subscribe(res => { - console.log(res); this.router.navigate(['/home']); }, err => { // alert(err.message); @@ -98,14 +97,20 @@ export class LoginComponent { forgotpassword() { let auth = { 'Username': this.email }; - console.log(auth); this.aws.userforgotpass(auth).subscribe(res => { - console.log(res); }) - - - + } + loggedInCheck(){ + //alert(this.shared.isLoggedIn); + if(this.shared.isLoggedIn){ + // alert("if"); + this.router.navigate(['/home']); + return false; + }else{ + //alert("else"); + return true; + } } } diff --git a/ng6-seed/src/app/session/register/register-component.html b/ng6-seed/src/app/session/register/register-component.html old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/session/register/register-component.scss b/ng6-seed/src/app/session/register/register-component.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/session/register/register.component.ts b/ng6-seed/src/app/session/register/register.component.ts old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/session/session.module.ts b/ng6-seed/src/app/session/session.module.ts old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/session/session.routing.ts b/ng6-seed/src/app/session/session.routing.ts old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/settings/masters/component/branch/branch-dialog/branch-dialog.component.html b/ng6-seed/src/app/settings/masters/component/branch/branch-dialog/branch-dialog.component.html deleted file mode 100644 index 3e7375a..0000000 --- a/ng6-seed/src/app/settings/masters/component/branch/branch-dialog/branch-dialog.component.html +++ /dev/null @@ -1,65 +0,0 @@ - -
-
Branch
-
-
-
- - - -
- -
- - -
- - - - - {{ cd.name }} - - You must Pickup City Name. - - -
- -
- - - You must inculde a Name - - -
- - - -
-
- - - -
- -
-
-
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/branch/branch-dialog/branch-dialog.component.scss b/ng6-seed/src/app/settings/masters/component/branch/branch-dialog/branch-dialog.component.scss deleted file mode 100644 index 7c5eb0d..0000000 --- a/ng6-seed/src/app/settings/masters/component/branch/branch-dialog/branch-dialog.component.scss +++ /dev/null @@ -1,8 +0,0 @@ -mat-form-field{ - width:100%; -} -mat-dialog-container{ - width:10% !important; -} - -//style="width: 100%" \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/branch/branch-dialog/branch-dialog.component.ts b/ng6-seed/src/app/settings/masters/component/branch/branch-dialog/branch-dialog.component.ts deleted file mode 100644 index 7e14e6d..0000000 --- a/ng6-seed/src/app/settings/masters/component/branch/branch-dialog/branch-dialog.component.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; -import { MastersService } from '../../../../service/masters/masters.service'; -import { Branch,States,City } from '../../../model/branch'; -import { Observable } from 'rxjs/Observable';//for Datatables - -@Component({ - selector: 'app-jazz-dialog', - templateUrl: './branch-dialog.component.html', - styleUrls: ['./branch-dialog.component.scss'] -}) - -export class BranchDialogComponent implements OnInit { - - - public _branchForm: FormGroup; - - citydatas: City[]; - errorMessage:string; - - constructor(private _formBuilder: FormBuilder, - private dialogRef: MatDialogRef, - private _mastersService: MastersService, - @Inject(MAT_DIALOG_DATA) public data: Branch) { } - - - ngOnInit() { - - this._branchForm = this._formBuilder.group({ - branch_id: [this.data.branch_id], - name: [this.data.name, Validators.compose([Validators.required])], - fk_city_id: [this.data.fk_city_id, Validators.compose([Validators.required])] - }); - //console.log(this._branchForm); - - this._mastersService.getAllMasterData('CITY') - .subscribe( - data => { - - if (data.status == 200) { - this.citydatas = data.records; - this.citydatas = this.citydatas.filter(city=>city.isactive == 1 ); - } - - }, error => this.errorMessage = error); - - } - - /** For Popup Close Button */ - onNoClick(): void { - this.dialogRef.close(); - } - - /** To Save/Edited Popup Data */ - onSubmit() { - - var BranchFormValues = this._branchForm.value; - - if(isNaN(this.data.branch_id)) { - - Object.keys(BranchFormValues) - .forEach((key) => ( BranchFormValues[key] == null) && delete BranchFormValues[key]); - //console.log(BranchFormValues); - this._mastersService.addMasterDetails(BranchFormValues,'BRANCH').subscribe(data=>{ - // alert(1); - // console.log(data); - this._mastersService.getAllBranch(); - - this.dialogRef.close(); - }); - // this.dialogRef.close(); - //alert("saved"); - } else { - this._mastersService.editMasterDetails(BranchFormValues,'BRANCH').subscribe(); - this.dialogRef.close(); - //alert("edited"); - } - } - - /** To Reset Popup Data */ - onReset(){ - this._branchForm.reset(); - } - -} diff --git a/ng6-seed/src/app/settings/masters/component/branch/branch-list/branch-list.component.html b/ng6-seed/src/app/settings/masters/component/branch/branch-list/branch-list.component.html deleted file mode 100644 index 191e909..0000000 --- a/ng6-seed/src/app/settings/masters/component/branch/branch-list/branch-list.component.html +++ /dev/null @@ -1,84 +0,0 @@ -
-
- -
-
- - -
- - - -
- -
- - - - - Name - {{row.name}} - - - - City Name - {{row.cityname}} - - - - Is Active - {{row.isactive}} - - - - - - - - - - - - - - - - -
- - - - - \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/branch/branch-list/branch-list.component.scss b/ng6-seed/src/app/settings/masters/component/branch/branch-list/branch-list.component.scss deleted file mode 100644 index dc7f5c4..0000000 --- a/ng6-seed/src/app/settings/masters/component/branch/branch-list/branch-list.component.scss +++ /dev/null @@ -1,97 +0,0 @@ - -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 300px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-input-container { - font-size: 14px; - flex-grow: 1; - margin-left: 32px; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -/** Selection styles -.example-selection-header { - font-size: 18px; - background: rgba(255, 64, 129, 0.3); - border-bottom: 1px solid #d696ac; -} - -.mat-column-select { - max-width: 54px; -} - -.mat-row:hover, .example-selected-row { - background: #f5f5f5; -} - -.mat-row:active, .mat-row.example-selected-row { - background: #eaeaea; -} - -.mat-table { - overflow: auto; - max-height: 500px; -}*/ -/*** Structure * -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - width : 80%; - margin : 20px auto; -} - -.example-header { - min-height: 64px; - padding: 8px 24px 0; -}****/ - -/**mat-cell{ -.cell{ - display:flex !important; - justify-content:center!important; - -} - -// mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; -} - - -table { - width: 100%; -} - -th { - text-align: left; -} - -.button{ -padding-left: 6px; - font-size: 20px; -}**/ \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/branch/branch-list/branch-list.component.ts b/ng6-seed/src/app/settings/masters/component/branch/branch-list/branch-list.component.ts deleted file mode 100644 index 937d141..0000000 --- a/ng6-seed/src/app/settings/masters/component/branch/branch-list/branch-list.component.ts +++ /dev/null @@ -1,118 +0,0 @@ -import { Component, OnInit, ViewChild } from '@angular/core'; -import { MatDialog, - MatDialogRef, - MatDialogConfig, - MatPaginator, - MatSort, - MatTableDataSource } from '@angular/material'; - -import { Observable } from 'rxjs'; -import 'rxjs/add/operator/map'; -import { map } from 'rxjs/operators'; - -import { DataSource } from '@angular/cdk/table'; -import { of as observableOf, merge } from 'rxjs'; -// import { Bra } from './../branch-list'; - -import { MastersService } from '../../../../service/masters/masters.service'; -import { BranchDialogComponent } from '../branch-dialog/branch-dialog.component'; -import { Branch,States,City } from '../../../model/branch'; - -@Component({ - selector: 'app-branch-list', - templateUrl: './branch-list.component.html', - styleUrls: ['./branch-list.component.scss'] -}) -export class BranchListComponent implements OnInit { - - - isPopupOpened = true; - loader: boolean = false; - BranchList: any = []; - - - - userData = null; - - public dataLength: number; - public dataSource = new MatTableDataSource(); - // displayedColumns = ['name', 'email', 'phone', 'company']; - displayedColumns = ['name','cname', 'isactive','actions']; - - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - constructor(private dialog: MatDialog, - private _mastersService: MastersService) { - this._mastersService.getAllBranch().subscribe( - data => { - this.userData = data.records; - // alert(this.userData); - this.dataLength = data.records.length; - this.dataSource.data = this.userData; - } - ) - - - // this._mastersService.getAllBranch().subscribe(dataresult =>{ - // this.dataLength = dataresult.records.length; - // alert(this.dataLength); - - // this.dataSource = dataresult.records; - - // }) - } - - ngOnInit() { - // this.getBranch(); - } - - - - /**Popup for ADD Branch */ - addBranch() { - this.isPopupOpened = true; - const dialogRef = this.dialog.open(BranchDialogComponent, { - data: {} - }); - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - /** Popup for EDIT Branch */ - editBranch(arr: Branch[]) { - this.isPopupOpened = true; - - const dialogRef = this.dialog.open(BranchDialogComponent, { - data: arr - }); - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - - /** To delete Branch Datas */ - deleteBranch(id: number) { - var PrimaryKeyWithValue ={'branch_id':id}; - this._mastersService.deleteMasterDetails(PrimaryKeyWithValue,'BRANCH').subscribe(); - - } - - ngAfterViewInit() { - this.dataSource.paginator = this.paginator; - this.dataSource.sort = this.sort; - } - - applyFilter(filterValue: string) { - filterValue = filterValue.trim(); // Remove whitespace - filterValue = filterValue.toLowerCase(); // Datasource defaults to lowercase matches - this.dataSource.filter = filterValue; - } - - -} -/** To set the All Branch value as Data sources with help of connect() */ diff --git a/ng6-seed/src/app/settings/masters/component/city/city-dialog/city-dialog.component.html b/ng6-seed/src/app/settings/masters/component/city/city-dialog/city-dialog.component.html deleted file mode 100644 index 2fa6c31..0000000 --- a/ng6-seed/src/app/settings/masters/component/city/city-dialog/city-dialog.component.html +++ /dev/null @@ -1,56 +0,0 @@ - -
-
City
-
-
-
- - -
- -
- - -
- - - {{ sd.name }} - - You must Pickup State Name. - - -
-
- - - You must include a Name. - - -
- - -
-
- - - -
- -
-
- -
diff --git a/ng6-seed/src/app/settings/masters/component/city/city-dialog/city-dialog.component.scss b/ng6-seed/src/app/settings/masters/component/city/city-dialog/city-dialog.component.scss deleted file mode 100644 index 3e80f0d..0000000 --- a/ng6-seed/src/app/settings/masters/component/city/city-dialog/city-dialog.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -mat-form-field{ - width:100%; -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/city/city-dialog/city-dialog.component.ts b/ng6-seed/src/app/settings/masters/component/city/city-dialog/city-dialog.component.ts deleted file mode 100644 index ecf386a..0000000 --- a/ng6-seed/src/app/settings/masters/component/city/city-dialog/city-dialog.component.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; -import { States } from '../../../model/states'; - -import { MastersService } from '../../../../service/masters/masters.service'; -@Component({ - selector: 'app-jazz-dialog', - templateUrl: './city-dialog.component.html', - styleUrls: ['./city-dialog.component.scss'] -}) -export class CityDialogComponent implements OnInit { - - - public _cityForm: FormGroup; - - stateDatas: any[]; - errorMessage:string; - - constructor(private _formBuilder: FormBuilder, - private dialogRef: MatDialogRef, - private _MastersService: MastersService, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onNoClick(): void { - this.dialogRef.close(); - } - - ngOnInit() { - - this._cityForm = this._formBuilder.group({ - //City_id: any; fk_city_id: any; - - city_id: [this.data.city_id], - name: [this.data.name, Validators.compose([Validators.required])], - fk_state_id: [this.data.fk_state_id, Validators.compose([Validators.required])] - }); - //console.log(this._cityForm); - - this._MastersService.getAllMasterData('STATE') - .subscribe( - data => { - if (data.status == 200) { - this.stateDatas = data.records; - this.stateDatas = this.stateDatas.filter(city=>city.isactive == 1 ); - } - - }, error => this.errorMessage = error); - - } - - // onSubmit() { - // if (isNaN(this.data.ID)) { - // this._MastersService.addCity(this._cityForm.value); - // this.dialogRef.close(); - // } else { - // this._MastersService.editCity(this._cityForm.value); - // this.dialogRef.close(); - // } - // } - - onSubmit() { - if(isNaN(this.data.city_id)) { - var my_array = this._cityForm.value; - Object.keys(my_array).forEach((key) => ( my_array[key] == null) && delete my_array[key]); - console.log(my_array); - this._MastersService.addMasterDetails(my_array,'CITY').subscribe(); - this.dialogRef.close(); - alert("saved"); - } else { - - this._MastersService.editMasterDetails(this._cityForm.value,'CITY').subscribe(); - this.dialogRef.close(); - alert("edited"); - } - } - - - - onReset(){ - this._cityForm.reset(); - } -} diff --git a/ng6-seed/src/app/settings/masters/component/city/city-list/city-list.component.html b/ng6-seed/src/app/settings/masters/component/city/city-list/city-list.component.html deleted file mode 100644 index 29e5506..0000000 --- a/ng6-seed/src/app/settings/masters/component/city/city-list/city-list.component.html +++ /dev/null @@ -1,76 +0,0 @@ - -
- -
-
-
- -
- -
- - - - - - - - - - - - - - - - - -
#City NameState NameIsactiveAction
No Records
{{i+1}}{{CL.name}}{{CL.state_name}}{{CL.isactive}} - edit - delete_outline -
-
- - - - -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/city/city-list/city-list.component.scss b/ng6-seed/src/app/settings/masters/component/city/city-list/city-list.component.scss deleted file mode 100644 index 2724e14..0000000 --- a/ng6-seed/src/app/settings/masters/component/city/city-list/city-list.component.scss +++ /dev/null @@ -1,69 +0,0 @@ - -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 300px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-input-container { - font-size: 14px; - flex-grow: 1; - margin-left: 32px; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -/** Selection styles -.example-selection-header { - font-size: 18px; - background: rgba(255, 64, 129, 0.3); - border-bottom: 1px solid #d696ac; -} - -.mat-column-select { - max-width: 54px; -} - -.mat-row:hover, .example-selected-row { - background: #f5f5f5; -} - -.mat-row:active, .mat-row.example-selected-row { - background: #eaeaea; -} - -.mat-table { - overflow: auto; - max-height: 500px; -}*/ - table { - width: 100%; - } - - th { - text-align: left; - } - -.button{ - padding-left: 6px; - font-size: 20px; -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/city/city-list/city-list.component.ts b/ng6-seed/src/app/settings/masters/component/city/city-list/city-list.component.ts deleted file mode 100644 index 86ce0f9..0000000 --- a/ng6-seed/src/app/settings/masters/component/city/city-list/city-list.component.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { MatDialog, MatDialogRef, MatDialogConfig,MatPaginator, MatSort,MatTableDataSource } from '@angular/material'; - -import { Observable, Subject } from 'rxjs'; -import { Http, Response } from '@angular/http'; -import 'rxjs/add/operator/map'; - -import { DataSource } from '@angular/cdk/collections'; -import { map } from 'rxjs/operators'; -import { of as observableOf, merge } from 'rxjs'; - - -import { MastersService } from '../../../../service/masters/masters.service'; -import { CityDialogComponent } from '../city-dialog/city-dialog.component'; -import { City } from '../../../model/city'; - -@Component({ - selector: 'app-city-list', - templateUrl: './city-list.component.html', - styleUrls: ['./city-list.component.scss'] -}) -export class CityListComponent implements OnInit { - - isPopupOpened = true; - loader: boolean = false; - CityList: any = []; - - //, createdon, fk_createdby, updatedon, fk_updatedby, isactive - displayedColumns = ['city_id','name', 'fk_state_id','state_name' , 'isactive','actions']; - - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - constructor(private dialog: MatDialog, - private _MastersService: MastersService) { } - - // get CityList() { - // return this._MastersService.getAllCity(); - // } - - dataSource = new UserDataSource(this._MastersService); - - ngOnInit() { - this.getCity(); - } - - - addCity() { - this.isPopupOpened = true; - const dialogRef = this.dialog.open(CityDialogComponent, { - data: {} - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - editCity(arr: any[]) { - this.isPopupOpened = true; - //const contact = this._MastersService.getAllCity().find(c => c.ID === id); - const dialogRef = this.dialog.open(CityDialogComponent, { - data: arr - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - //To get data for listing - getCity() { - this.loader = true; - this._MastersService.getAllCity().subscribe(dataresult => { - - this.loader = false; - - if (dataresult.dataStatus  === true) { - this.CityList = dataresult.records; - } - }) - - } - - deleteCity(id: number) { - var PrimaryKeyWithValue ={'city_id':id}; - this._MastersService.deleteMasterDetails(PrimaryKeyWithValue,'CITY'); - } -} - -export class UserDataSource extends DataSource { - - - constructor(private _bs: MastersService) { - super(); - } - - connect(): Observable { - //return this.userService.getUser(); - //return this._bs.getAllCity(); - return this._bs.getAllMasterData('CITY'); - } - disconnect() {} -} - diff --git a/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-dialog/comments-on-locality-dialog.component.html b/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-dialog/comments-on-locality-dialog.component.html deleted file mode 100644 index 971efad..0000000 --- a/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-dialog/comments-on-locality-dialog.component.html +++ /dev/null @@ -1,42 +0,0 @@ - -
-
Comment On Locality
-
-
-
- - -
- -
- - -
- - - You must include a Rating. - - -
- -
-
- - - -
- -
-
- -
- diff --git a/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-dialog/comments-on-locality-dialog.component.scss b/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-dialog/comments-on-locality-dialog.component.scss deleted file mode 100644 index 3e80f0d..0000000 --- a/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-dialog/comments-on-locality-dialog.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -mat-form-field{ - width:100%; -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-dialog/comments-on-locality-dialog.component.spec.ts b/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-dialog/comments-on-locality-dialog.component.spec.ts deleted file mode 100644 index ea65044..0000000 --- a/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-dialog/comments-on-locality-dialog.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { CommentsOnLocalityDialogComponent } from './comments-on-locality-dialog.component'; - -describe('CommentsOnLocalityDialogComponent', () => { - let component: CommentsOnLocalityDialogComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ CommentsOnLocalityDialogComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(CommentsOnLocalityDialogComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-dialog/comments-on-locality-dialog.component.ts b/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-dialog/comments-on-locality-dialog.component.ts deleted file mode 100644 index b083ce2..0000000 --- a/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-dialog/comments-on-locality-dialog.component.ts +++ /dev/null @@ -1,58 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; -import { MastersService } from '../../../../service/masters/masters.service'; - - -@Component({ - selector: 'app-jazz-dialog', - templateUrl: './comments-on-locality-dialog.component.html', - styleUrls: ['./comments-on-locality-dialog.component.scss'] -}) -export class CommentsOnLocalityDialogComponent implements OnInit { - - - public _CommentOnLocalityForm: FormGroup; - - constructor(private _formBuilder: FormBuilder, - private dialogRef: MatDialogRef, - private _MastersService: MastersService, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onNoClick(): void { - this.dialogRef.close(); - } - - ngOnInit() { - - this._CommentOnLocalityForm = this._formBuilder.group({ - //branch_id: any; fk_city_id: any; - comments_on_locality_id: [this.data.comments_on_locality_id], - rating: [this.data.rating, Validators.compose([Validators.required])], - }); - - } - - - onSubmit() { - if(isNaN(this.data.comments_on_locality_id)) { - var my_array = this._CommentOnLocalityForm.value; - Object.keys(my_array).forEach((key) => ( my_array[key] == null) && delete my_array[key]); - console.log(my_array); - this._MastersService.addMasterDetails(my_array,'COMMENTSONLOCALITY').subscribe(); - this.dialogRef.close(); - alert("saved"); - } else { - - this._MastersService.editMasterDetails(this._CommentOnLocalityForm.value,'COMMENTSONLOCALITY').subscribe(); - this.dialogRef.close(); - alert("edited"); - } - } - - - - onReset(){ - this._CommentOnLocalityForm.reset(); - } -} diff --git a/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-list/comments-on-locality-list.component.html b/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-list/comments-on-locality-list.component.html deleted file mode 100644 index 013d6dd..0000000 --- a/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-list/comments-on-locality-list.component.html +++ /dev/null @@ -1,65 +0,0 @@ - -
- -
-
-
- -
-
- - - - - - - - - - - - - - - - - -
#Comments On Locality IdRatingIsActiveAction
No Records
{{i+1}}{{CLL.comments_on_locality_id}}{{CLL.rating}}{{CLL.isactive}} - edit - delete_outline -
- -
- - - - -
diff --git a/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-list/comments-on-locality-list.component.scss b/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-list/comments-on-locality-list.component.scss deleted file mode 100644 index 3b5b291..0000000 --- a/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-list/comments-on-locality-list.component.scss +++ /dev/null @@ -1,93 +0,0 @@ - -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 300px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-input-container { - font-size: 14px; - flex-grow: 1; - margin-left: 32px; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -/** Selection styles -.example-selection-header { - font-size: 18px; - background: rgba(255, 64, 129, 0.3); - border-bottom: 1px solid #d696ac; -} - -.mat-column-select { - max-width: 54px; -} - -.mat-row:hover, .example-selected-row { - background: #f5f5f5; -} - -.mat-row:active, .mat-row.example-selected-row { - background: #eaeaea; -} - -.mat-table { - overflow: auto; - max-height: 500px; -}*/ -/* Structure */ -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - width : 80%; - margin : 20px auto; - } - - .example-header { - min-height: 64px; - padding: 8px 24px 0; - } - - //mat-cell{ - .cell{ - display:flex !important; - justify-content:center!important; - - } - - // mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; - } - - - table { - width: 100%; - } - - th { - text-align: left; - } - diff --git a/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-list/comments-on-locality-list.component.spec.ts b/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-list/comments-on-locality-list.component.spec.ts deleted file mode 100644 index 81bfc8c..0000000 --- a/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-list/comments-on-locality-list.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { CommentsOnLocalityListComponent } from './comments-on-locality-list.component'; - -describe('CommentsOnLocalityListComponent', () => { - let component: CommentsOnLocalityListComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ CommentsOnLocalityListComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(CommentsOnLocalityListComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-list/comments-on-locality-list.component.ts b/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-list/comments-on-locality-list.component.ts deleted file mode 100644 index 8125c21..0000000 --- a/ng6-seed/src/app/settings/masters/component/comments-on-locality/comments-on-locality-list/comments-on-locality-list.component.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { MatDialog, MatDialogRef, MatDialogConfig,MatPaginator, MatSort,MatTableDataSource } from '@angular/material'; - -import { Observable, Subject } from 'rxjs'; -import { Http, Response } from '@angular/http'; -import 'rxjs/add/operator/map'; - -import { DataSource } from '@angular/cdk/collections'; -import { map } from 'rxjs/operators'; -import { of as observableOf, merge } from 'rxjs'; - - -import { MastersService } from '../../../../service/masters/masters.service'; -import { CommentsOnLocalityDialogComponent } from '../comments-on-locality-dialog/comments-on-locality-dialog.component'; -import { CommentsOnLocality } from '../../../model/comments-on-locality'; - - -@Component({ - selector: 'app-comments-on-locality-list', - templateUrl: './comments-on-locality-list.component.html', - styleUrls: ['./comments-on-locality-list.component.scss'] -}) -export class CommentsOnLocalityListComponent implements OnInit { - - isPopupOpened = true; - loader: boolean = false; - CommentsOnLocalityList: any = []; - - displayedColumns = ['comments_on_locality_id','rating','isactive','actions']; - - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - constructor(private dialog: MatDialog, - private _MastersService: MastersService) { } - - // get CommentsOnLocalityList() { - // return this._MastersService.getAllCommentsOnLocality(); - // } - - dataSource = new UserDataSource(this._MastersService); - - ngOnInit() { - this.getCommentsOnLocality(); - } - - - addCommentsOnLocality() { - this.isPopupOpened = true; - const dialogRef = this.dialog.open(CommentsOnLocalityDialogComponent, { - data: {} - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - editCommentsOnLocality(arr: any[]) { - this.isPopupOpened = true; - //const contact = this._MastersService.getAllCommentsOnLocality().find(c => c.ID === id); - const dialogRef = this.dialog.open(CommentsOnLocalityDialogComponent, { - data: arr - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - //To get data for listing - getCommentsOnLocality() { - this.loader = true; - this._MastersService.getAllMasterData('COMMENTSONLOCALITY').subscribe(dataresult => { - - this.loader = false; - - if (dataresult.dataStatus  === true) { - this.CommentsOnLocalityList = dataresult.records; - } - }) - - } - - deleteCommentsOnLocality(id: number) { - var PrimaryKeyWithValue ={'comments_on_locality_id':id}; - this._MastersService.deleteMasterDetails(PrimaryKeyWithValue,'COMMENTSONLOCALITY'); - //this._MastersService.deleteMasterDetails('',id,''); - } -} - -export class UserDataSource extends DataSource { - - - constructor(private _bs: MastersService) { - super(); - } - - connect(): Observable { - //return this.userService.getUser(); - //return this._bs.getAllCommentsOnLocality(); - return this._bs.getAllMasterData('COMMENTSONLOCALITY'); - } - disconnect() {} -} diff --git a/ng6-seed/src/app/settings/masters/component/company/company-dialog/company-dialog.component.html b/ng6-seed/src/app/settings/masters/component/company/company-dialog/company-dialog.component.html deleted file mode 100644 index 0bec921..0000000 --- a/ng6-seed/src/app/settings/masters/component/company/company-dialog/company-dialog.component.html +++ /dev/null @@ -1,114 +0,0 @@ - - -
-
Company
-
-
-
- - -
- -
- - -
- - - You must include a Name. - -
-
- - - You must include a addressline1. - - -
-
- - - You must include a Name. - - -
-
- - - You must include a Name. - - -
- -
- - - - - {{ cd.name }} - - You must include a City. - - -
-
- - - pincode should be in 6 digit format - - - Your pincode must be at least 5 characters long. - Your pincode name cannot exceed 6 characters. - - -
-
- - - {{ sd.name }} - - You must Pickup a State. - - -
- - -
- logo - - -
- - -
-
- - - -
- -
-
- -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/company/company-dialog/company-dialog.component.ts b/ng6-seed/src/app/settings/masters/component/company/company-dialog/company-dialog.component.ts deleted file mode 100644 index f793a07..0000000 --- a/ng6-seed/src/app/settings/masters/component/company/company-dialog/company-dialog.component.ts +++ /dev/null @@ -1,113 +0,0 @@ - -import { Component, OnInit, Inject } from '@angular/core'; -import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; -//import { CompanyService } from '../../../service/company.service'; -import { MastersService } from '../../../../service/masters/masters.service'; -import { FileUploader } from 'ng2-file-upload/ng2-file-upload'; - - -@Component({ - selector: 'app-jazz-dialog', - templateUrl: './company-dialog.component.html', - styleUrls: ['./company-dialog.component.scss'] -}) -export class CompanyDialogComponent implements OnInit { - - - public _companyForm: FormGroup; - - stateDatas: any[]; - citydatas: any[]; - errorMessage:string; - files: File = null - - constructor(private _formBuilder: FormBuilder, - private dialogRef: MatDialogRef, - private _masterService: MastersService, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onNoClick(): void { - this.dialogRef.close(); - } - - ngOnInit() { - - this._companyForm = this._formBuilder.group({ - //Company_id: any; fk_city_id: any; - // - company_id: [this.data.company_id], - name: [this.data.name, Validators.compose([Validators.required])], - addressline1: [this.data.addressline1, Validators.compose([Validators.required])], - addressline2: [this.data.addressline2, Validators.compose([Validators.required])], - addressline3: [this.data.addressline3, Validators.compose([Validators.required])], - city: [this.data.city, Validators.compose([Validators.required])], - state: [this.data.state, Validators.compose([Validators.required])], - pincode: [this.data.pincode, Validators.compose([Validators.required, Validators.minLength(5), Validators.maxLength(6)])], - logo : [this.data.logo] - }); - - this._masterService.getAllMasterData('STATE') - .subscribe( - data => { - if (data.status == 200) { - this.stateDatas = data.records; - this.stateDatas = this.stateDatas.filter(dataresult=>dataresult.isactive == 1 ); - } - - }, error => this.errorMessage = error); - - this._masterService.getAllMasterData('CITY') - .subscribe( - data => { - - this.citydatas = data.records; - this.citydatas = this.citydatas.filter(dataresult=>dataresult.isactive == 1 ); - - }, error => this.errorMessage = error); - - - } - onFileChange($event) { - //console.log($event.target.files[0]); - - //if($event.target.files[0] < 0 ){ - this.files = $event.target.files[0]; - //} - //console.log(this.files); - } - // onSubmit() { - // if (isNaN(this.data.ID)) { - // this._companyService.addCompany(this._companyForm.value); - // this.dialogRef.close(); - // } else { - // this._companyService.editCompany(this._companyForm.value); - // this.dialogRef.close(); - // } - // } - - onSubmit() { - if (this.files) { - this.data.logo = this.files; - } - if(isNaN(this.data.company_id)) { - var my_array = this._companyForm.value; - Object.keys(my_array).forEach((key) => ( my_array[key] == null) && delete my_array[key]); - console.log(my_array); - this._masterService.addMasterDetails(my_array,'COMPANY').subscribe(); - this.dialogRef.close(); - alert("saved"); - } else { - - this._masterService.editMasterDetails(this._companyForm.value,'COMPANY').subscribe(); - this.dialogRef.close(); - alert("edited"); - } - } - - - - onReset(){ - this._companyForm.reset(); - } -} diff --git a/ng6-seed/src/app/settings/masters/component/company/company-list/company-list.component.html b/ng6-seed/src/app/settings/masters/component/company/company-list/company-list.component.html deleted file mode 100644 index 7a49c82..0000000 --- a/ng6-seed/src/app/settings/masters/component/company/company-list/company-list.component.html +++ /dev/null @@ -1,100 +0,0 @@ - -
- -
-
-
- -
-
- - - - - - - - - - - - - - - - - - - -
#Company NameCompany CityCompany StateAction
No Records
{{i+1}}{{CL.name}}{{CL.city_name}}{{CL.state_name}} - edit - delete_outline -
- -
- - - - -
- - -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/company/company-list/company-list.component.scss b/ng6-seed/src/app/settings/masters/component/company/company-list/company-list.component.scss deleted file mode 100644 index 3b5b291..0000000 --- a/ng6-seed/src/app/settings/masters/component/company/company-list/company-list.component.scss +++ /dev/null @@ -1,93 +0,0 @@ - -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 300px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-input-container { - font-size: 14px; - flex-grow: 1; - margin-left: 32px; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -/** Selection styles -.example-selection-header { - font-size: 18px; - background: rgba(255, 64, 129, 0.3); - border-bottom: 1px solid #d696ac; -} - -.mat-column-select { - max-width: 54px; -} - -.mat-row:hover, .example-selected-row { - background: #f5f5f5; -} - -.mat-row:active, .mat-row.example-selected-row { - background: #eaeaea; -} - -.mat-table { - overflow: auto; - max-height: 500px; -}*/ -/* Structure */ -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - width : 80%; - margin : 20px auto; - } - - .example-header { - min-height: 64px; - padding: 8px 24px 0; - } - - //mat-cell{ - .cell{ - display:flex !important; - justify-content:center!important; - - } - - // mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; - } - - - table { - width: 100%; - } - - th { - text-align: left; - } - diff --git a/ng6-seed/src/app/settings/masters/component/company/company-list/company-list.component.ts b/ng6-seed/src/app/settings/masters/component/company/company-list/company-list.component.ts deleted file mode 100644 index 32d9885..0000000 --- a/ng6-seed/src/app/settings/masters/component/company/company-list/company-list.component.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { MatDialog, MatDialogRef, MatDialogConfig,MatPaginator, MatSort,MatTableDataSource } from '@angular/material'; - -import { Observable, Subject } from 'rxjs'; -import { Http, Response } from '@angular/http'; -import 'rxjs/add/operator/map'; - -import { DataSource } from '@angular/cdk/collections'; -import { map } from 'rxjs/operators'; -import { of as observableOf, merge } from 'rxjs'; - - -import { CompanyDialogComponent } from '../company-dialog/company-dialog.component'; -import { Company } from '../../../model/company'; -import { MastersService } from '../../../../service/masters/masters.service'; - - -@Component({ - selector: 'app-company-list', - templateUrl: './company-list.component.html', - styleUrls: ['./company-list.component.scss'] -}) -export class CompanyListComponent implements OnInit { - - isPopupOpened = true; - loader: boolean = false; - CompanyList: any = []; - - //displayedColumns = ['Company_id', 'fk_city_id', 'name', 'createdon', 'fk_createdby', 'updatedon', 'fk_updatedby', 'isactive','actions']; - displayedColumns = ['company_id', 'name', 'addressline1', 'addressline2','addressline3', 'city', 'state','city_name', 'state_name', 'pincode', 'logo','action']; - - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - - constructor(private dialog: MatDialog, - private _MastersService: MastersService) { } - - // get CompanyList() { - // return this._MastersService.getAllCompany(); - // } - - dataSource = new UserDataSource(this._MastersService); - - ngOnInit() { - this.getCompany(); - } - - - addCompany() { - this.isPopupOpened = true; - const dialogRef = this.dialog.open(CompanyDialogComponent, { - data: {} - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - editCompany(arr: any[]) { - this.isPopupOpened = true; - //const contact = this._MastersService.getAllCompany().find(c => c.ID === id); - const dialogRef = this.dialog.open(CompanyDialogComponent, { - data: arr - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - //To get data for listing - getCompany() { - this.loader = true; - this._MastersService.getAllCompany().subscribe(dataresult => { - - this.loader = false; - - if (dataresult.dataStatus  === true) { - this.CompanyList = dataresult.records; - } - }) - - } - - deleteCompany(id: number) { - var PrimaryKeyWithValue ={'company_id':id}; - this._MastersService.deleteMasterDetails(PrimaryKeyWithValue,'COMPANY'); - //this._MastersService.deleteMasterDetails('company_id',id,'COMPANY'); - } -} - -export class UserDataSource extends DataSource { - - - constructor(private _bs: MastersService) { - super(); - } - - connect(): Observable { - //return this.userService.getUser(); - return this._bs.getAllCompany(); - //return this._bs.getAllMasterData('COMPANY'); - } - disconnect() {} -} diff --git a/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-dialog/customer-behaviour-dialog.component.html b/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-dialog/customer-behaviour-dialog.component.html deleted file mode 100644 index f687d62..0000000 --- a/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-dialog/customer-behaviour-dialog.component.html +++ /dev/null @@ -1,43 +0,0 @@ - -
-
Customer Behaviour
-
-
-
- - - -
- -
- - -
- - - You must include a Name. - - -
- - -
-
- - - -
- -
-
- -
diff --git a/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-dialog/customer-behaviour-dialog.component.scss b/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-dialog/customer-behaviour-dialog.component.scss deleted file mode 100644 index 3e80f0d..0000000 --- a/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-dialog/customer-behaviour-dialog.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -mat-form-field{ - width:100%; -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-dialog/customer-behaviour-dialog.component.spec.ts b/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-dialog/customer-behaviour-dialog.component.spec.ts deleted file mode 100644 index ab3715a..0000000 --- a/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-dialog/customer-behaviour-dialog.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { CustomerBehaviourDialogComponent } from './customer-behaviour-dialog.component'; - -describe('CustomerBehaviourDialogComponent', () => { - let component: CustomerBehaviourDialogComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ CustomerBehaviourDialogComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(CustomerBehaviourDialogComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-dialog/customer-behaviour-dialog.component.ts b/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-dialog/customer-behaviour-dialog.component.ts deleted file mode 100644 index 727c1e4..0000000 --- a/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-dialog/customer-behaviour-dialog.component.ts +++ /dev/null @@ -1,68 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; -import { MastersService } from '../../../../service/masters/masters.service'; - - -@Component({ - selector: 'app-jazz-dialog', - templateUrl: './customer-behaviour-dialog.component.html', - styleUrls: ['./customer-behaviour-dialog.component.scss'] -}) -export class CustomerBehaviourDialogComponent implements OnInit { - - public _customerBehaviourForm: FormGroup; - - constructor(private _formBuilder: FormBuilder, - private dialogRef: MatDialogRef, - private _MastersService: MastersService, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onNoClick(): void { - this.dialogRef.close(); - } - - ngOnInit() { - - this._customerBehaviourForm = this._formBuilder.group({ - //branch_id: any; fk_city_id: any; - customer_behaviour_id: [this.data.customer_behaviour_id], - description: [this.data.description, Validators.compose([Validators.required])] - - }); - //customer_behaviour_id, description, createdon, fk_createdby, updatedon, fk_updatedby, isactive - //console.log(this._customerBehaviourForm); - } - - // onSubmit() { - // if (isNaN(this.data.ID)) { - // this._MastersService.addBranch(this._customerBehaviourForm.value); - // this.dialogRef.close(); - // } else { - // this._MastersService.editBranch(this._customerBehaviourForm.value); - // this.dialogRef.close(); - // } - // } - - onSubmit() { - if(isNaN(this.data.customer_behaviour_id)) { - var my_array = this._customerBehaviourForm.value; - Object.keys(my_array).forEach((key) => ( my_array[key] == null) && delete my_array[key]); - console.log(my_array); - this._MastersService.addMasterDetails(my_array,'CUSTOMERBEHAVIOUR').subscribe(); - this.dialogRef.close(); - alert("saved"); - } else { - - this._MastersService.editMasterDetails(this._customerBehaviourForm.value,'CUSTOMERBEHAVIOUR').subscribe(); - this.dialogRef.close(); - alert("edited"); - } - } - - - - onReset(){ - this._customerBehaviourForm.reset(); - } -} diff --git a/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-list/customer-behaviour-list.component.html b/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-list/customer-behaviour-list.component.html deleted file mode 100644 index 2b7b90e..0000000 --- a/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-list/customer-behaviour-list.component.html +++ /dev/null @@ -1,65 +0,0 @@ - -
- -
-
-
- -
-
- - - - - - - - - - - - - - - - - -
#CustomerBehaviour IDDescriptionIsActiveAction
No Records
{{i+1}}{{CBL.customer_behaviour_id}}{{CBL.description}}{{CBL.isactive}} - edit - delete_outline -
- -
- - - -
diff --git a/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-list/customer-behaviour-list.component.scss b/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-list/customer-behaviour-list.component.scss deleted file mode 100644 index 3b5b291..0000000 --- a/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-list/customer-behaviour-list.component.scss +++ /dev/null @@ -1,93 +0,0 @@ - -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 300px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-input-container { - font-size: 14px; - flex-grow: 1; - margin-left: 32px; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -/** Selection styles -.example-selection-header { - font-size: 18px; - background: rgba(255, 64, 129, 0.3); - border-bottom: 1px solid #d696ac; -} - -.mat-column-select { - max-width: 54px; -} - -.mat-row:hover, .example-selected-row { - background: #f5f5f5; -} - -.mat-row:active, .mat-row.example-selected-row { - background: #eaeaea; -} - -.mat-table { - overflow: auto; - max-height: 500px; -}*/ -/* Structure */ -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - width : 80%; - margin : 20px auto; - } - - .example-header { - min-height: 64px; - padding: 8px 24px 0; - } - - //mat-cell{ - .cell{ - display:flex !important; - justify-content:center!important; - - } - - // mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; - } - - - table { - width: 100%; - } - - th { - text-align: left; - } - diff --git a/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-list/customer-behaviour-list.component.spec.ts b/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-list/customer-behaviour-list.component.spec.ts deleted file mode 100644 index 594ef23..0000000 --- a/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-list/customer-behaviour-list.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { CustomerBehaviourListComponent } from './customer-behaviour-list.component'; - -describe('CustomerBehaviourListComponent', () => { - let component: CustomerBehaviourListComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ CustomerBehaviourListComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(CustomerBehaviourListComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-list/customer-behaviour-list.component.ts b/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-list/customer-behaviour-list.component.ts deleted file mode 100644 index be81487..0000000 --- a/ng6-seed/src/app/settings/masters/component/customer-behaviour/customer-behaviour-list/customer-behaviour-list.component.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { MatDialog, MatDialogRef, MatDialogConfig,MatPaginator, MatSort,MatTableDataSource } from '@angular/material'; - -import { Observable, Subject } from 'rxjs'; -import { Http, Response } from '@angular/http'; -import 'rxjs/add/operator/map'; - -import { DataSource } from '@angular/cdk/collections'; -import { map } from 'rxjs/operators'; -import { of as observableOf, merge } from 'rxjs'; - - -import { MastersService } from '../../../../service/masters/masters.service'; -import { CustomerBehaviourDialogComponent } from '../customer-behaviour-dialog/customer-behaviour-dialog.component'; -import { CustomerBehaviour } from '../../../model/customer-behaviour'; - - -@Component({ - selector: 'app-customer-behaviour-list', - templateUrl: './customer-behaviour-list.component.html', - styleUrls: ['./customer-behaviour-list.component.scss'] -}) -export class CustomerBehaviourListComponent implements OnInit { - - isPopupOpened = true; - loader: boolean = false; - CustomerBehaviourList: any = []; - - displayedColumns = ['customer_behaviour_id', 'description', 'isactive','actions']; - - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - - constructor(private dialog: MatDialog, - private _MastersService: MastersService) { } - - // get CustomerBehaviourList() { - // return this._MastersService.getAllCustomerBehaviour(); - // } - - dataSource = new UserDataSource(this._MastersService); - - ngOnInit() { - this.getCustomerBehaviour(); - } - - - addCustomerBehaviour() { - this.isPopupOpened = true; - const dialogRef = this.dialog.open(CustomerBehaviourDialogComponent, { - data: {} - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - editCustomerBehaviour(arr: any[]) { - this.isPopupOpened = true; - //const contact = this._MastersService.getAllCustomerBehaviour().find(c => c.ID === id); - const dialogRef = this.dialog.open(CustomerBehaviourDialogComponent, { - data: arr - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - //To get data for listing - getCustomerBehaviour() { - this.loader = true; - this._MastersService.getAllMasterData('CUSTOMERBEHAVIOUR').subscribe(dataresult => { - - this.loader = false; - - if (dataresult.dataStatus  === true) { - this.CustomerBehaviourList = dataresult.records; - } - }) - - } - - deleteCustomerBehaviour(id: number) { - var PrimaryKeyWithValue ={'customer_behaviour_id':id}; - this._MastersService.deleteMasterDetails(PrimaryKeyWithValue,'CUSTOMERBEHAVIOUR'); - //this._MastersService.deleteMasterDetails('customer_behaviour_id',id,'CUSTOMERBEHAVIOUR'); - } -} - -export class UserDataSource extends DataSource { - - - constructor(private _bs: MastersService) { - super(); - } - - connect(): Observable { - //return this.userService.getUser(); - //return this._bs.getAllCustomerBehaviour(); - return this._bs.getAllMasterData('CUSTOMERBEHAVIOUR'); - } - disconnect() {} -} diff --git a/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-dialog/customer-segment-dialog.component.html b/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-dialog/customer-segment-dialog.component.html deleted file mode 100644 index e836328..0000000 --- a/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-dialog/customer-segment-dialog.component.html +++ /dev/null @@ -1,49 +0,0 @@ - -
-
Customer Segment
-
-
-
- - - -
- -
- - -
- - - You must include a Name. - - -
- -
- - - You must include a Abbrevation. - - -
-
-
- - - -
- -
-
- -
diff --git a/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-dialog/customer-segment-dialog.component.scss b/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-dialog/customer-segment-dialog.component.scss deleted file mode 100644 index 3e80f0d..0000000 --- a/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-dialog/customer-segment-dialog.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -mat-form-field{ - width:100%; -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-dialog/customer-segment-dialog.component.spec.ts b/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-dialog/customer-segment-dialog.component.spec.ts deleted file mode 100644 index 7ca82c3..0000000 --- a/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-dialog/customer-segment-dialog.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { CustomerSegmentDialogComponent } from './customer-segment-dialog.component'; - -describe('CustomerSegmentDialogComponent', () => { - let component: CustomerSegmentDialogComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ CustomerSegmentDialogComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(CustomerSegmentDialogComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-dialog/customer-segment-dialog.component.ts b/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-dialog/customer-segment-dialog.component.ts deleted file mode 100644 index 7d9ce06..0000000 --- a/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-dialog/customer-segment-dialog.component.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; -import { MastersService } from '../../../../service/masters/masters.service'; - - -@Component({ - selector: 'app-jazz-dialog', - templateUrl: './customer-segment-dialog.component.html', - styleUrls: ['./customer-segment-dialog.component.scss'] -}) -export class CustomerSegmentDialogComponent implements OnInit { - - public _customerSegmentForm: FormGroup; - - constructor(private _formBuilder: FormBuilder, - private dialogRef: MatDialogRef, - private _MastersService: MastersService, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onNoClick(): void { - this.dialogRef.close(); - } - - ngOnInit() { - - this._customerSegmentForm = this._formBuilder.group({ - //CustomerSegment_id: any; fk_city_id: any; - customer_segment_id: [this.data.customer_segment_id], - name: [this.data.name, Validators.compose([Validators.required])], - abbr: [this.data.abbr, Validators.compose([Validators.required])] - }); - //console.log(this._customerSegmentForm); - //customer_segment_id, name, abbr, createdon, fk_createdby, updatedon, isactive, fk_updatedby - } - - // onSubmit() { - // if (isNaN(this.data.ID)) { - // this._MastersService.addCustomerSegment(this._customerSegmentForm.value); - // this.dialogRef.close(); - // } else { - // this._MastersService.editCustomerSegment(this._customerSegmentForm.value); - // this.dialogRef.close(); - // } - // } - - onSubmit() { - if(isNaN(this.data.customer_segment_id)) { - var my_array = this._customerSegmentForm.value; - Object.keys(my_array).forEach((key) => ( my_array[key] == null) && delete my_array[key]); - console.log(my_array); - this._MastersService.addMasterDetails(my_array,'CUSTOMERSEGMENT').subscribe(); - this.dialogRef.close(); - alert("saved"); - } else { - - this._MastersService.editMasterDetails(this._customerSegmentForm.value,'CUSTOMERSEGMENT').subscribe(); - this.dialogRef.close(); - alert("edited"); - } - } - - - - onReset(){ - this._customerSegmentForm.reset(); - } -} - - - - - - diff --git a/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-list/customer-segment-list.component.html b/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-list/customer-segment-list.component.html deleted file mode 100644 index e0632e6..0000000 --- a/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-list/customer-segment-list.component.html +++ /dev/null @@ -1,70 +0,0 @@ - -
- -
-
-
- -
-
- - - - - - - - - - - - - - - - - - -
#CustomerSegment NameAbbrevationIsActiveAction
No Records
{{i+1}}{{CSL.name}}{{CSL.abbr}}{{CSL.isactive}} - edit - delete_outline -
- -
- - -
- \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-list/customer-segment-list.component.scss b/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-list/customer-segment-list.component.scss deleted file mode 100644 index 3b5b291..0000000 --- a/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-list/customer-segment-list.component.scss +++ /dev/null @@ -1,93 +0,0 @@ - -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 300px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-input-container { - font-size: 14px; - flex-grow: 1; - margin-left: 32px; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -/** Selection styles -.example-selection-header { - font-size: 18px; - background: rgba(255, 64, 129, 0.3); - border-bottom: 1px solid #d696ac; -} - -.mat-column-select { - max-width: 54px; -} - -.mat-row:hover, .example-selected-row { - background: #f5f5f5; -} - -.mat-row:active, .mat-row.example-selected-row { - background: #eaeaea; -} - -.mat-table { - overflow: auto; - max-height: 500px; -}*/ -/* Structure */ -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - width : 80%; - margin : 20px auto; - } - - .example-header { - min-height: 64px; - padding: 8px 24px 0; - } - - //mat-cell{ - .cell{ - display:flex !important; - justify-content:center!important; - - } - - // mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; - } - - - table { - width: 100%; - } - - th { - text-align: left; - } - diff --git a/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-list/customer-segment-list.component.spec.ts b/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-list/customer-segment-list.component.spec.ts deleted file mode 100644 index a8fc7b5..0000000 --- a/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-list/customer-segment-list.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { CustomerSegmentListComponent } from './customer-segment-list.component'; - -describe('CustomerSegmentListComponent', () => { - let component: CustomerSegmentListComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ CustomerSegmentListComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(CustomerSegmentListComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-list/customer-segment-list.component.ts b/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-list/customer-segment-list.component.ts deleted file mode 100644 index 29e7eb6..0000000 --- a/ng6-seed/src/app/settings/masters/component/customer-segment/customer-segment-list/customer-segment-list.component.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { MatDialog, MatDialogRef, MatDialogConfig,MatPaginator, MatSort,MatTableDataSource } from '@angular/material'; - -import { Observable, Subject } from 'rxjs'; -import { Http, Response } from '@angular/http'; -import 'rxjs/add/operator/map'; - -import { DataSource } from '@angular/cdk/collections'; -import { map } from 'rxjs/operators'; -import { of as observableOf, merge } from 'rxjs'; - - -import { MastersService } from '../../../../service/masters/masters.service'; -import { CustomerSegmentDialogComponent } from '../customer-segment-dialog/customer-segment-dialog.component'; -import { CustomerSegment } from '../../../model/customer-segment'; - - -@Component({ - selector: 'app-customer-segment-list', - templateUrl: './customer-segment-list.component.html', - styleUrls: ['./customer-segment-list.component.scss'] -}) -export class CustomerSegmentListComponent implements OnInit { - isPopupOpened = true; - loader: boolean = false; - CustomerSegmentList: any = []; - - displayedColumns = ['customer_segment_id', 'abbr', 'name', 'isactive','actions']; - - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - - constructor(private dialog: MatDialog, - private _MastersService: MastersService) { } - - // get CustomerSegmentList() { - // return this._MastersService.getAllCustomerSegment(); - // } - - dataSource = new UserDataSource(this._MastersService); - - ngOnInit() { - this.getCustomerSegment(); - } - - - addCustomerSegment() { - this.isPopupOpened = true; - const dialogRef = this.dialog.open(CustomerSegmentDialogComponent, { - data: {} - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - editCustomerSegment(arr: any[]) { - this.isPopupOpened = true; - //const contact = this._MastersService.getAllCustomerSegment().find(c => c.ID === id); - const dialogRef = this.dialog.open(CustomerSegmentDialogComponent, { - data: arr - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - //To get data for listing - getCustomerSegment() { - this.loader = true; - this._MastersService.getAllMasterData('CUSTOMERSEGMENT').subscribe(dataresult => { - - this.loader = false; - - if (dataresult.dataStatus  === true) { - this.CustomerSegmentList = dataresult.records; - } - }) - - } - - deleteCustomerSegment(id: number) { - var PrimaryKeyWithValue ={'customer_segment_id':id}; - this._MastersService.deleteMasterDetails(PrimaryKeyWithValue,'CUSTOMERSEGMENT'); - //this._MastersService.deleteMasterDetails('customer_segment_id',id,'CUSTOMERSEGMENT'); - } -} - -export class UserDataSource extends DataSource { - - - constructor(private _bs: MastersService) { - super(); - } - - connect(): Observable { - //return this.userService.getUser(); - //return this._bs.getAllCustomerSegment(); - return this._bs.getAllMasterData('CUSTOMERSEGMENT'); - } - disconnect() {} -} diff --git a/ng6-seed/src/app/settings/masters/component/designation/designation-dialog/designation-dialog.component.html b/ng6-seed/src/app/settings/masters/component/designation/designation-dialog/designation-dialog.component.html deleted file mode 100644 index 85dd5b0..0000000 --- a/ng6-seed/src/app/settings/masters/component/designation/designation-dialog/designation-dialog.component.html +++ /dev/null @@ -1,51 +0,0 @@ - -
-
Designation
-
-
-
- - - -
- -
- - -
- - - You must include a Name. - - -
- - - -
- - - You must include a Short Name. - - -
-
-
- - - -
- -
-
- -
diff --git a/ng6-seed/src/app/settings/masters/component/designation/designation-dialog/designation-dialog.component.scss b/ng6-seed/src/app/settings/masters/component/designation/designation-dialog/designation-dialog.component.scss deleted file mode 100644 index 3e80f0d..0000000 --- a/ng6-seed/src/app/settings/masters/component/designation/designation-dialog/designation-dialog.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -mat-form-field{ - width:100%; -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/designation/designation-dialog/designation-dialog.component.ts b/ng6-seed/src/app/settings/masters/component/designation/designation-dialog/designation-dialog.component.ts deleted file mode 100644 index 2331d93..0000000 --- a/ng6-seed/src/app/settings/masters/component/designation/designation-dialog/designation-dialog.component.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; -import { MastersService } from '../../../../service/masters/masters.service'; - - -@Component({ - selector: 'app-designation-dialog', - templateUrl: './designation-dialog.component.html', - styleUrls: ['./designation-dialog.component.scss'] -}) -export class DesignationDialogComponent implements OnInit { - - public _designationForm: FormGroup; - - constructor(private _formBuilder: FormBuilder, - private dialogRef: MatDialogRef, - private _MastersService: MastersService, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onNoClick(): void { - this.dialogRef.close(); - } - - ngOnInit() { - - this._designationForm = this._formBuilder.group({ - //Designation_id: any; fk_city_id: any; - designation_id: [this.data.designation_id], - name: [this.data.name, Validators.compose([Validators.required])], - short_name: [this.data.short_name, Validators.compose([Validators.required])] - }); - //console.log(this._designationForm); - } - - // onSubmit() { - // if (isNaN(this.data.ID)) { - // this._MastersService.addDesignation(this._designationForm.value); - // this.dialogRef.close(); - // } else { - // this._MastersService.editDesignation(this._designationForm.value); - // this.dialogRef.close(); - // } - // } - - onSubmit() { - if(isNaN(this.data.designation_id)) { - var my_array = this._designationForm.value; - Object.keys(my_array).forEach((key) => ( my_array[key] == null) && delete my_array[key]); - console.log(my_array); - this._MastersService.addMasterDetails(my_array,'DESIGNATION').subscribe(); - this.dialogRef.close(); - alert("saved"); - } else { - - this._MastersService.editMasterDetails(this._designationForm.value,'DESIGNATION').subscribe(); - this.dialogRef.close(); - alert("edited"); - } - } - - - - onReset(){ - this._designationForm.reset(); - } -} - - - - - - diff --git a/ng6-seed/src/app/settings/masters/component/designation/designation-list/designation-list.component.html b/ng6-seed/src/app/settings/masters/component/designation/designation-list/designation-list.component.html deleted file mode 100644 index b0d993a..0000000 --- a/ng6-seed/src/app/settings/masters/component/designation/designation-list/designation-list.component.html +++ /dev/null @@ -1,70 +0,0 @@ - -
- -
-
-
- -
-
- - - - - - - - - - - - - - - -
#Designation NameIsActiveAction
No Records
{{i+1}}{{DL.name}}{{DL.isactive}} - edit - delete_outline -
- -
- - - - -
diff --git a/ng6-seed/src/app/settings/masters/component/designation/designation-list/designation-list.component.scss b/ng6-seed/src/app/settings/masters/component/designation/designation-list/designation-list.component.scss deleted file mode 100644 index 3b5b291..0000000 --- a/ng6-seed/src/app/settings/masters/component/designation/designation-list/designation-list.component.scss +++ /dev/null @@ -1,93 +0,0 @@ - -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 300px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-input-container { - font-size: 14px; - flex-grow: 1; - margin-left: 32px; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -/** Selection styles -.example-selection-header { - font-size: 18px; - background: rgba(255, 64, 129, 0.3); - border-bottom: 1px solid #d696ac; -} - -.mat-column-select { - max-width: 54px; -} - -.mat-row:hover, .example-selected-row { - background: #f5f5f5; -} - -.mat-row:active, .mat-row.example-selected-row { - background: #eaeaea; -} - -.mat-table { - overflow: auto; - max-height: 500px; -}*/ -/* Structure */ -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - width : 80%; - margin : 20px auto; - } - - .example-header { - min-height: 64px; - padding: 8px 24px 0; - } - - //mat-cell{ - .cell{ - display:flex !important; - justify-content:center!important; - - } - - // mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; - } - - - table { - width: 100%; - } - - th { - text-align: left; - } - diff --git a/ng6-seed/src/app/settings/masters/component/designation/designation-list/designation-list.component.spec.ts b/ng6-seed/src/app/settings/masters/component/designation/designation-list/designation-list.component.spec.ts deleted file mode 100644 index 9911c6f..0000000 --- a/ng6-seed/src/app/settings/masters/component/designation/designation-list/designation-list.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { DesignationListComponent } from './designation-list.component'; - -describe('DesignationListComponent', () => { - let component: DesignationListComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ DesignationListComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(DesignationListComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/designation/designation-list/designation-list.component.ts b/ng6-seed/src/app/settings/masters/component/designation/designation-list/designation-list.component.ts deleted file mode 100644 index 2ab36b0..0000000 --- a/ng6-seed/src/app/settings/masters/component/designation/designation-list/designation-list.component.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { MatDialog, MatDialogRef, MatDialogConfig,MatPaginator, MatSort,MatTableDataSource } from '@angular/material'; - -import { Observable, Subject } from 'rxjs'; -import { Http, Response } from '@angular/http'; -import 'rxjs/add/operator/map'; - -import { DataSource } from '@angular/cdk/collections'; -import { map } from 'rxjs/operators'; -import { of as observableOf, merge } from 'rxjs'; - - -import { MastersService } from '../../../../service/masters/masters.service'; -import { DesignationDialogComponent } from '../designation-dialog/designation-dialog.component'; -import { Designation } from '../../../model/designation'; - - -@Component({ - selector: 'app-designation-list', - templateUrl: './designation-list.component.html', - styleUrls: ['./designation-list.component.scss'] -}) -export class DesignationListComponent implements OnInit { - - isPopupOpened = true; - loader: boolean = false; - DesignationList: any = []; - - displayedColumns = ['designation_id', 'name', 'short_name','isactive','actions']; - - - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - - constructor(private dialog: MatDialog, - private _MastersService: MastersService) { } - - // get DesignationList() { - // return this._MastersService.getAllDesignation(); - // } - - dataSource = new UserDataSource(this._MastersService); - - ngOnInit() { - this.getDesignation(); - } - - - addDesignation() { - this.isPopupOpened = true; - const dialogRef = this.dialog.open(DesignationDialogComponent, { - data: {} - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - editDesignation(arr: any[]) { - this.isPopupOpened = true; - //const contact = this._MastersService.getAllDesignation().find(c => c.ID === id); - const dialogRef = this.dialog.open(DesignationDialogComponent, { - data: arr - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - //To get data for listing - getDesignation() { - this.loader = true; - this._MastersService.getAllMasterData('DESIGNATION').subscribe(dataresult => { - - this.loader = false; - - if (dataresult.dataStatus  === true) { - this.DesignationList = dataresult.records; - } - }) - - } - - deleteDesignation(id: number) { - var PrimaryKeyWithValue ={'designation_id':id}; - this._MastersService.deleteMasterDetails(PrimaryKeyWithValue,'DESIGNATION'); - // this._MastersService.deleteMasterDetails('designation_id',id,'DESIGNATION'); - } -} - -export class UserDataSource extends DataSource { - - - constructor(private _bs: MastersService) { - super(); - } - - connect(): Observable { - //return this.userService.getUser(); - //return this._bs.getAllDesignation(); - return this._bs.getAllMasterData('DESIGNATION'); - } - disconnect() {} -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/frequency/frequency-dialog/frequency-dialog.component.html b/ng6-seed/src/app/settings/masters/component/frequency/frequency-dialog/frequency-dialog.component.html deleted file mode 100644 index 49ccbd2..0000000 --- a/ng6-seed/src/app/settings/masters/component/frequency/frequency-dialog/frequency-dialog.component.html +++ /dev/null @@ -1,40 +0,0 @@ - -
-
Frequency
-
-
-
- - - -
- -
- - -
- - - You must include a Name. - - -
-
-
- - -
- -
-
- -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/frequency/frequency-dialog/frequency-dialog.component.scss b/ng6-seed/src/app/settings/masters/component/frequency/frequency-dialog/frequency-dialog.component.scss deleted file mode 100644 index 3e80f0d..0000000 --- a/ng6-seed/src/app/settings/masters/component/frequency/frequency-dialog/frequency-dialog.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -mat-form-field{ - width:100%; -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/frequency/frequency-dialog/frequency-dialog.component.spec.ts b/ng6-seed/src/app/settings/masters/component/frequency/frequency-dialog/frequency-dialog.component.spec.ts deleted file mode 100644 index f691a3d..0000000 --- a/ng6-seed/src/app/settings/masters/component/frequency/frequency-dialog/frequency-dialog.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { FrequencyDialogComponent } from './frequency-dialog.component'; - -describe('FrequencyDialogComponent', () => { - let component: FrequencyDialogComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ FrequencyDialogComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(FrequencyDialogComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/frequency/frequency-dialog/frequency-dialog.component.ts b/ng6-seed/src/app/settings/masters/component/frequency/frequency-dialog/frequency-dialog.component.ts deleted file mode 100644 index e1358d7..0000000 --- a/ng6-seed/src/app/settings/masters/component/frequency/frequency-dialog/frequency-dialog.component.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; - -import { MastersService } from '../../../../service/masters/masters.service'; - -@Component({ - selector: 'app-jazz-dialog', - templateUrl: './frequency-dialog.component.html', - styleUrls: ['./frequency-dialog.component.scss'] -}) -export class FrequencyDialogComponent implements OnInit { - - - public _frequencyForm: FormGroup; - - constructor(private _formBuilder: FormBuilder, - private dialogRef: MatDialogRef, - private _MastersService: MastersService, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onNoClick(): void { - this.dialogRef.close(); - } - - ngOnInit() { - - this._frequencyForm = this._formBuilder.group({ - frequency_id: [this.data.frequency_id], - name: [this.data.name, Validators.compose([Validators.required])] - }); - //console.log(this._frequencyForm); - } - - onSubmit() { - if(isNaN(this.data.frequency_id)) { - var my_array = this._frequencyForm.value; - Object.keys(my_array).forEach((key) => ( my_array[key] == null) && delete my_array[key]); - console.log(my_array); - this._MastersService.addMasterDetails(my_array,'FREQUENCY').subscribe(); - this.dialogRef.close(); - alert("saved"); - } else { - this._MastersService.editMasterDetails( this._frequencyForm.value,'FREQUENCY').subscribe(); - this.dialogRef.close(); - alert("edited"); - } - } - - // onSubmit() { - // if (isNaN(this.data.ID)) { - // this._contactService.addIndustryMaster(this._frequencyForm.value); - // this.dialogRef.close(); - // } else { - // this._contactService.editIndustryMaster(this._frequencyForm.value); - // this.dialogRef.close(); - // } - // } - - onReset(){ - this._frequencyForm.reset(); - } -} - diff --git a/ng6-seed/src/app/settings/masters/component/frequency/frequency-list/frequency-list.component.html b/ng6-seed/src/app/settings/masters/component/frequency/frequency-list/frequency-list.component.html deleted file mode 100644 index f3004e0..0000000 --- a/ng6-seed/src/app/settings/masters/component/frequency/frequency-list/frequency-list.component.html +++ /dev/null @@ -1,79 +0,0 @@ - -
- -
-
-
- -
-
- - - - - - - - - - - - - - - -
#Frequency NameIsActiveAction
No Records
{{i+1}}{{FL.name}}{{FL.isactive}} - edit - delete_outline -
- -
- - - - -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/frequency/frequency-list/frequency-list.component.scss b/ng6-seed/src/app/settings/masters/component/frequency/frequency-list/frequency-list.component.scss deleted file mode 100644 index af46dbc..0000000 --- a/ng6-seed/src/app/settings/masters/component/frequency/frequency-list/frequency-list.component.scss +++ /dev/null @@ -1,122 +0,0 @@ -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - } - - .example-header { - min-height: 64px; - padding: 8px 24px 0; - } - - //mat-cell{ - .cell{ - display:flex !important; - justify-content:center!important; - - } - - // mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; - }*/ - - // - - - - -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 300px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-input-container { - font-size: 14px; - flex-grow: 1; - margin-left: 32px; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -/** Selection styles -.example-selection-header { - font-size: 18px; - background: rgba(255, 64, 129, 0.3); - border-bottom: 1px solid #d696ac; -} - -.mat-column-select { - max-width: 54px; -} - -.mat-row:hover, .example-selected-row { - background: #f5f5f5; -} - -.mat-row:active, .mat-row.example-selected-row { - background: #eaeaea; -} - -.mat-table { - overflow: auto; - max-height: 500px; -}*/ -/* Structure */ -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - width : 80%; - margin : 20px auto; -} - -.example-header { - min-height: 64px; - padding: 8px 24px 0; -} - -//mat-cell{ -.cell{ - display:flex !important; - justify-content:center!important; - -} - -// mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; -} - - -table { - width: 100%; -} - -th { - text-align: left; -} - diff --git a/ng6-seed/src/app/settings/masters/component/frequency/frequency-list/frequency-list.component.ts b/ng6-seed/src/app/settings/masters/component/frequency/frequency-list/frequency-list.component.ts deleted file mode 100644 index f623b76..0000000 --- a/ng6-seed/src/app/settings/masters/component/frequency/frequency-list/frequency-list.component.ts +++ /dev/null @@ -1,110 +0,0 @@ -import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { MatDialog, MatDialogRef, MatDialogConfig,MatPaginator, MatSort,MatTableDataSource } from '@angular/material'; - -import { Observable, Subject } from 'rxjs'; -import { Http, Response } from '@angular/http'; -import 'rxjs/add/operator/map'; - -import { DataSource } from '@angular/cdk/collections'; -import { map } from 'rxjs/operators'; -import { of as observableOf, merge } from 'rxjs'; - - -import { MastersService } from '../../../../service/masters/masters.service'; -import { FrequencyDialogComponent }from '../frequency-dialog/frequency-dialog.component'; -import { Frequency } from '../../../model/frequency'; - - -@Component({ - selector: 'app-frequency-list', - templateUrl: './frequency-list.component.html', - styleUrls: ['./frequency-list.component.scss'] -}) -export class FrequencyListComponent implements OnInit { - - isPopupOpened = true; - loader: boolean = false; - FrequencyList: any = []; - - displayedColumns = ['frequency_id','name','createdon','fk_createdby','updatedon','isactive','fk_updatedby','actions']; - - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - - constructor(private dialog: MatDialog, - private _MastersService: MastersService) { } - - // get FrequencyList() { - // return this._MastersService. getAllFrequency(); - // } - - dataSource = new UserDataSource(this._MastersService); - - ngOnInit() { - this.getFrequency(); - } - - - addFrequency() { - this.isPopupOpened = true; - const dialogRef = this.dialog.open(FrequencyDialogComponent, { - data: {} - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - editFrequency(arr: any) { - this.isPopupOpened = true; - //const contact = this._MastersService.getAllFrequency().find(c => c.ID === id); - const dialogRef = this.dialog.open(FrequencyDialogComponent, { - data: arr - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - //To get data for listing - getFrequency() { - this.loader = true; - this._MastersService.getAllMasterData('FREQUENCY').subscribe(dataresult => { - - this.loader = false; - - if (dataresult.dataStatus  === true) { - this.FrequencyList = dataresult.records; - } - }) - - } - - deleteFrequency(id: number) { - var PrimaryKeyWithValue ={'frequency_id':id}; - this._MastersService.deleteMasterDetails(PrimaryKeyWithValue,'FREQUENCY'); - // this._MastersService.deleteMasterDetails('designation_id',id,'DESIGNATION'); - - //this._MastersService.deleteMasterDetails('frequency_id',id,'FREQUENCY'); - } -} - -export class UserDataSource extends DataSource { - - - constructor(private _fs: MastersService) { - super(); - } - - connect(): Observable { - //return this.userService.getUser(); - //return this._fs.getAllFrequency(); - return this._fs.getAllMasterData('FREQUENCY'); - } - disconnect() {} -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-dialog/industry_classification-dialog.component.html b/ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-dialog/industry_classification-dialog.component.html deleted file mode 100644 index c358d22..0000000 --- a/ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-dialog/industry_classification-dialog.component.html +++ /dev/null @@ -1,42 +0,0 @@ - -
-
Industry Classification
-
-
-
- - - -
- -
- - -
- - - You must include a Classified Name. - - -
-
-
- - - - -
- -
-
- -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-dialog/industry_classification-dialog.component.scss b/ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-dialog/industry_classification-dialog.component.scss deleted file mode 100644 index 3e80f0d..0000000 --- a/ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-dialog/industry_classification-dialog.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -mat-form-field{ - width:100%; -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-dialog/industry_classification-dialog.component.spec.ts b/ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-dialog/industry_classification-dialog.component.spec.ts deleted file mode 100644 index 1a9feee..0000000 --- a/ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-dialog/industry_classification-dialog.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { IndustryMasterDialogComponent } from './industry-master-dialog.component'; - -describe('IndustryMasterDialogComponent ', () => { - let component: IndustryMasterDialogComponent ; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ IndustryMasterDialogComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(IndustryMasterDialogComponent ); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-dialog/industry_classification-dialog.component.ts b/ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-dialog/industry_classification-dialog.component.ts deleted file mode 100644 index 419896c..0000000 --- a/ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-dialog/industry_classification-dialog.component.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; -import { MastersService } from '../../../../service/masters/masters.service'; - - -@Component({ - selector: 'app-jazz-dialog', - templateUrl: './industry_classification-dialog.component.html', - styleUrls: ['./industry_classification-dialog.component.scss'] -}) -export class IndustryClassificationDialogComponent implements OnInit { - - public _IndustryClassificationForm: FormGroup; - - constructor(private _formBuilder: FormBuilder, - private dialogRef: MatDialogRef, - private _contactService: MastersService, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onNoClick(): void { - this.dialogRef.close(); - } - - ngOnInit() { - - this._IndustryClassificationForm = this._formBuilder.group({ - industry_classification_id: [this.data.industry_classification_id], - name: [this.data.name, Validators.compose([Validators.required])] - }); - //console.log(this._IndustryClassificationForm); - //industry_classification_id, name, createdon, fk_createdby, updatedon, fk_updatedby, isactive - } - - // onSubmit() { - // if (isNaN(this.data.ID)) { - // this._contactService.addIndustryClassification(this._IndustryClassificationForm.value); - // this.dialogRef.close(); - // } else { - // this._contactService.editIndustryClassification(this._IndustryClassificationForm.value); - // this.dialogRef.close(); - // } - // } - - - onSubmit() { - if(isNaN(this.data.industry_classification_id)) { - var my_array = this._IndustryClassificationForm.value; - Object.keys(my_array).forEach((key) => (my_array[key] == null) && delete my_array[key]); - console.log(my_array); - this._contactService.addMasterDetails(my_array,'INDUSTRYCLASSIFICATION').subscribe(); - this.dialogRef.close(); - alert("saved"); - } else { - this._contactService.editMasterDetails(this._IndustryClassificationForm.value,'INDUSTRYCLASSIFICATION').subscribe(); - this.dialogRef.close(); - alert("edited"); - } - } - - onReset(){ - this._IndustryClassificationForm.reset(); - } -} diff --git a/ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-list/industry_classification-list.component.html b/ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-list/industry_classification-list.component.html deleted file mode 100644 index eee7665..0000000 --- a/ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-list/industry_classification-list.component.html +++ /dev/null @@ -1,79 +0,0 @@ - -
- -
-
-
- -
-
- - - - - - - - - - - - - - - - - - -
#Classification NameIsActiveAction
No Records
{{i+1}}{{IM.name}}{{IM.isactive}} - edit - delete_outline -
- -
- - - -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-list/industry_classification-list.component.scss b/ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-list/industry_classification-list.component.scss deleted file mode 100644 index 49827eb..0000000 --- a/ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-list/industry_classification-list.component.scss +++ /dev/null @@ -1,118 +0,0 @@ -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - } - - .example-header { - min-height: 64px; - padding: 8px 24px 0; - } - - //mat-cell{ - .cell{ - display:flex !important; - justify-content:center!important; - - } - - // mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; - }*/ - - -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 300px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-input-container { - font-size: 14px; - flex-grow: 1; - margin-left: 32px; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -/** Selection styles -.example-selection-header { - font-size: 18px; - background: rgba(255, 64, 129, 0.3); - border-bottom: 1px solid #d696ac; -} - -.mat-column-select { - max-width: 54px; -} - -.mat-row:hover, .example-selected-row { - background: #f5f5f5; -} - -.mat-row:active, .mat-row.example-selected-row { - background: #eaeaea; -} - -.mat-table { - overflow: auto; - max-height: 500px; -}*/ -/* Structure */ -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - width : 80%; - margin : 20px auto; -} - -.example-header { - min-height: 64px; - padding: 8px 24px 0; -} - -//mat-cell{ -.cell{ - display:flex !important; - justify-content:center!important; - -} - -// mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; -} - - -table { - width: 100%; -} - -th { - text-align: left; -} - diff --git a/ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-list/industry_classification-list.component.ts b/ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-list/industry_classification-list.component.ts deleted file mode 100644 index 18e2720..0000000 --- a/ng6-seed/src/app/settings/masters/component/industry_classification/industry_classification-list/industry_classification-list.component.ts +++ /dev/null @@ -1,126 +0,0 @@ -import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { MatDialog, MatDialogRef, MatDialogConfig,MatPaginator, MatSort,MatTableDataSource } from '@angular/material'; - -import { Observable, Subject } from 'rxjs'; -import { Http, Response } from '@angular/http'; -import 'rxjs/add/operator/map'; - -import { DataSource } from '@angular/cdk/collections'; -import { map } from 'rxjs/operators'; -import { of as observableOf, merge } from 'rxjs'; - - -import { MastersService } from '../../../../service/masters/masters.service'; -import { IndustryClassificationDialogComponent } from '../industry_classification-dialog/industry_classification-dialog.component'; -import { IndustryClassification } from '../../../model/industry_classification'; - -@Component({ - selector: 'app-industry_classification-list', - templateUrl: './industry_classification-list.component.html', - styleUrls: ['./industry_classification-list.component.scss'] -}) - - -// export class TablePagingComponent implements OnInit { - -// } - -export class IndustryClassificationListComponent implements OnInit { - - - isPopupOpened = true; - loader: boolean = false; - IndustryClassificationList: any = []; - - - displayedColumns = ['industry_classification_id','name','createdon','fk_createdby','updatedon','isactive','fk_updatedby','actions']; - //industry_classification_id, name, createdon, fk_createdby, updatedon, fk_updatedby, isactive - - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - - constructor(private dialog: MatDialog, - private _IMService: MastersService) { } - - // get IndustryClassificationList() { - // return this._IMService.getAllIndustryClassification(); - // } - - //displayedColumns: string[] = ['ID','ClassifiedName']; - dataSource = new UserDataSource(this._IMService); - - - ngOnInit() { - this.getIndustryClassification(); - } - - - addIndustryClassification() { - this.isPopupOpened = true; - const dialogRef = this.dialog.open(IndustryClassificationDialogComponent, { - data: {} - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - editIndustryClassification(arr: any) { - this.isPopupOpened = true; - //const indu = this._IMService.getAllIndustryClassification().find(c => c.ID === id); - const dialogRef = this.dialog.open(IndustryClassificationDialogComponent, { - data: arr - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - //To get data for listing - getIndustryClassification() { - this.loader = true; - this._IMService.getAllMasterData('INDUSTRYCLASSIFICATION').subscribe(dataresult => { - - this.loader = false; - - if (dataresult.dataStatus  === true) { - this.IndustryClassificationList = dataresult.records; - } - else{ - this.IndustryClassificationList = []; - } - }) - - } - - - deleteIndustryClassification(id: number) { - var PrimaryKeyWithValue ={'industry_classification_id':id}; - console.log('PrimaryKeyWithValue',PrimaryKeyWithValue); - console.log('id',id); - this._IMService.deleteMasterDetails(PrimaryKeyWithValue,'INDUSTRYCLASSIFICATION'); - //this._IMService.deleteMasterDetails('industry_classification_id',id,'INDUSTRYCLASSIFICATION'); - } - -} - - - -export class UserDataSource extends DataSource { - - constructor(private _ims: MastersService ) { - super(); - } - - connect(): Observable { - //return this.userService.getUser(); - //return this._ims.getAllIndustryClassification(); - return this._ims.getAllMasterData('INDUSTRYCLASSIFICATION'); - } - disconnect() {} -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-dialog/lender-hierarchy-dialog.component.html b/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-dialog/lender-hierarchy-dialog.component.html deleted file mode 100644 index 556e195..0000000 --- a/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-dialog/lender-hierarchy-dialog.component.html +++ /dev/null @@ -1,39 +0,0 @@ - -
-
Lender Hierarchy
-
-
-
- - -
- -
- - -
- - - You must include a Lender Hierarchy Name. - - -
-
-
- - -
- -
-
- -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-dialog/lender-hierarchy-dialog.component.scss b/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-dialog/lender-hierarchy-dialog.component.scss deleted file mode 100644 index 3e80f0d..0000000 --- a/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-dialog/lender-hierarchy-dialog.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -mat-form-field{ - width:100%; -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-dialog/lender-hierarchy-dialog.component.spec.ts b/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-dialog/lender-hierarchy-dialog.component.spec.ts deleted file mode 100644 index fec8933..0000000 --- a/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-dialog/lender-hierarchy-dialog.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { LenderHierarchyDialogComponent } from './lender-hierarchy-dialog.component'; - -describe('LenderHierarchyDialogComponent', () => { - let component: LenderHierarchyDialogComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ LenderHierarchyDialogComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(LenderHierarchyDialogComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-dialog/lender-hierarchy-dialog.component.ts b/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-dialog/lender-hierarchy-dialog.component.ts deleted file mode 100644 index 9255f0b..0000000 --- a/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-dialog/lender-hierarchy-dialog.component.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; -import { MastersService } from '../../../../service/masters/masters.service'; - -@Component({ - selector: 'app-jazz-dialog', - templateUrl: './lender-hierarchy-dialog.component.html', - styleUrls: ['./lender-hierarchy-dialog.component.scss'] -}) -export class LenderHierarchyDialogComponent implements OnInit { - - public _lenderHierarchyForm: FormGroup; - - constructor(private _formBuilder: FormBuilder, - private dialogRef: MatDialogRef, - private _MastersService: MastersService, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onNoClick(): void { - this.dialogRef.close(); - } - - ngOnInit() { - - this._lenderHierarchyForm = this._formBuilder.group({ - //Designation_id: any; fk_city_id: any; - - lender_hierarchy_id: [this.data.lender_hierarchy_id], - lender_hierarchy: [this.data.lender_hierarchy, Validators.compose([Validators.required])], - - }); - //console.log(this._lenderHierarchyForm); - } - - // onSubmit() { - // if (isNaN(this.data.ID)) { - // this._MastersService.addDesignation(this._lenderHierarchyForm.value); - // this.dialogRef.close(); - // } else { - // this._MastersService.editDesignation(this._lenderHierarchyForm.value); - // this.dialogRef.close(); - // } - // } - - onSubmit() { - if(isNaN(this.data.lender_hierarchy_id)) { - var my_array = this._lenderHierarchyForm.value; - Object.keys(my_array).forEach((key) => ( my_array[key] == null) && delete my_array[key]); - console.log(my_array); - this._MastersService.addMasterDetails(my_array,'LENDERHIERARCHY').subscribe(); - this.dialogRef.close(); - alert("saved"); - } else { - - this._MastersService.editMasterDetails(this._lenderHierarchyForm.value,'LENDERHIERARCHY').subscribe(); - this.dialogRef.close(); - alert("edited"); - } - } - - - - onReset(){ - this._lenderHierarchyForm.reset(); - } -} - - - - - - diff --git a/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-list/lender-hierarchy-list.component.html b/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-list/lender-hierarchy-list.component.html deleted file mode 100644 index d853be3..0000000 --- a/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-list/lender-hierarchy-list.component.html +++ /dev/null @@ -1,64 +0,0 @@ - -
- -
-
-
- -
-
- - - - - - - - - - - - - - - -
#Lender Hierarchy NameIsActiveAction
No Records
{{i+1}}{{LHL.lender_hierarchy}} {{LHL.isactive}} - edit - delete_outline -
- -
- - - - -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-list/lender-hierarchy-list.component.scss b/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-list/lender-hierarchy-list.component.scss deleted file mode 100644 index 3b5b291..0000000 --- a/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-list/lender-hierarchy-list.component.scss +++ /dev/null @@ -1,93 +0,0 @@ - -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 300px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-input-container { - font-size: 14px; - flex-grow: 1; - margin-left: 32px; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -/** Selection styles -.example-selection-header { - font-size: 18px; - background: rgba(255, 64, 129, 0.3); - border-bottom: 1px solid #d696ac; -} - -.mat-column-select { - max-width: 54px; -} - -.mat-row:hover, .example-selected-row { - background: #f5f5f5; -} - -.mat-row:active, .mat-row.example-selected-row { - background: #eaeaea; -} - -.mat-table { - overflow: auto; - max-height: 500px; -}*/ -/* Structure */ -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - width : 80%; - margin : 20px auto; - } - - .example-header { - min-height: 64px; - padding: 8px 24px 0; - } - - //mat-cell{ - .cell{ - display:flex !important; - justify-content:center!important; - - } - - // mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; - } - - - table { - width: 100%; - } - - th { - text-align: left; - } - diff --git a/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-list/lender-hierarchy-list.component.spec.ts b/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-list/lender-hierarchy-list.component.spec.ts deleted file mode 100644 index 7310059..0000000 --- a/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-list/lender-hierarchy-list.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { LenderHierarchyListComponent } from './lender-hierarchy-list.component'; - -describe('LenderHierarchyListComponent', () => { - let component: LenderHierarchyListComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ LenderHierarchyListComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(LenderHierarchyListComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-list/lender-hierarchy-list.component.ts b/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-list/lender-hierarchy-list.component.ts deleted file mode 100644 index 79b1adc..0000000 --- a/ng6-seed/src/app/settings/masters/component/lender-hierarchy/lender-hierarchy-list/lender-hierarchy-list.component.ts +++ /dev/null @@ -1,108 +0,0 @@ - -import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { MatDialog, MatDialogRef, MatDialogConfig,MatPaginator, MatSort,MatTableDataSource } from '@angular/material'; - -import { Observable, Subject } from 'rxjs'; -import { Http, Response } from '@angular/http'; -import 'rxjs/add/operator/map'; - -import { DataSource } from '@angular/cdk/collections'; -import { map } from 'rxjs/operators'; -import { of as observableOf, merge } from 'rxjs'; - -import { MastersService } from '../../../../service/masters/masters.service'; -import { LenderHierarchyDialogComponent }from '../lender-hierarchy-dialog/lender-hierarchy-dialog.component'; -import { LenderHierarchy } from '../../../model/lender-hierarchy'; - - -@Component({ - selector: 'app-lender-hierarchy-list', - templateUrl: './lender-hierarchy-list.component.html', - styleUrls: ['./lender-hierarchy-list.component.scss'] -}) -export class LenderHierarchyListComponent implements OnInit { - - isPopupOpened = true; - loader: boolean = false; - LenderHierarchyList: any = []; - - displayedColumns = ['lender_hierarchy_id', 'lender_hierarchy','isactive','actions']; - - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - - constructor(private dialog: MatDialog, - private _MastersService: MastersService) { } - - // get LenderHierarchyList() { - // return this._MastersService. getAllLenderHierarchy(); - // } - - dataSource = new UserDataSource(this._MastersService); - - ngOnInit() { - this.getLenderHierarchy(); - } - - - addLenderHierarchy() { - this.isPopupOpened = true; - const dialogRef = this.dialog.open(LenderHierarchyDialogComponent, { - data: {} - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - editLenderHierarchy(arr: any) { - this.isPopupOpened = true; - //const contact = this._MastersService.getAllLenderHierarchy().find(c => c.ID === id); - const dialogRef = this.dialog.open(LenderHierarchyDialogComponent, { - data: arr - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - //To get data for listing - getLenderHierarchy() { - this.loader = true; - this._MastersService.getAllMasterData('LENDERHIERARCHY').subscribe(dataresult => { - - this.loader = false; - - if (dataresult.dataStatus  === true) { - this.LenderHierarchyList = dataresult.records; - } - }) - - } - - deleteLenderHierarchy(id: number) { - var PrimaryKeyWithValue ={'lender_hierarchy_id':id}; - this._MastersService.deleteMasterDetails(PrimaryKeyWithValue,'LENDERHIERARCHY'); - //this._MastersService.deleteMasterDetails('lender_hierarchy_id',id,'LENDERHIERARCHY'); - } -} - -export class UserDataSource extends DataSource { - - - constructor(private _fs: MastersService ) { - super(); - } - - connect(): Observable { - //return this.userService.getUser(); - //return this._fs.getAllLenderHierarchy(); - return this._fs.getAllMasterData('LENDERHIERARCHY'); - } - disconnect() {} -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-dialog/members-occupation-dialog.component.html b/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-dialog/members-occupation-dialog.component.html deleted file mode 100644 index db00031..0000000 --- a/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-dialog/members-occupation-dialog.component.html +++ /dev/null @@ -1,41 +0,0 @@ - -
-
Occupation of Non earning members
-
-
-
- - - -
- -
- - -
- - - You must include a Name. - - -
-
-
- - - -
- -
-
- -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-dialog/members-occupation-dialog.component.scss b/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-dialog/members-occupation-dialog.component.scss deleted file mode 100644 index 3e80f0d..0000000 --- a/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-dialog/members-occupation-dialog.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -mat-form-field{ - width:100%; -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-dialog/members-occupation-dialog.component.spec.ts b/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-dialog/members-occupation-dialog.component.spec.ts deleted file mode 100644 index 2d3a7b4..0000000 --- a/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-dialog/members-occupation-dialog.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { MembersOccupationDialogComponent } from './members-occupation-dialog.component'; - -describe('MembersOccupationDialogComponent', () => { - let component: MembersOccupationDialogComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ MembersOccupationDialogComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(MembersOccupationDialogComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-dialog/members-occupation-dialog.component.ts b/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-dialog/members-occupation-dialog.component.ts deleted file mode 100644 index d5e63ea..0000000 --- a/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-dialog/members-occupation-dialog.component.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; -import { MastersService } from '../../../../service/masters/masters.service'; - -@Component({ - selector: 'app-jazz-dialog', - templateUrl: './members-occupation-dialog.component.html', - styleUrls: ['./members-occupation-dialog.component.scss'] -}) -export class MembersOccupationDialogComponent implements OnInit { - - - public _occupationForm: FormGroup; - - constructor(private _formBuilder: FormBuilder, - private dialogRef: MatDialogRef, - private _memberService: MastersService, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onNoClick(): void { - this.dialogRef.close(); - } - - ngOnInit() { - - this._occupationForm = this._formBuilder.group({ - occupation_non_earning_member_id: [this.data.occupation_non_earning_member_id], - name: [this.data.name, Validators.compose([Validators.required])] - }); - //console.log(this._occupationForm); - } - - onSubmit() { - if(isNaN(this.data.occupation_non_earning_member_id)) { - var my_array = this._occupationForm.value; - Object.keys(my_array).forEach((key) => ( my_array[key] == null) && delete my_array[key]); - console.log(my_array); - this._memberService.addMasterDetails(my_array,'OCCUPATIONMEMBERS').subscribe(); - this.dialogRef.close(); - alert("saved"); - } else { - this._memberService.editMasterDetails(this._occupationForm.value,'OCCUPATIONMEMBERS').subscribe(); - this.dialogRef.close(); - alert("edited"); - } - } - - // onSubmit() { - // if (isNaN(this.data.ID)) { - // this._memberService.addMembersOccupation(this._occupationForm.value); - // this.dialogRef.close(); - // } else { - // this._memberService.editMembersOccupation(this._occupationForm.value); - // this.dialogRef.close(); - // } - // } - - onReset(){ - this._occupationForm.reset(); - } -} - diff --git a/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-list/members-occupation-list.component.html b/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-list/members-occupation-list.component.html deleted file mode 100644 index f3ec2f1..0000000 --- a/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-list/members-occupation-list.component.html +++ /dev/null @@ -1,84 +0,0 @@ - -
- -
-
-
- -
-
- - - - - - - - - - - - - - - - -
#Occupation NameIsActiveAction
No Records
{{i+1}}{{ML.name}}{{ML.isactive}} - edit - delete_outline -
- -
- - - - - -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-list/members-occupation-list.component.scss b/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-list/members-occupation-list.component.scss deleted file mode 100644 index e29cae6..0000000 --- a/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-list/members-occupation-list.component.scss +++ /dev/null @@ -1,59 +0,0 @@ -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - } - - .example-header { - min-height: 64px; - padding: 8px 24px 0; - } - - //mat-cell{ - .cell{ - display:flex !important; - justify-content:center!important; - - } - - // mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; - }*/ - - .example-container { - display: flex; - flex-direction: column; - min-width: 30px; - width : 80%; - margin : 20px auto; - } - - .example-header { - min-height: 64px; - padding: 8px 24px 0; - } - - //mat-cell{ - .cell{ - display:flex !important; - justify-content:center!important; - - } - - // mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; - } - - - table { - width: 100%; - } - - th { - text-align: left; - } \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-list/members-occupation-list.component.spec.ts b/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-list/members-occupation-list.component.spec.ts deleted file mode 100644 index 6df9db6..0000000 --- a/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-list/members-occupation-list.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { MembersOccupationListComponent } from './members-occupation-list.component'; - -describe('MembersOccupationListComponent', () => { - let component: MembersOccupationListComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ MembersOccupationListComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(MembersOccupationListComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-list/members-occupation-list.component.ts b/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-list/members-occupation-list.component.ts deleted file mode 100644 index c1c667c..0000000 --- a/ng6-seed/src/app/settings/masters/component/members-occupation/members-occupation-list/members-occupation-list.component.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { MatDialog, MatDialogRef, MatDialogConfig,MatPaginator, MatSort,MatTableDataSource } from '@angular/material'; - -import { Observable, Subject } from 'rxjs'; -import { Http, Response } from '@angular/http'; -import 'rxjs/add/operator/map'; - -import { DataSource } from '@angular/cdk/collections'; -import { map } from 'rxjs/operators'; -import { of as observableOf, merge } from 'rxjs'; - - -import { MastersService } from '../../../../service/masters/masters.service'; -import { MembersOccupationDialogComponent } from '../members-occupation-dialog/members-occupation-dialog.component'; -import { MembersOccupation } from '../../../model/members-occupation'; - - -@Component({ - selector: 'app-members-occupation-list', - templateUrl: './members-occupation-list.component.html', - styleUrls: ['./members-occupation-list.component.scss'] -}) -export class MembersOccupationListComponent implements OnInit { - - isPopupOpened = true; - loader: boolean = false; - MemberOccupationList: any = []; - - - displayedColumns = ['occupation_non_earning_member_id','name','createdon','fk_createdby','updatedon','isactive','fk_updatedby','actions']; - //occupation_non_earning_member_id, name, createdon, fk_createdby, updatedon, fk_updatedby, isactive - - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - - constructor(private dialog: MatDialog, - private _memberService: MastersService) { } - - // get MemberOccupationList() { - // return this._memberService.getAllMembersOccupation(); - // } - - ngOnInit() { - this.getMemberOccupation(); - } - - dataSource = new UserDataSource(this._memberService); - - addMemberOccupation() { - this.isPopupOpened = true; - const dialogRef = this.dialog.open(MembersOccupationDialogComponent, { - data: {} - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - editMemberOccupation(arr : any) { - this.isPopupOpened = true; - //const contact = this._memberService.getAllMembersOccupation().find(c => c.ID === id); - const dialogRef = this.dialog.open(MembersOccupationDialogComponent, { - data: arr - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - //To get data for listing - getMemberOccupation() { - this.loader = true; - this._memberService.getAllMasterData('OCCUPATIONMEMBERS').subscribe(dataresult => { - - this.loader = false; - - if (dataresult.dataStatus  === true) { - this.MemberOccupationList = dataresult.records; - } - }) - - } - - - deleteMemberOccupation(id: number) { - var PrimaryKeyWithValue ={'occupation_non_earning_member_id':id}; - this._memberService.deleteMasterDetails(PrimaryKeyWithValue,'OCCUPATIONMEMBERS'); - //this._memberService.deleteMasterDetails('occupation_non_earning_member_id',id,'OCCUPATIONMEMBERS'); - } -} - - - -export class UserDataSource extends DataSource { - - constructor(private _mos:MastersService ) { - super(); - } - - connect(): Observable { - //return this.userService.getUser(); - //return this._mos.getAllMembersOccupation(); - return this._mos.getAllMasterData('OCCUPATIONMEMBERS'); - } - disconnect() {} -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-dialog/pd-allocation-type-dialog.component.html b/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-dialog/pd-allocation-type-dialog.component.html deleted file mode 100644 index 05f46c8..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-dialog/pd-allocation-type-dialog.component.html +++ /dev/null @@ -1,40 +0,0 @@ - - -
-
PD Allocation Type
-
-
-
- -
- -
- - -
- - - You must include a Name. - - -
-
-
- - - -
- -
-
- -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-dialog/pd-allocation-type-dialog.component.scss b/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-dialog/pd-allocation-type-dialog.component.scss deleted file mode 100644 index 3e80f0d..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-dialog/pd-allocation-type-dialog.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -mat-form-field{ - width:100%; -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-dialog/pd-allocation-type-dialog.component.spec.ts b/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-dialog/pd-allocation-type-dialog.component.spec.ts deleted file mode 100644 index a98fc33..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-dialog/pd-allocation-type-dialog.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { PdAllocationTypeDialogComponent } from './pd-allocation-type-dialog.component'; - -describe('PdAllocationTypeDialogComponent', () => { - let component: PdAllocationTypeDialogComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ PdAllocationTypeDialogComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(PdAllocationTypeDialogComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-dialog/pd-allocation-type-dialog.component.ts b/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-dialog/pd-allocation-type-dialog.component.ts deleted file mode 100644 index 404c9f0..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-dialog/pd-allocation-type-dialog.component.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; -import { MastersService } from '../../../../service/masters/masters.service'; - -@Component({ - selector: 'app-jazz-dialog', - templateUrl: './pd-allocation-type-dialog.component.html', - styleUrls: ['./pd-allocation-type-dialog.component.scss'] -}) -export class PdAllocationTypeDialogComponent implements OnInit { - - - - public _PDAllocationTypeForm: FormGroup; - - constructor(private _formBuilder: FormBuilder, - private dialogRef: MatDialogRef, - private _pds: MastersService, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onNoClick(): void { - this.dialogRef.close(); - } - - ngOnInit() { - - this._PDAllocationTypeForm = this._formBuilder.group({ - pd_allocation_type_id: [this.data.pd_allocation_type_id], - pd_allocation_type_name: [this.data.pd_allocation_type_name, Validators.compose([Validators.required])] - }); - //pd_allocation_type_id, pd_allocation_type_name, createdon, fk_createdby, updatedon, isactive - //console.log(this._PDAllocationTypeForm); - } - - onSubmit() { - if(isNaN(this.data.pd_allocation_type_id)) { - var my_array = this._PDAllocationTypeForm.value; - Object.keys(my_array).forEach((key) => ( my_array[key] == null) && delete my_array[key]); - console.log(my_array); - this._pds.addMasterDetails(my_array,'PDALLOCATIONTYPE').subscribe(); - this.dialogRef.close(); - alert("saved"); - } else { - this._pds.editMasterDetails(this._PDAllocationTypeForm.value,'PDALLOCATIONTYPE').subscribe(); - this.dialogRef.close(); - alert("edited"); - } - } - - // onSubmit() { - // if (isNaN(this.data.ID)) { - // this._memberService.addMembersOccupation(this._PDAllocationTypeForm.value); - // this.dialogRef.close(); - // } else { - // this._memberService.editMembersOccupation(this._PDAllocationTypeForm.value); - // this.dialogRef.close(); - // } - // } - - onReset(){ - this._PDAllocationTypeForm.reset(); - } -} - - - - - - - - - diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-list/pd-allocation-type-list.component.html b/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-list/pd-allocation-type-list.component.html deleted file mode 100644 index 8db1d6b..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-list/pd-allocation-type-list.component.html +++ /dev/null @@ -1,64 +0,0 @@ - -
- -
-
-
- -
-
- - - - - - - - - - - - - - - -
#PD Allocation Type NameIsactiveAction
No Records
{{i+1}}{{PAT.pd_allocation_type_name}}{{PAT.isactive}} - edit - delete_outline -
- -
- - - -
- - -
diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-list/pd-allocation-type-list.component.scss b/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-list/pd-allocation-type-list.component.scss deleted file mode 100644 index 3b5b291..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-list/pd-allocation-type-list.component.scss +++ /dev/null @@ -1,93 +0,0 @@ - -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 300px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-input-container { - font-size: 14px; - flex-grow: 1; - margin-left: 32px; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -/** Selection styles -.example-selection-header { - font-size: 18px; - background: rgba(255, 64, 129, 0.3); - border-bottom: 1px solid #d696ac; -} - -.mat-column-select { - max-width: 54px; -} - -.mat-row:hover, .example-selected-row { - background: #f5f5f5; -} - -.mat-row:active, .mat-row.example-selected-row { - background: #eaeaea; -} - -.mat-table { - overflow: auto; - max-height: 500px; -}*/ -/* Structure */ -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - width : 80%; - margin : 20px auto; - } - - .example-header { - min-height: 64px; - padding: 8px 24px 0; - } - - //mat-cell{ - .cell{ - display:flex !important; - justify-content:center!important; - - } - - // mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; - } - - - table { - width: 100%; - } - - th { - text-align: left; - } - diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-list/pd-allocation-type-list.component.spec.ts b/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-list/pd-allocation-type-list.component.spec.ts deleted file mode 100644 index 22d79c3..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-list/pd-allocation-type-list.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { PdAllocationTypeListComponent } from './pd-allocation-type-list.component'; - -describe('PdAllocationTypeListComponent', () => { - let component: PdAllocationTypeListComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ PdAllocationTypeListComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(PdAllocationTypeListComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-list/pd-allocation-type-list.component.ts b/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-list/pd-allocation-type-list.component.ts deleted file mode 100644 index ff90014..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-allocation-type-list/pd-allocation-type-list.component.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { MatDialog, MatDialogRef, MatDialogConfig,MatPaginator, MatSort,MatTableDataSource } from '@angular/material'; - -import { Observable, Subject } from 'rxjs'; -import { Http, Response } from '@angular/http'; -import 'rxjs/add/operator/map'; - -import { DataSource } from '@angular/cdk/collections'; -import { map } from 'rxjs/operators'; -import { of as observableOf, merge } from 'rxjs'; - - -import { MastersService } from '../../../../service/masters/masters.service'; -import { PdAllocationTypeDialogComponent } from '../pd-allocation-type-dialog/pd-allocation-type-dialog.component'; -import { PdAllocationType } from '../../../model/pd'; - - -@Component({ - selector: 'app-pd-allocation-type-list', - templateUrl: './pd-allocation-type-list.component.html', - styleUrls: ['./pd-allocation-type-list.component.scss'] -}) -export class PdAllocationTypeListComponent implements OnInit { - - isPopupOpened = true; - loader: boolean = false; - PDAllocationTypeList: any = []; - - displayedColumns = ['pd_allocation_type_id','pd_allocation_type_name','isactive','actions']; - - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - - constructor(private dialog: MatDialog, - private _MastersService: MastersService) { } - - // get PDAllocationTypeList() { - // return this._MastersService.getAllPDAllocationType(); - // } - - dataSource = new UserDataSource(this._MastersService); - - ngOnInit() { - this.getPDAllocationType(); - } - - - addPDAllocationType() { - this.isPopupOpened = true; - const dialogRef = this.dialog.open(PdAllocationTypeDialogComponent, { - data: {} - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - editPDAllocationType(arr: any[]) { - this.isPopupOpened = true; - //const contact = this._MastersService.getAllPDAllocationType().find(c => c.ID === id); - const dialogRef = this.dialog.open(PdAllocationTypeDialogComponent, { - data: arr - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - //To get data for listing - getPDAllocationType() { - this.loader = true; - this._MastersService.getAllMasterData('PDALLOCATIONTYPE').subscribe(dataresult => { - - this.loader = false; - - if (dataresult.dataStatus  === true) { - this.PDAllocationTypeList = dataresult.records; - } - }) - - } - - deletePDAllocationType(id: number) { - var PrimaryKeyWithValue ={'pd_allocation_type_id':id}; - this._MastersService.deleteMasterDetails(PrimaryKeyWithValue,'PDALLOCATIONTYPE'); - //this._MastersService.deleteMasterDetails('pd_allocation_type_id',id,'PDALLOCATIONTYPE'); - } -} - -export class UserDataSource extends DataSource { - - - constructor(private _bs: MastersService) { - super(); - } - - connect(): Observable { - //return this.userService.getUser(); - //return this._bs.getAllPDAllocationType(); - return this._bs.getAllMasterData('PDALLOCATIONTYPE'); - } - disconnect() {} -} - diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-dialog/pd-location-approach-dialog.component.html b/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-dialog/pd-location-approach-dialog.component.html deleted file mode 100644 index 04bcbc7..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-dialog/pd-location-approach-dialog.component.html +++ /dev/null @@ -1,42 +0,0 @@ - -
-
PD Location Approach
-
-
-
- - - -
- -
- - -
- - - You must include a Description. - - -
- -
-
- - - -
- -
-
- -
diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-dialog/pd-location-approach-dialog.component.scss b/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-dialog/pd-location-approach-dialog.component.scss deleted file mode 100644 index 3e80f0d..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-dialog/pd-location-approach-dialog.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -mat-form-field{ - width:100%; -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-dialog/pd-location-approach-dialog.component.spec.ts b/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-dialog/pd-location-approach-dialog.component.spec.ts deleted file mode 100644 index c3e59ee..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-dialog/pd-location-approach-dialog.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { PdLocationApproachDialogComponent } from './pd-location-approach-dialog.component'; - -describe('PdLocationApproachDialogComponent', () => { - let component: PdLocationApproachDialogComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ PdLocationApproachDialogComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(PdLocationApproachDialogComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-dialog/pd-location-approach-dialog.component.ts b/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-dialog/pd-location-approach-dialog.component.ts deleted file mode 100644 index 7a3d05b..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-dialog/pd-location-approach-dialog.component.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; -import { MastersService } from '../../../../service/masters/masters.service'; - -@Component({ - selector: 'app-jazz-dialog', - templateUrl: './pd-location-approach-dialog.component.html', - styleUrls: ['./pd-location-approach-dialog.component.scss'] -}) -export class PdLocationApproachDialogComponent implements OnInit { - - public _pdLocationApproachForm: FormGroup; - - constructor(private _formBuilder: FormBuilder, - private dialogRef: MatDialogRef, - private _MastersService: MastersService, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onNoClick(): void { - this.dialogRef.close(); - } - //pd_location_approach_id, description, createdon, fk_createdby, updatedon, fk_updatedby, isactive - ngOnInit() { - - this._pdLocationApproachForm = this._formBuilder.group({ - //branch_id: any; fk_city_id: any; - pd_location_approach_id: [this.data.pd_location_approach_id], - description: [this.data.description, Validators.compose([Validators.required])] - }); - //console.log(this._pdLocationApproachForm); - } - - // onSubmit() { - // if (isNaN(this.data.ID)) { - // this._MastersService.addBranch(this._pdLocationApproachForm.value); - // this.dialogRef.close(); - // } else { - // this._MastersService.editBranch(this._pdLocationApproachForm.value); - // this.dialogRef.close(); - // } - // } - - onSubmit() { - if(isNaN(this.data.pd_location_approach_id)) { - var my_array = this._pdLocationApproachForm.value; - Object.keys(my_array).forEach((key) => ( my_array[key] == null) && delete my_array[key]); - console.log(my_array); - this._MastersService.addMasterDetails(my_array,'PDLOCATIONAPPROACH').subscribe(); - this.dialogRef.close(); - alert("saved"); - } else { - - this._MastersService.editMasterDetails(this._pdLocationApproachForm.value,'PDLOCATIONAPPROACH').subscribe(); - this.dialogRef.close(); - alert("edited"); - } - } - - - - onReset(){ - this._pdLocationApproachForm.reset(); - } -} - - - - - - - - - - diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-list/pd-location-approach-list.component.html b/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-list/pd-location-approach-list.component.html deleted file mode 100644 index cabf987..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-list/pd-location-approach-list.component.html +++ /dev/null @@ -1,67 +0,0 @@ - -
- -
-
-
- -
-
- - - - - - - - - - - - - - - - - -
#NameIsactiveAction
No Records
{{i+1}}{{PAL.pd_location_approach_id}} {{PAL.description}}{{PAL.isactive}} - edit - delete_outline - -
- -
- - - - -
diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-list/pd-location-approach-list.component.scss b/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-list/pd-location-approach-list.component.scss deleted file mode 100644 index 3b5b291..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-list/pd-location-approach-list.component.scss +++ /dev/null @@ -1,93 +0,0 @@ - -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 300px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-input-container { - font-size: 14px; - flex-grow: 1; - margin-left: 32px; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -/** Selection styles -.example-selection-header { - font-size: 18px; - background: rgba(255, 64, 129, 0.3); - border-bottom: 1px solid #d696ac; -} - -.mat-column-select { - max-width: 54px; -} - -.mat-row:hover, .example-selected-row { - background: #f5f5f5; -} - -.mat-row:active, .mat-row.example-selected-row { - background: #eaeaea; -} - -.mat-table { - overflow: auto; - max-height: 500px; -}*/ -/* Structure */ -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - width : 80%; - margin : 20px auto; - } - - .example-header { - min-height: 64px; - padding: 8px 24px 0; - } - - //mat-cell{ - .cell{ - display:flex !important; - justify-content:center!important; - - } - - // mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; - } - - - table { - width: 100%; - } - - th { - text-align: left; - } - diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-list/pd-location-approach-list.component.spec.ts b/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-list/pd-location-approach-list.component.spec.ts deleted file mode 100644 index 34c33f2..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-list/pd-location-approach-list.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { PdLocationApproachListComponent } from './pd-location-approach-list.component'; - -describe('PdLocationApproachListComponent', () => { - let component: PdLocationApproachListComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ PdLocationApproachListComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(PdLocationApproachListComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-list/pd-location-approach-list.component.ts b/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-list/pd-location-approach-list.component.ts deleted file mode 100644 index b3c8b4c..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-location-approach-list/pd-location-approach-list.component.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { MatDialog, MatDialogRef, MatDialogConfig,MatPaginator, MatSort,MatTableDataSource } from '@angular/material'; - -import { Observable, Subject } from 'rxjs'; -import { Http, Response } from '@angular/http'; -import 'rxjs/add/operator/map'; - -import { DataSource } from '@angular/cdk/collections'; -import { map } from 'rxjs/operators'; -import { of as observableOf, merge } from 'rxjs'; - - -import { MastersService } from '../../../../service/masters/masters.service'; -import { PdLocationApproachDialogComponent } from '../pd-location-approach-dialog/pd-location-approach-dialog.component'; -import { PdLocationApproach } from '../../../model/pd'; - - -@Component({ - selector: 'app-pd-location-approach-list', - templateUrl: './pd-location-approach-list.component.html', - styleUrls: ['./pd-location-approach-list.component.scss'] -}) -export class PdLocationApproachListComponent implements OnInit { - - - isPopupOpened = true; - loader: boolean = false; - PdLocationApproachList: any = []; - - displayedColumns = ['pd_allocation_type_id', 'pd_allocation_type_name', 'isactive','actions']; - - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - - constructor(private dialog: MatDialog, - private _MastersService: MastersService) { } - - // get PdLocationApproachList() { - // return this._MastersService.getAllPdLocationApproach(); - // } - - //dataSource = new UserDataSource(this._MastersService); - - ngOnInit() { - this.getPdLocationApproach(); - } - - - addPdLocationApproach() { - this.isPopupOpened = true; - const dialogRef = this.dialog.open(PdLocationApproachDialogComponent, { - data: {} - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - editPdLocationApproach(arr: any[]) { - this.isPopupOpened = true; - //const contact = this._MastersService.getAllPdLocationApproach().find(c => c.ID === id); - const dialogRef = this.dialog.open(PdLocationApproachDialogComponent, { - data: arr - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - //To get data for listing - getPdLocationApproach() { - this.loader = true; - this._MastersService.getAllMasterData('PDLOCATIONAPPROACH').subscribe(dataresult => { - - this.loader = false; - - if (dataresult.dataStatus  === true) { - this.PdLocationApproachList = dataresult.records; - } - }) - - } - - deletePdLocationApproach(id: number) { - var PrimaryKeyWithValue ={'pd_allocation_type_id':id}; - this._MastersService.deleteMasterDetails(PrimaryKeyWithValue,'PDLOCATIONAPPROACH'); - //this._MastersService.deleteMasterDetails('pd_allocation_type_id',id,'PDLOCATIONAPPROACH'); - } - //sdffsadfasf -} - -export class UserDataSource extends DataSource { - - - constructor(private _bs: MastersService) { - super(); - } - - connect(): Observable { - //return this.userService.getUser(); - //return this._bs.getAllPDLocationApproach(); - return this._bs.getAllMasterData('PDLOCATIONAPPROACH'); - } - disconnect() {} -} - - diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-type-dialog/pd-type-dialog.component.html b/ng6-seed/src/app/settings/masters/component/pd/pd-type-dialog/pd-type-dialog.component.html deleted file mode 100644 index fa7937d..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-type-dialog/pd-type-dialog.component.html +++ /dev/null @@ -1,43 +0,0 @@ - -
-
PD type
-
-
-
- - - -
- -
- - -
- - - You must include a type_name. - - -
- -
-
- - - -
- -
-
- -
- \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-type-dialog/pd-type-dialog.component.scss b/ng6-seed/src/app/settings/masters/component/pd/pd-type-dialog/pd-type-dialog.component.scss deleted file mode 100644 index 3e80f0d..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-type-dialog/pd-type-dialog.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -mat-form-field{ - width:100%; -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-type-dialog/pd-type-dialog.component.ts b/ng6-seed/src/app/settings/masters/component/pd/pd-type-dialog/pd-type-dialog.component.ts deleted file mode 100644 index 19e6101..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-type-dialog/pd-type-dialog.component.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; -import { MastersService } from '../../../../service/masters/masters.service'; - -@Component({ - selector: 'app-jazz-dialog', - templateUrl: './pd-type-dialog.component.html', - styleUrls: ['./pd-type-dialog.component.scss'] -}) -export class PdTypeDialogComponent implements OnInit { - - public _pdTypeForm: FormGroup; - - constructor(private _formBuilder: FormBuilder, - private dialogRef: MatDialogRef, - private _pdTypeService: MastersService, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onNoClick(): void { - this.dialogRef.close(); - } - - ngOnInit() { - - this._pdTypeForm = this._formBuilder.group({ - //branch_id: any; fk_city_id: any;pd_type_id, type_name, createdon, fk_createdby, updatedon, fk_updatedby, isactive - pd_type_id: [this.data.pd_type_id], - type_name: [this.data.type_name, Validators.compose([Validators.required])] - }); - //console.log(this._pdTypeForm); - } - - // onSubmit() { - // if (isNaN(this.data.ID)) { - // this._pdTypeService.addBranch(this._pdTypeForm.value); - // this.dialogRef.close(); - // } else { - // this._pdTypeService.editBranch(this._pdTypeForm.value); - // this.dialogRef.close(); - // } - // } - - onSubmit() { - if(isNaN(this.data.pd_type_id)) { - var my_array = this._pdTypeForm.value; - Object.keys(my_array).forEach((key) => ( my_array[key] == null) && delete my_array[key]); - console.log(my_array); - this._pdTypeService.addMasterDetails(my_array,'PDTYPE').subscribe(); - this.dialogRef.close(); - alert("saved"); - } else { - - this._pdTypeService.editMasterDetails(this._pdTypeForm.value,'PDTYPE').subscribe(); - this.dialogRef.close(); - alert("edited"); - } - } - - - - onReset(){ - this._pdTypeForm.reset(); - } -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-type-list/pd-type-list.component.html b/ng6-seed/src/app/settings/masters/component/pd/pd-type-list/pd-type-list.component.html deleted file mode 100644 index abbf22e..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-type-list/pd-type-list.component.html +++ /dev/null @@ -1,64 +0,0 @@ - -
- -
-
-
- -
-
- - - - - - - - - - - - - - - -
S.noPDType NamePDType City NameAction
No Records
{{i+1}}{{BL.type_name}}{{BL.isactive}} - edit - delete_outline -
- -
- - - -
- - -
diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-type-list/pd-type-list.component.scss b/ng6-seed/src/app/settings/masters/component/pd/pd-type-list/pd-type-list.component.scss deleted file mode 100644 index 3b5b291..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-type-list/pd-type-list.component.scss +++ /dev/null @@ -1,93 +0,0 @@ - -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 300px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-input-container { - font-size: 14px; - flex-grow: 1; - margin-left: 32px; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -/** Selection styles -.example-selection-header { - font-size: 18px; - background: rgba(255, 64, 129, 0.3); - border-bottom: 1px solid #d696ac; -} - -.mat-column-select { - max-width: 54px; -} - -.mat-row:hover, .example-selected-row { - background: #f5f5f5; -} - -.mat-row:active, .mat-row.example-selected-row { - background: #eaeaea; -} - -.mat-table { - overflow: auto; - max-height: 500px; -}*/ -/* Structure */ -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - width : 80%; - margin : 20px auto; - } - - .example-header { - min-height: 64px; - padding: 8px 24px 0; - } - - //mat-cell{ - .cell{ - display:flex !important; - justify-content:center!important; - - } - - // mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; - } - - - table { - width: 100%; - } - - th { - text-align: left; - } - diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-type-list/pd-type-list.component.spec.ts b/ng6-seed/src/app/settings/masters/component/pd/pd-type-list/pd-type-list.component.spec.ts deleted file mode 100644 index 32f21fb..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-type-list/pd-type-list.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { PdTypeListComponent } from './pd-type-list.component'; - -describe('PdTypeListComponent', () => { - let component: PdTypeListComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ PdTypeListComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(PdTypeListComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/pd/pd-type-list/pd-type-list.component.ts b/ng6-seed/src/app/settings/masters/component/pd/pd-type-list/pd-type-list.component.ts deleted file mode 100644 index a8047e8..0000000 --- a/ng6-seed/src/app/settings/masters/component/pd/pd-type-list/pd-type-list.component.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { MatDialog, MatDialogRef, MatDialogConfig,MatPaginator, MatSort,MatTableDataSource } from '@angular/material'; - -import { Observable, Subject } from 'rxjs'; -import { Http, Response } from '@angular/http'; -import 'rxjs/add/operator/map'; - -import { DataSource } from '@angular/cdk/collections'; -import { map } from 'rxjs/operators'; -import { of as observableOf, merge } from 'rxjs'; - - -import { MastersService } from '../../../../service/masters/masters.service'; -import { PdTypeDialogComponent } from '../pd-type-dialog/pd-type-dialog.component'; -import { PdType } from '../../../model/pd'; - - -@Component({ - selector: 'app-pd-type-list', - templateUrl: './pd-type-list.component.html', - styleUrls: ['./pd-type-list.component.scss'] -}) -export class PdTypeListComponent implements OnInit { - - - isPopupOpened = true; - loader: boolean = false; - PDTypeList: any = []; - - displayedColumns = ['pd_type_id', 'type_name', 'isactive','actions']; - - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - - constructor(private dialog: MatDialog, - private _PDTypeService: MastersService) { } - - // get PDTypeList() { - // return this._PDTypeService.getAllPDType(); - // } - - dataSource = new UserDataSource(this._PDTypeService); - - ngOnInit() { - this.getPDType(); - } - - - addPDType() { - this.isPopupOpened = true; - const dialogRef = this.dialog.open(PdTypeDialogComponent, { - data: {} - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - editPDType(arr: any[]) { - this.isPopupOpened = true; - //const contact = this._PDTypeService.getAllPDType().find(c => c.ID === id); - const dialogRef = this.dialog.open(PdTypeDialogComponent, { - data: arr - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - //To get data for listing - getPDType() { - this.loader = true; - this._PDTypeService.getAllMasterData('PDTYPE').subscribe(dataresult => { - - this.loader = false; - - if (dataresult.dataStatus  === true) { - this.PDTypeList = dataresult.records; - } - }) - - } - - deletePDType(id: number) { - var PrimaryKeyWithValue ={'pd_type_id':id}; - this._PDTypeService.deleteMasterDetails(PrimaryKeyWithValue,'PDTYPE'); - //this._PDTypeService.deleteMasterDetails('pd_type_id',id,'PDTYPE'); - } -} - -export class UserDataSource extends DataSource { - - - constructor(private _bs: MastersService) { - super(); - } - - connect(): Observable { - //return this.userService.getUser(); - //return this._bs.getAllPDType(); - return this._bs.getAllMasterData('PDTYPE'); - } - disconnect() {} -} - - diff --git a/ng6-seed/src/app/settings/masters/component/product/product-dialog/product-dialog.component.html b/ng6-seed/src/app/settings/masters/component/product/product-dialog/product-dialog.component.html deleted file mode 100644 index cc75e2f..0000000 --- a/ng6-seed/src/app/settings/masters/component/product/product-dialog/product-dialog.component.html +++ /dev/null @@ -1,46 +0,0 @@ - -
-
Product Details
-
-
-
- - -
- -
- - -
- - - You must include a Product name. - - -
- -
- - - - You must include a Product abbrevation. -
- -
- - -
- -
-
- -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/product/product-dialog/product-dialog.component.scss b/ng6-seed/src/app/settings/masters/component/product/product-dialog/product-dialog.component.scss deleted file mode 100644 index f5c65c4..0000000 --- a/ng6-seed/src/app/settings/masters/component/product/product-dialog/product-dialog.component.scss +++ /dev/null @@ -1,8 +0,0 @@ - - table { - width: 100%; - } - - mat-form-field{ - width:100%; -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/product/product-dialog/product-dialog.component.spec.ts b/ng6-seed/src/app/settings/masters/component/product/product-dialog/product-dialog.component.spec.ts deleted file mode 100644 index d79e7b4..0000000 --- a/ng6-seed/src/app/settings/masters/component/product/product-dialog/product-dialog.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { ProductDialogComponent } from './product-dialog.component'; - -describe('ProductDialogComponent', () => { - let component: ProductDialogComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ ProductDialogComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(ProductDialogComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/product/product-dialog/product-dialog.component.ts b/ng6-seed/src/app/settings/masters/component/product/product-dialog/product-dialog.component.ts deleted file mode 100644 index ce33329..0000000 --- a/ng6-seed/src/app/settings/masters/component/product/product-dialog/product-dialog.component.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; -import { MastersService } from '../../../../service/masters/masters.service'; - -@Component({ - selector: 'app-jazz-dialog', - templateUrl: './product-dialog.component.html', - styleUrls: ['./product-dialog.component.scss'] -}) - -export class ProductDialogComponent implements OnInit { - - public _productMasterForm: FormGroup; - - constructor(private _formBuilder: FormBuilder, - private dialogRef: MatDialogRef, - private _MastersService: MastersService, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onNoClick(): void { - this.dialogRef.close(); - } - - ngOnInit() { - - this._productMasterForm = this._formBuilder.group({ - //ID: [this.data.ID], - product_id: [this.data.product_id], - name: [this.data.name, Validators.compose([Validators.required])], - abbr: [this.data.abbr, Validators.compose([Validators.required])] - }); - console.log(this._productMasterForm); - } - - onSubmit() { - if(isNaN(this.data.product_id)) { - - var my_array = this._productMasterForm.value; - Object.keys(my_array).forEach((key) => ( my_array[key] == null) && delete my_array[key]); - console.log(my_array); - //this._MastersService.addProductMaster(this._productMasterForm.value); - //this._MastersService.addProd(this._productMasterForm.value).subscribe(data=>this.array=data); - this._MastersService.addMasterDetails(my_array,'PRODUCTS').subscribe(); - this.dialogRef.close(); - alert("saved"); - } else { - //this._MastersService.editProductMaster(this._productMasterForm.value); - this._MastersService.editMasterDetails(this._productMasterForm.value,'PRODUCTS').subscribe(); - this.dialogRef.close(); - alert("edited"); - } - } - -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/product/product-list/product-list.component.html b/ng6-seed/src/app/settings/masters/component/product/product-list/product-list.component.html deleted file mode 100644 index b304035..0000000 --- a/ng6-seed/src/app/settings/masters/component/product/product-list/product-list.component.html +++ /dev/null @@ -1,309 +0,0 @@ - -
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - -
No. {{element.ID}} Name {{element.ProductName}} ProductAbbr {{element.ProductAbbr}}
- - -
- - - - - - -
- - - - - - -
- -
-
- - - - - - - - - - - - - - - - - - - - - -
#Product NameProduct AbbreviationIs ActvieAction
No Records
{{i+1}}{{PM.name}}{{PM.abbr}}{{PM.isactive}} - - edit - delete_outline -
- -
-
- - - - - - -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/product/product-list/product-list.component.scss b/ng6-seed/src/app/settings/masters/component/product/product-list/product-list.component.scss deleted file mode 100644 index 71f5d6a..0000000 --- a/ng6-seed/src/app/settings/masters/component/product/product-list/product-list.component.scss +++ /dev/null @@ -1,92 +0,0 @@ - -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 300px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-input-container { - font-size: 14px; - flex-grow: 1; - margin-left: 32px; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -/** Selection styles -.example-selection-header { - font-size: 18px; - background: rgba(255, 64, 129, 0.3); - border-bottom: 1px solid #d696ac; -} - -.mat-column-select { - max-width: 54px; -} - -.mat-row:hover, .example-selected-row { - background: #f5f5f5; -} - -.mat-row:active, .mat-row.example-selected-row { - background: #eaeaea; -} - -.mat-table { - overflow: auto; - max-height: 500px; -}*/ -/* Structure */ -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - width : 80%; - margin : 20px auto; - } - - .example-header { - min-height: 64px; - padding: 8px 24px 0; - } - - //mat-cell{ - .cell{ - display:flex !important; - justify-content:center!important; - - } - - // mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; - } - - - table { - width: 100%; - } - - th { - text-align: left; - } \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/product/product-list/product-list.component.ts b/ng6-seed/src/app/settings/masters/component/product/product-list/product-list.component.ts deleted file mode 100644 index 3bdb9ec..0000000 --- a/ng6-seed/src/app/settings/masters/component/product/product-list/product-list.component.ts +++ /dev/null @@ -1,159 +0,0 @@ -import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { MatDialog, MatDialogRef, MatDialogConfig,MatPaginator, MatSort,MatTableDataSource } from '@angular/material'; - -import { MastersService } from '../../../../service/masters/masters.service'; -import { ProductDialogComponent } from '../product-dialog/product-dialog.component'; -import { ProductMaster } from '../../../model/product-master'; -//import { DataSource } from '@angular/cdk/table'; -import { Observable, Subject } from 'rxjs'; -import { Http, Response } from '@angular/http'; -import 'rxjs/add/operator/map'; - -//import { DataSource } from '@angular/cdk/collections'; -import { map } from 'rxjs/operators'; -import { of as observableOf, merge } from 'rxjs'; - -@Component({ - selector: 'app-product-list', - templateUrl: './product-list.component.html', - styleUrls: ['./product-list.component.scss'] -}) -export class ProductListComponent implements OnInit { - - //Variable Declaration part - isPopupOpened: boolean = true; - loader: boolean = false; - ProductMasterList: any = []; - - - //For Data Table - //displayedColumns = ['product_id','name','abbr','createdon','fk_createdby','updatedon','isactive','fk_updatedby','actions']; - - - //dataSource = new UserDataSource(this._ProductService); - - displayedColumns: string[] = ['ID','ProductName','ProductAbbr']; - dataSource = new MatTableDataSource(ELEMENT_DATA1); - - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - - //Onready function - ngOnInit() { - this.dataSource.paginator = this.paginator; - this.dataSource.sort = this.sort; - this.getProductMaster(); - } - - applyFilter(filterValue: string) { - this.dataSource.filter = filterValue.trim().toLowerCase(); - } - - constructor(private dialog: MatDialog, - private _ProductService: MastersService) {} - - //To open dialog for add the data - addProductMaster() { - this.isPopupOpened = true; - const dialogRef = this.dialog.open(ProductDialogComponent, { - data: {} - }); - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - //To open dialog for edit the data - editProductMaster(arr: any[]) { - //alert(arr); - console.log(arr); - this.isPopupOpened = true; - //const contact = this._ProductService.getAllProductMaster().find(c => c.ID === id); - // let contact = this._ProductService.getProd().map(res=>res.filter(data =>data.product_id == id))[0]; - // console.log(contact); - - const dialogRef = this.dialog.open(ProductDialogComponent, { - data: arr - }); - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - //To get data for listing - getProductMaster() { - this.loader = true; - this._ProductService.getAllMasterData('PRODUCTS').subscribe(dataresult => { - - this.loader = false; - - if (dataresult.dataStatus  === true) { - this.ProductMasterList = dataresult.records; - } - }) - - } - - //To inactive the data - deleteProductMaster(id: number) { - console.log('Deleted ID in List Component',id) - //this._ProductService.deleteProductMaster(id); - var PrimaryKeyWithValue ={'product_id':id}; - this._ProductService.deleteMasterDetails(PrimaryKeyWithValue,'PRODUCTS'); - //this._ProductService.deleteMasterDetails('product_id',id,'PRODUCTS').subscribe(); - //this._ProductService.deleteProductMaster(id); - } - -} - - -// export class UserDataSource extends DataSource { - -// // paginator: MatPaginator; -// // sort: MatSort; - -// constructor(private _ps:MastersService) { -// super(); -// } - -// // connect(): Observable { -// // //return this.userService.getUser(); -// // let productData; -// // this._ps.getAllMasterData('PRODUCTS').subscribe(data=>{ -// // productData = data.records; -// // //return productData; -// // }); -// // return productData; -// // } - - -// // public getdata(){ -// // this._ps.getAllMasterData('PRODUCTS') -// // .subscribe(dataresult => dataresult.status ); -// // } - -// connect(): Observable { -// //return this.userService.getUser(); -// return this._ps.getAllMasterData('PRODUCTS'); -// } - -// disconnect() {} -// } - -export interface ProductElement { - ProductName: string; - ID: number; - ProductAbbr: string; -} - -const ELEMENT_DATA1: ProductElement[] = [ - {ID: 1, ProductName: 'Home Loan',ProductAbbr: 'HL'}, - {ID: 2, ProductName: 'Non Residential Premises Loans', ProductAbbr: 'NRPL'}, - {ID: 3, ProductName: 'Loan Against Property', ProductAbbr: 'LAP'}, - {ID: 4, ProductName: 'Business Loans', ProductAbbr: 'BL'}, - {ID: 5, ProductName: 'Personal Loans', ProductAbbr: 'PL'}, - {ID: 6, ProductName: 'Land Loan', ProductAbbr: 'LL'} -]; \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/regions/regions-dialog/regions-dialog.component.html b/ng6-seed/src/app/settings/masters/component/regions/regions-dialog/regions-dialog.component.html deleted file mode 100644 index 2fe9eaa..0000000 --- a/ng6-seed/src/app/settings/masters/component/regions/regions-dialog/regions-dialog.component.html +++ /dev/null @@ -1,42 +0,0 @@ - -
-
Region
-
-
-
- - - -
- -
- - -
- - - You must include a Name. - - -
- - -
- - - -
- -
-
- -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/regions/regions-dialog/regions-dialog.component.scss b/ng6-seed/src/app/settings/masters/component/regions/regions-dialog/regions-dialog.component.scss deleted file mode 100644 index 3e80f0d..0000000 --- a/ng6-seed/src/app/settings/masters/component/regions/regions-dialog/regions-dialog.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -mat-form-field{ - width:100%; -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/regions/regions-dialog/regions-dialog.component.spec.ts b/ng6-seed/src/app/settings/masters/component/regions/regions-dialog/regions-dialog.component.spec.ts deleted file mode 100644 index b779599..0000000 --- a/ng6-seed/src/app/settings/masters/component/regions/regions-dialog/regions-dialog.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { RegionsDialogComponent } from './regions-dialog.component'; - -describe('RegionsDialogComponent', () => { - let component: RegionsDialogComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ RegionsDialogComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(RegionsDialogComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/regions/regions-dialog/regions-dialog.component.ts b/ng6-seed/src/app/settings/masters/component/regions/regions-dialog/regions-dialog.component.ts deleted file mode 100644 index b2f0011..0000000 --- a/ng6-seed/src/app/settings/masters/component/regions/regions-dialog/regions-dialog.component.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; -import { MastersService } from '../../../../service/masters/masters.service'; - - -@Component({ - selector: 'app-jazz-dialog', - templateUrl: './regions-dialog.component.html', - styleUrls: ['./regions-dialog.component.scss'] -}) -export class RegionsDialogComponent implements OnInit { - - public _regionsForm: FormGroup; - - constructor(private _formBuilder: FormBuilder, - private dialogRef: MatDialogRef, - private _regionsService: MastersService, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onNoClick(): void { - this.dialogRef.close(); - } - - ngOnInit() { - - this._regionsForm = this._formBuilder.group({ - //Regions_id: any; fk_city_id: any; - region_id: [this.data.region_id], - name: [this.data.name, Validators.compose([Validators.required])] - }); - //console.log(this._regionsForm); - } - - // onSubmit() { - // if (isNaN(this.data.ID)) { - // this._regionsService.addRegions(this._regionsForm.value); - // this.dialogRef.close(); - // } else { - // this._regionsService.editRegions(this._regionsForm.value); - // this.dialogRef.close(); - // } - // } - - onSubmit() { - if(isNaN(this.data.region_id)) { - var my_array = this._regionsForm.value; - Object.keys(my_array).forEach((key) => ( my_array[key] == null) && delete my_array[key]); - console.log(my_array); - this._regionsService.addMasterDetails(my_array,'REGIONS').subscribe(); - this.dialogRef.close(); - alert("saved"); - } else { - - this._regionsService.editMasterDetails(this._regionsForm.value,'REGIONS').subscribe(); - this.dialogRef.close(); - alert("edited"); - } - } - - - - onReset(){ - this._regionsForm.reset(); - } -} diff --git a/ng6-seed/src/app/settings/masters/component/regions/regions-list/regions-list.component.html b/ng6-seed/src/app/settings/masters/component/regions/regions-list/regions-list.component.html deleted file mode 100644 index 37809df..0000000 --- a/ng6-seed/src/app/settings/masters/component/regions/regions-list/regions-list.component.html +++ /dev/null @@ -1,65 +0,0 @@ - -
- -
-
-
- -
-
- - - - - - - - - - - - - - - -
#Regions NameIsActiveAction
No Records
{{i+1}}{{RL.name}}{{RL.isactive}} - edit - delete_outline -
- -
- - - - - -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/regions/regions-list/regions-list.component.scss b/ng6-seed/src/app/settings/masters/component/regions/regions-list/regions-list.component.scss deleted file mode 100644 index 3b5b291..0000000 --- a/ng6-seed/src/app/settings/masters/component/regions/regions-list/regions-list.component.scss +++ /dev/null @@ -1,93 +0,0 @@ - -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 300px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-input-container { - font-size: 14px; - flex-grow: 1; - margin-left: 32px; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -/** Selection styles -.example-selection-header { - font-size: 18px; - background: rgba(255, 64, 129, 0.3); - border-bottom: 1px solid #d696ac; -} - -.mat-column-select { - max-width: 54px; -} - -.mat-row:hover, .example-selected-row { - background: #f5f5f5; -} - -.mat-row:active, .mat-row.example-selected-row { - background: #eaeaea; -} - -.mat-table { - overflow: auto; - max-height: 500px; -}*/ -/* Structure */ -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - width : 80%; - margin : 20px auto; - } - - .example-header { - min-height: 64px; - padding: 8px 24px 0; - } - - //mat-cell{ - .cell{ - display:flex !important; - justify-content:center!important; - - } - - // mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; - } - - - table { - width: 100%; - } - - th { - text-align: left; - } - diff --git a/ng6-seed/src/app/settings/masters/component/regions/regions-list/regions-list.component.ts b/ng6-seed/src/app/settings/masters/component/regions/regions-list/regions-list.component.ts deleted file mode 100644 index 5367ff9..0000000 --- a/ng6-seed/src/app/settings/masters/component/regions/regions-list/regions-list.component.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { MatDialog, MatDialogRef, MatDialogConfig,MatPaginator, MatSort,MatTableDataSource } from '@angular/material'; - -import { Observable, Subject } from 'rxjs'; -import { Http, Response } from '@angular/http'; -import 'rxjs/add/operator/map'; - -import { DataSource } from '@angular/cdk/collections'; -import { map } from 'rxjs/operators'; -import { of as observableOf, merge } from 'rxjs'; - - -import { MastersService } from '../../../../service/masters/masters.service'; -import { RegionsDialogComponent } from '../regions-dialog/regions-dialog.component'; -import { Regions } from '../../../model/regions'; - - -@Component({ - selector: 'app-regions-list', - templateUrl: './regions-list.component.html', - styleUrls: ['./regions-list.component.scss'] -}) -export class RegionsListComponent implements OnInit { - - - isPopupOpened = true; - loader: boolean = false; - regionsList: any = []; - - displayedColumns = ['region_id', 'name', 'isactive','actions']; - //region_id, name, createdon, fk_createdby, updatedon, fk_updatedby, isactive - - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - constructor(private dialog: MatDialog, - private _regionsService: MastersService) { } - - // get regionsList() { - // return this._regionsService.getAllregions(); - // } - - dataSource = new UserDataSource(this._regionsService); - - ngOnInit() { - this.getregions(); - } - - - addregions() { - this.isPopupOpened = true; - const dialogRef = this.dialog.open(RegionsDialogComponent, { - data: {} - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - editregions(arr: any[]) { - this.isPopupOpened = true; - //const contact = this._regionsService.getAllregions().find(c => c.ID === id); - const dialogRef = this.dialog.open(RegionsDialogComponent, { - data: arr - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - //To get data for listing - getregions() { - this.loader = true; - this._regionsService.getAllMasterData('REGIONS').subscribe(dataresult => { - - this.loader = false; - - if (dataresult.dataStatus  === true) { - this.regionsList = dataresult.records; - } - }) - - } - - deleteregions(id: number) { - var PrimaryKeyWithValue ={'region_id':id}; - this._regionsService.deleteMasterDetails(PrimaryKeyWithValue,'REGIONS'); - //this._regionsService.deleteMasterDetails('region_id',id,'REGIONS'); - } -} - -export class UserDataSource extends DataSource { - - - constructor(private _bs: MastersService) { - super(); - } - - connect(): Observable { - //return this.userService.getUser(); - return this._bs.getAllMasterData('REGIONS'); - } - disconnect() {} -} - diff --git a/ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-dialog/relation-ship-dialog.component.html b/ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-dialog/relation-ship-dialog.component.html deleted file mode 100644 index 78ec48b..0000000 --- a/ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-dialog/relation-ship-dialog.component.html +++ /dev/null @@ -1,41 +0,0 @@ - -
-
Relation Ship
-
-
-
- - - -
- -
- - -
- - - You must include a Name. - - -
-
-
- - - -
- -
-
- -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-dialog/relation-ship-dialog.component.scss b/ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-dialog/relation-ship-dialog.component.scss deleted file mode 100644 index 3e80f0d..0000000 --- a/ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-dialog/relation-ship-dialog.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -mat-form-field{ - width:100%; -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-dialog/relation-ship-dialog.component.ts b/ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-dialog/relation-ship-dialog.component.ts deleted file mode 100644 index 724668f..0000000 --- a/ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-dialog/relation-ship-dialog.component.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; -import { MastersService } from '../../../../service/masters/masters.service'; - - - -@Component({ - selector: 'app-jazz-dialog', - templateUrl: './relation-ship-dialog.component.html', - styleUrls: ['./relation-ship-dialog.component.scss'] -}) -export class RelationShipDialogComponent implements OnInit { - - - public _relationShipForm: FormGroup; - - constructor(private _formBuilder: FormBuilder, - private dialogRef: MatDialogRef< RelationShipDialogComponent>, - private _MastersService: MastersService, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onNoClick(): void { - this.dialogRef.close(); - } - - ngOnInit() { - - this._relationShipForm = this._formBuilder.group({ - relationship_id: [this.data.relationship_id], - name: [this.data.name, Validators.compose([Validators.required])] - }); - //console.log(this._relationShipForm); - } - - // onSubmit() { - // if (isNaN(this.data.ID)) { - // this._MastersService.addRelationShip(this._relationShipForm.value); - // this.dialogRef.close(); - // } else { - // this._MastersService.editRelationShip(this._relationShipForm.value); - // this.dialogRef.close(); - // } - // } - - onSubmit() { - if(isNaN(this.data.relationship_id)) { - var my_array = this._relationShipForm.value; - Object.keys(my_array).forEach((key) => ( my_array[key] == null) && delete my_array[key]); - console.log(my_array); - this._MastersService.addMasterDetails(my_array,'RELATIONSHIPS').subscribe(); - this.dialogRef.close(); - alert("saved"); - } else { - this._MastersService.editMasterDetails(this._relationShipForm.value,'RELATIONSHIPS').subscribe(); - this.dialogRef.close(); - alert("edited"); - } - } - - onReset(){ - this._relationShipForm.reset(); - } -} diff --git a/ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-list/relation-ship-list.component.html b/ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-list/relation-ship-list.component.html deleted file mode 100644 index ff6f8de..0000000 --- a/ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-list/relation-ship-list.component.html +++ /dev/null @@ -1,85 +0,0 @@ - -
- -
-
-
- -
-
- - - - - - - - - - - - - - - - - -
#Relationship NameIsactiveAction
No Records
{{i+1}}{{RL.name}}{{RL.isactive}} - edit - delete_outline -
- -
- - - - -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-list/relation-ship-list.component.scss b/ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-list/relation-ship-list.component.scss deleted file mode 100644 index e5c8200..0000000 --- a/ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-list/relation-ship-list.component.scss +++ /dev/null @@ -1,120 +0,0 @@ -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - } - - .example-header { - min-height: 64px; - padding: 8px 24px 0; - } - - //mat-cell{ - .cell{ - display:flex !important; - justify-content:center!important; - - } - - // mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; - }*/ - - // - - -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 300px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-input-container { - font-size: 14px; - flex-grow: 1; - margin-left: 32px; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -/** Selection styles -.example-selection-header { - font-size: 18px; - background: rgba(255, 64, 129, 0.3); - border-bottom: 1px solid #d696ac; -} - -.mat-column-select { - max-width: 54px; -} - -.mat-row:hover, .example-selected-row { - background: #f5f5f5; -} - -.mat-row:active, .mat-row.example-selected-row { - background: #eaeaea; -} - -.mat-table { - overflow: auto; - max-height: 500px; -}*/ -/* Structure */ -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - width : 80%; - margin : 20px auto; -} - -.example-header { - min-height: 64px; - padding: 8px 24px 0; -} - -//mat-cell{ -.cell{ - display:flex !important; - justify-content:center!important; - -} - -// mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; -} - - -table { - width: 100%; -} - -th { - text-align: left; -} - diff --git a/ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-list/relation-ship-list.component.ts b/ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-list/relation-ship-list.component.ts deleted file mode 100644 index 0be882a..0000000 --- a/ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-list/relation-ship-list.component.ts +++ /dev/null @@ -1,116 +0,0 @@ -// import { Component, OnInit } from '@angular/core'; -// import { MatDialog, MatPaginator, MatTableDataSource } from '@angular/material'; - -import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { MatDialog, MatDialogRef, MatDialogConfig,MatPaginator, MatSort,MatTableDataSource } from '@angular/material'; - -import { Observable, Subject } from 'rxjs'; -import { Http, Response } from '@angular/http'; -import 'rxjs/add/operator/map'; - -import { DataSource } from '@angular/cdk/collections'; -import { map } from 'rxjs/operators'; -import { of as observableOf, merge } from 'rxjs'; - - -import { MastersService } from '../../../../service/masters/masters.service'; -import { RelationShipDialogComponent } from '../relation-ship-dialog/relation-ship-dialog.component'; -import { RelationShip } from '../../../model/relation-ship'; - - -@Component({ - selector: 'app-relation-ship-list', - templateUrl: './relation-ship-list.component.html', - styleUrls: ['./relation-ship-list.component.scss'] -}) -export class RelationShipListComponent implements OnInit { - - isPopupOpened = true; - loader: boolean = false; - RelationShipList: any = []; - - - - constructor(private dialog: MatDialog, - private _MastersService: MastersService) { } - - // get RelationShipList() { - // return this._MastersService.getAllRelationShip(); - // } - - displayedColumns = ['relationship_id','name','createdon','fk_createdby','updatedon','isactive','fk_updatedby','actions']; - //relationship_id, name, createdon, fk_createdby, updatedon, fk_updatedby, isactive - - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - ngOnInit() { - this.getRelationShip(); - } - - dataSource = new UserDataSource(this._MastersService); - - addRelationShip() { - this.isPopupOpened = true; - const dialogRef = this.dialog.open(RelationShipDialogComponent, { - data: {} - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - editRelationShip(arr: any) { - this.isPopupOpened = true; - // const contact = this._MastersService.getAllRelationShip().find(c => c.ID === id); - const dialogRef = this.dialog.open(RelationShipDialogComponent, { - - data : arr - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - //To get data for listing - getRelationShip() { - this.loader = true; - this._MastersService.getAllMasterData('RELATIONSHIPS').subscribe(dataresult => { - - this.loader = false; - - if (dataresult.dataStatus  === true) { - this.RelationShipList = dataresult.records; - } - }) - - } - - deleteRelationShip(id: number) { - var PrimaryKeyWithValue ={'relationship_id':id}; - this._MastersService.deleteMasterDetails(PrimaryKeyWithValue,'RELATIONSHIPS'); - //this._MastersService.deleteMasterDetails('relationship_id',id,'RELATIONSHIPS'); - } -} - - - -export class UserDataSource extends DataSource { - - constructor(private _rss:MastersService ) { - super(); - } - - connect(): Observable { - //return this.userService.getUser(); - //return this._rss.getAllRelationShip(); - return this._rss.getAllMasterData('RELATIONSHIPS'); - } - disconnect() {} -} - - diff --git a/ng6-seed/src/app/settings/masters/component/states/states-dialog/states-dialog.component.html b/ng6-seed/src/app/settings/masters/component/states/states-dialog/states-dialog.component.html deleted file mode 100644 index 73baaf8..0000000 --- a/ng6-seed/src/app/settings/masters/component/states/states-dialog/states-dialog.component.html +++ /dev/null @@ -1,66 +0,0 @@ - -
-
State
-
-
-
- - -
- -
- - -
- - - {{ sd.name }} - - You must include a Region. - -
- -
- - - You must include a Name. - - -
-
- -
-
- - - You must include a Code. - - -
- -
-
- - - -
- -
-
- -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/states/states-dialog/states-dialog.component.scss b/ng6-seed/src/app/settings/masters/component/states/states-dialog/states-dialog.component.scss deleted file mode 100644 index 3e80f0d..0000000 --- a/ng6-seed/src/app/settings/masters/component/states/states-dialog/states-dialog.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -mat-form-field{ - width:100%; -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/states/states-dialog/states-dialog.component.ts b/ng6-seed/src/app/settings/masters/component/states/states-dialog/states-dialog.component.ts deleted file mode 100644 index 9af51a9..0000000 --- a/ng6-seed/src/app/settings/masters/component/states/states-dialog/states-dialog.component.ts +++ /dev/null @@ -1,106 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; -import { MastersService } from '../../../../service/masters/masters.service'; -import { States } from '../../../model/states'; - -@Component({ - selector: 'app-jazz-dialog', - templateUrl: './states-dialog.component.html', - styleUrls: ['./states-dialog.component.scss'] -}) -export class StatesDialogComponent implements OnInit { - - public _statesForm: FormGroup; - regionDatas : any[]; - foundBooks: any; - errorMessage:string; - - constructor(private _formBuilder: FormBuilder, - private dialogRef: MatDialogRef, - private _MastersService: MastersService, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onNoClick(): void { - this.dialogRef.close(); - } - - // get RegionData(){ - // return this._MastersService.getRegionData().subscribe( - // data => { this.foundBooks = data }); - // } - - // getBooks() - // { - // this._MastersService.getRegionData().subscribe( - // data => { this.foundBooks = data.json(); - // this.foundBooks = Array.of(this.foundBooks); - // }, - // err => console.error(err), - // () => console.log('getBooks completed') - // ); - // } - - - - ngOnInit() { - // console.log(this._MastersService.getRegionData()); - //console.log('RegionData',this.RegionData); - //console.log('getBooks',this.getBooks); - //console.log('foundBooks',this.foundBooks); - - this._statesForm = this._formBuilder.group({ - //States_id: any; fk_city_id: any; - state_id: [this.data.state_id], - name: [this.data.name, Validators.compose([Validators.required])], - code: [this.data.code, Validators.compose([Validators.required])], - fk_region_id : [this.data.fk_region_id, Validators.compose([Validators.required])] - }); - this._MastersService.getAllMasterData('REGIONS') - .subscribe( - data => { - - if (data.status == 200) { - this.regionDatas = data.records; - this.regionDatas = this.regionDatas.filter(city=>city.isactive == 1 ); - } - - }, error => this.errorMessage = error); - //console.log(this._statesForm); - } - - // onSubmit() { - // if (isNaN(this.data.ID)) { - // this._MastersService.addStates(this._statesForm.value); - // this.dialogRef.close(); - // } else { - // this._MastersService.editStates(this._statesForm.value); - // this.dialogRef.close(); - // } - // } - - - - onSubmit() { - if(isNaN(this.data.state_id)) { - var my_array = this._statesForm.value; - Object.keys(my_array).forEach((key) => ( my_array[key] == null) && delete my_array[key]); - console.log(my_array); - this._MastersService.addMasterDetails(my_array,'STATE').subscribe(); - this.dialogRef.close(); - alert("saved"); - } else { - - this._MastersService.editMasterDetails(this._statesForm.value,'STATE').subscribe(); - this.dialogRef.close(); - alert("edited"); - } - } - - - - onReset(){ - this._statesForm.reset(); - } -} - diff --git a/ng6-seed/src/app/settings/masters/component/states/states-list/states-list.component.html b/ng6-seed/src/app/settings/masters/component/states/states-list/states-list.component.html deleted file mode 100644 index c2ffaf4..0000000 --- a/ng6-seed/src/app/settings/masters/component/states/states-list/states-list.component.html +++ /dev/null @@ -1,105 +0,0 @@ - -
- -
-
-
- -
-
- - - - - - - - - - - - - - - - -
#State NameRegion NameIsactiveAction
No Records
{{i+1}}{{SL.name}}{{SL.region_name}}{{SL.isactive}} - edit - delete_outline - -
- -
- - - -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/states/states-list/states-list.component.scss b/ng6-seed/src/app/settings/masters/component/states/states-list/states-list.component.scss deleted file mode 100644 index 3b5b291..0000000 --- a/ng6-seed/src/app/settings/masters/component/states/states-list/states-list.component.scss +++ /dev/null @@ -1,93 +0,0 @@ - -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 300px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-input-container { - font-size: 14px; - flex-grow: 1; - margin-left: 32px; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -/** Selection styles -.example-selection-header { - font-size: 18px; - background: rgba(255, 64, 129, 0.3); - border-bottom: 1px solid #d696ac; -} - -.mat-column-select { - max-width: 54px; -} - -.mat-row:hover, .example-selected-row { - background: #f5f5f5; -} - -.mat-row:active, .mat-row.example-selected-row { - background: #eaeaea; -} - -.mat-table { - overflow: auto; - max-height: 500px; -}*/ -/* Structure */ -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - width : 80%; - margin : 20px auto; - } - - .example-header { - min-height: 64px; - padding: 8px 24px 0; - } - - //mat-cell{ - .cell{ - display:flex !important; - justify-content:center!important; - - } - - // mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; - } - - - table { - width: 100%; - } - - th { - text-align: left; - } - diff --git a/ng6-seed/src/app/settings/masters/component/states/states-list/states-list.component.spec.ts b/ng6-seed/src/app/settings/masters/component/states/states-list/states-list.component.spec.ts deleted file mode 100644 index ba198df..0000000 --- a/ng6-seed/src/app/settings/masters/component/states/states-list/states-list.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { StatesListComponent } from './states-list.component'; - -describe('StatesListComponent', () => { - let component: StatesListComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ StatesListComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(StatesListComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/states/states-list/states-list.component.ts b/ng6-seed/src/app/settings/masters/component/states/states-list/states-list.component.ts deleted file mode 100644 index 1a9e420..0000000 --- a/ng6-seed/src/app/settings/masters/component/states/states-list/states-list.component.ts +++ /dev/null @@ -1,110 +0,0 @@ -import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { MatDialog, MatDialogRef, MatDialogConfig,MatPaginator, MatSort,MatTableDataSource } from '@angular/material'; - -import { Observable, Subject } from 'rxjs'; -import { Http, Response } from '@angular/http'; -import 'rxjs/add/operator/map'; - -import { DataSource } from '@angular/cdk/collections'; -import { map } from 'rxjs/operators'; -import { of as observableOf, merge } from 'rxjs'; - -import { MastersService } from '../../../../service/masters/masters.service'; -import { StatesDialogComponent } from '../states-dialog/states-dialog.component'; -import { States } from '../../../model/states'; - - -@Component({ - selector: 'app-states-list', - templateUrl: './states-list.component.html', - styleUrls: ['./states-list.component.scss'] -}) -export class StatesListComponent implements OnInit { - - isPopupOpened = true; - loader: boolean = false; - StateList: any = []; - - //displayedColumns = ['states_id', 'fk_city_id', 'name', 'createdon', 'fk_createdby', 'updatedon', 'fk_updatedby', 'isactive','actions']; - displayedColumns = ['state_id', 'fk_region_id','region_name', 'name', 'code', 'isactive','actions']; - - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - - constructor(private dialog: MatDialog, - private _statesService: MastersService) { } - - // get StatesList() { - // return this._statesService.getAllStates(); - // } - - dataSource = new UserDataSource(this._statesService); - - ngOnInit() { - this.getState(); - } - - - addState() { - this.isPopupOpened = true; - const dialogRef = this.dialog.open(StatesDialogComponent, { - data: {} - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - editState(arr: any[]) { - this.isPopupOpened = true; - //const contact = this._statesService.getAllStates().find(c => c.ID === id); - const dialogRef = this.dialog.open(StatesDialogComponent, { - data: arr - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - //To get data for listing - getState() { - this.loader = true; - this._statesService. getAllState().subscribe(dataresult => { - - this.loader = false; - - if (dataresult.dataStatus  === true) { - this.StateList = dataresult.records; - } - }) - - } - - deleteState(id: number) { - var PrimaryKeyWithValue ={'state_id':id}; - this._statesService.deleteMasterDetails(PrimaryKeyWithValue,'STATE'); - //this._statesService.deleteMasterDetails('state_id',id,'STATE'); - } - - -} - -export class UserDataSource extends DataSource { - - - constructor(private _bs: MastersService) { - super(); - } - - connect(): Observable { - //return this.userService.getUser(); - return this._bs.getAllState(); - //return this._bs.getAllMasterData('STATE'); - } - disconnect() {} -} diff --git a/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-dialog/sub-product-dialog.component.html b/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-dialog/sub-product-dialog.component.html deleted file mode 100644 index bfff318..0000000 --- a/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-dialog/sub-product-dialog.component.html +++ /dev/null @@ -1,75 +0,0 @@ - - -
-
Sub Product Details
-
-
-
- - -
- -
- - -
- -
- - - {{ sd.name }} - - You must include a Product name. - -
- - -
- -
- - - You must include a Sub Product name. - - -
- - -
- - - You must include a Sub Product Abbrevation. - - -
- -
-
- - -
- -
-
- -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-dialog/sub-product-dialog.component.scss b/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-dialog/sub-product-dialog.component.scss deleted file mode 100644 index 510588a..0000000 --- a/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-dialog/sub-product-dialog.component.scss +++ /dev/null @@ -1,4 +0,0 @@ -mat-form-field{ - width:100%; -} - diff --git a/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-dialog/sub-product-dialog.component.spec.ts b/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-dialog/sub-product-dialog.component.spec.ts deleted file mode 100644 index fd75bb3..0000000 --- a/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-dialog/sub-product-dialog.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { SubProductDialogComponent } from './sub-product-dialog.component'; - -describe('SubProductDialogComponent', () => { - let component: SubProductDialogComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ SubProductDialogComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(SubProductDialogComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-dialog/sub-product-dialog.component.ts b/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-dialog/sub-product-dialog.component.ts deleted file mode 100644 index 26e50bf..0000000 --- a/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-dialog/sub-product-dialog.component.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; -import { MastersService } from '../../../../service/masters/masters.service'; - -@Component({ - selector: 'app-jazz-dialog', - templateUrl: './sub-product-dialog.component.html', - styleUrls: ['./sub-product-dialog.component.scss'] -}) -export class SubProductDialogComponent implements OnInit { - - public _subProductMasterForm: FormGroup; - productDatas : any[]; - errorMessage:string; - - constructor(private _formBuilder: FormBuilder, - private dialogRef: MatDialogRef, - private _MastersService: MastersService, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onNoClick(): void { - this.dialogRef.close(); - } - - ngOnInit() { - - this._subProductMasterForm = this._formBuilder.group({ - subproduct_id: [this.data.subproduct_id], - name: [this.data.name, Validators.compose([Validators.required])], - fk_product_id: [this.data.fk_product_id, Validators.compose([Validators.required])], - abbr: [this.data.abbr, Validators.compose([Validators.required])] - }); - - this._MastersService.getAllMasterData('PRODUCTS') - .subscribe( - data => { - - if (data.status == 200) { - this.productDatas = data.records; - this.productDatas = this.productDatas.filter(city=>city.isactive == 1 ); - } - - - }, error => this.errorMessage = error); - //console.log(this._industryMasterForm); - } - - // onSubmit() { - // if (isNaN(this.data.ID)) { - // this._MastersService.addSubProductMaster(this._subProductMasterForm.value); - // this.dialogRef.close(); - // } else { - // this._MastersService.editSubProductMaster(this._subProductMasterForm.value); - // this.dialogRef.close(); - // } - // } - - onSubmit() { - if(isNaN(this.data.subproduct_id)) { - var my_array = this._subProductMasterForm.value; - Object.keys(my_array).forEach((key) => ( my_array[key] == null) && delete my_array[key]); - console.log(my_array); - this._MastersService.addMasterDetails(my_array,'SUBPRODUCTS').subscribe(); - this.dialogRef.close(); - alert("saved"); - } else { - this._MastersService.editMasterDetails(this._subProductMasterForm.value,'SUBPRODUCTS').subscribe(); - this.dialogRef.close(); - alert("edited"); - } - } - -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-list/sub-product-list.component.html b/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-list/sub-product-list.component.html deleted file mode 100644 index 77d9d4c..0000000 --- a/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-list/sub-product-list.component.html +++ /dev/null @@ -1,95 +0,0 @@ - -
- -
-
-
- -
- -
- - - - - - - - - - - - - - - - - - -
#Product NameSubProduct NameSubProduct AbbrevationIsactiveAction
No Records
{{i+1}}{{SPM.product_name}}{{SPM.name}}{{SPM.abbr}}{{SPM.isactive}} - edit - delete_outline -
- -
- - - -
- - -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-list/sub-product-list.component.scss b/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-list/sub-product-list.component.scss deleted file mode 100644 index e5c8200..0000000 --- a/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-list/sub-product-list.component.scss +++ /dev/null @@ -1,120 +0,0 @@ -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - } - - .example-header { - min-height: 64px; - padding: 8px 24px 0; - } - - //mat-cell{ - .cell{ - display:flex !important; - justify-content:center!important; - - } - - // mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; - }*/ - - // - - -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 300px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-input-container { - font-size: 14px; - flex-grow: 1; - margin-left: 32px; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -/** Selection styles -.example-selection-header { - font-size: 18px; - background: rgba(255, 64, 129, 0.3); - border-bottom: 1px solid #d696ac; -} - -.mat-column-select { - max-width: 54px; -} - -.mat-row:hover, .example-selected-row { - background: #f5f5f5; -} - -.mat-row:active, .mat-row.example-selected-row { - background: #eaeaea; -} - -.mat-table { - overflow: auto; - max-height: 500px; -}*/ -/* Structure */ -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - width : 80%; - margin : 20px auto; -} - -.example-header { - min-height: 64px; - padding: 8px 24px 0; -} - -//mat-cell{ -.cell{ - display:flex !important; - justify-content:center!important; - -} - -// mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; -} - - -table { - width: 100%; -} - -th { - text-align: left; -} - diff --git a/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-list/sub-product-list.component.spec.ts b/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-list/sub-product-list.component.spec.ts deleted file mode 100644 index 9413c85..0000000 --- a/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-list/sub-product-list.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { SubProductListComponent } from './sub-product-list.component'; - -describe('SubProductListComponent', () => { - let component: SubProductListComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ SubProductListComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(SubProductListComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-list/sub-product-list.component.ts b/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-list/sub-product-list.component.ts deleted file mode 100644 index b994ebc..0000000 --- a/ng6-seed/src/app/settings/masters/component/sub-product/sub-product-list/sub-product-list.component.ts +++ /dev/null @@ -1,111 +0,0 @@ -// import { Component, OnInit } from '@angular/core'; -// import { MatDialog, MatPaginator, MatTableDataSource } from '@angular/material'; -import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { MatDialog, MatDialogRef, MatDialogConfig,MatPaginator, MatSort,MatTableDataSource } from '@angular/material'; - -import { Observable, Subject } from 'rxjs'; -import { Http, Response } from '@angular/http'; -import 'rxjs/add/operator/map'; - -import { DataSource } from '@angular/cdk/collections'; -import { map } from 'rxjs/operators'; -import { of as observableOf, merge } from 'rxjs'; - - -import { MastersService } from '../../../../service/masters/masters.service'; -import { SubProductDialogComponent } from '../sub-product-dialog/sub-product-dialog.component'; -import { SubProductMaster } from '../../../model/sub-product-master'; - -@Component({ - selector: 'app-sub-product-list', - templateUrl: './sub-product-list.component.html', - styleUrls: ['./sub-product-list.component.scss'] -}) -export class SubProductListComponent implements OnInit { - - isPopupOpened = true; - loader: boolean = false; - SubProductMasterList: any = []; - - - - constructor(private dialog: MatDialog, - private _MastersService: MastersService) { } - - // get SubProductMasterList() { - // return this._MastersService.getAllSubProductMaster(); - // } - - displayedColumns = ['subproduct_id','fk_product_id','product_name','name','abbr','createdon','fk_createdby','updatedon','isactive','fk_updatedby','actions']; - //subproduct_id, fk_product_id, name, abbr, createdon, fk_createdby, updatedon, fk_updatedby, isactive - - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - dataSource = new UserDataSource(this._MastersService); - - - ngOnInit() { - this.getSubProductMaster(); - } - - - addSubProductMaster() { - this.isPopupOpened = true; - const dialogRef = this.dialog.open(SubProductDialogComponent, { - data: {} - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - editSubProductMaster(arr : any) { - this.isPopupOpened = true; - //const contact = this._MastersService.getAllSubProductMaster().find(c => c.ID === id); - const dialogRef = this.dialog.open(SubProductDialogComponent, { - data: arr - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } -//To get data for listing -getSubProductMaster() { - this.loader = true; - this._MastersService.getAllSubProduct().subscribe(dataresult => { - - this.loader = false; - - if (dataresult.dataStatus  === true) { - this.SubProductMasterList = dataresult.records; - } - }) - -} - - deleteSubProductMaster(id: number) { - var PrimaryKeyWithValue ={'subproduct_id':id}; - this._MastersService.deleteMasterDetails(PrimaryKeyWithValue,'SUBPRODUCTS'); - //this._MastersService.deleteMasterDetails('subproduct_id',id,'SUBPRODUCTS'); - } -} - -export class UserDataSource extends DataSource { - - constructor(private _sps:MastersService ) { - super(); - } - - connect(): Observable { - //return this.userService.getUser(); - //return this._sps.getAllMasterData('SUBPRODUCTS'); - return this._sps.getAllSubProduct(); - - } - disconnect() {} -} diff --git a/ng6-seed/src/app/settings/masters/component/title/title-dialog/title-dialog.component.html b/ng6-seed/src/app/settings/masters/component/title/title-dialog/title-dialog.component.html deleted file mode 100644 index ccc45b1..0000000 --- a/ng6-seed/src/app/settings/masters/component/title/title-dialog/title-dialog.component.html +++ /dev/null @@ -1,41 +0,0 @@ - -
-
Title
-
-
-
- - - -
- -
- - -
- - - You must include a Title. - - -
-
-
- - - -
- -
-
- -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/title/title-dialog/title-dialog.component.scss b/ng6-seed/src/app/settings/masters/component/title/title-dialog/title-dialog.component.scss deleted file mode 100644 index 3e80f0d..0000000 --- a/ng6-seed/src/app/settings/masters/component/title/title-dialog/title-dialog.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -mat-form-field{ - width:100%; -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/title/title-dialog/title-dialog.component.spec.ts b/ng6-seed/src/app/settings/masters/component/title/title-dialog/title-dialog.component.spec.ts deleted file mode 100644 index 75bed54..0000000 --- a/ng6-seed/src/app/settings/masters/component/title/title-dialog/title-dialog.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { TitleDialogComponent } from './title-dialog.component'; - -describe('TitleDialogComponent', () => { - let component: TitleDialogComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ TitleDialogComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(TitleDialogComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/title/title-dialog/title-dialog.component.ts b/ng6-seed/src/app/settings/masters/component/title/title-dialog/title-dialog.component.ts deleted file mode 100644 index 8e3ecda..0000000 --- a/ng6-seed/src/app/settings/masters/component/title/title-dialog/title-dialog.component.ts +++ /dev/null @@ -1,63 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; -import { MastersService } from '../../../../service/masters/masters.service'; - -@Component({ - selector: 'app-jazz-dialog', - templateUrl: './title-dialog.component.html', - styleUrls: ['./title-dialog.component.scss'] -}) -export class TitleDialogComponent implements OnInit { - - - public _titleForm: FormGroup; - - constructor(private _formBuilder: FormBuilder, - private dialogRef: MatDialogRef, - private _MastersService: MastersService, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onNoClick(): void { - this.dialogRef.close(); - } - - ngOnInit() { - - this._titleForm = this._formBuilder.group({ - title_id: [this.data.title_id], - name: [this.data.name, Validators.compose([Validators.required])] - }); - //console.log(this._titleForm); - } - - // onSubmit() { - // if (isNaN(this.data.ID)) { - // this._contactService.addTitle(this._titleForm.value); - // this.dialogRef.close(); - // } else { - // this._contactService.editTitle(this._titleForm.value); - // this.dialogRef.close(); - // } - // } - - onSubmit() { - if(isNaN(this.data.title_id)) { - var my_array = this._titleForm.value; - Object.keys(my_array).forEach((key) => ( my_array[key] == null) && delete my_array[key]); - console.log(my_array); - this._MastersService.addMasterDetails(my_array,'TITLES').subscribe(); - this.dialogRef.close(); - alert("saved"); - } else { - this._MastersService.editMasterDetails(this._titleForm.value,'TITLES').subscribe(); - this.dialogRef.close(); - alert("edited"); - } - } - - onReset(){ - this._titleForm.reset(); - } -} - diff --git a/ng6-seed/src/app/settings/masters/component/title/title-list/title-list.component.html b/ng6-seed/src/app/settings/masters/component/title/title-list/title-list.component.html deleted file mode 100644 index 7de36b7..0000000 --- a/ng6-seed/src/app/settings/masters/component/title/title-list/title-list.component.html +++ /dev/null @@ -1,85 +0,0 @@ - -
- -
-
-
- -
-
- - - - - - - - - - - - - - - - - -
#Title NameAbbrevationIsActiveAction
No Records
{{i+1}}{{TL.name}}{{TL.abbr}}{{TL.isactive}} - edit - delete_outline -
- -
- - - -
- - -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/title/title-list/title-list.component.scss b/ng6-seed/src/app/settings/masters/component/title/title-list/title-list.component.scss deleted file mode 100644 index 4c7ba07..0000000 --- a/ng6-seed/src/app/settings/masters/component/title/title-list/title-list.component.scss +++ /dev/null @@ -1,119 +0,0 @@ -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - } - - .example-header { - min-height: 64px; - padding: 8px 24px 0; - } - - //mat-cell{ - .cell{ - display:flex !important; - justify-content:center!important; - - } - - // mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; - }*/ - - - -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 300px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-input-container { - font-size: 14px; - flex-grow: 1; - margin-left: 32px; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -/** Selection styles -.example-selection-header { - font-size: 18px; - background: rgba(255, 64, 129, 0.3); - border-bottom: 1px solid #d696ac; -} - -.mat-column-select { - max-width: 54px; -} - -.mat-row:hover, .example-selected-row { - background: #f5f5f5; -} - -.mat-row:active, .mat-row.example-selected-row { - background: #eaeaea; -} - -.mat-table { - overflow: auto; - max-height: 500px; -}*/ -/* Structure */ -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - width : 80%; - margin : 20px auto; -} - -.example-header { - min-height: 64px; - padding: 8px 24px 0; -} - -//mat-cell{ -.cell{ - display:flex !important; - justify-content:center!important; - -} - -// mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; -} - - -table { - width: 100%; -} - -th { - text-align: left; -} - diff --git a/ng6-seed/src/app/settings/masters/component/title/title-list/title-list.component.ts b/ng6-seed/src/app/settings/masters/component/title/title-list/title-list.component.ts deleted file mode 100644 index 5373d3e..0000000 --- a/ng6-seed/src/app/settings/masters/component/title/title-list/title-list.component.ts +++ /dev/null @@ -1,112 +0,0 @@ -// import { Component, OnInit } from '@angular/core'; -// import { MatDialog, MatPaginator, MatTableDataSource } from '@angular/material'; - -import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { MatDialog, MatDialogRef, MatDialogConfig,MatPaginator, MatSort,MatTableDataSource } from '@angular/material'; - -import { Observable, Subject } from 'rxjs'; -import { Http, Response } from '@angular/http'; -import 'rxjs/add/operator/map'; - -import { DataSource } from '@angular/cdk/collections'; -import { map } from 'rxjs/operators'; -import { of as observableOf, merge } from 'rxjs'; - - -import { MastersService } from '../../../../service/masters/masters.service'; -import { TitleDialogComponent } from '../title-dialog/title-dialog.component'; -import { Title } from '../../../model/title'; - -@Component({ - selector: 'app-title-list', - templateUrl: './title-list.component.html', - styleUrls: ['./title-list.component.scss'] -}) -export class TitleListComponent implements OnInit { - - isPopupOpened = true; - loader: boolean = false; - TitleList: any = []; - - - - constructor(private dialog: MatDialog, - private _MastersService: MastersService) { } - - displayedColumns = ['title_id','name','createdon','fk_createdby','updatedon','isactive','fk_updatedby','actions']; - - //title_id, name, createdon, fk_createdby, updatedon, fk_updatedby, isactive - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - dataSource = new UserDataSource(this._MastersService); - - - // get TitleList() { - // return this._MastersService.getAllTitle(); - // } - - - ngOnInit() { - this.getTitle(); - } - - - addTitle() { - this.isPopupOpened = true; - const dialogRef = this.dialog.open(TitleDialogComponent , { - data: {} - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - editTitle(arr : any) { - this.isPopupOpened = true; - //const contact = this._MastersService.getAllTitle().find(c => c.ID === id); - const dialogRef = this.dialog.open(TitleDialogComponent , { - data: arr - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - //To get data for listing - getTitle() { - this.loader = true; - this._MastersService.getAllMasterData('TITLES').subscribe(dataresult => { - - this.loader = false; - - if (dataresult.dataStatus  === true) { - this.TitleList = dataresult.records; - } - }) - - } - - deleteTitle(id: number) { - var PrimaryKeyWithValue ={'title_id':id}; - this._MastersService.deleteMasterDetails(PrimaryKeyWithValue,'TITLES'); - //this._MastersService.deleteMasterDetails('title_id',id,'TITLES'); - } -} - -export class UserDataSource extends DataSource { - - constructor(private _ts:MastersService ) { - super(); - } - - connect(): Observable { - //return this.userService.getUser(); - return this._ts.getAllMasterData('TITLES'); - } - disconnect() {} -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/type-of-activity/activity-dialog/activity-dialog.component.html b/ng6-seed/src/app/settings/masters/component/type-of-activity/activity-dialog/activity-dialog.component.html deleted file mode 100644 index 4e6b095..0000000 --- a/ng6-seed/src/app/settings/masters/component/type-of-activity/activity-dialog/activity-dialog.component.html +++ /dev/null @@ -1,41 +0,0 @@ - - -
-
Type of activity
-
-
-
- - -
- -
- - -
- - - You must include a Name. - - -
-
-
- - - -
- -
-
- -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/type-of-activity/activity-dialog/activity-dialog.component.scss b/ng6-seed/src/app/settings/masters/component/type-of-activity/activity-dialog/activity-dialog.component.scss deleted file mode 100644 index 3e80f0d..0000000 --- a/ng6-seed/src/app/settings/masters/component/type-of-activity/activity-dialog/activity-dialog.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -mat-form-field{ - width:100%; -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/type-of-activity/activity-dialog/activity-dialog.component.ts b/ng6-seed/src/app/settings/masters/component/type-of-activity/activity-dialog/activity-dialog.component.ts deleted file mode 100644 index 2ae6826..0000000 --- a/ng6-seed/src/app/settings/masters/component/type-of-activity/activity-dialog/activity-dialog.component.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; - -import { MastersService } from '../../../../service/masters/masters.service'; - - -@Component({ - selector: 'app-jazz-dialog', - templateUrl: './activity-dialog.component.html', - styleUrls: ['./activity-dialog.component.scss'] -}) -export class ActivityDialogComponent implements OnInit { - - public _activityMasterForm: FormGroup; - - constructor(private _formBuilder: FormBuilder, - private dialogRef: MatDialogRef, - private _MastersService: MastersService, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onNoClick(): void { - this.dialogRef.close(); - } - - ngOnInit() { - - this._activityMasterForm = this._formBuilder.group({ - type_of_activity_id: [this.data.type_of_activity_id], - name: [this.data.name, Validators.compose([Validators.required])] - }); - //console.log(this._activityMasterForm); - } - - onSubmit() { - if(isNaN(this.data.type_of_activity_id)) { - var my_array = this._activityMasterForm.value; - Object.keys(my_array).forEach((key) => ( my_array[key] == null) && delete my_array[key]); - console.log(my_array); - this._MastersService.addMasterDetails(my_array,'TYPEOFACTIVITY').subscribe(); - this.dialogRef.close(); - alert("saved"); - } else { - - this._MastersService.editMasterDetails(this._activityMasterForm.value,'TYPEOFACTIVITY').subscribe(); - this.dialogRef.close(); - alert("edited"); - } - } - - // onSubmit() { - // if (isNaN(this.data.ID)) { - // this._MastersService.addActivity(this._activityMasterForm.value); - // this.dialogRef.close(); - // } else { - // this._MastersService.editActivity(this._activityMasterForm.value); - // this.dialogRef.close(); - // } - // } - - onReset(){ - this._activityMasterForm.reset(); - } -} diff --git a/ng6-seed/src/app/settings/masters/component/type-of-activity/activity-list/activity-list.component.html b/ng6-seed/src/app/settings/masters/component/type-of-activity/activity-list/activity-list.component.html deleted file mode 100644 index da8b1ad..0000000 --- a/ng6-seed/src/app/settings/masters/component/type-of-activity/activity-list/activity-list.component.html +++ /dev/null @@ -1,79 +0,0 @@ - -
- -
-
-
- -
- -
- - - - - - - - - - - - - - - -
#Activity NameIsactiveAction
No Records
{{i+1}}{{AL.name}}{{AL.isactive}} - edit - delete_outline -
- -
- - - - - -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/type-of-activity/activity-list/activity-list.component.scss b/ng6-seed/src/app/settings/masters/component/type-of-activity/activity-list/activity-list.component.scss deleted file mode 100644 index 49827eb..0000000 --- a/ng6-seed/src/app/settings/masters/component/type-of-activity/activity-list/activity-list.component.scss +++ /dev/null @@ -1,118 +0,0 @@ -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - } - - .example-header { - min-height: 64px; - padding: 8px 24px 0; - } - - //mat-cell{ - .cell{ - display:flex !important; - justify-content:center!important; - - } - - // mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; - }*/ - - -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 300px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-input-container { - font-size: 14px; - flex-grow: 1; - margin-left: 32px; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -/** Selection styles -.example-selection-header { - font-size: 18px; - background: rgba(255, 64, 129, 0.3); - border-bottom: 1px solid #d696ac; -} - -.mat-column-select { - max-width: 54px; -} - -.mat-row:hover, .example-selected-row { - background: #f5f5f5; -} - -.mat-row:active, .mat-row.example-selected-row { - background: #eaeaea; -} - -.mat-table { - overflow: auto; - max-height: 500px; -}*/ -/* Structure */ -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - width : 80%; - margin : 20px auto; -} - -.example-header { - min-height: 64px; - padding: 8px 24px 0; -} - -//mat-cell{ -.cell{ - display:flex !important; - justify-content:center!important; - -} - -// mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; -} - - -table { - width: 100%; -} - -th { - text-align: left; -} - diff --git a/ng6-seed/src/app/settings/masters/component/type-of-activity/activity-list/activity-list.component.ts b/ng6-seed/src/app/settings/masters/component/type-of-activity/activity-list/activity-list.component.ts deleted file mode 100644 index 2bf542b..0000000 --- a/ng6-seed/src/app/settings/masters/component/type-of-activity/activity-list/activity-list.component.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { MatDialog, MatDialogRef, MatDialogConfig,MatPaginator, MatSort,MatTableDataSource } from '@angular/material'; - -import { Observable, Subject } from 'rxjs'; -import { Http, Response } from '@angular/http'; -import 'rxjs/add/operator/map'; - -import { DataSource } from '@angular/cdk/collections'; -import { map } from 'rxjs/operators'; -import { of as observableOf, merge } from 'rxjs'; - - -import { MastersService } from '../../../../service/masters/masters.service'; -import { ActivityDialogComponent } from '../activity-dialog/activity-dialog.component'; -import { Activity } from '../../../model/activity'; - -@Component({ - selector: 'app-activity-list', - templateUrl: './activity-list.component.html', - styleUrls: ['./activity-list.component.scss'] -}) -export class ActivityListComponent implements OnInit { - - isPopupOpened = true; - loader: boolean = false; - ActivityList: any = []; - - displayedColumns = ['type_of_activity_id', 'name', 'createdon', 'fk_createdby', 'updatedon', 'fk_updatedby', 'isactive','actions']; - - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - constructor(private dialog: MatDialog, - private _MastersService: MastersService) { } - - dataSource = new UserDataSource(this._MastersService); - - ngOnInit() { - this.getActivity(); - } - - - addActivity() { - this.isPopupOpened = true; - const dialogRef = this.dialog.open(ActivityDialogComponent, { - data: {} - }); - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - - editActivity(arr: any[]) { - this.isPopupOpened = true; - //const contact = this._MastersService.getAllActivity().find(c => c.ID === id); - const dialogRef = this.dialog.open(ActivityDialogComponent, { - data: arr - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - //To get data for listing - getActivity() { - this.loader = true; - this._MastersService.getAllMasterData('TYPEOFACTIVITY').subscribe(dataresult => { - - this.loader = false; - - if (dataresult.dataStatus  === true) { - this.ActivityList = dataresult.records; - } - }) - - } - - - deleteActivity(id: number) { - var PrimaryKeyWithValue ={'type_of_activity_id':id}; - this._MastersService.deleteMasterDetails(PrimaryKeyWithValue,'TYPEOFACTIVITY'); - //this._MastersService.deleteMasterDetails('type_of_activity_id',id,'TYPEOFACTIVITY').subscribe(); - } - -} - - -export class UserDataSource extends DataSource { - - - constructor(private _as:MastersService) { - super(); - } - - connect(): Observable { - //return this.userService.getUser(); - return this._as.getAllMasterData('TYPEOFACTIVITY'); - } - disconnect() {} -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/uom/uom-dialog/uom-dialog.component.html b/ng6-seed/src/app/settings/masters/component/uom/uom-dialog/uom-dialog.component.html deleted file mode 100644 index 0fe11fc..0000000 --- a/ng6-seed/src/app/settings/masters/component/uom/uom-dialog/uom-dialog.component.html +++ /dev/null @@ -1,40 +0,0 @@ - -
-
Unit of Measurement
-
-
-
- - -
- -
- - -
- - - You must include a Name. - - -
-
-
- - - -
- -
-
- -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/uom/uom-dialog/uom-dialog.component.spec.ts b/ng6-seed/src/app/settings/masters/component/uom/uom-dialog/uom-dialog.component.spec.ts deleted file mode 100644 index d38e5da..0000000 --- a/ng6-seed/src/app/settings/masters/component/uom/uom-dialog/uom-dialog.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { UomDialogComponent } from './uom-dialog.component'; - -describe('UomDialogComponent', () => { - let component: UomDialogComponent; - let fixture: ComponentFixture; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ UomDialogComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(UomDialogComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/component/uom/uom-dialog/uom-dialog.component.ts b/ng6-seed/src/app/settings/masters/component/uom/uom-dialog/uom-dialog.component.ts deleted file mode 100644 index 07b60fd..0000000 --- a/ng6-seed/src/app/settings/masters/component/uom/uom-dialog/uom-dialog.component.ts +++ /dev/null @@ -1,65 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; -import { MastersService } from '../../../../service/masters/masters.service'; - -@Component({ - selector: 'app-jazz-dialog', - templateUrl: './uom-dialog.component.html', - styleUrls: ['./uom-dialog.component.scss'] -}) -export class UomDialogComponent implements OnInit { - - - public _uomForm: FormGroup; - - constructor(private _formBuilder: FormBuilder, - private dialogRef: MatDialogRef, - private _mastersService: MastersService, - @Inject(MAT_DIALOG_DATA) public data: any) { } - - onNoClick(): void { - this.dialogRef.close(); - } - - ngOnInit() { - - this._uomForm = this._formBuilder.group({ - // ID: [this.data.ID], - // Name: [this.data.Name, Validators.compose([Validators.required])] - // uom_id, name, createdon, fk_createdby, updatedon, fk_updatedby, isactive - uom_id: [this.data.uom_id], - name: [this.data.name, Validators.compose([Validators.required])] - }); - //console.log(this._UomForm); - } - - // onSubmit() { - // if (isNaN(this.data.ID)) { - // this._mastersService.addUom(this._uomForm.value); - // this.dialogRef.close(); - // } else { - // this._mastersService.editUom(this._uomForm.value); - // this.dialogRef.close(); - // } - // } - - onSubmit() { - if(isNaN(this.data.subproduct_id)) { - var my_array = this._uomForm.value; - Object.keys(my_array).forEach((key) => ( my_array[key] == null) && delete my_array[key]); - console.log(my_array); - this._mastersService.addMasterDetails(my_array,'UOM').subscribe(); - this.dialogRef.close(); - alert("saved"); - } else { - this._mastersService.editMasterDetails(this._uomForm.value,'UOM').subscribe(); - this.dialogRef.close(); - alert("edited"); - } - } - - onReset(){ - this._uomForm.reset(); - } -} diff --git a/ng6-seed/src/app/settings/masters/component/uom/uom-list/uom-list.component.html b/ng6-seed/src/app/settings/masters/component/uom/uom-list/uom-list.component.html deleted file mode 100644 index 01db74d..0000000 --- a/ng6-seed/src/app/settings/masters/component/uom/uom-list/uom-list.component.html +++ /dev/null @@ -1,79 +0,0 @@ - -
- -
-
-
- -
- -
- - - - - - - - - - - - - - - -
#UOMIsActiveAction
No Records
{{i+1}}{{UL.name}}{{UL.isactive}} - edit - delete_outline -
- -
- - - -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/uom/uom-list/uom-list.component.scss b/ng6-seed/src/app/settings/masters/component/uom/uom-list/uom-list.component.scss deleted file mode 100644 index 6255571..0000000 --- a/ng6-seed/src/app/settings/masters/component/uom/uom-list/uom-list.component.scss +++ /dev/null @@ -1,118 +0,0 @@ -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - } - - .example-header { - min-height: 64px; - padding: 8px 24px 0; - } - - //mat-cell{ - .cell{ - display:flex !important; - justify-content:center!important; - - } - - // mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; - }*/ - - - -/* Structure -.example-container { - display: flex; - flex-direction: column; - min-width: 300px; -} - -.example-header { - min-height: 56px; - max-height: 56px; - display: flex; - align-items: center; - padding: 8px 24px 0; - font-size: 20px; - justify-content: space-between; - border-bottom: 1px solid transparent; -} - -.mat-input-container { - font-size: 14px; - flex-grow: 1; - margin-left: 32px; - margin-top: 8px; -} - -.example-no-results { - display: flex; - justify-content: center; - padding: 24px; - font-size: 12px; - font-style: italic; -} - -/** Selection styles -.example-selection-header { - font-size: 18px; - background: rgba(255, 64, 129, 0.3); - border-bottom: 1px solid #d696ac; -} - -.mat-column-select { - max-width: 54px; -} - -.mat-row:hover, .example-selected-row { - background: #f5f5f5; -} - -.mat-row:active, .mat-row.example-selected-row { - background: #eaeaea; -} - -.mat-table { - overflow: auto; - max-height: 500px; -}*/ -/* Structure */ -.example-container { - display: flex; - flex-direction: column; - min-width: 30px; - width : 80%; - margin : 20px auto; -} - -.example-header { - min-height: 64px; - padding: 8px 24px 0; -} - -//mat-cell{ -.cell{ - display:flex !important; - justify-content:center!important; - -} - -// mat-header-cell { - .header-cell{ - display:flex; - justify-content:center; -} - - -table { - width: 100%; -} - -th { - text-align: left; -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/uom/uom-list/uom-list.component.ts b/ng6-seed/src/app/settings/masters/component/uom/uom-list/uom-list.component.ts deleted file mode 100644 index 53e449b..0000000 --- a/ng6-seed/src/app/settings/masters/component/uom/uom-list/uom-list.component.ts +++ /dev/null @@ -1,115 +0,0 @@ -// import { Component, OnInit } from '@angular/core'; -// import { MatDialog, MatPaginator, MatTableDataSource } from '@angular/material'; - -import { Component, OnInit, OnDestroy, ViewChild } from '@angular/core'; -import { MatDialog, MatDialogRef, MatDialogConfig,MatPaginator, MatSort,MatTableDataSource } from '@angular/material'; - -import { Observable, Subject } from 'rxjs'; -import { Http, Response } from '@angular/http'; -import 'rxjs/add/operator/map'; - -import { DataSource } from '@angular/cdk/collections'; -import { map } from 'rxjs/operators'; -import { of as observableOf, merge } from 'rxjs'; - - -import { MastersService } from '../../../../service/masters/masters.service'; -import { UomDialogComponent } from '../uom-dialog/uom-dialog.component'; -import { Uom } from '../../../model/uom'; - - - -@Component({ - selector: 'app-uom-list', - templateUrl: './uom-list.component.html', - styleUrls: ['./uom-list.component.scss'] -}) -export class UomListComponent implements OnInit { - - isPopupOpened = true; - loader: boolean = false; - UOMList: any = []; - - constructor(private dialog: MatDialog, - private _MastersService: MastersService) { } - - // get UOMList() { - // return this._MastersService.getAllUom(); - // } - - ngOnInit() { - this.getUOM(); - } - - displayedColumns = ['uom_id','name','createdon','fk_createdby','updatedon','isactive','fk_updatedby','actions']; - //uom_id, name, createdon, fk_createdby, updatedon, fk_updatedby, isactive - - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - dataSource = new UserDataSource(this._MastersService); - - - addUOM() { - this.isPopupOpened = true; - const dialogRef = this.dialog.open( UomDialogComponent, { - data: {} - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - editUOM(arr : any) { - this.isPopupOpened = true; - // const contact = this._MastersService.getAllUom().find(c => c.ID === id); - const dialogRef = this.dialog.open( UomDialogComponent, { - data: arr - }); - - - dialogRef.afterClosed().subscribe(result => { - this.isPopupOpened = false; - }); - } - - //To get data for listing - getUOM() { - this.loader = true; - this._MastersService.getAllMasterData('UOM').subscribe(dataresult => { - - this.loader = false; - - if (dataresult.dataStatus  === true) { - this.UOMList = dataresult.records; - } - }) - - } - - - deleteUOM(id: number) { - var PrimaryKeyWithValue ={'uom_id':id}; - this._MastersService.deleteMasterDetails(PrimaryKeyWithValue,'UOM'); - //this._MastersService.deleteMasterDetails('uom_id',id,'UOM'); - } -} - - -export class UserDataSource extends DataSource { - - constructor(private _us:MastersService ) { - super(); - } - - connect(): Observable { - //return this.userService.getUser(); - return this._us.getAllMasterData('UOM'); - } - disconnect() {} -} - - - diff --git a/ng6-seed/src/app/settings/masters/masters.component.html b/ng6-seed/src/app/settings/masters/masters.component.html deleted file mode 100644 index 9395514..0000000 --- a/ng6-seed/src/app/settings/masters/masters.component.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - Master Details - Pickup the Master to View Master Detail - - - - -
-
- - - - - - -
- - - - - {{master.name}} - - - - -
- - - -
- -
- -
- -
- - -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
- - - -
\ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/masters.component.scss b/ng6-seed/src/app/settings/masters/masters.component.scss deleted file mode 100644 index 3e80f0d..0000000 --- a/ng6-seed/src/app/settings/masters/masters.component.scss +++ /dev/null @@ -1,3 +0,0 @@ -mat-form-field{ - width:100%; -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/masters.component.ts b/ng6-seed/src/app/settings/masters/masters.component.ts deleted file mode 100644 index 361c026..0000000 --- a/ng6-seed/src/app/settings/masters/masters.component.ts +++ /dev/null @@ -1,198 +0,0 @@ -//import { Component, OnInit } from '@angular/core'; -//import { FormControl } from '@angular/forms'; -//import { startWith } from 'rxjs/operators'; - - - import { AfterViewInit, Component, OnDestroy, OnInit, ViewChild } from '@angular/core'; - import { FormControl, FormGroup, FormBuilder } from '@angular/forms'; - import { ReplaySubject } from 'rxjs'; - import { MatSelect } from '@angular/material'; - import { Subject } from 'rxjs'; - import { take, takeUntil } from 'rxjs/operators'; - - import { MastersService } from './../service/masters/masters.service' - - export interface Master { - id: string; - name: string; - } - - // export interface Master { - // master_id: string; - // master_name: string; - // } - - - -// export interface masterArray { -// value: string; -// viewValue: string; -// } - -@Component({ - selector: 'app-masters', - templateUrl: './masters.component.html', - styleUrls: ['./masters.component.scss'] -}) -export class MastersComponent implements OnInit { - - /* Normal Search Code - pickUpMasterData : string; - - constructor() {} - - For Master Dropdown Elements - masterArray = [{ code: 'master-1', viewValue: 'Industry Classfication' }, - { code: 'master-2', viewValue: 'Product'}, - { code: 'master-3', viewValue: 'Sub Product'} - ]; - - ngOnInit() {}*/ - - - -/* AutoComplete Code - stateCtrl: FormControl; - currentState = ''; - - reactiveStates: any; - tdStates: any[]; - - tdDisabled = false; - - tdAuto: string; - - reactiveAuto: string; - - masterArray = [{ code: 'master-1', viewValue: 'Industry Classfication' }, - { code: 'master-2', viewValue: 'Product'}, - { code: 'master-3', viewValue: 'Sub Product'} - ]; - - constructor() { - this.tdStates = this.masterArray; - //this.reactiveStates = this.stateCtrl.valueChanges; - } - - - filterStates(val: string) { - return val ? this.masterArray.filter((s) => s.viewValue.match(new RegExp(val, 'gi'))) : this.masterArray; - }*/ - - /* Select Search Code - /** control for the selected bank */ - public masterCtrl: FormControl = new FormControl(); - - - /** control for the MatSelect filter keyword */ - public masterFilterCtrl: FormControl = new FormControl(); - - //masters: Master[]; - - constructor(private _MastersService: MastersService) - { - // this._MastersService.getAllMasterData('LISTOFMASTERS') - // .subscribe(result => this.masters = result); - // console.log(this.masters); - // console.log(this._MastersService.getAllMasterData('LISTOFMASTERS').subscribe()); - } - - /** list of masters */ - - private masters: Master[] = [ - {id: 'master-1',name: 'Industry Classfication'}, - {id: 'master-2',name: 'Branch'}, - {id: 'master-3',name: 'Title'}, - {id: 'master-4',name: 'Relation Ship'}, - {id: 'master-5',name: 'Product'}, - {id: 'master-6',name: 'Sub Product'}, - {id: 'master-7',name: 'Occupation of Non earning members'}, - {id: 'master-8',name: 'Type of activity'}, - {id: 'master-9',name: 'Unit of Measurement'}, - {id: 'master-10',name: 'Frequency'}, - {id: 'master-11',name: 'Approach to PD location'}, - {id: 'master-12',name: 'Comments on locality'}, - {id: 'master-13',name: 'Customer Behaviour'}, - {id: 'master-14',name: 'Customer Segment'}, - {id: 'master-15',name: 'Designation'}, - {id: 'master-16',name: 'PD Allocation Type'}, - {id: 'master-17',name: 'PD Type'}, - {id: 'master-18',name: 'Company Details'}, - {id: 'master-19',name: 'City'}, - {id: 'master-20',name: 'States'}, - {id: 'master-21',name: 'Regions'}, - {id: 'master-22',name: 'Lender Hierarchy'} - ]; - - /** list of masters filtered by search keyword */ - public filteredMasters: ReplaySubject = new ReplaySubject(1); - - - @ViewChild('singleSelect') singleSelect: MatSelect; - - /** Subject that emits when the component has been destroyed. */ - private _onDestroy = new Subject(); - - ngOnInit() { - - // this._MastersService.getAllMasterData('LISTOFMASTERS').subscribe((data:Master[]) => { - // this.masters = data; - // console.log(this.masters); - // }); - console.log(this.masters); - // load the initial master list - this.filteredMasters.next(this.masters.slice()); - - // listen for search field value changes - this.masterFilterCtrl.valueChanges - .pipe(takeUntil(this._onDestroy)) - .subscribe(() => { - this.filterMasters(); - }); - - } - - ngAfterViewInit() { - //this.setInitialValue(); - } - - ngOnDestroy() { - this._onDestroy.next(); - this._onDestroy.complete(); - } - - // /** - // * Sets the initial value after the filteredMasters are loaded initially - // */ - // private setInitialValue() { - // this.filteredMasters - // .pipe(take(1), takeUntil(this._onDestroy)) - // .subscribe(() => { - // // setting the compareWith property to a comparison function - // // triggers initializing the selection according to the initial value of - // // the form control (i.e. _initializeSelection()) - // // this needs to be done after the filteredBanks are loaded initially - // // and after the mat-option elements are available - // this.singleSelect.compareWith = (a: Bank, b: Bank) => a.id === b.id; - // }); - // } - - private filterMasters() { - if (!this.masters) { - return; - } - // get the search keyword - let search = this.masterFilterCtrl.value; - if (!search) { - this.filteredMasters.next(this.masters.slice()); - return; - } else { - search = search.toLowerCase(); - } - // filter the masters - this.filteredMasters.next( - this.masters.filter(master => master.name.toLowerCase().indexOf(search) > -1) - ); - } - -} diff --git a/ng6-seed/src/app/settings/masters/masters.module.spec.ts b/ng6-seed/src/app/settings/masters/masters.module.spec.ts deleted file mode 100644 index d726fe8..0000000 --- a/ng6-seed/src/app/settings/masters/masters.module.spec.ts +++ /dev/null @@ -1,14 +0,0 @@ - -import { MastersModule } from './masters.module'; - -describe('MastersModule', () => { - let mastersModule: MastersModule; - - beforeEach(() => { - mastersModule = new MastersModule(); - }); - - it('should create an instance', () => { - expect(mastersModule).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/masters/masters.module.ts b/ng6-seed/src/app/settings/masters/masters.module.ts deleted file mode 100644 index 78ec998..0000000 --- a/ng6-seed/src/app/settings/masters/masters.module.ts +++ /dev/null @@ -1,184 +0,0 @@ -import { NgModule } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { CommonModule } from '@angular/common'; -import { HttpClientModule } from '@angular/common/http' -import { HttpModule } from '@angular/http'; - -import { - MatCardModule, - MatIconModule, - MatInputModule, - MatRadioModule, - MatButtonModule,MatTableModule,MatPaginatorModule, - MatProgressBarModule,MatDialogModule, MatSortModule, - MatToolbarModule,MatSelectModule } from '@angular/material'; - -import { DemoMaterialModule } from '../../shared/demo.module'; -import { FormsModule, ReactiveFormsModule } from '@angular/forms'; -import { FileUploadModule } from 'ng2-file-upload/ng2-file-upload'; - - -import { NgxMatSelectSearchModule } from 'ngx-mat-select-search'; -import { NgxDatatableModule } from '@swimlane/ngx-datatable'; -import { FlexLayoutModule } from '@angular/flex-layout'; - -import 'hammerjs'; - -/** Master Main Component */ -import { MastersComponent } from './masters.component'; - -/** Master Child Component - For Listing screen*/ -import { IndustryClassificationListComponent } from './component/industry_classification/industry_classification-list/industry_classification-list.component'; -import { ProductListComponent } from './component/product/product-list/product-list.component'; -import { SubProductListComponent } from './component/sub-product/sub-product-list/sub-product-list.component'; -import { BranchListComponent } from './component/branch/branch-list/branch-list.component'; -import { TitleListComponent } from './component/title/title-list/title-list.component'; -import { RelationShipListComponent } from './component/relation-ship/relation-ship-list/relation-ship-list.component'; -import { MembersOccupationListComponent } from './component/members-occupation/members-occupation-list/members-occupation-list.component'; -import { ActivityListComponent } from './component/type-of-activity/activity-list/activity-list.component'; -import { UomListComponent } from './component/uom/uom-list/uom-list.component'; -import { FrequencyListComponent } from './component/frequency/frequency-list/frequency-list.component'; -import { StatesListComponent } from './component/states/states-list/states-list.component'; -import { CityListComponent } from './component/city/city-list/city-list.component'; -import { CompanyListComponent } from './component/company/company-list/company-list.component'; -import { CustomerSegmentListComponent } from './component/customer-segment/customer-segment-list/customer-segment-list.component'; -import { CustomerBehaviourListComponent } from './component/customer-behaviour/customer-behaviour-list/customer-behaviour-list.component'; -import { DesignationListComponent } from './component/designation/designation-list/designation-list.component'; -import { RegionsListComponent } from './component/regions/regions-list/regions-list.component'; -import { CommentsOnLocalityListComponent } from './component/comments-on-locality/comments-on-locality-list/comments-on-locality-list.component'; -import { PdAllocationTypeListComponent } from './component/pd/pd-allocation-type-list/pd-allocation-type-list.component'; -import { PdLocationApproachListComponent } from './component/pd/pd-location-approach-list/pd-location-approach-list.component'; -import { PdTypeListComponent } from './component/pd/pd-type-list/pd-type-list.component'; -import { LenderHierarchyListComponent } from './component/lender-hierarchy/lender-hierarchy-list/lender-hierarchy-list.component'; - -/** Master Child Component - For Dialogboxes*/ -import { ProductDialogComponent } from './component/product/product-dialog/product-dialog.component'; -import { IndustryClassificationDialogComponent } from './component/industry_classification/industry_classification-dialog/industry_classification-dialog.component'; -import { SubProductDialogComponent } from './component/sub-product/sub-product-dialog/sub-product-dialog.component'; -import { BranchDialogComponent } from './component/branch/branch-dialog/branch-dialog.component'; -import { TitleDialogComponent } from './component/title/title-dialog/title-dialog.component'; -import { RelationShipDialogComponent } from './component/relation-ship/relation-ship-dialog/relation-ship-dialog.component'; -import { MembersOccupationDialogComponent } from './component/members-occupation/members-occupation-dialog/members-occupation-dialog.component'; -import { ActivityDialogComponent } from './component/type-of-activity/activity-dialog/activity-dialog.component'; -import { UomDialogComponent } from './component/uom/uom-dialog/uom-dialog.component'; -import { FrequencyDialogComponent } from './component/frequency/frequency-dialog/frequency-dialog.component'; -import { PdTypeDialogComponent } from './component/pd/pd-type-dialog/pd-type-dialog.component'; -import { PdLocationApproachDialogComponent } from './component/pd/pd-location-approach-dialog/pd-location-approach-dialog.component'; -import { PdAllocationTypeDialogComponent } from './component/pd/pd-allocation-type-dialog/pd-allocation-type-dialog.component'; -import { LenderHierarchyDialogComponent } from './component/lender-hierarchy/lender-hierarchy-dialog/lender-hierarchy-dialog.component'; -import { CommentsOnLocalityDialogComponent } from './component/comments-on-locality/comments-on-locality-dialog/comments-on-locality-dialog.component'; -import { DesignationDialogComponent } from './component/designation/designation-dialog/designation-dialog.component'; -import { CustomerBehaviourDialogComponent } from './component/customer-behaviour/customer-behaviour-dialog/customer-behaviour-dialog.component'; -import { CustomerSegmentDialogComponent } from './component/customer-segment/customer-segment-dialog/customer-segment-dialog.component'; -import { StatesDialogComponent } from './component/states/states-dialog/states-dialog.component'; -import { CompanyDialogComponent } from './component/company/company-dialog/company-dialog.component'; -import { CityDialogComponent } from './component/city/city-dialog/city-dialog.component'; -import { RegionsDialogComponent } from './component/regions/regions-dialog/regions-dialog.component'; - -/** Master Routes */ -import { MastersRoutes } from './masters.routing'; - -/** Master Service */ -import { MastersService } from '../service/masters/masters.service'; - - - -@NgModule({ - imports: [ - CommonModule, - FormsModule, ReactiveFormsModule, - RouterModule.forChild(MastersRoutes), - MatCardModule, - MatIconModule, - MatInputModule, - MatRadioModule, - MatButtonModule, - MatTableModule, - MatPaginatorModule, - MatProgressBarModule, - MatDialogModule, - MatSortModule, - MatToolbarModule, - MatSelectModule, - FlexLayoutModule, - FileUploadModule, - NgxMatSelectSearchModule, - NgxDatatableModule, - MatSortModule - ], - declarations: [MastersComponent, - IndustryClassificationListComponent, - ProductListComponent, - SubProductListComponent, - BranchListComponent, - TitleListComponent, - RelationShipListComponent, - MembersOccupationListComponent, - ActivityListComponent, - UomListComponent, - FrequencyListComponent, - StatesListComponent, - CityListComponent, - CompanyListComponent, - CustomerSegmentListComponent, - CustomerBehaviourListComponent, - DesignationListComponent, - RegionsListComponent, - CommentsOnLocalityListComponent, - PdAllocationTypeListComponent, - PdLocationApproachListComponent, - PdTypeListComponent, - LenderHierarchyListComponent, - - ProductDialogComponent, - IndustryClassificationDialogComponent, - SubProductDialogComponent, - BranchDialogComponent, - TitleDialogComponent, - RelationShipDialogComponent, - MembersOccupationDialogComponent, - ActivityDialogComponent, - UomDialogComponent, - FrequencyDialogComponent, - PdTypeDialogComponent, - PdLocationApproachDialogComponent, - PdAllocationTypeDialogComponent, - LenderHierarchyDialogComponent, - CommentsOnLocalityDialogComponent, - DesignationDialogComponent, - CustomerBehaviourDialogComponent, - CustomerSegmentDialogComponent, - StatesDialogComponent, - CompanyDialogComponent, - CityDialogComponent, - RegionsDialogComponent], - - providers: [ MastersService ], - - entryComponents: [ - IndustryClassificationDialogComponent, - ProductDialogComponent, - SubProductDialogComponent, - BranchDialogComponent, - TitleDialogComponent, - RelationShipDialogComponent, - MembersOccupationDialogComponent, - ActivityDialogComponent, - UomDialogComponent, - FrequencyDialogComponent, - PdTypeDialogComponent, - PdLocationApproachDialogComponent, - PdAllocationTypeDialogComponent, - LenderHierarchyDialogComponent, - CommentsOnLocalityDialogComponent, - DesignationDialogComponent, - CustomerBehaviourDialogComponent, - CustomerSegmentDialogComponent, - StatesDialogComponent, - CompanyDialogComponent, - CityDialogComponent, - RegionsDialogComponent], - - -}) -export class MastersModule { } \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/masters.routing.ts b/ng6-seed/src/app/settings/masters/masters.routing.ts deleted file mode 100755 index c80a026..0000000 --- a/ng6-seed/src/app/settings/masters/masters.routing.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Routes } from '@angular/router'; -import { MastersComponent } from './masters.component'; - - -export const MastersRoutes: Routes = [ -{ - - path: '', - component: MastersComponent - //component: IndustryMasterListComponent - -}]; diff --git a/ng6-seed/src/app/settings/masters/model/activity.ts b/ng6-seed/src/app/settings/masters/model/activity.ts deleted file mode 100644 index a431ed1..0000000 --- a/ng6-seed/src/app/settings/masters/model/activity.ts +++ /dev/null @@ -1,11 +0,0 @@ -export class Activity { - - type_of_activity_id: any; - name: any; - createdon: any; - fk_createdby: any; - updatedon: any; - fk_updatedby: any; - isactive: any; - -} diff --git a/ng6-seed/src/app/settings/masters/model/branch.ts b/ng6-seed/src/app/settings/masters/model/branch.ts deleted file mode 100644 index 34b4214..0000000 --- a/ng6-seed/src/app/settings/masters/model/branch.ts +++ /dev/null @@ -1,24 +0,0 @@ -export class Branch { - // ID: number; - // CityID: string; - // Name: string; - branch_id: any; - fk_city_id: any; - name: any; - createdon: any; - fk_createdby: any; - updatedon: any; - fk_updatedby: any; - isactive: any; -} -export class States { - state_id: any; - name: any; - isactive: any; -} -export class City { - city_id: any; - name: any; - isactive: any; -} - diff --git a/ng6-seed/src/app/settings/masters/model/city.ts b/ng6-seed/src/app/settings/masters/model/city.ts deleted file mode 100644 index ab95b08..0000000 --- a/ng6-seed/src/app/settings/masters/model/city.ts +++ /dev/null @@ -1,4 +0,0 @@ -export class City { - - city_id: any; fk_state_id: any; name: any; createdon: any; fk_createdby: any; updatedon: any; fk_updatedby: any; isactive: any; -} diff --git a/ng6-seed/src/app/settings/masters/model/comments-on-locality.ts b/ng6-seed/src/app/settings/masters/model/comments-on-locality.ts deleted file mode 100644 index acccd90..0000000 --- a/ng6-seed/src/app/settings/masters/model/comments-on-locality.ts +++ /dev/null @@ -1,3 +0,0 @@ -export class CommentsOnLocality { - comments_on_locality_id: any; rating: any; createdon: any; fk_createdby: any; updatedon: any; fk_updatedby: any; isactive: any; -} diff --git a/ng6-seed/src/app/settings/masters/model/company.ts b/ng6-seed/src/app/settings/masters/model/company.ts deleted file mode 100644 index 40a4977..0000000 --- a/ng6-seed/src/app/settings/masters/model/company.ts +++ /dev/null @@ -1,3 +0,0 @@ -export class Company { - company_id: any; name: any; addressline1: any; addressline2: any; pincode: any; logo: any; company_master_createdon: any; fk_createdby: any; updatedon: any; fk_updatedby: any; addressline3: any; state: any; city: any; -} diff --git a/ng6-seed/src/app/settings/masters/model/customer-behaviour.ts b/ng6-seed/src/app/settings/masters/model/customer-behaviour.ts deleted file mode 100644 index f8c1d90..0000000 --- a/ng6-seed/src/app/settings/masters/model/customer-behaviour.ts +++ /dev/null @@ -1,4 +0,0 @@ -export class CustomerBehaviour { - - customer_behaviour_id: any; description: any; createdon: any; fk_createdby: any; updatedon: any; fk_updatedby: any; isactive: any; -} diff --git a/ng6-seed/src/app/settings/masters/model/customer-segment.ts b/ng6-seed/src/app/settings/masters/model/customer-segment.ts deleted file mode 100644 index 32e6c1f..0000000 --- a/ng6-seed/src/app/settings/masters/model/customer-segment.ts +++ /dev/null @@ -1,3 +0,0 @@ -export class CustomerSegment { - customer_segment_id: any; name: any; abbr: any; createdon: any; fk_createdby: any; updatedon: any; isactive: any; fk_updatedby: any; -} diff --git a/ng6-seed/src/app/settings/masters/model/designation.ts b/ng6-seed/src/app/settings/masters/model/designation.ts deleted file mode 100644 index f0f2973..0000000 --- a/ng6-seed/src/app/settings/masters/model/designation.ts +++ /dev/null @@ -1,4 +0,0 @@ -export class Designation { - - designation_id: any; name: any; short_name: any; createdon: any; fk_createdby: any; updatedon: any; fk_updatedby: any; isactive: any; -} diff --git a/ng6-seed/src/app/settings/masters/model/entity-type.ts b/ng6-seed/src/app/settings/masters/model/entity-type.ts deleted file mode 100644 index b8529b4..0000000 --- a/ng6-seed/src/app/settings/masters/model/entity-type.ts +++ /dev/null @@ -1,3 +0,0 @@ -export class EntityType { - entity_type_id: any; name: any; createdon: any; fk_createdby: any; updatedon: any; fk_updatedby: any; isactive: any; -} diff --git a/ng6-seed/src/app/settings/masters/model/frequency.ts b/ng6-seed/src/app/settings/masters/model/frequency.ts deleted file mode 100644 index 26741b3..0000000 --- a/ng6-seed/src/app/settings/masters/model/frequency.ts +++ /dev/null @@ -1,6 +0,0 @@ -export class Frequency { - // ID: number; - // Name: string; - - frequency_id: any; name: any; createdon: any; fk_createdby: any; updatedon: any; fk_updatedby: any; isactive: any; -} diff --git a/ng6-seed/src/app/settings/masters/model/industry_classification.ts b/ng6-seed/src/app/settings/masters/model/industry_classification.ts deleted file mode 100644 index 9a0e464..0000000 --- a/ng6-seed/src/app/settings/masters/model/industry_classification.ts +++ /dev/null @@ -1,16 +0,0 @@ -export class IndustryClassification { - //ID: number; - //ClassifiedName: string; - // LastName: string; - // Contact: string; - // Email: string; - - industry_classification_id: any; - name: any; - createdon: any; - fk_createdby: any; - updatedon: any; - fk_updatedby: any; - isactive: any; -} - diff --git a/ng6-seed/src/app/settings/masters/model/lender-hierarchy.ts b/ng6-seed/src/app/settings/masters/model/lender-hierarchy.ts deleted file mode 100644 index 48751cb..0000000 --- a/ng6-seed/src/app/settings/masters/model/lender-hierarchy.ts +++ /dev/null @@ -1,4 +0,0 @@ -export class LenderHierarchy { - lender_hierarchy_id: any; lender_hierarchy: any; createdon: any; fk_createdby: any; updatedon: any; isactive: any; -} - \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/model/members-occupation.ts b/ng6-seed/src/app/settings/masters/model/members-occupation.ts deleted file mode 100644 index c2cd72a..0000000 --- a/ng6-seed/src/app/settings/masters/model/members-occupation.ts +++ /dev/null @@ -1,11 +0,0 @@ -export class MembersOccupation { - // ID: number; - // Name: string; - occupation_non_earning_member_id: any; - name: any; - createdon: any; - fk_createdby: any; - updatedon: any; - fk_updatedby: any; - isactive: any; -} diff --git a/ng6-seed/src/app/settings/masters/model/pd.ts b/ng6-seed/src/app/settings/masters/model/pd.ts deleted file mode 100644 index d31d4df..0000000 --- a/ng6-seed/src/app/settings/masters/model/pd.ts +++ /dev/null @@ -1,15 +0,0 @@ -export class PdAllocationType { - pd_allocation_type_id: any; pd_allocation_type_name: any; createdon: any; fk_createdby: any; updatedon: any; isactive: any; -} - -export class PdLocationApproach { - pd_location_approach_id: any; description: any; createdon: any; fk_createdby: any; updatedon: any; fk_updatedby: any; isactive: any; -} - -export class PdStatus { - pd_status_id: any; pd_status_name: any; createdon: any; fk_createdby: any; updatedon: any; isactive: any; -} - -export class PdType { - pd_type_id: any; type_name: any; createdon: any; fk_createdby: any; updatedon: any; fk_updatedby: any; isactive -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/model/product-master.ts b/ng6-seed/src/app/settings/masters/model/product-master.ts deleted file mode 100644 index ef2a717..0000000 --- a/ng6-seed/src/app/settings/masters/model/product-master.ts +++ /dev/null @@ -1,16 +0,0 @@ -export class ProductMaster { -// ID: number; -// ProductName: string; -// ProductAbbr: string; - - product_id: any; - name: any; - abbr: any; - createdon: any; - fk_createdby : any; - updatedon : any; - isactive : any; - fk_updatedby :any; - -} - diff --git a/ng6-seed/src/app/settings/masters/model/regions.ts b/ng6-seed/src/app/settings/masters/model/regions.ts deleted file mode 100644 index 7087bb4..0000000 --- a/ng6-seed/src/app/settings/masters/model/regions.ts +++ /dev/null @@ -1,3 +0,0 @@ -export class Regions { - region_id: any; name: any; createdon: any; fk_createdby: any; updatedon: any; fk_updatedby: any; isactive: any; -} diff --git a/ng6-seed/src/app/settings/masters/model/relation-ship.ts b/ng6-seed/src/app/settings/masters/model/relation-ship.ts deleted file mode 100644 index 540da03..0000000 --- a/ng6-seed/src/app/settings/masters/model/relation-ship.ts +++ /dev/null @@ -1,6 +0,0 @@ -export class RelationShip { - // ID: number; - // Name: string; - - relationship_id: any; name: any; createdon: any; fk_createdby: any; updatedon: any; fk_updatedby: any; isactive: any; -} diff --git a/ng6-seed/src/app/settings/masters/model/states.ts b/ng6-seed/src/app/settings/masters/model/states.ts deleted file mode 100644 index b65e715..0000000 --- a/ng6-seed/src/app/settings/masters/model/states.ts +++ /dev/null @@ -1,3 +0,0 @@ -export class States { - state_id: any; fk_region_id: any; name: any; code: any; createdon: any; fk_createdby: any; updatedon: any; fk_updatedby: any; isactive: any; -} diff --git a/ng6-seed/src/app/settings/masters/model/sub-product-master.ts b/ng6-seed/src/app/settings/masters/model/sub-product-master.ts deleted file mode 100644 index db7146a..0000000 --- a/ng6-seed/src/app/settings/masters/model/sub-product-master.ts +++ /dev/null @@ -1,8 +0,0 @@ -export class SubProductMaster { - // ID: number; - // ProductName: string; - // SubProductName: string; - // SubProductAbbr: string; - - subproduct_id: any; fk_product_id: any; name: any; abbr: any; createdon: any; fk_createdby: any; updatedon: any; fk_updatedby: any; isactive: any; -} diff --git a/ng6-seed/src/app/settings/masters/model/title.ts b/ng6-seed/src/app/settings/masters/model/title.ts deleted file mode 100644 index 32e1491..0000000 --- a/ng6-seed/src/app/settings/masters/model/title.ts +++ /dev/null @@ -1,6 +0,0 @@ -export class Title { - // ID: number; - // Name: string; - - title_id: any; name: any; createdon: any; fk_createdby: any; updatedon: any; fk_updatedby: any; isactive: any; -} diff --git a/ng6-seed/src/app/settings/masters/model/uom.ts b/ng6-seed/src/app/settings/masters/model/uom.ts deleted file mode 100644 index b864ee2..0000000 --- a/ng6-seed/src/app/settings/masters/model/uom.ts +++ /dev/null @@ -1,6 +0,0 @@ -export class Uom { - // ID: number; - // Name: string; - - uom_id: any; name: any; createdon: any; fk_createdby: any; updatedon: any; fk_updatedby: any; isactive: any; -} diff --git a/ng6-seed/src/app/settings/masters/model/user.ts b/ng6-seed/src/app/settings/masters/model/user.ts deleted file mode 100644 index 4747c89..0000000 --- a/ng6-seed/src/app/settings/masters/model/user.ts +++ /dev/null @@ -1,8 +0,0 @@ -export interface User { - name: string; - email: string; - phone: string; - company: { - name: string; - } -} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/register/register.component.html b/ng6-seed/src/app/settings/register/register.component.html deleted file mode 100644 index 665902b..0000000 --- a/ng6-seed/src/app/settings/register/register.component.html +++ /dev/null @@ -1,3 +0,0 @@ -

- register works! -

diff --git a/ng6-seed/src/app/settings/register/register.component.ts b/ng6-seed/src/app/settings/register/register.component.ts deleted file mode 100644 index 21cfa54..0000000 --- a/ng6-seed/src/app/settings/register/register.component.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-register', - templateUrl: './register.component.html', - styleUrls: ['./register.component.scss'] -}) -export class RegisterComponent implements OnInit { - - constructor() { } - - ngOnInit() { - } - -} diff --git a/ng6-seed/src/app/settings/service/user.service.ts b/ng6-seed/src/app/settings/service/user.service.ts old mode 100644 new mode 100755 index 24eed7c..b379516 --- a/ng6-seed/src/app/settings/service/user.service.ts +++ b/ng6-seed/src/app/settings/service/user.service.ts @@ -1,23 +1,234 @@ import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; +import { Observable } from 'rxjs/internal/Observable'; +import { AwsService } from '../../AwsService/aws.service'; +import { environment } from 'environments/environment'; +// const apiurl = "http://ssa.sineedge.com/sparqapi/api/"; +// const apiurl = "http://localhost/sparqapi/api/"; +const apiurl = environment.apiEndpoint; +const currentdate = new Date().toJSON().slice(0,19).replace('T',' '); -const apiurl = 'http://localhost/sineedge/sparqapi/api/'; @Injectable({ providedIn: 'root' }) export class UserService { - constructor(public http:HttpClient) { } + localUserId: any; + constructor(public http:HttpClient,public aws:AwsService) { } - testapi(){ - var ArrayData = { "master_name":'PRODUCTS' - } - //console.log('Edited Data IN Service Array ONLY',ArrayData); - //var data = this._http.post(this.storeUrl,ArrayData,httpOptions); - return this.http.post(apiurl+'getListOfMaster',ArrayData); + getuserdata() { + + return this.http.get(apiurl + 'getListOfUsers'); + + } + /** + * Admin Local Update + * @param records + */ + adminupendis(records){ + //let headers = this.shared.headercofig(''); + // console.log(headers); + //let session = this.shared.getAccessToken() || ""; + let formData = new FormData(); + formData.append('records',JSON.stringify(records)); + + return this.http.post(apiurl+'updateExistUser',formData); + //console.log(users); + + } + + entityType(){ + + let master_name = {'master_name':'ENTITYTYPE'}; + return this.http.post(apiurl+'getListOfMaster',master_name); + } + City(){ + + let master_name = {'master_name':'CITY'}; + return this.http.post(apiurl+'getListOfMaster',master_name); + } + State(){ + + let master_name = {'master_name':'STATE'}; + return this.http.post(apiurl+'getListOfMaster',master_name); + } + designation(){ + + let master_name = {'master_name':'DESIGNATION'}; + return this.http.post(apiurl+'getListOfMaster',master_name); + } + lenderHierarchy(){ + + let master_name = {'master_name':'LENDERHIERARCHY'}; + return this.http.post(apiurl+'getListOfMaster',master_name); + } + products(){ + + let master_name = {'master_name':'PRODUCTS'}; + return this.http.post(apiurl+'getListOfMaster',master_name); + } + pdType(){ + + let master_name = {'master_name':'PDTYPE'}; + return this.http.post(apiurl+'getListOfMaster',master_name); + } + pdTeam(){ + + let master_name = {'master_name':'PDTEAM'}; + return this.http.post(apiurl+'getListOfMaster',master_name); + } + customerSegment(){ + + let master_name = {'master_name':'CUSTOMERSEGMENT'}; + return this.http.post(apiurl+'getListOfMaster',master_name); + } + + roles(){ + let master_name = {'master_name':'ROLES'}; + return this.http.post(apiurl+'getListOfMaster',master_name); + } + + entitiesDetails(){ + let master_name = {'master_name':'ENTITY'}; + return this.http.post(apiurl+'getListOfMaster',master_name); + } + /** + * + */ + /** + * AWS User Create Local DB + * @param cognitousers,users + **/ + saveRecords(cognitousers, users) { + + let data: any = ''; + + if (cognitousers != '' && cognitousers !== undefined) { + //console.log(users); + let aws_name :any; + let updateby:any; + let createdby:any; + let createdon:any; + let updateon:any; + + if(users.userid != null){ + aws_name = users.aws_name; + updateby = this.aws.getlocale() || ""; + updateon = currentdate; + }else{ + aws_name = cognitousers.User.Username; + createdby = this.aws.getlocale() || ""; + createdon = currentdate; + } + + let profilepic:any; + if(users.userpic !=null && users.userpic !='' && users.userpic !==undefined){ + profilepic= users.userpic.name; + } + let formData = new FormData(); + + + // let roles:any=[]; + // for(var role of users.role){ + + + + + let enities:any; + if(users.type.entity_type_id ==2 || users.type.entity_type_id == 3){ + enities = users.lenVenName.entity_id; + }else if(users.type.entity_type_id ==1){ + enities =null; + } + + + let pdtypeid:any; + let pdteam:any; + + if(users.pdteam !=null){ + + + pdteam = users.pdteam.pdteam_id; + + } + let userid:any; + if(users.userid != null){ + userid = users.userid + } + let pdofficer = { + + 'fk_team_id':pdteam, + 'fk_user_id':userid + + }; + let records:any = { + "userid":userid, + "aws_name": aws_name, + "first_name": users.firstName, + "last_name": users.lastName, + "mobile_no": users.phone, + "email": users.email, + "isactive":users.isactive, + + "fk_entity_type_id":users.type.entity_type_id, + "fk_entity_id":enities, + "fk_city":users.city.city_id, + "fk_state":users.state.state_id, + + "profilepic":profilepic, + "fk_createdby":createdby, + "fk_updatedby":updateby, + "createdon":createdon, + "updatedon":updateon, + }; + //console.log(roles); + formData.append('records',JSON.stringify(records)); + formData.append('roles',JSON.stringify(({ "user_role": users.role.role_id}))); + formData.append('profilepic',users.userpic); + formData.append('pdofficer',JSON.stringify(pdofficer)); + + //new Response(formData).text().then(console.log); + //let headers = this.shared.headercofig(''); + + + //(request); + if(users.userid !='' && users.userid !=null && users.userid !==undefined){ + delete this.localUserId; + return this.http.post(apiurl+'updateExistUser',formData); + + }else{ + return this.http.post(apiurl + "saveNewUser", formData); + } + + + } + + } + + adminGetUsers(userId){ + this.localUserId = userId; + return Observable.create(observe=>{ + observe.next(this.localUserId); + }) + } + getroles(){ + // alert(); + let cogusers:any = this.aws.getlocale(); + //console.log(cogusers.idToken.payload.locale); + let roles = {'userid':cogusers}; + + return this.http.post(apiurl+'getUsersDetails',roles); + } + + // getprofilepic(users){ + // return this.http.post('http://192.168.0.4:9999/AWSEC2/sparqapi/api/getSingedProfilePicURL',users); + // } + getprofilepic(users){ + return this.http.post(apiurl+'getSingedProfilePicURL',users); + } } diff --git a/ng6-seed/src/app/settings/settings.module.spec.ts b/ng6-seed/src/app/settings/settings.module.spec.ts deleted file mode 100755 index 801815b..0000000 --- a/ng6-seed/src/app/settings/settings.module.spec.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { SettingsModule } from './settings.module'; - -describe('SettingsModule', () => { - let settingsModule: SettingsModule; - - beforeEach(() => { - settingsModule = new SettingsModule(); - }); - - it('should create an instance', () => { - expect(settingsModule).toBeTruthy(); - }); -}); diff --git a/ng6-seed/src/app/settings/settings.module.ts b/ng6-seed/src/app/settings/settings.module.ts old mode 100644 new mode 100755 index aff87a0..cb2a4a1 --- a/ng6-seed/src/app/settings/settings.module.ts +++ b/ng6-seed/src/app/settings/settings.module.ts @@ -1,27 +1,50 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { UserComponent } from './user/user.component'; -import { RouterModule } from '@angular/router'; -// import { UserRoutes} from './users.routing'; -import { SettingsRoute } from './settings.routing'; -import { RegisterComponent } from './register/register.component'; -import { UserService } from './service/user.service'; -//MasterModule -import { MastersModule } from './masters/masters.module'; +import { + MatCardModule, + MatIconModule, + MatInputModule, + MatRadioModule, + MatButtonModule,MatTableModule,MatPaginatorModule, + MatProgressBarModule,MatDialogModule, MatSortModule, + MatToolbarModule,MatSelectModule } from '@angular/material'; +import {MatSlideToggleModule} from '@angular/material/slide-toggle'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { FileUploadModule } from 'ng2-file-upload/ng2-file-upload'; +import { TreeModule } from 'angular-tree-component'; +import { NgxDatatableModule } from '@swimlane/ngx-datatable'; +import { FlexLayoutModule } from '@angular/flex-layout'; + +import { DemoMaterialModule } from '../shared/demo.module'; +// import { NgxMatSelectSearchModule } from 'ngx-mat-select-search'; +import 'hammerjs'; + + + +import { RouterModule } from '@angular/router'; +import { SettingsRoutes } from './settings.routing'; // import { HttpClientModule } from '@angular/common/http'; + @NgModule({ imports: [ CommonModule, - RouterModule.forChild(SettingsRoute), - MastersModule + RouterModule.forChild(SettingsRoutes),MatCardModule, + MatIconModule, + MatInputModule, + MatRadioModule, + MatButtonModule,MatTableModule,MatPaginatorModule, + MatProgressBarModule,MatDialogModule, MatSortModule, + MatToolbarModule,MatSelectModule, + FormsModule,ReactiveFormsModule, // HttpClientModule, ], - declarations: [UserComponent, RegisterComponent], + providers:[ - UserService, - //MastersService - ] + // UserService + ], + +// declarations: [AddEntityComponent, EditEntityComponent, EntityListComponent] }) export class SettingsModule { } diff --git a/ng6-seed/src/app/settings/settings.routing.ts b/ng6-seed/src/app/settings/settings.routing.ts index 1c68cc5..bbcfdab 100755 --- a/ng6-seed/src/app/settings/settings.routing.ts +++ b/ng6-seed/src/app/settings/settings.routing.ts @@ -1,19 +1,10 @@ -import { Routes } from '@angular/router'; - -import { RegisterComponent } from './register/register.component'; -//import { UserListComponent } from './user-list/user-list.component'; -//import { MastersComponent } from './component/masters/masters.component'; -import { MastersComponent } from './masters/masters.component'; -import { MastersModule } from './masters/masters.module'; - -export const SettingsRoute: Routes = [ - { - path: '', - children: [ - { - path:'mastermodule', - loadChildren:'./masters/masters.module#MastersModule' - } - ] - } -]; +import { Routes } from '@angular/router'; + +export const SettingsRoutes: Routes = [{ + path: '', + children:[{ + path:'users', + loadChildren:'./users/users.module#UsersModule' + } +] +}] \ No newline at end of file diff --git a/ng6-seed/src/app/settings/user/user.component.html b/ng6-seed/src/app/settings/user/user.component.html deleted file mode 100644 index d1d7c28..0000000 --- a/ng6-seed/src/app/settings/user/user.component.html +++ /dev/null @@ -1,5 +0,0 @@ -

- user works! -

- - diff --git a/ng6-seed/src/app/settings/user/user.component.ts b/ng6-seed/src/app/settings/user/user.component.ts deleted file mode 100644 index e4955ab..0000000 --- a/ng6-seed/src/app/settings/user/user.component.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { CognitoService } from '../../AwsService/cognito.service'; -import { UserService } from '../service/user.service'; -@Component({ - selector: 'app-user', - templateUrl: './user.component.html', - styleUrls: ['./user.component.scss'] -}) -export class UserComponent implements OnInit { - - constructor(public shared:CognitoService,public user:UserService) { } - - ngOnInit() { - console.log(this.shared.getToken()); - } - test(){ - this.user.testapi().subscribe(res=>{ - console.log(res); - }) - } -} diff --git a/ng6-seed/src/app/settings/users/user-profile/changePassword.html b/ng6-seed/src/app/settings/users/user-profile/changePassword.html new file mode 100755 index 0000000..e69de29 diff --git a/ng6-seed/src/app/settings/users/user-profile/user-profile-component.html b/ng6-seed/src/app/settings/users/user-profile/user-profile-component.html new file mode 100755 index 0000000..f7724dd --- /dev/null +++ b/ng6-seed/src/app/settings/users/user-profile/user-profile-component.html @@ -0,0 +1,43 @@ + + + + + + + diff --git a/ng6-seed/src/app/settings/users/user-profile/user-profile-component.scss b/ng6-seed/src/app/settings/users/user-profile/user-profile-component.scss new file mode 100755 index 0000000..e69de29 diff --git a/ng6-seed/src/app/settings/users/user-profile/user-profile.component.ts b/ng6-seed/src/app/settings/users/user-profile/user-profile.component.ts new file mode 100755 index 0000000..89081d5 --- /dev/null +++ b/ng6-seed/src/app/settings/users/user-profile/user-profile.component.ts @@ -0,0 +1,129 @@ +import { Component, OnInit,ViewEncapsulation } from '@angular/core'; +import { AwsService } from '../../../AwsService/aws.service'; +import { MatDialog, MatDialogRef, MatDialogConfig } from '@angular/material'; +import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms'; +import { CustomValidators } from 'ng2-validation'; +import { UserService } from '../../service/user.service'; +import { Router} from '@angular/router'; +@Component({ + selector: 'ms-user-profile', + templateUrl:'./user-profile-component.html', + styleUrls: ['./user-profile-component.scss'], + encapsulation: ViewEncapsulation.None +}) +export class UserProfileComponent implements OnInit { + profileurl: any; + config: MatDialogConfig = { + disableClose: false, + width: '', + height: '', + position: { + top: '', + bottom: '', + left: '', + right: '' + } + }; + userDetails:any=[]; + constructor(public AWS:AwsService,public dialog: MatDialog,public users:UserService,public router:Router ) { + this.getuser(); + + } + + ngOnInit() { + + + + } + + getuser(){ + //console.log(this.AWS.getUser()); + this.users.getroles().subscribe(res=>{ + this.userDetails = res; + this.userDetails = this.userDetails.records[0]; + this.getprofilepic(); + }); + } + changePassword(){ + let dialogRef = this.dialog.open(ChangePasswordDialog,this.config); + dialogRef.afterClosed().subscribe(result => { + + if(result !==undefined){ + if(result.confirmPassword !== undefined && result.confirmPassword !="" && result.newPassword !="" && result.oldPassword !=""){ + this.AWS.changepassword(result) + .subscribe(res=>{ + alert('Change Password'); + }) + } + } + + //console.log(ChangePasswordDialog.prototype.pass); + }); + + } + getprofilepic(){ + let users= { + 'userid':this.userDetails.userid, + 'entityid':this.userDetails.fk_entity_type_id, + 'profilepic':this.userDetails.profilepic + } + this.users.getprofilepic(users).subscribe(res=>{ + this.profileurl = res; + if(this.profileurl.dataStatus == true){ + + this.profileurl = this.profileurl.records; + + } + }) + } +} + +@Component({ + selector: 'app-jazz-dialog', + template: ` +
Change Password
+ + + + +
+ + + + + + +
+ + + + + Passwords do not math. + +
+ + + + + ` +}) +export class ChangePasswordDialog{ + + pass = { + oldPassword:'', + newPassword:'', + confirmPassword:'', + + } + + jazzMessage = 'Jazzy jazz jazz'; + + constructor(public dialogRef: MatDialogRef ,public aws:AwsService) { + + } + + +} + + + diff --git a/ng6-seed/src/app/settings/users/users.module.ts b/ng6-seed/src/app/settings/users/users.module.ts new file mode 100755 index 0000000..766383b --- /dev/null +++ b/ng6-seed/src/app/settings/users/users.module.ts @@ -0,0 +1,45 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { + MatCardModule, + MatIconModule, + MatInputModule, + MatRadioModule, + MatButtonModule,MatTableModule,MatPaginatorModule, + MatProgressBarModule,MatDialogModule, MatSortModule, + MatToolbarModule,MatSelectModule, + MatListModule, MatMenuModule, +} from '@angular/material'; +import {MatSlideToggleModule} from '@angular/material/slide-toggle'; + +import { MatTooltipModule } from '@angular/material/tooltip'; + +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; + + +import { RouterModule } from '@angular/router'; +import { UserRoutes} from './users.routing'; +import { UserProfileComponent, ChangePasswordDialog } from './user-profile/user-profile.component'; +import { UserService } from './../service/user.service'; +import { NewPasswordDialog, ForgotPass } from '../../session/login/login.component'; +// import { HttpClientModule } from '@angular/common/http'; +@NgModule({ + imports: [ + CommonModule, + RouterModule.forChild(UserRoutes), + MatCardModule, + MatIconModule, + MatInputModule, + MatRadioModule, + MatButtonModule,MatTableModule,MatPaginatorModule, + MatProgressBarModule,MatDialogModule, MatSortModule, + MatToolbarModule,MatSelectModule,MatListModule, MatMenuModule, + MatSlideToggleModule,MatTooltipModule, + FormsModule, ReactiveFormsModule, + // HttpClientModule, + ], + declarations: [UserProfileComponent], + providers: [ UserService ] + +}) +export class UsersModule { } diff --git a/ng6-seed/src/app/settings/users/users.routing.ts b/ng6-seed/src/app/settings/users/users.routing.ts new file mode 100755 index 0000000..0acdacd --- /dev/null +++ b/ng6-seed/src/app/settings/users/users.routing.ts @@ -0,0 +1,13 @@ +import { Routes } from '@angular/router'; +import { UserProfileComponent } from './user-profile/user-profile.component'; +export const UserRoutes: Routes = [{ + path: '', + redirectTo: 'userlist', + pathMatch: 'full', +},{ + path: '', + children: [{ + path:'userprofile', + component:UserProfileComponent + }] +}]; diff --git a/ng6-seed/src/app/shared/accordion/accordion.directive.ts b/ng6-seed/src/app/shared/accordion/accordion.directive.ts old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/shared/accordion/accordionanchor.directive.ts b/ng6-seed/src/app/shared/accordion/accordionanchor.directive.ts old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/shared/accordion/accordionlink.directive.ts b/ng6-seed/src/app/shared/accordion/accordionlink.directive.ts old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/shared/accordion/index.ts b/ng6-seed/src/app/shared/accordion/index.ts old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/shared/demo.module.ts b/ng6-seed/src/app/shared/demo.module.ts old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/shared/for-mobile-numbers/for-mobile-numbers.directive.ts b/ng6-seed/src/app/shared/for-mobile-numbers/for-mobile-numbers.directive.ts new file mode 100644 index 0000000..d84a974 --- /dev/null +++ b/ng6-seed/src/app/shared/for-mobile-numbers/for-mobile-numbers.directive.ts @@ -0,0 +1,19 @@ +import { Directive, ElementRef, HostListener, Input } from '@angular/core'; +// import { NgControl } from '@angular/forms'; + +@Directive({ + selector: '[ForMobileNumbers]' +}) +export class ForMobileNumbersDirective { + + constructor(private _el: ElementRef) { } + + @HostListener('input', ['$event']) onInputChange(event) { + const initalValue = this._el.nativeElement.value; + this._el.nativeElement.value = initalValue.replace(/[^0-9]*/g, ''); + if ( initalValue !== this._el.nativeElement.value) { + event.stopPropagation(); + } + } + +} \ No newline at end of file diff --git a/ng6-seed/src/app/shared/fullscreen/toggle-fullscreen.directive.ts b/ng6-seed/src/app/shared/fullscreen/toggle-fullscreen.directive.ts old mode 100644 new mode 100755 diff --git a/ng6-seed/src/app/shared/menu-items/horizontal-menu-items.ts b/ng6-seed/src/app/shared/menu-items/horizontal-menu-items.ts old mode 100644 new mode 100755 index 6a857c9..9c314bf --- a/ng6-seed/src/app/shared/menu-items/horizontal-menu-items.ts +++ b/ng6-seed/src/app/shared/menu-items/horizontal-menu-items.ts @@ -22,192 +22,34 @@ export interface Menu { } const HORIZONTALMENUITEMS = [ + // { + // state: 'home', + // name: 'HOME', + // type: 'link', + // icon: 'home' + // }, { - state: 'home', - name: 'HOME', - type: 'link', - icon: 'home' + state:'personal_discussion', + name:'Personal Discussion', + type:'link', + icon:'forum', + + // children:[ + // {state:'pdtriggerlist',name:'Pd Trigger Listing'} + // ] }, { - state: 'apps', - name: 'APPS', - type: 'sub', - icon: 'apps', - children: [ - {state: 'apps/calendar', name: 'CALENDAR'}, - {state: 'apps/messages', name: 'MESSAGES'}, - {state: 'apps/social', name: 'SOCIAL'}, - {state: 'apps/chat', name: 'CHAT'} - ] + state:'quality_check_discussion', + name:'Quality Check', + type:'link', + icon:'done_all', }, { - state: 'features', - name: 'FEATURES', - type: 'sub', - icon: 'library_books', - children: [ - {state: 'features/colorpicker', name: 'COLOR PICKER'}, - {state: 'features/cropper', name: 'CROPPER'}, - {state: 'features/dragula', name: 'DRAGULA'}, - {state: 'features/sortable', name: 'SORTABLE'}, - { - state: 'charts', - name: 'CHARTS', - type: 'super-sub', - icon: 'show_chart', - subchildren: [ - {state: 'charts/bar-charts', name: 'BAR'}, - {state: 'charts/pie-charts', name: 'PIE'}, - {state: 'charts/line-charts', name: 'LINE'}, - {state: 'charts/mixed-charts', name: 'MIXED'}, - {state: 'charts/ng2-charts', name: 'NG2 CHARTS'}, - ] - }, - { - state: 'maps', - name: 'MAPS', - type: 'super-sub', - icon: 'navigation', - subchildren: [ - {state: 'maps/google', name: 'GOOGLE'}, - {state: 'maps/leaflet', name: 'LEAFLET'} - ] - } - ] + state:'reports', + name:'Reports', + type:'link', + icon:'report', }, - { - state:'setting', - name:'Settings', - type:'sub', - icon:'settings', - children:[ - {state:'userlist',name:'User List'}, - {state:'register',name:'Register'}, - {state:'mastermodule',name:'Master Details'} - ] - }, - { - state: 'material', - name: 'MATERIAL', - type: 'sub', - icon: 'equalizer', - children: [ - {state: 'material/button', name: 'BUTTON'}, - {state: 'material/cards', name: 'CARDS'}, - {state: 'material/select', name: 'SELECT'}, - {state: 'material/autocomplete', name: 'AUTOCOMPLETE'}, - {state: 'material/chips', name: 'CHIPS'}, - {state: 'material/input', name: 'INPUT'}, - {state: 'material/checkbox', name: 'CHECKBOX'}, - {state: 'material/radio', name: 'RADIO'}, - {state: 'material/toolbar', name: 'TOOLBAR'}, - {state: 'material/lists', name: 'LISTS'}, - {state: 'material/grid', name: 'GRID'}, - {state: 'material/progress', name: 'PROGRESS'}, - {state: 'material/tabs', name: 'TABS'}, - {state: 'material/switch', name: 'SWITCH'}, - {state: 'material/tooltip', name: 'TOOLTIP'}, - {state: 'material/menu', name: 'MENU'}, - {state: 'material/slider', name: 'SLIDER'}, - {state: 'material/snackbar', name: 'SNACKBAR'}, - {state: 'material/dialog', name: 'DIALOG'} - ] - }, - { - state: 'forms', - name: 'FORMS', - type: 'sub', - icon: 'looks_3', - children: [ - {state: 'forms/editor', name: 'EDITOR'}, - {state: 'forms/validation', name: 'VALIDATION'}, - {state: 'forms/upload', name: 'UPLOAD'}, - {state: 'forms/tree', name: 'TREE'}, - ] - }, - { - state: 'tables', - name: 'TABLES', - type: 'sub', - icon: 'format_line_spacing', - children: [ - {state: 'tables/fullscreen', name: 'FULLSCREEN'}, - {state: 'tables/editing', name: 'EDITING'}, - {state: 'tables/filter', name: 'FILTER'}, - {state: 'tables/tables/paging', name: 'PAGING'}, - {state: 'tables/sorting', name: 'SORTING'}, - {state: 'tables/pinning', name: 'PINNING'}, - {state: 'tables/selection', name: 'SELECTION'}, - ] - }, - { - state: 'pages', - name: 'PAGES', - type: 'sub', - icon: 'web', - children: [ - {state: 'pages/about', name: 'ABOUT'}, - {state: 'pages/contact', name: 'CONTACT'}, - {state: 'pages/pricing', name: 'PRICING'}, - {state: 'pages/blank', name: 'BLANK'}, - { - state: 'user-pages', - name: 'USERS', - type: 'super-sub', - icon: 'person', - subchildren: [ - {state: 'user-pages/userlist', name: 'USER LIST'}, - {state: 'user-pages/userprofile', name: 'USER PROFILE'}, - ] - }, - { - state: 'gallery', - name: 'GALLERY', - type: 'super-sub', - icon: 'person', - subchildren: [ - {state: 'gallery/gallery-v1', name: 'GALLERY SIMPLE'}, - {state: 'gallery/gallerygallery-v2', name: 'GALLERY ADVANCED'}, - {state: 'gallery/gallery-v3', name: 'GALLERY 3RD PARTY'} - ] - }, - { - state: 'ecommerce', - name: 'ECOMMERCE', - type: 'super-sub', - icon: 'person', - subchildren: [ - {state: 'ecommerce/ecommerce-product', name: 'PRODUCT LISTING'}, - {state: 'ecommerce/ecommerce-product-detail', name: 'PRODUCT DETAIL'}, - {state: 'ecommerce/ecommerce-cart', name: 'CART'}, - {state: 'ecommerce/ecommerce-checkout', name: 'CHECKOUT'} - ] - } - ] - }, - { - state: 'authentication', - name: 'AUTHENTICATION', - type: 'sub', - icon: 'security', - children: [ - {state: 'authentication/login', name: 'LOGIN'}, - {state: 'authentication/register', name: 'REGISTER'}, - {state: 'authentication/forgot-password', name: 'FORGOT'}, - {state: 'authentication/lockscreen', name: 'LOCKSCREEN'}, - { - state: 'error', - name: 'ERROR', - type: 'super-sub', - icon: 'error_outline', - subchildren: [ - {state: 'error/404', name: '404'}, - {state: 'error/503', name: '503'} - ] - } - ] - } - ]; @Injectable() @@ -218,4 +60,4 @@ export class HorizontalMenuItems { add(menu: Menu) { // HORIZONTALMENUITEMS.push(Menu); } -} +} \ No newline at end of file diff --git a/ng6-seed/src/app/shared/menu-items/menu-items.ts b/ng6-seed/src/app/shared/menu-items/menu-items.ts old mode 100644 new mode 100755 index 0c44e1a..f965e61 --- a/ng6-seed/src/app/shared/menu-items/menu-items.ts +++ b/ng6-seed/src/app/shared/menu-items/menu-items.ts @@ -1,4 +1,5 @@ import { Injectable } from '@angular/core'; +import { state } from '@angular/animations'; export interface BadgeItem { type: string; @@ -11,8 +12,8 @@ export interface ChildrenItems { type?: string; } -export interface Menu { - state: string; +export interface Multichild { + state: any; name: string; type: string; icon: string; @@ -20,44 +21,75 @@ export interface Menu { children?: ChildrenItems[]; } +export interface Menu { + state: any; + name: string; + type: string; + icon: string; + badge?: BadgeItem[]; + children?: ChildrenItems[]; + multichild?:Multichild[]; +} + const MENUITEMS : Menu[] = [ + // { + // state: 'home', + // name: 'HOME', + // type: 'link', + // icon: 'explore' + // }, + // { + // state: '', + // name: 'Manage', + // type: 'multi', + // icon: 'settings', + // multichild: [ + // { + // state:'setting', + // name:'Settings', + // type:'sub', + // icon:'settings', + // children:[ + // {state:'users',name:'Users'}, + // {state:'mastermodule',name:'Master Details'}, + // {state:'entity',name:'Entities'}, + // {state:'pdteamlist',name:'PD Team'}, + + + // ], + // }, + // { + // state: 'template', + // name: 'Template', + // type: 'sub', + // icon: 'art_track', + // children: [ + // {state: 'questions', name: 'Questions'}, + // {state: 'templates', name: 'Templates'} + // ] + // } + // ] + // }, { - state: 'home', - name: 'HOME', - type: 'link', - icon: 'explore' - },{ - state:'setting', - name:'Settings', - type:'sub', - icon:'settings', - children:[ - {state:'userlist',name:'User List'}, - {state:'register',name:'Register'}, - {state:'mastermodule',name:'Master Details'} - ] + state:'personal_discussion', + name:'Personal Discussion', + type:'link', + icon:'forum', + // children:[ + // {state:'pdtriggerlist',name:'Pd Trigger Listing'} + // ] }, { - state: 'authentication', - name: 'AUTHENTICATION', - type: 'sub', - icon: 'security', - children: [ - {state: 'login', name: 'LOGIN'}, - {state: 'register', name: 'REGISTER'}, - {state: 'forgot-password', name: 'FORGOT'}, - {state: 'lockscreen', name: 'LOCKSCREEN'} - ] + state:'quality_check_discussion', + name:'Quality Check', + type:'link', + icon:'done_all', }, { - state: 'error', - name: 'ERROR', - type: 'sub', - icon: 'error_outline', - children: [ - {state: '404', name: '404'}, - {state: '503', name: '503'} - ] + state:'reports', + name:'Reports', + type:'link', + icon:'report', } ]; diff --git a/ng6-seed/src/app/shared/numbers-only/numbers-only.directive.ts b/ng6-seed/src/app/shared/numbers-only/numbers-only.directive.ts new file mode 100644 index 0000000..cc1db71 --- /dev/null +++ b/ng6-seed/src/app/shared/numbers-only/numbers-only.directive.ts @@ -0,0 +1,31 @@ +import { Directive, ElementRef, HostListener, Input } from '@angular/core'; + +@Directive({ + selector: '[OnlyNumber]' +}) +export class NumbersOnlyDirective { + + // Allow decimal numbers. The \. is only allowed once to occur + private regex: RegExp = new RegExp(/^[0-9]+(\.[0-9]*){0,1}$/g); + + // Allow key codes for special events. Reflect : + // Backspace, tab, end, home + private specialKeys: Array = [ 'Backspace', 'Tab', 'End', 'Home' ]; + + constructor(private el: ElementRef) { + } + + @HostListener('keydown', [ '$event' ]) + onKeyDown(event: KeyboardEvent) { + // Allow Backspace, tab, end, and home keys + if (this.specialKeys.indexOf(event.key) !== -1) { + return; + } + + let current: string = this.el.nativeElement.value; + let next: string = current.concat(event.key); + if (next && !String(next).match(this.regex)) { + event.preventDefault(); + } + } +} \ No newline at end of file diff --git a/ng6-seed/src/app/shared/rating/rating.component.html b/ng6-seed/src/app/shared/rating/rating.component.html new file mode 100755 index 0000000..5991ec7 --- /dev/null +++ b/ng6-seed/src/app/shared/rating/rating.component.html @@ -0,0 +1,16 @@ +
+ + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/ng6-seed/src/app/shared/rating/rating.component.scss b/ng6-seed/src/app/shared/rating/rating.component.scss new file mode 100755 index 0000000..8200924 --- /dev/null +++ b/ng6-seed/src/app/shared/rating/rating.component.scss @@ -0,0 +1,48 @@ + +.rating { + float:left; + display: block; +} + +.rating:not(:checked) > input { + position:absolute; + top:-9999px; + clip:rect(0,0,0,0); +} + +.rating:not(:checked) > label { + float:right; + width:1em; + padding:0.1em; + overflow:hidden; + white-space:nowrap; + cursor:pointer; + font-size:200%; + line-height:1.2; + color:#ddd; +} + +.rating:not(:checked) > label:before { + content: '★ '; +} + +.rating > input:checked ~ label { + color: #f70; +} + +.rating:not(:checked) > label:hover, +.rating:not(:checked) > label:hover ~ label { + color: gold; +} + + +.rating > input:checked ~ label:hover, +.rating > input:checked ~ label:hover ~ label, +.rating > label:hover ~ input:checked ~ label { + color: #ea0; +} +// .rating::after { +// content: ""; +// clear: both; +// display: table; +// } diff --git a/ng6-seed/src/app/shared/rating/rating.component.spec.ts b/ng6-seed/src/app/shared/rating/rating.component.spec.ts new file mode 100755 index 0000000..1460c9e --- /dev/null +++ b/ng6-seed/src/app/shared/rating/rating.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { RatingComponent } from './rating.component'; + +describe('RatingComponent', () => { + let component: RatingComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ RatingComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(RatingComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/shared/rating/rating.component.ts b/ng6-seed/src/app/shared/rating/rating.component.ts new file mode 100755 index 0000000..c261d3d --- /dev/null +++ b/ng6-seed/src/app/shared/rating/rating.component.ts @@ -0,0 +1,30 @@ +import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-rating', + templateUrl: './rating.component.html', + styleUrls: ['./rating.component.scss'] +}) +export class RatingComponent implements OnInit { + @Input() rating: number; + @Input() itemId: number; + @Output() ratingClick: EventEmitter = new EventEmitter(); + + inputName: string; + ngOnInit() { + this.inputName = this.itemId + '_rating'; + } + onClick(rating: number): void { + this.rating = rating; + this.ratingClick.emit({ + itemId: this.itemId, + rating: rating + }); + } + + lableVal: string = ''; + over(val): void { + this.lableVal = val; + } + +} diff --git a/ng6-seed/src/app/shared/shared.module.ts b/ng6-seed/src/app/shared/shared.module.ts old mode 100644 new mode 100755 index 9dbf911..cfb4c28 --- a/ng6-seed/src/app/shared/shared.module.ts +++ b/ng6-seed/src/app/shared/shared.module.ts @@ -4,19 +4,28 @@ import { MenuItems } from './menu-items/menu-items'; import { HorizontalMenuItems } from './menu-items/horizontal-menu-items'; import { AccordionAnchorDirective, AccordionLinkDirective, AccordionDirective } from './accordion'; import { ToggleFullscreenDirective } from './fullscreen/toggle-fullscreen.directive'; +import { RatingComponent} from './rating/rating.component'; +import { NumbersOnlyDirective } from './numbers-only/numbers-only.directive'; +import { ForMobileNumbersDirective } from './for-mobile-numbers/for-mobile-numbers.directive'; @NgModule({ declarations: [ AccordionAnchorDirective, AccordionLinkDirective, AccordionDirective, - ToggleFullscreenDirective + ToggleFullscreenDirective, + RatingComponent, + NumbersOnlyDirective, + ForMobileNumbersDirective ], exports: [ AccordionAnchorDirective, AccordionLinkDirective, AccordionDirective, - ToggleFullscreenDirective + ToggleFullscreenDirective, + RatingComponent, + NumbersOnlyDirective, + ForMobileNumbersDirective ], providers: [ MenuItems, HorizontalMenuItems ] }) diff --git a/ng6-seed/src/app/template/questions/add/add.component.html b/ng6-seed/src/app/template/questions/add/add.component.html new file mode 100755 index 0000000..6e401d0 --- /dev/null +++ b/ng6-seed/src/app/template/questions/add/add.component.html @@ -0,0 +1,92 @@ + + +
+
{{pageTitle}}
+
+
+ + + +
+
+
+ + + {{ ct.category_name }} + + You must Select Category. + +
+ +
+
+
+ + + You must Include Question. + +
+
+
+
+ + + You must Include Description. + +
+
+
+ + + {{ ans.answer_type_name }} + + You must Select Answer Type. + +
+
+
+
+
+
+
+ + + +
+ +
+ + + +
+
+
+
+
+
+
+ + + + +
+
+
+
+ + + \ No newline at end of file diff --git a/ng6-seed/src/app/template/questions/add/add.component.scss b/ng6-seed/src/app/template/questions/add/add.component.scss new file mode 100755 index 0000000..6e263ad --- /dev/null +++ b/ng6-seed/src/app/template/questions/add/add.component.scss @@ -0,0 +1,3 @@ +.example-full-width{ + width: 100%; +} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/user/user.component.spec.ts b/ng6-seed/src/app/template/questions/add/add.component.spec.ts old mode 100644 new mode 100755 similarity index 58% rename from ng6-seed/src/app/settings/user/user.component.spec.ts rename to ng6-seed/src/app/template/questions/add/add.component.spec.ts index dd3b1d7..fdcddf4 --- a/ng6-seed/src/app/settings/user/user.component.spec.ts +++ b/ng6-seed/src/app/template/questions/add/add.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { UserComponent } from './user.component'; +import { AddComponent } from './add.component'; -describe('UserComponent', () => { - let component: UserComponent; - let fixture: ComponentFixture; +describe('AddComponent', () => { + let component: AddComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ UserComponent ] + declarations: [ AddComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(UserComponent); + fixture = TestBed.createComponent(AddComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/ng6-seed/src/app/template/questions/add/add.component.ts b/ng6-seed/src/app/template/questions/add/add.component.ts new file mode 100755 index 0000000..d0977dc --- /dev/null +++ b/ng6-seed/src/app/template/questions/add/add.component.ts @@ -0,0 +1,180 @@ +/** Common Imports */ +import { + Component, + OnInit, + Inject +} from '@angular/core'; + +import { + FormBuilder, + FormGroup, + Validators, + FormArray, +} from '@angular/forms'; + +import { NotifierService } from 'angular-notifier'; + +import { + MatDialog, + MatDialogRef, + MAT_DIALOG_DATA +} from '@angular/material'; +/** Service */ +import { MastersService } from './../../service/masters/masters.service'; +import { QuestionsService } from './../../service/questions/questions.service'; + +/* +* Question master add details +* : kdk +*/ +@Component({ + selector: 'app-add', + templateUrl: './add.component.html', + styleUrls: ['./add.component.scss'] +}) +export class AddComponent implements OnInit { + + public pageTitle: string = "Add Question Details"; + public _addQuesFrom: FormGroup; + public submitted = false; + public categories: any = []; + public questionsOptions: any = []; + public m_group: any = []; + errorMessage: string; + + /** + * Notifier service + */ + private notifier: NotifierService; + + constructor( + notifier: NotifierService, + private _formBuilder: FormBuilder, + private dialogRef: MatDialogRef, + private masterService: MastersService, + private questionsService: QuestionsService) { + this.notifier = notifier; + } + + + ngOnInit() { + /** Questions Form Datas*/ + this._addQuesFrom = this._formBuilder.group({ + question: [null, Validators.compose([Validators.required])], + description: [null, Validators.compose([Validators.required])], + fk_question_category: [null, Validators.compose([Validators.required])], + // fk_question_group_id: [null, Validators.compose([Validators.required])], + fk_question_answertype: [null, Validators.compose([Validators.required])], + answers: this._formBuilder.array([ + this.initAnswers(), + ]) + }); + // OnInit Load Category and Question Type Masters + this.getCategoryListMaster(); + this.getQuestionOptionsMaster(); + this.getQuestionGroupMaster(); + } + + // convenience getter for easy access to form fields + get f() { return this._addQuesFrom.controls; } + + // Dynamic Form field creation Functionality : START ===> + initAnswers() { + return this._formBuilder.group({ + answer: ['', Validators.compose([Validators.required])], + // fk_question_group_id: [''] + }); + } + addLanguage(e) { + const control = this._addQuesFrom.controls['answers']; + control.push(this.initAnswers()); + } + removeLanguage(i: number) { + const control = this._addQuesFrom.controls['answers']; + control.removeAt(i); + } + + // END ===> + + getCategoryListMaster() { + this.masterService.getAllMasterData('QUESTIONCATEGORY').subscribe( + data => { + this.categories = data.records.filter(category => category.isactive == 1); + }, + error => { + this.notifier.notify('warning', 'No Category Records Found.!'); + this.errorMessage = "No Category Records Found."; + } + ) + } + + getQuestionGroupMaster() { + this.masterService.getAllMasterData('QUESTIONGROUP').subscribe( + data => { + this.m_group = data.records; + }, + error => { + this.notifier.notify('warning', 'No Question Group Records Found.!'); + this.errorMessage = "No Question Group Records Found."; + } + ) + } + + getQuestionOptionsMaster() { + this.masterService.getAllMasterData('QUESTIONANSWERTYPE').subscribe( + data => { + this.questionsOptions = data.records; + }, + error => { + this.notifier.notify('warning', 'No Answer Type Records Found.!'); + this.errorMessage = "No Answer Type Record Found."; + } + ) + } + + /** For Popup Close Button */ + onNoClick(): void { + this.dialogRef.close(); + } + + /** To Save/Edited Popup Data */ + onSubmit() { + this.submitted = true; + // stop here if form is invalid + if (this._addQuesFrom.invalid) { + this.errorMessage = "Please Fill All Mandate Fields."; + return; + } else { + var answerFormValues = this._addQuesFrom.value; + + //To Remove The "Null" With Key also + Object.keys(answerFormValues).forEach((key) => (answerFormValues[key] == null) && delete answerFormValues[key]); + + //Add BRANCH data with help Service File + this.questionsService.addQuestionMasterDetails(answerFormValues).subscribe( + dataresult => { + if (dataresult.status == 200) { + console.log(dataresult); + this.notifier.notify('success', 'Record Saved Successfully.!'); + this.dialogRef.close(); + // alert("sample alert for Saving"); + } + else { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + this.errorMessage = "Some Thing Wents Wrong Try Again !"; + } + }, error => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + this.errorMessage = "Something Wents Wrong Try Again !"; + this.dialogRef.close(); + }); + //After Saving the BRANCH data then popup close + // this.dialogRef.close(); + } + } + + /** To Reset Popup Data */ + onReset() { + this._addQuesFrom.reset(); + } +} diff --git a/ng6-seed/src/app/template/questions/edit/edit.component.html b/ng6-seed/src/app/template/questions/edit/edit.component.html new file mode 100755 index 0000000..fead089 --- /dev/null +++ b/ng6-seed/src/app/template/questions/edit/edit.component.html @@ -0,0 +1,110 @@ +
+
{{pageTitle}}
+
+
+ + +
+ +
+
+ + + {{ ct.category_name }} + + You must Select Category. + +
+ +
+
+
+ + + You must Include Question. + +
+
+
+
+ + + You must Include Description. + +
+
+
+ + + {{ ans.answer_type_name }} + + You must Select Answer Type. + +
+
+ +
+
+
+
+
+
+
+ + + + + +
+ +
+ + + + +
+
+
+
+ + +
+
+ + +
+ + + + +
+ +
+
+
+ + + + \ No newline at end of file diff --git a/ng6-seed/src/app/template/questions/edit/edit.component.scss b/ng6-seed/src/app/template/questions/edit/edit.component.scss new file mode 100755 index 0000000..6e263ad --- /dev/null +++ b/ng6-seed/src/app/template/questions/edit/edit.component.scss @@ -0,0 +1,3 @@ +.example-full-width{ + width: 100%; +} \ No newline at end of file diff --git a/ng6-seed/src/app/template/questions/edit/edit.component.spec.ts b/ng6-seed/src/app/template/questions/edit/edit.component.spec.ts new file mode 100755 index 0000000..34ef921 --- /dev/null +++ b/ng6-seed/src/app/template/questions/edit/edit.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { EditComponent } from './edit.component'; + +describe('EditComponent', () => { + let component: EditComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ EditComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(EditComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/template/questions/edit/edit.component.ts b/ng6-seed/src/app/template/questions/edit/edit.component.ts new file mode 100755 index 0000000..843c2d2 --- /dev/null +++ b/ng6-seed/src/app/template/questions/edit/edit.component.ts @@ -0,0 +1,217 @@ +/** Common Imports */ +import { + Component, + OnInit, + Inject +} from '@angular/core'; + +import { + FormBuilder, + FormGroup, + Validators, + FormArray, +} from '@angular/forms'; + +import { NotifierService } from 'angular-notifier'; + +import { + MatDialog, + MatDialogRef, + MAT_DIALOG_DATA +} from '@angular/material'; +/** Service */ +import { MastersService } from './../../service/masters/masters.service'; +import { QuestionsService } from './../../service/questions/questions.service'; + +/* +* Question master details edit component +* : kdk +*/ +@Component({ + selector: 'app-edit', + templateUrl: './edit.component.html', + styleUrls: ['./edit.component.scss'] +}) +export class EditComponent implements OnInit { + + + public pageTitle: string = "Edit Question Details"; + public _addQuesFrom: FormGroup; + public submitted = false; + public categories: any = []; + public m_group: any = []; + public questionsOptions: any = []; + errorMessage: string; + + + /** + * Notifier service + */ + private notifier: NotifierService; + + constructor( + notifier: NotifierService, + private _formBuilder: FormBuilder, + private dialogRef: MatDialogRef, + private masterService: MastersService, + private questionsService: QuestionsService, + @Inject(MAT_DIALOG_DATA) public data: any) { + this.notifier = notifier; + } + + ngOnInit() { + this.loadFormData(); + // if (this.data["0"].length > 0) { + // for (let val of this.data["0"]) { + // // alert(JSON.stringify(val)); + // let vals = val; + // this.addLanguage(vals['answer'], vals['question_answer_id'], vals['isactive'], null); + // } + // } + // OnInit Load Category and Question Type Masters + this.getCategoryListMaster(); + this.getQuestionGroupMaster(); + this.getQuestionOptionsMaster(); + } + + // load answer details list + loadAnsData() { + if (this.data["0"].length > 0) { + for (let val of this.data["0"]) { + // alert(JSON.stringify(val)); + let vals = val; + this.addLanguage(vals['answer'], vals['question_answer_id'], vals['fk_question_group_id'], vals['isactive'], null); + } + } + } + + // load form data form the master + loadFormData() { + /** Questions Form Datas*/ + this._addQuesFrom = this._formBuilder.group({ + question_id: [this.data.question_id], + question: [this.data.question, Validators.compose([Validators.required])], + description: [this.data.description, Validators.compose([Validators.required])], + fk_question_category: [this.data.fk_question_category, Validators.compose([Validators.required])], + // fk_question_group_id: [this.data.fk_question_group_id, Validators.compose([Validators.required])], + fk_question_answertype: [this.data.fk_question_answertype, Validators.compose([Validators.required])], + isactive: [this.data.isactive], + answers: this._formBuilder.array([ + // this.initAnswers(null, null), + ]) + }); + } + + // convenience getter for easy access to form fields + get f() { return this._addQuesFrom.controls; } + + // form answer details access + get f_ans() { return this._addQuesFrom.get('answers'); } + + + // Dynamic Form field creation Functionality : START ===> + initAnswers(ans, fk_id, fk_question_group_id, isAct) { + isAct = isAct == null ? 1 : isAct; + return this._formBuilder.group({ + answer: [ans, Validators.compose([Validators.required])], + question_answer_id: [fk_id], + // fk_question_group_id: [fk_question_group_id], + isactive: [isAct] + }); + } + addLanguage(ans, fk_id, fk_question_group_id, isAct, e) { + const control = this._addQuesFrom.controls['answers']; + control.push(this.initAnswers(ans, fk_id, fk_question_group_id, isAct)); + } + removeLanguage(i: number) { + const control = this._addQuesFrom.controls['answers']; + control.removeAt(i); + } + + // END ===> + + getCategoryListMaster() { + this.masterService.getAllMasterData('QUESTIONCATEGORY').subscribe( + data => { + this.categories = data.records.filter(category => category.isactive == 1); + }, + error => { + this.notifier.notify('warning', 'No Category Records Found.!'); + this.errorMessage = "No Category Record Found."; + } + ) + } + + getQuestionGroupMaster() { + this.masterService.getAllMasterData('QUESTIONGROUP').subscribe( + data => { + this.m_group = data.records; + }, + error => { + this.notifier.notify('warning', 'No Question Group Records Found.!'); + this.errorMessage = "No Question Group Records Found."; + } + ) + } + getQuestionOptionsMaster() { + this.masterService.getAllMasterData('QUESTIONANSWERTYPE').subscribe( + data => { + this.questionsOptions = data.records; + }, + error => { + this.notifier.notify('warning', 'No Answer Type Records Found.!'); + this.errorMessage = "No Answer Type Record Found."; + } + ) + } + + /** For Popup Close Button */ + onNoClick(): void { + this.dialogRef.close(); + } + + /** To Save/Edited Popup Data */ + onSubmit() { + this.submitted = true; + // stop here if form is invalid + if (this._addQuesFrom.invalid) { + this.errorMessage = "Please Fill All Mandate Fields."; + return; + } else { + var answerFormValues = this._addQuesFrom.value; + + //To Remove The "Null" With Key also + Object.keys(answerFormValues).forEach((key) => (answerFormValues[key] == null) && delete answerFormValues[key]); + + //Add BRANCH data with help Service File + this.questionsService.updateQuestionMasterDetails(answerFormValues).subscribe( + dataresult => { + if (dataresult.status == 200) { + console.log(dataresult); + this.notifier.notify('success', 'Your Changes Updated.!'); + this.dialogRef.close(); + // this.notifierService('success', 'You are awesome! I mean it!'); + // alert("sample alert for Saving"); + } + else { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + this.errorMessage = "Something Wents Wrong Try Again.!"; + } + }, error => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + this.errorMessage = "Some Thing Wents Wrong Try Again.!"; + this.dialogRef.close(); + }); + //After Saving the BRANCH data then popup close + // this.dialogRef.close(); + } + } + + /** To Reset Popup Data */ + onReset() { + this._addQuesFrom.reset(); + this.loadFormData(); + this.loadAnsData(); + } + +} diff --git a/ng6-seed/src/app/template/questions/list/list.component.html b/ng6-seed/src/app/template/questions/list/list.component.html new file mode 100755 index 0000000..afaf902 --- /dev/null +++ b/ng6-seed/src/app/template/questions/list/list.component.html @@ -0,0 +1,130 @@ + + +
+
+ Questions Master +
+
+ + +
+ +
+
+ + + + + {{cat.category_name}} + + +
+
+
+ +
+
+ + + + + + {{ product.category_name }} + + + + + {{ product.question }} + + + + + + + + + + + + + + + + + + + +
No Record Found ...
+
+
+ + + + +
+
+
+
+ + + + + + + \ No newline at end of file diff --git a/ng6-seed/src/app/template/questions/list/list.component.scss b/ng6-seed/src/app/template/questions/list/list.component.scss new file mode 100755 index 0000000..185c923 --- /dev/null +++ b/ng6-seed/src/app/template/questions/list/list.component.scss @@ -0,0 +1,54 @@ +// mat table css + +.example-container { + display: flex; + flex-direction: column; + min-width: 300px; +} + +.example-header { + min-height: 64px; + padding: 8px 24px 0; +} + +.mat-form-field { + font-size: 14px; +// width: 100%; +} +.mat-card-title{ + font-size:24px !important; +} + +.cell{ + display:inline !important; +} + +.text-line-limit { + text-overflow: ellipsis; + overflow: hidden; + // white-space: nowrap; + display: -webkit-box; + line-height: 16px; /* fallback */ + max-height: 32px; /* fallback */ + -webkit-line-clamp: 2; /* number of lines to show */ + -webkit-box-orient: vertical; + + // text-overflow: ellipsis; + // overflow: hidden; + // width: 160px; + // height: 1.2em; + // white-space: nowrap; +} + +.category-label { + padding: 2px 6px; + background: #629cff; + color: #fff; + box-shadow: 0 2px 3px #c8bbbb; +} + +.no-record-found { + font-size: 18px; + color: #03a9f4; + padding : 12px 8px; +} \ No newline at end of file diff --git a/ng6-seed/src/app/template/questions/list/list.component.spec.ts b/ng6-seed/src/app/template/questions/list/list.component.spec.ts new file mode 100755 index 0000000..beacd15 --- /dev/null +++ b/ng6-seed/src/app/template/questions/list/list.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ListComponent } from './list.component'; + +describe('ListComponent', () => { + let component: ListComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ListComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ListComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/template/questions/list/list.component.ts b/ng6-seed/src/app/template/questions/list/list.component.ts new file mode 100755 index 0000000..56c5b07 --- /dev/null +++ b/ng6-seed/src/app/template/questions/list/list.component.ts @@ -0,0 +1,142 @@ +import { Component, ViewChild, OnInit } from '@angular/core'; +import { MatPaginator, MatSort, MatTableDataSource, MatDialog, PageEvent } from '@angular/material'; +import { FormGroup, FormControl, FormBuilder } from '@angular/forms'; +import { DataSource } from '@angular/cdk/table'; +import { Observable } from 'rxjs/Observable'; +import { QuestionsService } from './../../service/questions/questions.service'; +import { MastersService } from './../../service/masters/masters.service'; +/** Dialog Component */ +import { AddComponent } from './../add/add.component'; +import { EditComponent } from './../edit/edit.component'; + +/* +* Questions master List component +* : kdk +*/ +@Component({ + selector: 'app-list', + templateUrl: './list.component.html', + styleUrls: ['./list.component.scss'] +}) +export class ListComponent implements OnInit { + + public productList: any[] = []; + public paginationList: any[] = []; + public categories: any = []; + public search_cid: any = null; + public noQuesMasterRecrdFound: boolean = false; + + public filterFormGroupCtrl: FormGroup; + + // pagination variable details + length = 50; + pageIndex = 0; + pageSize = 10; + pageEvent: PageEvent; + + // data source variable details + questionListData = null; + public dataLength: number; + public dataSource = new MatTableDataSource(); + displayedColumns = ['category_name', 'question', 'actions']; + + @ViewChild(MatPaginator) paginator: MatPaginator; + @ViewChild(MatSort) sort: MatSort; + + constructor(private dialog: MatDialog, + private questionsService: QuestionsService, + private masterService: MastersService, + private _formBuilder: FormBuilder) { + this.filterFormGroupCtrl = this._formBuilder.group({ + category: [null, ''] + }); + } + + ngOnInit() { + this.getCategorMaster(); + this.getQuestionsMasters(); + } + + // get question master list details + getQuestionsMasters() { + this.noQuesMasterRecrdFound = false; + this.search_cid = this.filterFormGroupCtrl.controls.category.value; + console.log(this.search_cid + ", " + this.filterFormGroupCtrl); + this.questionsService.getQuestionMasterDetails(this.search_cid).subscribe( + data => { + if (data) { + if (data.records) { + this.productList = data.records; + // this.questionListData = data.records; + this.dataLength = data.records.length; + this.dataSource.data = this.productList; + } else { + this.productList = []; + this.dataLength = null; + this.noQuesMasterRecrdFound = true; + } + } else { + this.productList = []; + this.dataLength = null; + this.noQuesMasterRecrdFound = true; + } + } + ) + } + + // get category master details + getCategorMaster() { + this.masterService.getAllMasterData('QUESTIONCATEGORY').subscribe( + data => { + this.categories = data.records.filter(category => category.isactive == 1); + }, + error => { + // this.errorMessage = "No Category Record Found."; + } + ) + } + + ngAfterViewInit() { + this.dataSource.paginator = this.paginator; + this.dataSource.sort = this.sort; + } + + applyFilter(filterValue: string) { + filterValue = filterValue.trim(); // Remove whitespace + filterValue = filterValue.toLowerCase(); // Datasource defaults to lowercase matches + this.dataSource.filter = filterValue; + } + + // add questions popup model call + addNewQuestion() { + const dialogRef = this.dialog.open(AddComponent, { + data: {}, + disableClose: true + }); + dialogRef.afterClosed() + .subscribe(dataresult => { + this.getQuestionsMasters(); + // this.getBranch(); + // this.isPopupOpened = false; + }); + } + + // edit questions master details popup model + editQuestion(rowDetails: any) { + const dialogRef = this.dialog.open(EditComponent, { + data: rowDetails, + disableClose: true + }); + dialogRef.afterClosed() + .subscribe(dataresult => { + this.getQuestionsMasters(); + // this.getBranch(); + // this.isPopupOpened = false; + }); + } + // padination page event call + pageChange(e) { + console.log(e); + } + +} diff --git a/ng6-seed/src/app/template/questions/questions.module.ts b/ng6-seed/src/app/template/questions/questions.module.ts new file mode 100755 index 0000000..9090d9e --- /dev/null +++ b/ng6-seed/src/app/template/questions/questions.module.ts @@ -0,0 +1,110 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; + +import { NotifierModule, NotifierOptions } from 'angular-notifier'; +import { FlexLayoutModule } from '@angular/flex-layout'; +import { + MatCardModule, + MatIconModule, + MatInputModule, + MatRadioModule, + MatButtonModule,MatTableModule,MatPaginatorModule, + MatProgressBarModule,MatDialogModule, MatSortModule, + MatToolbarModule,MatSelectModule, + MatListModule, MatMenuModule, + MatCheckboxModule +} from '@angular/material'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import {MatSlideToggleModule} from '@angular/material/slide-toggle'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { RouterModule } from '@angular/router'; + +// Questions Routing import +import { QuestionsRouting } from './questions.routing'; +// Questions List +import { ListComponent } from './list/list.component'; + +import { QuestionsService } from './../service/questions/questions.service'; +import { AddComponent } from './add/add.component'; +import { EditComponent } from './edit/edit.component'; +/* +* Question Master Module details +* : kdk +*/ +/** + * Custom angular notifier options + */ +const customNotifierOptions: NotifierOptions = { + position: { + horizontal: { + position: 'right', + distance: 12 + }, + vertical: { + position: 'top', + distance: 32, + gap: 10 + } + }, + theme: 'material', + behaviour: { + autoHide: 5000, + onClick: 'hide', + onMouseover: 'pauseAutoHide', + showDismissButton: true, + stacking: 4 + }, + animations: { + enabled: true, + show: { + preset: 'slide', + speed: 300, + easing: 'ease' + }, + hide: { + preset: 'fade', + speed: 300, + easing: 'ease', + offset: 50 + }, + shift: { + speed: 300, + easing: 'ease' + }, + overlap: 150 + } +}; + +@NgModule({ + imports: [ + CommonModule, + NotifierModule.withConfig(customNotifierOptions), + FlexLayoutModule, + MatCardModule, + MatIconModule, + MatInputModule, + MatRadioModule, + MatButtonModule,MatTableModule,MatPaginatorModule, + MatProgressBarModule,MatDialogModule, MatSortModule, + MatToolbarModule,MatSelectModule,MatListModule, MatMenuModule, + MatSlideToggleModule, + MatCheckboxModule, + MatTooltipModule, + FormsModule, + ReactiveFormsModule, + QuestionsRouting + ], + declarations: [ + ListComponent, + AddComponent, + EditComponent + ], + entryComponents: [ + AddComponent, + EditComponent + ], + providers: [ + QuestionsService + ] +}) +export class QuestionsModule { } diff --git a/ng6-seed/src/app/template/questions/questions.routing.ts b/ng6-seed/src/app/template/questions/questions.routing.ts new file mode 100755 index 0000000..0f07ea0 --- /dev/null +++ b/ng6-seed/src/app/template/questions/questions.routing.ts @@ -0,0 +1,19 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +// Questions List +import { ListComponent } from './list/list.component'; +/* +* Question Master Router Module details +*/ +const routes: Routes = [ + { + path: '', + component: ListComponent + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class QuestionsRouting {} diff --git a/ng6-seed/src/app/settings/service/masters/masters.service.spec.ts b/ng6-seed/src/app/template/service/masters/masters.service.spec.ts old mode 100644 new mode 100755 similarity index 100% rename from ng6-seed/src/app/settings/service/masters/masters.service.spec.ts rename to ng6-seed/src/app/template/service/masters/masters.service.spec.ts diff --git a/ng6-seed/src/app/settings/service/masters/masters.service.ts b/ng6-seed/src/app/template/service/masters/masters.service.ts old mode 100644 new mode 100755 similarity index 87% rename from ng6-seed/src/app/settings/service/masters/masters.service.ts rename to ng6-seed/src/app/template/service/masters/masters.service.ts index a9f771c..1b33ce9 --- a/ng6-seed/src/app/settings/service/masters/masters.service.ts +++ b/ng6-seed/src/app/template/service/masters/masters.service.ts @@ -8,25 +8,20 @@ import { of } from 'rxjs'; /** Imported Service Files Are., */ import { AwsService } from '../../../AwsService/aws.service'; +/** Environment */ +import { environment } from 'environments/environment'; /** Consant Value For Created Date And Updated Date */ const currentdate = new Date().toJSON().slice(0,19).replace('T',' '); -/** Master Interface */ -export interface Master { - master_id:number; - master_name:string; - constant_name:string; -} - @Injectable() export class MastersService { - private apiUrl = 'http://localhost/sparqapi/api/'; - - + //private apiUrl = "http://ssa.sineedge.com/sparqapi/api/"; + private apiUrl = environment.apiEndpoint; + constructor(private _http: HttpClient, private _aws:AwsService) { } @@ -38,10 +33,13 @@ export class MastersService { * 2nd argument is "MasterName" :string - Table Name To Store the Records */ addMasterDetails(Records: any,MasterName:string): Observable { - - //Records.fk_createdby = this._aws.getlocale();//to get user id for who is created the Record - Records.createdon = currentdate;//to get Current date and Time for when the Record is created - + Records.fk_createdby = this._aws.getlocale();//to get user id for who is created the Record + if(MasterName == 'COMPANY'){ + Records.company_master_createdon = currentdate;//to get Current date and Time for when the Record is created + } + else{ + Records.createdon = currentdate;//to get Current date and Time for when the Record is created + } var ArrayData = { "master_name":MasterName, "records": Records } @@ -63,7 +61,7 @@ return this._http.post(this.apiUrl+"saveMaster", ArrayData) */ editMasterDetails(Records: any,MasterName:string): Observable { - //Records.fk_updatedby = this._aws.getlocale();//to get user id for who is update the record + Records.fk_updatedby = this._aws.getlocale();//to get user id for who is update the record Records.updatedon = currentdate;//to get Current date and Time for when the Record is updated var ArrayData = { "master_name":MasterName, @@ -86,7 +84,7 @@ return this._http.post(this.apiUrl+"saveMaster", ArrayData) //This "otherDatas" Array is common Argument For All Master let otherDatas:any = {isactive:0, - //fk_updatedby:this._aws.getlocale(), + fk_updatedby:this._aws.getlocale(), updatedon:currentdate} //This "dataWithPrimaryKey" Array is Mergeing The 'PrimaryKeyWithValue' argument with otherDatas @@ -96,9 +94,11 @@ return this._http.post(this.apiUrl+"saveMaster", ArrayData) "records":JSON.parse(JSON.stringify(dataWithPrimaryKey)) } - var data = this._http.post(this.apiUrl+'saveMaster',ArrayData); - alert(data); - return data; + return this._http.post(this.apiUrl+'saveMaster',ArrayData).pipe( + catchError(this.handleError('role', [])) + ); + // alert(data); + // return data; } /** @@ -213,5 +213,5 @@ return this._http.post(this.apiUrl+"saveMaster", ArrayData) return of(result as T); }; } - +addCompanyDetails } \ No newline at end of file diff --git a/ng6-seed/src/app/template/service/questions/questions.service.spec.ts b/ng6-seed/src/app/template/service/questions/questions.service.spec.ts new file mode 100755 index 0000000..831ec17 --- /dev/null +++ b/ng6-seed/src/app/template/service/questions/questions.service.spec.ts @@ -0,0 +1,12 @@ +import { TestBed } from '@angular/core/testing'; + +import { QuestionsService } from './questions.service'; + +describe('QuestionsService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: QuestionsService = TestBed.get(QuestionsService); + expect(service).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/template/service/questions/questions.service.ts b/ng6-seed/src/app/template/service/questions/questions.service.ts new file mode 100755 index 0000000..ef9382c --- /dev/null +++ b/ng6-seed/src/app/template/service/questions/questions.service.ts @@ -0,0 +1,74 @@ +import { Injectable } from '@angular/core'; +import { HttpClient, HttpParams } from '@angular/common/http'; +import { Observable } from 'rxjs/Observable'; +import { catchError } from 'rxjs/operators'; +import { of } from 'rxjs'; +import 'rxjs/add/operator/map'; + +/** Imported Service Files Are., */ +import { AwsService } from '../../../AwsService/aws.service'; +/** Consant Value For Created Date And Updated Date */ +const currentdate = new Date().toJSON().slice(0, 19).replace('T', ' '); +/** Environment */ +import { environment } from 'environments/environment'; + + +@Injectable({ + providedIn: 'root' +}) + +/* +* Add , Edit, List, Delete Question Master API service End-point Call Functionality +* Kdk +*/ +export class QuestionsService { + + //private apiUrl = "http://ssa.sineedge.com/sparqapi/api/"; + private apiUrl = environment.apiEndpoint; + private serviceUrl = 'https://jsonplaceholder.typicode.com/users'; + + constructor(private _http: HttpClient, + private _aws: AwsService) { } + + getUser(): Observable { + return this._http.get(this.serviceUrl); + } + + // get questions master details list + getQuestionMasterDetails(cid: any): Observable { + // Add safe, URL encoded search parameter if there is a search term + const options = cid ? + { params: new HttpParams().set('cid', cid) } : {}; + return this._http.get(this.apiUrl + "listAllQuestions/get", options); + } + + // add question master + addQuestionMasterDetails(Records: any): Observable { + Records.fk_createdby = this._aws.getlocale();//to get user id for who is created the Record + Records.createdon = currentdate;//to get Current date and Time for when the Record is created + return this._http.post(this.apiUrl + "saveNewQuestion", { 'records': Records}) + .pipe( + catchError(this.handleError('role', [])) + ) + } + + updateQuestionMasterDetails(Records: any): Observable { + Records.fk_updatedby = this._aws.getlocale();//to get user id for who is created the Record + Records.updatedon = currentdate;//to get Current date and Time for when the Record is created + return this._http.post(this.apiUrl + "saveExistQuestion", { 'records': Records}) + .pipe( + catchError(this.handleError('role', [])) + ) + } + + /** + * TO Handle The Error + */ + private handleError(operation = 'operation', result?: T) { + + return (error: any): Observable => { + return of(result as T); + }; + } + +} diff --git a/ng6-seed/src/app/template/service/templates/templates.service.spec.ts b/ng6-seed/src/app/template/service/templates/templates.service.spec.ts new file mode 100755 index 0000000..1e48201 --- /dev/null +++ b/ng6-seed/src/app/template/service/templates/templates.service.spec.ts @@ -0,0 +1,12 @@ +import { TestBed } from '@angular/core/testing'; + +import { TemplatesService } from './templates.service'; + +describe('TemplatesService', () => { + beforeEach(() => TestBed.configureTestingModule({})); + + it('should be created', () => { + const service: TemplatesService = TestBed.get(TemplatesService); + expect(service).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/template/service/templates/templates.service.ts b/ng6-seed/src/app/template/service/templates/templates.service.ts new file mode 100755 index 0000000..6b4d188 --- /dev/null +++ b/ng6-seed/src/app/template/service/templates/templates.service.ts @@ -0,0 +1,162 @@ +import { Injectable } from '@angular/core'; +import { HttpClient, HttpParams } from '@angular/common/http'; +import { Observable } from 'rxjs/Observable'; +import { catchError } from 'rxjs/operators'; +import { of } from 'rxjs'; +import 'rxjs/add/operator/map'; + +/** Imported Service Files Are., */ +import { AwsService } from '../../../AwsService/aws.service'; +/** Consant Value For Created Date And Updated Date */ +const currentdate = new Date().toJSON().slice(0, 19).replace('T', ' '); +/** Environment */ +import { environment } from 'environments/environment'; + +@Injectable({ + providedIn: 'root' +}) + +export class TemplatesService { + + //private apiUrl = "http://ssa.sineedge.com/sparqapi/api/"; + private apiUrl = environment.apiEndpoint; + + constructor(private _http: HttpClient, + private _aws: AwsService) { } + + // get templates master details list + getTemplatesMasterListDetails(cid: any): Observable { + // Add safe, URL encoded search parameter if there is a search term + const options = cid ? + { params: new HttpParams().set('cid', cid) } : {}; + return this._http.get(this.apiUrl + "listAllTemplates/any", options); + } + + addNewTemplate(Records: any): Observable{ + Records.fk_createdby = this._aws.getlocale();//to get user id for who is created the Record + Records.createdon = currentdate;//to get Current date and Time for when the Record is created + return this._http.post(this.apiUrl + "saveNewTemplateName", {'records': Records }); + } + + getTemplateIDNameDetails(temp_id: number): Observable{ + // Add safe, URL encoded search parameter if there is a search term + return this._http.post(this.apiUrl + "getTemplateMaster", {'template_id': temp_id }); + } + + updateTempateIDNameDetails(Records: any): Observable{ + Records.fk_updatedby = this._aws.getlocale();//to get user id for who is created the Record + Records.updatedon = currentdate;//to get Current date and Time for when the Record is created + return this._http.post(this.apiUrl + "saveNewTemplateName", {'records': Records }); + } + + getTemplateIDLenderDetails(temp_id: number): Observable{ + // Add safe, URL encoded search parameter if there is a search term + return this._http.post(this.apiUrl + "getTemplateLenders", {'template_id': temp_id }); + } + + updateTempateIDLenderDetails(Records: any): Observable{ + + let records = Records.map(item=>{ + item.fk_updatedby = this._aws.getlocale();//to get user id for who is created the Record + item.updatedon = currentdate;//to get Current date and Time for when the Record is created + item.createdon = item.createdon == null ? currentdate : item.createdon; + item.fk_createdby = item.fk_createdby == null ? this._aws.getlocale() : item.fk_createdby; + return item; + }); + return this._http.post(this.apiUrl + "saveTemplateLenderDetails", {'records': records }); + } + + + getTemplateIDCategoryDetails(temp_id: number): Observable{ + // Add safe, URL encoded search parameter if there is a search term + return this._http.post(this.apiUrl + "getTemplateCategories", {'template_id': temp_id }); + } + + updateTempateIDCategoryDetails(Records: any): Observable{ + + let records = Records.map(item=>{ + item.fk_updatedby = this._aws.getlocale();//to get user id for who is created the Record + item.updatedon = currentdate;//to get Current date and Time for when the Record is created + item.createdon = item.createdon == null ? currentdate : item.createdon; + item.fk_createdby = item.fk_createdby == null ? this._aws.getlocale() : item.fk_createdby; + return item; + }); + return this._http.post(this.apiUrl + "saveTemplateCategoryDetails", {'records': records }); + } + + + getTemplateIDQuesAnsDetails(temp_id: number): Observable{ + // Add safe, URL encoded search parameter if there is a search term + return this._http.post(this.apiUrl + "getScorecardDetails", {'templateid': temp_id }); + } + + + updateTempateIDQuesAnsDetails(Records: any): Observable{ + let records = Records.map(item=>{ + item.fk_updatedby = this._aws.getlocale();//to get user id for who is created the Record + // item.updatedon = currentdate; + // item.createdon = item.createdon == null ? currentdate : item.createdon; + item.fk_createdby = item.fk_createdby == null ? this._aws.getlocale() : item.fk_createdby; + + // item.answers = item.answers.map(subItem=>{ + // subItem.fk_updatedby = this._aws.getlocale();//to get user id for who is created the Record + // subItem.updatedon = currentdate; + // })//to get Current date and Time for when the Record is created + return item; + }); + return this._http.post(this.apiUrl + "saveScoreCardQuestions", {'records': records }); + } + + getRemaningQuestionCategory(data: any): Observable{ + // Add safe, URL encoded search parameter if there is a search term + return this._http.post(this.apiUrl + "getQuestionsForTemplateCreation", {"template_id": data.template_id, "category_id": data.category_id}); + } + + getFormIdRemainingQuestionsDetails(data: any) : Observable { + let records = {"templateid": data.template_id, "formid": data.form_id, "categoryid": data.category_id}; + return this._http.post(this.apiUrl + "getFormAndQuestionKeys", { "records" : records} ); + } + + // get Master Details ============================== + + // get templates master details list + getLenderMasterListDetails(): Observable { + return this._http.get(this.apiUrl + "getListOfLenders"); + } + + getProductsMasterListDetails(): Observable { + return this._http.get(this.apiUrl + "getListOfProducts "); + } + + getCustomerSegmentsMasterListDetails(): Observable { + return this._http.get(this.apiUrl + "getListOfCustomerSegments"); + } + + getCategoryMasterListDetails(): Observable { + return this._http.get(this.apiUrl + "getListOfCategories"); + } + + addPDReportModelTemplate(Records : any): Observable { + Records.fk_createdby = this._aws.getlocale();//to get user id for who is created the Record + // Records.createdon = currentdate;//to get Current date and Time for when the Record is created + return this._http.post(this.apiUrl + "savePDReportTemplate", {'records': Records }); + } + + getPDReportModelTemplate(template_id: number): Observable { + return this._http.post(this.apiUrl + "getPDReportTemplate", { "records": {"fk_template_id": template_id }}); + } + + // selected Template forms details + getTemplateSelectedForms(template_id: any): Observable { + const options = { + params: new HttpParams().set('template_id', template_id) + }; + return this._http.get(this.apiUrl + "getTemplateForms", options); + } + + saveTemplateFormsList(Records: any): Observable { + // Records.fk_createdby = this._aws.getlocale();//to get user id for who is created the Record + // Records.createdon = currentdate;//to get Current date and Time for when the Record is created + return this._http.post(this.apiUrl + "saveTemplateForms", {'records': Records }); + } +} \ No newline at end of file diff --git a/ng6-seed/src/app/template/template.module.ts b/ng6-seed/src/app/template/template.module.ts new file mode 100755 index 0000000..c138240 --- /dev/null +++ b/ng6-seed/src/app/template/template.module.ts @@ -0,0 +1,62 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { CKEditorModule } from 'ng2-ckeditor'; +import { + MatCardModule, + MatIconModule, + MatInputModule, + MatRadioModule, + MatButtonModule,MatTableModule,MatPaginatorModule, + MatProgressBarModule,MatDialogModule, MatSortModule, + MatToolbarModule,MatSelectModule, +MatListModule, MatMenuModule, + MatCheckboxModule, MatStepperModule, MatTabsModule, + MatExpansionModule } from '@angular/material'; +import {MatSlideToggleModule} from '@angular/material/slide-toggle'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { FileUploadModule } from 'ng2-file-upload/ng2-file-upload'; +import { TreeModule } from 'angular-tree-component'; +import { NgxDatatableModule } from '@swimlane/ngx-datatable'; +import { FlexLayoutModule } from '@angular/flex-layout'; + +import { DemoMaterialModule } from '../shared/demo.module'; +// import { NgxMatSelectSearchModule } from 'ngx-mat-select-search'; +import 'hammerjs'; +import { RouterModule } from '@angular/router'; + +import { TemplatesModule } from './templates/templates.module'; +import { QuestionsModule } from './questions/questions.module'; +/** Template Routes */ +import { TemplateRoutes } from './template.routing'; + +/** Master Service */ +import { MastersService } from './service/masters/masters.service'; + + +// import { HttpClientModule } from '@angular/common/http'; +@NgModule({ + imports: [ + CommonModule, + CKEditorModule, + RouterModule.forChild(TemplateRoutes), + TemplatesModule, + QuestionsModule, + MatCardModule, + MatIconModule, + MatInputModule, + MatRadioModule, + MatButtonModule,MatTableModule,MatPaginatorModule, + MatProgressBarModule,MatDialogModule, MatSortModule, + MatToolbarModule,MatSelectModule, + MatListModule, MatMenuModule, + MatCheckboxModule, MatStepperModule, MatTabsModule, + MatExpansionModule , + FormsModule,ReactiveFormsModule, + // HttpClientModule, + ], + + providers:[ + MastersService + ] +}) +export class TemplateModule { } diff --git a/ng6-seed/src/app/template/template.routing.ts b/ng6-seed/src/app/template/template.routing.ts new file mode 100755 index 0000000..99211e4 --- /dev/null +++ b/ng6-seed/src/app/template/template.routing.ts @@ -0,0 +1,14 @@ +import { Routes } from '@angular/router'; +import { QuestionsModule } from './questions/questions.module'; +import { TemplatesModule } from './templates/templates.module'; +export const TemplateRoutes: Routes = [{ + path: '', + children:[{ + path:'questions', + loadChildren:'./questions/questions.module#QuestionsModule' + },{ + path:'templates', + loadChildren:'./templates/templates.module#TemplatesModule' + } +] +}] diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/edit-category/edit-category.component.html b/ng6-seed/src/app/template/templates/templates-list/edit/edit-category/edit-category.component.html new file mode 100755 index 0000000..fd4d127 --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/edit/edit-category/edit-category.component.html @@ -0,0 +1,36 @@ +
+
+ + +
+
+
+ + + {{ category.category_name }} + + Category Required.! + This Category Already Exist.! + +
+
+ + + % + Weightage Required.! +
+
+ +
+
+
+ This Category Already Exist.! +
+
+ +
+ + + +
+
\ No newline at end of file diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/edit-category/edit-category.component.scss b/ng6-seed/src/app/template/templates/templates-list/edit/edit-category/edit-category.component.scss new file mode 100755 index 0000000..0519ecb --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/edit/edit-category/edit-category.component.scss @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/edit-category/edit-category.component.spec.ts b/ng6-seed/src/app/template/templates/templates-list/edit/edit-category/edit-category.component.spec.ts new file mode 100755 index 0000000..962cea8 --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/edit/edit-category/edit-category.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { EditCategoryComponent } from './edit-category.component'; + +describe('EditCategoryComponent', () => { + let component: EditCategoryComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ EditCategoryComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(EditCategoryComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/edit-category/edit-category.component.ts b/ng6-seed/src/app/template/templates/templates-list/edit/edit-category/edit-category.component.ts new file mode 100755 index 0000000..82ed34c --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/edit/edit-category/edit-category.component.ts @@ -0,0 +1,246 @@ +import { Component, ViewChild, OnInit, OnDestroy, Input, AfterViewInit } from '@angular/core'; +import { MatPaginator, MatSort, MatTableDataSource, MatDialog, PageEvent } from '@angular/material'; +import { FormGroup, FormControl, FormBuilder, Validators, FormArray } from '@angular/forms'; +import { ActivatedRoute, Router } from '@angular/router'; +import { DataSource } from '@angular/cdk/table'; +import { Observable } from 'rxjs/Observable'; + +import { NotifierService } from 'angular-notifier'; +import { TemplatesService } from './../../../../service/templates/templates.service'; +import { MastersService } from './../../../../service/masters/masters.service'; + +/* +* Question Cagegory add and edit functionality with dynamic form creation with validation +* : kdk +*/ + +@Component({ + selector: 'app-template-edit-category', + templateUrl: './edit-category.component.html', + styleUrls: ['./edit-category.component.scss'] +}) +export class EditCategoryComponent implements OnInit, OnDestroy, AfterViewInit { + + @Input() questionId: number; + + public _editTempCategoryFrom: FormGroup; + public submitted = false; + public templateCategoryRecord: any; + + public m_category: any; + + /** + * Notifier service + */ + private notifier: NotifierService; + + constructor( + notifier: NotifierService, + private templatesService: TemplatesService, + private mastersService: MastersService, + private _formBuilder: FormBuilder) { + this.notifier = notifier; + } + + + ngOnInit() { + this.initalLoadFormData(); + this.getCategoryMasters(); + this.getTemplateCategoryDetails(); + + this._editTempCategoryFrom = this._formBuilder.group({ + temp_category: this._formBuilder.array([ + // this.initAnswers(), + ]) + }) + } + + ngAfterViewInit() { + // this.getTemplateCategoryDetails(); + } + + setFormDatas(record) { + if (record.length > 0) { + for (let val of record) { + let vals = { + template_category_weightage_id: val.template_category_weightage_id, + fk_question_category_id: val.fk_question_category_id, + fk_template_id: val.fk_template_id, + weightage: val.weightage, + isactive: val.isactive, + }; + this.addLanguage(vals, null); + } + } + } + + // Dynamic Form field creation Functionality : START ===> + initAnswers(data) { + return this._formBuilder.group({ + template_category_weightage_id: [data.template_category_weightage_id], + fk_question_category_id: [data.fk_question_category_id, Validators.compose([Validators.required])], + fk_template_id: [data.fk_template_id], + weightage: [data.weightage, Validators.compose([Validators.required])], + isactive: [data.isactive], + }); + } + addLanguage(data, e) { + if (data == null) { + let newDate = { + template_category_weightage_id: null, + fk_template_id: this.questionId, + fk_question_category_id: null, + weightage: null, + isactive: 1, + } + const control = this._editTempCategoryFrom.controls['temp_category']; + control.push(this.initAnswers(newDate)); + } else { + const control = this._editTempCategoryFrom.controls['temp_category']; + control.push(this.initAnswers(data)); + } + } + + getTemplateCategoryDetails() { + this.templatesService.getTemplateIDCategoryDetails(this.questionId).subscribe( + data => { + if (data) { + if (data.records) { + this.templateCategoryRecord = data.records; + this.setFormDatas(this.templateCategoryRecord); + } else { + // this.noTemplateLendersFound = true; + } + } else { + // this.noTemplateLendersFound = true; + } + } + ); + } + + getCategoryMasters() { + this.templatesService.getCategoryMasterListDetails().subscribe( + data => { + this.m_category = data.records; + }, + error => { + this.notifier.notify('warning', 'No Category Master Records Found.!'); + // this.m_category = "No Category Master Records Found."; + } + ); + } + + + + initalLoadFormData() { + this._editTempCategoryFrom = this._formBuilder.group({ + temp_category: this._formBuilder.array([ + // this.initAnswers(), + ]) + }) + } + + // convenience getter for easy access to form fields + get f() { return this._editTempCategoryFrom.controls; } + + // Dynamic Form field creation Functionality : START ===> + // initAnswers(fk_cat_id, name, weightage) { + // return this._formBuilder.group({ + // fk_category_id: [fk_cat_id, Validators.compose([Validators.required])], + // name: [name, Validators.compose([Validators.required])], + // weightage: [weightage, Validators.compose([Validators.required])], + // }); + // } + // addLanguage(fk_cat_id, name, weightage, e) { + // const control = this._editTempCategoryFrom.controls['temp_category']; + // control.push(this.initAnswers(fk_cat_id, name, weightage)); + // } + + removeLanguage(i: number) { + let value = (this._editTempCategoryFrom.controls['temp_category']).at(i).get('template_category_weightage_id').value; + if (value == null) { + const control = this._editTempCategoryFrom.controls['temp_category']; + control.removeAt(i); + } else { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + } + + } + + // END ===> + + public errorMessage: string; + + /** To Save/Edited Popup Data */ + onSubmit() { + this.submitted = true; + // stop here if form is invalid + if (this._editTempCategoryFrom.invalid) { + this.notifier.notify('warning', 'Should Fill Required Fields.!'); + return; + } else { + var formValues = this._editTempCategoryFrom.value; + //To Remove The "Null" With Key also + Object.keys(formValues).forEach((key) => (formValues[key] == null) && delete formValues[key]); + let val = formValues.temp_category; + let totalScore = val.map(value => { return Number(value.weightage); }).reduce((acc, value) => { return acc + value; }, 0); + if (totalScore == 100) { + if (!this.checkDuplicateInObject(formValues.temp_category)) { + this.templatesService.updateTempateIDCategoryDetails(formValues.temp_category).subscribe( + dataresult => { + if (dataresult.status == 200) { + console.log(dataresult); + this.notifier.notify('success', 'Your Changes Updated.!'); + const arr = this._editTempCategoryFrom.controls.temp_category; + arr.controls.splice(0); + this.getTemplateCategoryDetails(); + } + else { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + this.errorMessage = "Something Wents Wrong Try Again.!"; + } + }, error => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + this.errorMessage = "Some Thing Wents Wrong Try Again.!"; + }); + } else { + this.notifier.notify('warning', 'duplication records occured.!'); + } + } else { + this.notifier.notify('warning', 'value should equal to 100.!'); + } + + } + } + + public dublicateRerdIndex = -1; + + checkDuplicateInObject(inputArray) { + this.dublicateRerdIndex = -1; + let seenDuplicate = false; + + inputArray.map((item, index) => { + let currentVal = inputArray[index]; + for (let i = index + 1; i < inputArray.length; i++) { + if (currentVal.fk_question_category_id === inputArray[i].fk_question_category_id) { + console.log('duplication: ' + i); + this.dublicateRerdIndex = i; + seenDuplicate = true; + } + } + console.log(index); + }); + return seenDuplicate; + } + + reset() { + const arr = this._editTempCategoryFrom.controls.temp_category; + arr.controls.splice(0); + this.getTemplateCategoryDetails(); + } + + ngOnDestroy(): void { + //Called once, before the instance is destroyed. + //Add 'implements OnDestroy' to the class. + } +} diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/edit-lender/edit-lender.component.html b/ng6-seed/src/app/template/templates/templates-list/edit/edit-lender/edit-lender.component.html new file mode 100755 index 0000000..35eeeff --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/edit/edit-lender/edit-lender.component.html @@ -0,0 +1,54 @@ +
+
+ + +
+
+
+ + + {{ lend.full_name }} + + Lender Type Required.! + +
+
+ + + {{ prcd.product_name }} + + Product Required.! + +
+ + +
+ + + {{ cusSeg.customer_segment }} + + Customer Segment Required.! + +
+ + +
+ + + + + +
+ +
+
+
+
+
+ + + + +
+
\ No newline at end of file diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/edit-lender/edit-lender.component.scss b/ng6-seed/src/app/template/templates/templates-list/edit/edit-lender/edit-lender.component.scss new file mode 100755 index 0000000..e69de29 diff --git a/ng6-seed/src/app/settings/masters/component/branch/branch-list/branch-list.component.spec.ts b/ng6-seed/src/app/template/templates/templates-list/edit/edit-lender/edit-lender.component.spec.ts old mode 100644 new mode 100755 similarity index 54% rename from ng6-seed/src/app/settings/masters/component/branch/branch-list/branch-list.component.spec.ts rename to ng6-seed/src/app/template/templates/templates-list/edit/edit-lender/edit-lender.component.spec.ts index 207c3d9..7a62261 --- a/ng6-seed/src/app/settings/masters/component/branch/branch-list/branch-list.component.spec.ts +++ b/ng6-seed/src/app/template/templates/templates-list/edit/edit-lender/edit-lender.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { BranchListComponent } from './branch-list.component'; +import { EditLenderComponent } from './edit-lender.component'; -describe('BranchListComponent', () => { - let component: BranchListComponent; - let fixture: ComponentFixture; +describe('EditLenderComponent', () => { + let component: EditLenderComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ BranchListComponent ] + declarations: [ EditLenderComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(BranchListComponent); + fixture = TestBed.createComponent(EditLenderComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/edit-lender/edit-lender.component.ts b/ng6-seed/src/app/template/templates/templates-list/edit/edit-lender/edit-lender.component.ts new file mode 100755 index 0000000..86b7056 --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/edit/edit-lender/edit-lender.component.ts @@ -0,0 +1,238 @@ +import { Component, ViewChild, OnInit, OnDestroy, Input } from '@angular/core'; +import { MatPaginator, MatSort, MatTableDataSource, MatDialog, PageEvent } from '@angular/material'; +import { FormGroup, FormControl, FormBuilder, Validators, FormArray } from '@angular/forms'; +import { ActivatedRoute, Router } from '@angular/router'; +import { DataSource } from '@angular/cdk/table'; +import { Observable } from 'rxjs/Observable'; + +import { NotifierService } from 'angular-notifier'; +import { TemplatesService } from './../../../../service/templates/templates.service'; +import { MastersService } from './../../../../service/masters/masters.service'; + +/* +* Question Lender Details Get Multi drop-down and dynamic form with validation +* : kdk +*/ + +@Component({ + selector: 'app-template-edit-lender', + templateUrl: './edit-lender.component.html', + styleUrls: ['./edit-lender.component.scss'] +}) +export class EditLenderComponent implements OnInit { + + + @Input() questionId: number; + public noTemplateLendersFound: boolean; + public templateLenderRecord: any; + public errorMessage; + + public m_lender: any; + public m_product: any; + public m_customerSegment: any; + + public _editTempLenderFrom: FormGroup; + public submitted = false; + + + /** + * Notifier service + */ + private notifier: NotifierService; + + constructor( + notifier: NotifierService, + private templatesService: TemplatesService, + private mastersService: MastersService, + private _formBuilder: FormBuilder) { + this.notifier = notifier; + } + + ngOnInit() { + this.getTemplateLenderDetails(); + this.getLenderMasters(); + this.getProductsMasters(); + this.getCustomerSegmentMasters(); + + this._editTempLenderFrom = this._formBuilder.group({ + temp_lender: this._formBuilder.array([ + // this.initAnswers(), + ]) + }) + } + setFormDatas(record) { + if (record.length > 0) { + for (let val of record) { + let vals = { + template_lender_map_id: val.template_lender_map_id, + fk_template_id: val.fk_template_id, + fk_lender_id: val.fk_lender_id, + fk_product_id: val.fk_product_id, + fk_customer_segment: val.fk_customer_segment, + isactive: val.isactive, + }; + this.addLanguage(vals, null); + } + } + } + + getTemplateLenderDetails() { + this.templatesService.getTemplateIDLenderDetails(this.questionId).subscribe( + data => { + if (data) { + if (data.records) { + this.noTemplateLendersFound = false; + this.templateLenderRecord = data.records; + this.setFormDatas(this.templateLenderRecord); + // this.templateListData = data.records; + // this.dataLength = data.records.length; + // this.dataSource.data = this.templateListData; + } else { + this.noTemplateLendersFound = true; + } + } else { + this.noTemplateLendersFound = true; + } + } + ); + } + + getLenderMasters() { + this.templatesService.getLenderMasterListDetails().subscribe( + data => { + this.m_lender = data.records; + }, + error => { + this.notifier.notify('warning', 'No Lender Master Records Found.!'); + this.errorMessage = "No Lender Master Record Found."; + } + ); + } + + getProductsMasters() { + this.templatesService.getProductsMasterListDetails().subscribe( + data => { + this.m_product = data.records; + }, + error => { + this.notifier.notify('warning', 'No Products Master Records Found.!'); + this.errorMessage = "No Products Master Record Found."; + } + ); + } + + getCustomerSegmentMasters() { + this.templatesService.getCustomerSegmentsMasterListDetails().subscribe( + data => { + this.m_customerSegment = data.records; + }, + error => { + this.notifier.notify('warning', 'No Customer Segment Master Records Found.!'); + this.errorMessage = "No Customer Segment Master Record Found."; + } + ); + } + + // convenience getter for easy access to form fields + get f() { return this._editTempLenderFrom.controls; } + + // Dynamic Form field creation Functionality : START ===> + initAnswers(data) { + return this._formBuilder.group({ + template_lender_map_id: [data.template_lender_map_id], + fk_template_id: [data.fk_template_id], + fk_lender_id: [data.fk_lender_id, Validators.compose([Validators.required])], + fk_product_id: [data.fk_product_id, Validators.compose([Validators.required])], + fk_customer_segment: [data.fk_customer_segment, Validators.compose([Validators.required])], + isactive: [data.isactive], + }); + } + addLanguage(data, e) { + if (data == null) { + let newDate = { + template_lender_map_id: null, + fk_template_id: this.questionId, + fk_lender_id: null, + fk_product_id: null, + fk_customer_segment: null, + isactive: 1, + } + const control = this._editTempLenderFrom.controls['temp_lender']; + control.push(this.initAnswers(newDate)); + } else { + const control = this._editTempLenderFrom.controls['temp_lender']; + control.push(this.initAnswers(data)); + } + } + removeLanguage(i: number) { + const control = this._editTempLenderFrom.controls['temp_lender']; + control.removeAt(i); + } + + // END ===> + + /** To Save/Edited Popup Data */ + onSubmit() { + this.submitted = true; + // stop here if form is invalid + if (this._editTempLenderFrom.invalid) { + this.errorMessage = "Please Fill All Mandate Fields."; + return; + } else { + var formValues = this._editTempLenderFrom.value; + //To Remove The "Null" With Key also + Object.keys(formValues).forEach((key) => (formValues[key] == null) && delete formValues[key]); + // alert(JSON.stringify(formValues.temp_lender)); + if (!this.checkDuplicateInObject(formValues.temp_lender)) { + this.templatesService.updateTempateIDLenderDetails(formValues.temp_lender).subscribe( + dataresult => { + if (dataresult.status == 200) { + console.log(dataresult); + this.notifier.notify('success', 'Your Changes Updated.!'); + const arr = this._editTempLenderFrom.controls.temp_lender; + arr.controls.splice(0); + this.getTemplateLenderDetails(); + } + else { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + this.errorMessage = "Something Wents Wrong Try Again.!"; + } + }, error => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + this.errorMessage = "Some Thing Wents Wrong Try Again.!"; + }); + } else { + this.notifier.notify('warning', 'duplication records occured.!'); + } + } + } + + reset() { + const arr = this._editTempLenderFrom.controls.temp_lender; + arr.controls.splice(0); + this.getTemplateLenderDetails(); + } + + + checkDuplicateInObject(inputArray) { + let seenDuplicate = false; + inputArray.map(function (item, index) { + let currentVal = inputArray[index]; + for (let i = index + 1; i < inputArray.length; i++) { + if (currentVal.fk_lender_id === inputArray[i].fk_lender_id + && currentVal.fk_product_id === inputArray[i].fk_product_id + && currentVal.fk_customer_segment === inputArray[i].fk_customer_segment) { + console.log('duplication: ' + i); + seenDuplicate = true; + } + } + console.log(index); + }); + return seenDuplicate; + } + + ngOnDestroy(): void { + //Called once, before the instance is destroyed. + //Add 'implements OnDestroy' to the class. + } +} diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/category-question-answer/category-question-answer.component.html b/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/category-question-answer/category-question-answer.component.html new file mode 100755 index 0000000..cc8b3ef --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/category-question-answer/category-question-answer.component.html @@ -0,0 +1,74 @@ + + + +
+
+ + + + +
+ +
+
+
+ {{i+1}} ) +
+
+ + + % + Ques. WT is Required.! +
+
+ +
+
+
+
+ +
+
+
+
+
+ {{i_ans+1}}. {{answ.get('name').value}} +
+ +
+
+ + + +
+
+
+ Score Required.! +
+
+
+
+
+
+
+ This Question Answer Already Exist.! +
+
+
+
+ +
+ + +
+
+ + + \ No newline at end of file diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/category-question-answer/category-question-answer.component.scss b/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/category-question-answer/category-question-answer.component.scss new file mode 100755 index 0000000..98477e0 --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/category-question-answer/category-question-answer.component.scss @@ -0,0 +1,8 @@ +.container { + min-height: 100%; + width: 100%; +} +.card-picture { + width: 23%; + margin-bottom: 2%; +} \ No newline at end of file diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/category-question-answer/category-question-answer.component.spec.ts b/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/category-question-answer/category-question-answer.component.spec.ts new file mode 100755 index 0000000..b9d1cd0 --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/category-question-answer/category-question-answer.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { CategoryQuestionAnswerComponent } from './category-question-answer.component'; + +describe('CategoryQuestionAnswerComponent', () => { + let component: CategoryQuestionAnswerComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ CategoryQuestionAnswerComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(CategoryQuestionAnswerComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/category-question-answer/category-question-answer.component.ts b/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/category-question-answer/category-question-answer.component.ts new file mode 100755 index 0000000..ffcb2b2 --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/category-question-answer/category-question-answer.component.ts @@ -0,0 +1,390 @@ +import { Component, ViewChild, OnInit, OnDestroy, Input, Inject } from '@angular/core'; +import { MatPaginator, MatSort, MatTableDataSource, MatDialog, MatDialogRef, MAT_DIALOG_DATA, PageEvent } from '@angular/material'; +import { FormGroup, FormControl, FormBuilder, Validators, FormArray } from '@angular/forms'; +import { ActivatedRoute, Router } from '@angular/router'; +import { DataSource } from '@angular/cdk/table'; +import { Observable } from 'rxjs/Observable'; + +import { NotifierService } from 'angular-notifier'; +import { TemplatesService } from './../../../../../service/templates/templates.service'; +import { MastersService } from './../../../../../service/masters/masters.service'; + +export interface DialogData { + animal: string; + name: string; +} + +/**sweet alert */ +// import Swal from 'sweetalert2'; + +/* +* Templates Category Question list with answers , with multiple question with answer dynamic form validation +* : kdk +*/ + +@Component({ + selector: 'app-category-question-answer', + templateUrl: './category-question-answer.component.html', + styleUrls: ['./category-question-answer.component.scss'] +}) +export class CategoryQuestionAnswerComponent implements OnInit { + + countries = ['d', 'd', 'd', 'd', 'd', 'd']; + regularDistribution = 100 / 3; + + + @Input() CaterogyQuesAns: any; + + _editquestionAnswerForm: FormGroup; + + public panelOpenState: boolean; + // secondFormGroup: FormGroup; + + /** + * Notifier service + */ + private notifier: NotifierService; + + constructor( + notifier: NotifierService, + private templatesService: TemplatesService, + private mastersService: MastersService, + private _formBuilder: FormBuilder, + public dialog: MatDialog) { + this.notifier = notifier; + this._editquestionAnswerForm = this._formBuilder.group({ + temp_questions: this._formBuilder.array([ + // this.initAnswers(), + ]) + }); + // this.secondFormGroup = this._formBuilder.group({ + // secondCtrl: '' + // }); + } + + ngOnInit() { + this.setFirstFormDate(this.CaterogyQuesAns.questions); + } + + // setFirstFormDate(records){ + // alert(JSON.stringify(records)); + // } + + + openDialog(): void { + const dialogRef = this.dialog.open(DialogOverviewExampleDialog, { + data: { category_id: this.CaterogyQuesAns.fk_question_category_id, template_id: this.CaterogyQuesAns.fk_template_id } + }); + + dialogRef.afterClosed().subscribe(result => { + console.log('The dialog was closed'); + this.setModelFirstFormDate(result); + // alert(result); + }); + } + + setModelFirstFormDate(record) { + // let val = record; + // let vals = { + // question_id: val.question_id, + // question: val.question, + // template_question_id: val.template_question_id, + // fk_template_id: val.fk_template_id == null ? this.CaterogyQuesAns.fk_template_id : val.fk_template_id, + // fk_question_id: val.fk_question_id == null ? val.question_id : val.fk_question_id, + // question_weightage: val.question_weightage, + // fk_template_question_category_id: val.fk_template_question_category_id == null ? this.CaterogyQuesAns.fk_question_category_id : val.fk_template_question_category_id, + // question_answerable_by: val.question_answerable_by, + // isactive: val.isactive == null ? 1 : val.isactive, + // answers: val.answers + // }; + + let val = record; + let vals = { + question_key_mapping_id: val.question_key_mapping_id, + fk_form_id: val.fk_form_id, + question: val.question, + fk_template_id: val.fk_template_id == null ? this.CaterogyQuesAns.fk_template_id : val.fk_template_id, + score_question_id: val.score_question_id == null ? val.question_id : val.score_question_id, + fk_key: val.fk_key == null ? val.key : val.fk_key, + weightage: val.weightage, + isactive: val.isactive == null ? 1 : val.isactive + }; + if(record.answers !== undefined){ + vals['answers'] = val.answers; + } + this.addLanguage(vals, null); + } + + setFirstFormDate(record) { + if (record.length > 0) { + for (let val of record) { + // let vals = { + // question_id: val.question_id, + // question: val.question, + // template_question_id: val.template_question_id, + // fk_template_id: val.fk_template_id == null ? this.CaterogyQuesAns.fk_template_id : val.fk_template_id, + // fk_question_id: val.fk_question_id == null ? val.question_id : val.fk_question_id, + // question_weightage: val.question_weightage, + // fk_template_question_category_id: val.fk_template_question_category_id == null ? this.CaterogyQuesAns.fk_template_question_category_id : val.fk_template_question_category_id, + // question_answerable_by: val.question_answerable_by, + // isactive: val.isactive == null ? 1 : val.isactive, + // answers: val.answers + // }; + let vals = { + question_key_mapping_id: val.question_key_mapping_id, + fk_form_id: val.fk_form_id, + question: val.question, + fk_template_id: val.fk_template_id == null ? this.CaterogyQuesAns.fk_template_id : val.fk_template_id, + score_question_id: val.score_question_id == null ? val.question_id : val.score_question_id, + fk_key: val.fk_key == null ? val.key : val.fk_key, + weightage: val.weightage, + isactive: val.isactive == null ? 1 : val.isactive + }; + if(val.answers !== undefined){ + vals['answers'] = val.answers; + } + this.addLanguage(vals, null); + } + } + } + + setAnswers(record, i) { + for (let val of record) { + let vals = { + id: val.id, + name: val.name, + answer: val.answer == null ? val.id : val.answer, + score: val.score, + fk_score_question_id: val.fk_score_question_id, + score_answer_id: val.score_answer_id, + isactive: val.isactive + }; + this.addAnswerData(vals, null, i); + } + } + + // ================== Dynamic Form set for Answers + + addAnswerData(data, e, ix) { + const control = (this._editquestionAnswerForm.controls['temp_questions']).at(ix).get('answers') as FormArray; + // alert(control); + control.push(this.initAnswerData(data)); + } + + initAnswerData(data) { + return this._formBuilder.group({ + id: [data.id], + name: [data.name], + answer: [data.answer], + score: [data.score, Validators.compose([Validators.required])], + fk_score_question_id: [data.fk_score_question_id], + score_answer_id: [data.score_answer_id], + isactive: [data.isactive] + }); + } + + // ============================================= + + // Dynamic Form field creation Functionality : START ===> + initAnswers(data) { + return this._formBuilder.group({ + question_key_mapping_id: [data.question_key_mapping_id], + fk_form_id: [data.fk_form_id], + question: [data.question], + fk_template_id: [data.fk_template_id], + score_question_id: [data.score_question_id], + weightage: [data.weightage, Validators.compose([Validators.required])], + fk_key: [data.fk_key], + isactive: [data.isactive], + answers: this._formBuilder.array([ + // this.setAnswers(data.answers) + ]) + }); + } + addLanguage(data, e) { + if (data == null) { + let newDate = { + question: null, + template_question_id: null, + fk_template_id: null, + fk_question_category_id: null, + question_weightage: null, + isactive: 1, + } + const control = this._editquestionAnswerForm.controls['temp_questions']; + control.push(this.initAnswers(newDate)); + } else { + const control = this._editquestionAnswerForm.controls['temp_questions']; + control.push(this.initAnswers(data)); + if(data.answers !== undefined) { + this.setAnswers(data.answers, control.length - 1); + } + } + } + // =========== : END + + + removeLanguage(inx, e) { + e.stopPropagation(); + // let value = this._editquestionAnswerForm.controls['temp_questions'].indexOf(inx); + let value = (this._editquestionAnswerForm.controls['temp_questions']).at(inx).get('question_key_mapping_id').value; + + if (value !== null) { + const control = this._editquestionAnswerForm.controls['temp_questions']; + control.removeAt(inx); + } else { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + } + } + + submitted: boolean; + onSubmit() { + this.submitted = true; + // stop here if form is invalid + if (this._editquestionAnswerForm.invalid) { + this.notifier.notify('warning', 'Please Should Fill Required Fields.!'); + return; + } else { + var formValues = this._editquestionAnswerForm.value; + //To Remove The "Null" With Key also + Object.keys(formValues).forEach((key) => (formValues[key] == null) && delete formValues[key]); + + let val = formValues.temp_questions; + let totalScore = val.map(value => { return Number(value.weightage); }).reduce((acc, value) => { return acc + value; }, 0); + + if (totalScore == 100) { + if (!this.checkDuplicateInObject(formValues.temp_questions)) { + this.templatesService.updateTempateIDQuesAnsDetails(formValues.temp_questions).subscribe( + dataresult => { + if (dataresult.status == 200) { + console.log(dataresult); + this.notifier.notify('success', 'Your Changes Updated.!'); + } + else { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + // this.errorMessage = "Something Wents Wrong Try Again.!"; + } + }, error => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + // this.errorMessage = "Some Thing Wents Wrong Try Again.!"; + }); + } else { + this.notifier.notify('warning', 'duplication records occured.!'); + } + } else { + // Swal('value should equal to 100.!','error'); + this.notifier.notify('warning', 'value should equal to 100.!'); + } + } + } + + public dublicateRerdIndex = -1; + + checkDuplicateInObject(inputArray) { + this.dublicateRerdIndex = -1; + let seenDuplicate = false; + inputArray.map((item, index) => { + let currentVal = inputArray[index]; + for (let i = index + 1; i < inputArray.length; i++) { + if (currentVal.question_key_mapping_id === inputArray[i].question_key_mapping_id) { + console.log('duplication: ' + i); + this.dublicateRerdIndex = i; + seenDuplicate = true; + } + } + console.log(index); + }); + return seenDuplicate; + } + +} + +@Component({ + selector: 'dialog-overview-example-dialog', + styles: [` +.listHover: hover { + background: yellow; + }` + ], + templateUrl: './dialog-category-question-list.html' +}) +export class DialogOverviewExampleDialog implements OnInit { + + public m_questions: any; + + public m_question_forms: any; + constructor( + public dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: DialogData, + private templatesService: TemplatesService, + private mastersService: MastersService) { + // this.getCategoryRemainingQuesMasters(); + this.getPdFormListMaster(); + } + + ngOnInit(): void { + //Called after the constructor, initializing input properties, and the first call to ngOnChanges. + //Add 'implements OnInit' to the class. + + // this.m_question_forms = [{ + // "form_id" : "1", + // "form_name" : "Form 1" + // },{ + // "form_id" : "2", + // "form_name" : "Form 2" + // },{ + // "form_id" : "3", + // "form_name" : "Form 3" + // },{ + // "form_id" : "4", + // "form_name" : "Form 4" + // }] + } + + onNoClick(ques): void { + this.dialogRef.close(ques); + } + + errorRecord: string; + noRecordFound: boolean; + + getCategoryRemainingQuesMasters(form_id) { + let data = this.data; + data['form_id'] = form_id; + this.m_questions = []; + this.templatesService.getFormIdRemainingQuestionsDetails(data).subscribe( + data => { + if (data.status === 200 && data.dataStatus) { + this.noRecordFound = true; + this.m_questions = data.records; + } else { + this.noRecordFound = false; + } + }, + error => { + this.noRecordFound = true; + } + ); + } + + getPdFormListMaster() { + this.mastersService.getAllMasterData('PDFORMS').subscribe( + data => { + if (data.status === 200 && data.dataStatus) { + this.noRecordFound = true; + this.m_question_forms = data.records; + } else { + this.noRecordFound = false; + } + }, + error => { + this.noRecordFound = true; + } + ); + } + + selectedFormTypes(e) { + this.getCategoryRemainingQuesMasters(e.value); + } + +} diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/category-question-answer/dialog-category-question-list.html b/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/category-question-answer/dialog-category-question-list.html new file mode 100755 index 0000000..53dce1f --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/category-question-answer/dialog-category-question-list.html @@ -0,0 +1,22 @@ + + + + + + {{ forms.pd_form_name }} + + + + +
+
+ + {{question.question}} + +
+
+
No Records Found.!
+
+
+
+
\ No newline at end of file diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/edit-question-answer.component.html b/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/edit-question-answer.component.html new file mode 100755 index 0000000..ab9fe35 --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/edit-question-answer.component.html @@ -0,0 +1,17 @@ + + + + + + {{ data.category_name }} + + + {{ data.weightage }} + + + + + + + + \ No newline at end of file diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/edit-question-answer.component.scss b/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/edit-question-answer.component.scss new file mode 100755 index 0000000..e69de29 diff --git a/ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-dialog/relation-ship-dialog.component.spec.ts b/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/edit-question-answer.component.spec.ts old mode 100644 new mode 100755 similarity index 50% rename from ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-dialog/relation-ship-dialog.component.spec.ts rename to ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/edit-question-answer.component.spec.ts index 71a8031..f9cb80e --- a/ng6-seed/src/app/settings/masters/component/relation-ship/relation-ship-dialog/relation-ship-dialog.component.spec.ts +++ b/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/edit-question-answer.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { RelationShipDialogComponent } from './relation-ship-dialog.component'; +import { EditQuestionAnswerComponent } from './edit-question-answer.component'; -describe('RelationShipDialogComponent', () => { - let component: RelationShipDialogComponent; - let fixture: ComponentFixture; +describe('EditQuestionAnswerComponent', () => { + let component: EditQuestionAnswerComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ RelationShipDialogComponent ] + declarations: [ EditQuestionAnswerComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(RelationShipDialogComponent); + fixture = TestBed.createComponent(EditQuestionAnswerComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/edit-question-answer.component.ts b/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/edit-question-answer.component.ts new file mode 100755 index 0000000..e253d38 --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/edit/edit-question-answer/edit-question-answer.component.ts @@ -0,0 +1,66 @@ +import { Component, ViewChild, OnInit, OnDestroy, Input } from '@angular/core'; +import { MatPaginator, MatSort, MatTableDataSource, MatDialog, PageEvent } from '@angular/material'; +import { FormGroup, FormControl, FormBuilder, Validators , FormArray} from '@angular/forms'; +import { ActivatedRoute, Router } from '@angular/router'; +import { DataSource } from '@angular/cdk/table'; +import { Observable } from 'rxjs/Observable'; + +import { NotifierService } from 'angular-notifier'; +import { TemplatesService } from './../../../../service/templates/templates.service'; +import { MastersService } from './../../../../service/masters/masters.service'; + + +@Component({ + selector: 'app-template-edit-question-answer', + templateUrl: './edit-question-answer.component.html', + styleUrls: ['./edit-question-answer.component.scss'] +}) +export class EditQuestionAnswerComponent implements OnInit { + + + @Input() questionId: number; + + public submitted = false; + public panelOpenState : boolean; + public templateQuesAnsRecord: any; + + constructor( + notifier: NotifierService, + private templatesService: TemplatesService, + private mastersService: MastersService, + public dialog: MatDialog) { + } + + ngOnInit() { + this.getTemplateQuesAnsDetails(); + } + + getTemplateQuesAnsDetails() { + this.templatesService.getTemplateIDQuesAnsDetails(this.questionId).subscribe( + data => { + if (data) { + if (data.records) { + this.templateQuesAnsRecord = data.records; + } else { + // this.noTemplateLendersFound = true; + } + } else { + // this.noTemplateLendersFound = true; + } + } + ); + } + + + /** To Save/Edited Popup Data */ + onSubmit() { + this.submitted = true; + // stop here if form is invalid + } + + ngOnDestroy(): void { + //Called once, before the instance is destroyed. + //Add 'implements OnDestroy' to the class. + } + +} diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/report-template/report-template.component.html b/ng6-seed/src/app/template/templates/templates-list/edit/report-template/report-template.component.html new file mode 100755 index 0000000..88802af --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/edit/report-template/report-template.component.html @@ -0,0 +1,16 @@ +
+
+
+ + + +
+ +
+
+ \ No newline at end of file diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/report-template/report-template.component.scss b/ng6-seed/src/app/template/templates/templates-list/edit/report-template/report-template.component.scss new file mode 100755 index 0000000..e69de29 diff --git a/ng6-seed/src/app/settings/masters/component/type-of-activity/activity-dialog/activity-dialog.component.spec.ts b/ng6-seed/src/app/template/templates/templates-list/edit/report-template/report-template.component.spec.ts old mode 100644 new mode 100755 similarity index 53% rename from ng6-seed/src/app/settings/masters/component/type-of-activity/activity-dialog/activity-dialog.component.spec.ts rename to ng6-seed/src/app/template/templates/templates-list/edit/report-template/report-template.component.spec.ts index ae3d3e8..af922da --- a/ng6-seed/src/app/settings/masters/component/type-of-activity/activity-dialog/activity-dialog.component.spec.ts +++ b/ng6-seed/src/app/template/templates/templates-list/edit/report-template/report-template.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { ActivityDialogComponent } from './activity-dialog.component'; +import { ReportTemplateComponent } from './report-template.component'; -describe('ActivityDialogComponent', () => { - let component: ActivityDialogComponent; - let fixture: ComponentFixture; +describe('ReportTemplateComponent', () => { + let component: ReportTemplateComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ ActivityDialogComponent ] + declarations: [ ReportTemplateComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(ActivityDialogComponent); + fixture = TestBed.createComponent(ReportTemplateComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/report-template/report-template.component.ts b/ng6-seed/src/app/template/templates/templates-list/edit/report-template/report-template.component.ts new file mode 100755 index 0000000..1825c43 --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/edit/report-template/report-template.component.ts @@ -0,0 +1,92 @@ +import { Component, OnInit, ViewChild , Input} from '@angular/core'; +import { FormGroup, FormBuilder, Validators } from '@angular/forms'; +import { TemplatesService } from './../../../../service/templates/templates.service'; +import { NotifierService } from "angular-notifier"; + +@Component({ + selector: 'app-report-template', + templateUrl: './report-template.component.html', + styleUrls: ['./report-template.component.scss'] +}) +export class ReportTemplateComponent implements OnInit { + + @Input() questionId: number; + ngForm: FormGroup; + name = 'ng2-ckeditor'; + ckeConfig: any; + recordData: any; + log = ''; + showEditor= false; + @ViewChild('myckeditor') ckeditor: any; +/** + * Notifier service + */ + private notifier: NotifierService; + constructor( private _formBuilder: FormBuilder, + private templatesService: TemplatesService, + notifier: NotifierService ) { + this.notifier = notifier; + // this.ngForm = this._formBuilder.group({ + // report_template_id: [], + // fk_template_id: [], + // content: [null, Validators.compose([Validators.required])], + // isactive:[1] + // }) + // this.mycontent = `

My html content

`; + } + + ngOnInit() { + // this.ngForm.controls['content'].setValue('

Home

'); + this.templatesService.getPDReportModelTemplate(this.questionId).subscribe(data => { + if(data.dataStatus){ + this.recordData = data.records[0]; + + this.ngForm = this._formBuilder.group({ + report_template_id: [this.recordData.report_template_id], + fk_template_id: [this.recordData.fk_template_id], + content: [this.recordData.content, Validators.compose([Validators.required])], + isactive:[this.recordData.isactive] + }) + this.showEditor = true; + } else { + this.recordData = data.records; + this.ngForm = this._formBuilder.group({ + report_template_id: [null], + fk_template_id: [this.questionId], + content: [null, Validators.compose([Validators.required])], + isactive:[1] + }) + this.showEditor = true; + } + },err => { + + }); + this.ckeConfig = { + allowedContent: false, + extraPlugins: 'divarea', + forcePasteAsPlainText: true + }; + } + + onChange($event: any): void { + console.log('onChange'); + // this.log += new Date() + "
"; + } + + myClick(): void { + // let template = this.ngForm.controls['mycontent'].value; + // let data = { + // template: template, + // template_id: this.questionId + // } + var formValues = this.ngForm.value; + Object.keys(formValues).forEach((key) => (formValues[key] == null) && delete formValues[key]); + + this.templatesService.addPDReportModelTemplate(formValues).subscribe(data=>{ + this.notifier.notify('success', 'Your Changes Updated.!'); + }, err => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + + }) + } +} diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/template-forms/template-forms.component.html b/ng6-seed/src/app/template/templates/templates-list/edit/template-forms/template-forms.component.html new file mode 100755 index 0000000..27d2269 --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/edit/template-forms/template-forms.component.html @@ -0,0 +1,9 @@ + + + {{tta.pd_form_name}} + + +
+ + +
\ No newline at end of file diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/template-forms/template-forms.component.scss b/ng6-seed/src/app/template/templates/templates-list/edit/template-forms/template-forms.component.scss new file mode 100755 index 0000000..fc6e786 --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/edit/template-forms/template-forms.component.scss @@ -0,0 +1,7 @@ +.flexlist{ + display: flex; + flex-wrap: wrap; +} +.flexlist > * { + flex: 0 50%; +} \ No newline at end of file diff --git a/ng6-seed/src/app/settings/masters/component/frequency/frequency-list/frequency-list.component.spec.ts b/ng6-seed/src/app/template/templates/templates-list/edit/template-forms/template-forms.component.spec.ts old mode 100644 new mode 100755 similarity index 53% rename from ng6-seed/src/app/settings/masters/component/frequency/frequency-list/frequency-list.component.spec.ts rename to ng6-seed/src/app/template/templates/templates-list/edit/template-forms/template-forms.component.spec.ts index 2b7cbc2..337cf7b --- a/ng6-seed/src/app/settings/masters/component/frequency/frequency-list/frequency-list.component.spec.ts +++ b/ng6-seed/src/app/template/templates/templates-list/edit/template-forms/template-forms.component.spec.ts @@ -1,20 +1,20 @@ import { async, ComponentFixture, TestBed } from '@angular/core/testing'; -import { FrequencyListComponent } from './frequency-list.component'; +import { TemplateFormsComponent } from './template-forms.component'; -describe('FrequencyListComponent', () => { - let component: FrequencyListComponent; - let fixture: ComponentFixture; +describe('TemplateFormsComponent', () => { + let component: TemplateFormsComponent; + let fixture: ComponentFixture; beforeEach(async(() => { TestBed.configureTestingModule({ - declarations: [ FrequencyListComponent ] + declarations: [ TemplateFormsComponent ] }) .compileComponents(); })); beforeEach(() => { - fixture = TestBed.createComponent(FrequencyListComponent); + fixture = TestBed.createComponent(TemplateFormsComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/template-forms/template-forms.component.ts b/ng6-seed/src/app/template/templates/templates-list/edit/template-forms/template-forms.component.ts new file mode 100755 index 0000000..fd3194e --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/edit/template-forms/template-forms.component.ts @@ -0,0 +1,77 @@ +import { Component, OnInit, ViewChild , Input} from '@angular/core'; +import { FormGroup, FormBuilder, Validators } from '@angular/forms'; +import { TemplatesService } from './../../../../service/templates/templates.service'; +import { MastersService } from './../../../../service/masters/masters.service'; +import { NotifierService } from "angular-notifier"; + +@Component({ + selector: 'app-template-forms', + templateUrl: './template-forms.component.html', + styleUrls: ['./template-forms.component.scss'] +}) +export class TemplateFormsComponent implements OnInit { + + masterFormsList = [] ; + selectedOptions = []; + @Input() questionId: number; + /** + * Notifier service + */ + private notifier: NotifierService; + + constructor(private mastersService : MastersService, + private templatesService: TemplatesService, + notifier: NotifierService) { + this.notifier = notifier; + } + + ngOnInit() { + this.mastersService.getAllMasterData("PDFORMS").subscribe(data => { + this.masterFormsList = data.records.sort((a ,b)=>{ return a.pd_form_order - b.pd_form_order;}); + // this.selectedOptions = ["1"]; + this.getSelectedFormDetails(); + }); + + } + + restore(): void { + this.getSelectedFormDetails(); + } + + getSelectedFormDetails() { + this.templatesService.getTemplateSelectedForms(this.questionId).subscribe(data=>{ + if(data.dataStatus){ + this.selectedOptions = data.records; + } else { + } + }) + } + + myClick(){ + if(this.selectedOptions.length > 0){ + let records = { + "template_id":this.questionId, + "forms": this.selectedOptions + } + this.templatesService.saveTemplateFormsList(records).subscribe(data => { + if(data.dataStatus){ + this.notifier.notify('success', 'Your Changes Updated.!'); + }else{ + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + } + }, err => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + }) + } else { + alert("should select the forms in list !!!"); + } + } + + onNgModelChange(e){ + console.log("event " + e); + } + + + + +} diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/templates.edit.component.html b/ng6-seed/src/app/template/templates/templates-list/edit/templates.edit.component.html new file mode 100755 index 0000000..a5cf382 --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/edit/templates.edit.component.html @@ -0,0 +1,62 @@ + + +
+ +
+ + +
+
+
+ + + You must Include Template Name. + +
+ + +
+
+
+
+
No Template Name Found.
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/ng6-seed/src/app/template/templates/templates-list/edit/templates.edit.component.ts b/ng6-seed/src/app/template/templates/templates-list/edit/templates.edit.component.ts new file mode 100755 index 0000000..888795e --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/edit/templates.edit.component.ts @@ -0,0 +1,135 @@ +import { Component, ViewChild, OnInit, OnDestroy } from '@angular/core'; +import { MatPaginator, MatSort, MatTableDataSource, MatDialog, PageEvent } from '@angular/material'; +import { FormGroup, FormControl, FormBuilder, Validators } from '@angular/forms'; +import { ActivatedRoute, Router } from '@angular/router'; +import { DataSource } from '@angular/cdk/table'; +import { Observable } from 'rxjs/Observable'; + +import { NotifierService } from 'angular-notifier'; +import { TemplateListComponent } from './../templates.list.component'; +import { TemplatesService } from './../../../service/templates/templates.service'; + +/* +* Edit Template Name component +* : kdk +*/ +@Component({ + selector: 'app-list', + templateUrl: './templates.edit.component.html' +}) +export class TemplateEditComponent implements OnInit, OnDestroy { + public pageTitle: string = "Edit Template"; + public question_id : number; + public submitted: boolean = false; + public _editTempNameFrom: FormGroup; + public templateNameRecord: any; + public noTemplateNameFound: boolean; + + /** + * Notifier service + */ + private notifier : NotifierService; + + constructor( + notifier: NotifierService, + private route: ActivatedRoute, + private router: Router, + private templateListComponent : TemplateListComponent, + private templatesService: TemplatesService, + private _formBuilder: FormBuilder,) { + this.notifier = notifier; + this.question_id = this.route.snapshot.params['question-id']; + this.getTemplateNameDetails(this.question_id); + } + + ngOnInit() { + this.templateListComponent.showListView(false); + // this._editTempNameFrom = this._formBuilder.group({ + // template_name: [this.templateNameDetails.template_name, Validators.compose([Validators.required]) ] + // }) + } + + setFormDatas(){ + // alert(this.templateNameDetails.template_name); + this._editTempNameFrom = this._formBuilder.group({ + template_id: [this.templateNameRecord.template_id], + template_name: [this.templateNameRecord.template_name, Validators.compose([Validators.required]) ], + isactive: [this.templateNameRecord.isactive] + }) + } + + + // convenience getter for easy access to form fields + get f() { return this._editTempNameFrom.controls; } + + // get Template name details + getTemplateNameDetails(q_id){ + this.templatesService.getTemplateIDNameDetails(q_id).subscribe( + data => { + if (data) { + if (data.records) { + this.noTemplateNameFound = false; + this.templateNameRecord = data.records[0]; + this.setFormDatas(); + // this.templateListData = data.records; + // this.dataLength = data.records.length; + // this.dataSource.data = this.templateListData; + } else { + this.noTemplateNameFound = true; + } + } else { + this.noTemplateNameFound = true; + } + } + ); + } + + backToList(){ + this.templateListComponent.showListView(true); + this.router.navigate([ '../../' ], { relativeTo: this.route }); + } + + public errorMessage; + + /** To Save/Edited Popup Data */ + onSubmit() { + this.submitted = true; + // stop here if form is invalid + if (this._editTempNameFrom.invalid) { + this.errorMessage = "Please Fill All Mandate Fields."; + return; + } else { + var formValues = this._editTempNameFrom.value; + //To Remove The "Null" With Key also + Object.keys(formValues).forEach((key) => (formValues[key] == null) && delete formValues[key]); + + this.templatesService.updateTempateIDNameDetails(formValues).subscribe( + dataresult => { + if (dataresult.status == 200) { + console.log(dataresult); + this.notifier.notify('success', 'Your Changes Updated.!'); + this.getTemplateNameDetails(this.question_id); + } + else { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + this.errorMessage = "Something Wents Wrong Try Again.!"; + } + }, error => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + this.errorMessage = "Some Thing Wents Wrong Try Again.!"; + }); + } + } + + /** To Reset Popup Data */ + onReset() { + this.setFormDatas(); + } + + ngOnDestroy(): void { + //Called once, before the instance is destroyed. + //Add 'implements OnDestroy' to the class. + this.templateListComponent.showListView(true); + } + +} diff --git a/ng6-seed/src/app/template/templates/templates-list/templates-add/templates-add.component.html b/ng6-seed/src/app/template/templates/templates-list/templates-add/templates-add.component.html new file mode 100755 index 0000000..4590a06 --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/templates-add/templates-add.component.html @@ -0,0 +1,26 @@ + +
+
+
Add New Template
+
+
+
+ +
+ +
+
+ + + You must Include Template Name. + +
+
+ + +
+
+
+ + diff --git a/ng6-seed/src/app/template/templates/templates-list/templates-add/templates-add.component.scss b/ng6-seed/src/app/template/templates/templates-list/templates-add/templates-add.component.scss new file mode 100755 index 0000000..e69de29 diff --git a/ng6-seed/src/app/template/templates/templates-list/templates-add/templates-add.component.spec.ts b/ng6-seed/src/app/template/templates/templates-list/templates-add/templates-add.component.spec.ts new file mode 100755 index 0000000..e56816d --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/templates-add/templates-add.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TemplatesAddComponent } from './templates-add.component'; + +describe('TemplatesAddComponent', () => { + let component: TemplatesAddComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ TemplatesAddComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(TemplatesAddComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/template/templates/templates-list/templates-add/templates-add.component.ts b/ng6-seed/src/app/template/templates/templates-list/templates-add/templates-add.component.ts new file mode 100755 index 0000000..ced56c9 --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/templates-add/templates-add.component.ts @@ -0,0 +1,87 @@ +/** Common Imports */ +import { + Component, + OnInit, + Inject +} from '@angular/core'; + +import { + FormBuilder, + FormGroup, + Validators, + FormArray, +} from '@angular/forms'; + +import { + MatDialog, + MatDialogRef, + MAT_DIALOG_DATA +} from '@angular/material'; + +/** Service */ +import { TemplatesService } from './../../../service/templates/templates.service'; + +@Component({ + selector: 'app-templates-add', + templateUrl: './templates-add.component.html', + styleUrls: ['./templates-add.component.scss'] +}) +export class TemplatesAddComponent implements OnInit { + + + public _addTemplateFrom: FormGroup; + public submitted = false; + + constructor(private _formBuilder: FormBuilder, + private templatesService: TemplatesService, + private dialogRef: MatDialogRef) { + /** Add New Template Name Form Datas*/ + this._addTemplateFrom = this._formBuilder.group({ + template_id: [''], + template_name: [null, Validators.compose([Validators.required])], + isactive: [1] + }); + } + + // convenience getter for easy access to form fields + get f() { return this._addTemplateFrom.controls; } + + /** To Save/Edited Popup Data */ + onSubmit() { + this.submitted = true; + // stop here if form is invalid + if (this._addTemplateFrom.invalid) { + // this.errorMessage = "Please Fill All Mandate Fields."; + return; + } else { + var answerFormValues = this._addTemplateFrom.value; + + //To Remove The "Null" With Key also + Object.keys(answerFormValues).forEach((key) => (answerFormValues[key] == null) && delete answerFormValues[key]); + + //Add BRANCH data with help Service File + this.templatesService.addNewTemplate(answerFormValues).subscribe( + dataresult => { + if (dataresult.status == 200) { + // {"dataStatus":true,"status":200,"records":4} + this.dialogRef.close(dataresult); + } + else { + + } + }, error => { + this.dialogRef.close(null); + }); + //After Saving the BRANCH data then popup close + // this.dialogRef.close(); + } + } + + onClose() { + this.dialogRef.close(null); + } + + ngOnInit() { + } + +} diff --git a/ng6-seed/src/app/template/templates/templates-list/templates.list.component.html b/ng6-seed/src/app/template/templates/templates-list/templates.list.component.html new file mode 100755 index 0000000..6d38e18 --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/templates.list.component.html @@ -0,0 +1,75 @@ +
+ + +
+
+ Template Master + +
+
+ + + + +
+
+ + +
+
+ + + + + Template Name + + {{ template.template_name }} + + + + Lender Details + +
+ {{lender.full_name}} - {{lender.product_name}} - {{lender.customer_segment_name}} ,

+
+
+
+ + Actions + + + + + + + +
+
+ + + + + + +
No Record Found ...
+
+
+
+
+ +
+
+
+
+ +
+ \ No newline at end of file diff --git a/ng6-seed/src/app/template/templates/templates-list/templates.list.component.scss b/ng6-seed/src/app/template/templates/templates-list/templates.list.component.scss new file mode 100755 index 0000000..00579aa --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/templates.list.component.scss @@ -0,0 +1,51 @@ +// mat table css + +.example-container { + display: flex; + flex-direction: column; + min-width: 300px; +} + +.example-header { + min-height: 64px; + padding: 8px 24px 0; +} + +.mat-form-field { + font-size: 14px; +// width: 100%; +} + +.cell{ + display:inline !important; +} + +.text-line-limit { + text-overflow: ellipsis; + overflow: hidden; + // white-space: nowrap; + display: -webkit-box; + line-height: 15px; /* fallback */ + max-height: 44px; /* fallback */ + -webkit-line-clamp: 2; /* number of lines to show */ + -webkit-box-orient: vertical; + + // text-overflow: ellipsis; + // overflow: hidden; + // width: 160px; + // height: 1.2em; + // white-space: nowrap; +} + +.category-label { + padding: 2px 6px; + background: #629cff; + color: #fff; + box-shadow: 0 2px 3px #c8bbbb; +} + +.no-record-found { + font-size: 18px; + color: #03a9f4; + padding : 12px 8px; +} \ No newline at end of file diff --git a/ng6-seed/src/app/template/templates/templates-list/templates.list.component.ts b/ng6-seed/src/app/template/templates/templates-list/templates.list.component.ts new file mode 100755 index 0000000..34122c7 --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates-list/templates.list.component.ts @@ -0,0 +1,241 @@ +import { Component, ViewChild, OnInit, OnDestroy } from '@angular/core'; +import { MatPaginator, MatSort, MatTableDataSource, MatDialog, PageEvent } from '@angular/material'; +import { ActivatedRoute, Router } from '@angular/router'; +import { FormGroup, FormControl, FormBuilder } from '@angular/forms'; +import { DataSource } from '@angular/cdk/table'; +import { Observable } from 'rxjs/Observable'; + +import { TemplatesService } from './../../service/templates/templates.service'; + +import { TemplatesAddComponent } from './templates-add/templates-add.component'; + +/* +* Template List component +* : kdk +*/ +@Component({ + selector: 'app-list', + styleUrls: ['./templates.list.component.scss'], + templateUrl: './templates.list.component.html' +}) +export class TemplateListComponent implements OnInit, OnDestroy { + + public templateList: any[] = []; + public listView: boolean; + public names: string; + public noTemplMasterRecrdFound: boolean = false; + public search_cid : any; + + + // pagination variable details + length = 50; + pageIndex = 0; + pageSize = 10; + pageEvent: PageEvent; + + // data source variable details + templateListData = null; + public dataLength: number; + public dataSource = new MatTableDataSource(); + displayedColumns = ['template_name', 'lender_details', 'actions']; + + @ViewChild(MatPaginator) paginator: MatPaginator; + @ViewChild(MatSort) sort: MatSort; + + constructor( + private route: ActivatedRoute, + private router: Router, + private templatesService: TemplatesService, + public dialog: MatDialog) { + this.listView = true; + // this.names = 'dinesh'; + } + + ngOnInit() { + this.listView = true; + this.getTemplateMastersListDetails(); + } + + ngAfterViewInit() { + this.dataSource.paginator = this.paginator; + this.dataSource.sort = this.sort; + } + + // get question master list details + getTemplateMastersListDetails() { + // this.templateList = this.m_templateList.records; + // this.templateListData = this.m_templateList.records; + // this.dataLength = this.m_templateList.records.length; + // this.dataSource.data = this.templateListData; + + this.noTemplMasterRecrdFound = false; + this.search_cid = ''; + // console.log(this.search_cid + ", " + this.filterFormGroupCtrl); + this.templatesService.getTemplatesMasterListDetails(this.search_cid).subscribe( + data => { + if (data) { + if (data.records) { + this.templateList = data.records; + // this.templateListData = data.records; + this.dataLength = data.records.length; + this.dataSource.data = this.templateList; + } else { + this.templateList = []; + this.dataLength = null; + this.noTemplMasterRecrdFound = true; + } + } else { + this.templateList = []; + this.dataLength = null; + this.noTemplMasterRecrdFound = true; + } + } + ) + } + + addNewTemplate(): void { + const dialogRef = this.dialog.open(TemplatesAddComponent, { + disableClose: true, + data: { } + }); + + dialogRef.afterClosed().subscribe(result => { + if(result != null) { + this.goToEdit(result.records); + } else { + + } + console.log('The dialog was closed'); + // alert(result); + }); + } + + + + + + goToEdit(template_id : number){ + this.router.navigate([ '../list/edit', template_id ], { relativeTo: this.route }); + this.listView = false; + } + + showListView(status: boolean){ + // alert(2); + this.listView = status; + } + + ngOnDestroy(): void { + //Called once, before the instance is destroyed. + //Add 'implements OnDestroy' to the class. + } + // padination page event call + pageChange(e) { + console.log(e); + } + + public m_templateList = { + "dataStatus": true, + "status": 200, + "records": + [ + { + "template_id": "1", + "template_name": "sample dev template", + "createdon": "28/09/2018", + "fk_createdby": "1", + "updatedon": null, + "fk_updatedby": null, + "isactive": "1", + "createdby": "sriram v", + "updatedby": null, + "lender_details": [] + }, + { + "template_id": "2", + "template_name": "two template", + "createdon": "28/09/2018", + "fk_createdby": "1", + "updatedon": null, + "fk_updatedby": null, + "isactive": "1", + "createdby": "sriram v", + "updatedby": null, + "lender_details": [] + }, + { + "template_id": "3", + "template_name": "ABCD template redd", + "createdon": "11/10/2018", + "fk_createdby": "1", + "updatedon": null, + "fk_updatedby": null, + "isactive": "1", + "createdby": "sriram v", + "updatedby": null, + "lender_details": [ + { + "template_lender_map_id": "1", + "fk_template_id": "3", + "fk_lender_id": "1", + "full_name": "ICICIedited", + "short_name": "checkee", + "fk_product_id": "1", + "product_name": "Home Loan ", + "product_abbr": "HL", + "fk_customer_segment": "1", + "customer_segment_name": "Salaried Non Professional ", + "customer_segment_abbr": "SNP", + "createdon": "11/10/2018", + "fk_createdby": "1", + "updatedon": null, + "isactive": "1", + "fk_updatedby": null, + "createdby": "sriram v", + "updatedby": null + }, + { + "template_lender_map_id": "2", + "fk_template_id": "3", + "fk_lender_id": "1", + "full_name": "ICICIedited", + "short_name": "checkee", + "fk_product_id": "2", + "product_name": "Non Residential Premises Loans", + "product_abbr": "NRPL", + "fk_customer_segment": "2", + "customer_segment_name": "Salaried Professional ", + "customer_segment_abbr": "SP", + "createdon": "11/10/2018", + "fk_createdby": "1", + "updatedon": "11/10/2018", + "isactive": "1", + "fk_updatedby": null, + "createdby": "sriram v", + "updatedby": null + }, + { + "template_lender_map_id": "2", + "fk_template_id": "3", + "fk_lender_id": "1", + "full_name": "ICICIedited", + "short_name": "checkee", + "fk_product_id": "2", + "product_name": "Non Residential Premises Loans", + "product_abbr": "NRPL", + "fk_customer_segment": "2", + "customer_segment_name": "Salaried Professional ", + "customer_segment_abbr": "SP", + "createdon": "11/10/2018", + "fk_createdby": "1", + "updatedon": "11/10/2018", + "isactive": "1", + "fk_updatedby": null, + "createdby": "sriram v", + "updatedby": null + } + ] + } + ] +} + +} diff --git a/ng6-seed/src/app/template/templates/templates.component.ts b/ng6-seed/src/app/template/templates/templates.component.ts new file mode 100755 index 0000000..4440478 --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; +@Component({ + template: ` +
+ +
+ ` +}) +export class TemplatesComponent { +} \ No newline at end of file diff --git a/ng6-seed/src/app/template/templates/templates.module.ts b/ng6-seed/src/app/template/templates/templates.module.ts new file mode 100755 index 0000000..ad40e65 --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates.module.ts @@ -0,0 +1,134 @@ +import { NgModule } from '@angular/core'; +import { CommonModule } from '@angular/common'; +import { CKEditorModule } from 'ng2-ckeditor'; + +import { NotifierModule, NotifierOptions } from 'angular-notifier'; +import { FlexLayoutModule } from '@angular/flex-layout'; +import { + MatCardModule, + MatIconModule, + MatInputModule, + MatRadioModule, + MatButtonModule,MatTableModule,MatPaginatorModule, + MatProgressBarModule,MatDialogModule, MatSortModule, + MatToolbarModule,MatSelectModule, + MatListModule, MatMenuModule, + MatCheckboxModule, MatStepperModule, MatTabsModule, + MatExpansionModule +} from '@angular/material'; +import { MatTooltipModule } from '@angular/material/tooltip'; +import {MatSlideToggleModule} from '@angular/material/slide-toggle'; +import { FormsModule, ReactiveFormsModule } from '@angular/forms'; +import { RouterModule } from '@angular/router'; + +// Questions Routing import +import { TemplatesRouting } from './templates.routing'; + +import { TemplatesComponent } from './templates.component'; +import { TemplateListComponent } from './templates-list/templates.list.component'; +import { TemplateEditComponent } from './templates-list/edit/templates.edit.component'; +import { EditCategoryComponent } from './templates-list/edit/edit-category/edit-category.component'; +import { EditLenderComponent } from './templates-list/edit/edit-lender/edit-lender.component'; +import { EditQuestionAnswerComponent } from './templates-list/edit/edit-question-answer/edit-question-answer.component'; + + +import { TemplatesService } from './../service/templates/templates.service'; +import { CategoryQuestionAnswerComponent } from './templates-list/edit/edit-question-answer/category-question-answer/category-question-answer.component'; +import { DialogOverviewExampleDialog } from './templates-list/edit/edit-question-answer/category-question-answer/category-question-answer.component'; +import { TemplatesAddComponent } from './templates-list/templates-add/templates-add.component'; +import { ReportTemplateComponent } from './templates-list/edit/report-template/report-template.component'; +import { TemplateFormsComponent } from './templates-list/edit/template-forms/template-forms.component'; + +/* +* Question Master Module details +* : kdk +*/ +/** + * Custom angular notifier options + */ +const customNotifierOptions: NotifierOptions = { + position: { + horizontal: { + position: 'right', + distance: 12 + }, + vertical: { + position: 'top', + distance: 32, + gap: 10 + } + }, + theme: 'material', + behaviour: { + autoHide: 5000, + onClick: 'hide', + onMouseover: 'pauseAutoHide', + showDismissButton: true, + stacking: 4 + }, + animations: { + enabled: true, + show: { + preset: 'slide', + speed: 300, + easing: 'ease' + }, + hide: { + preset: 'fade', + speed: 300, + easing: 'ease', + offset: 50 + }, + shift: { + speed: 300, + easing: 'ease' + }, + overlap: 150 + } +}; + +@NgModule({ + imports: [ + CommonModule, + CKEditorModule, + NotifierModule.withConfig(customNotifierOptions), + FlexLayoutModule, + MatCardModule, + MatIconModule, + MatInputModule, + MatRadioModule, + MatButtonModule,MatTableModule,MatPaginatorModule, + MatProgressBarModule,MatDialogModule, MatSortModule, + MatToolbarModule,MatSelectModule,MatListModule, MatMenuModule, + MatExpansionModule, + MatStepperModule, + MatTabsModule, + MatSlideToggleModule, + MatCheckboxModule, + MatTooltipModule, + FormsModule, + ReactiveFormsModule, + TemplatesRouting + ], + declarations: [ + TemplatesComponent, + TemplateListComponent, + TemplateEditComponent, + EditCategoryComponent, + EditLenderComponent, + EditQuestionAnswerComponent, + CategoryQuestionAnswerComponent, + DialogOverviewExampleDialog, + TemplatesAddComponent, + ReportTemplateComponent, + TemplateFormsComponent + ], + entryComponents: [ + DialogOverviewExampleDialog, + TemplatesAddComponent + ], + providers: [ + TemplatesService + ] +}) +export class TemplatesModule { } diff --git a/ng6-seed/src/app/template/templates/templates.routing.ts b/ng6-seed/src/app/template/templates/templates.routing.ts new file mode 100755 index 0000000..2a30036 --- /dev/null +++ b/ng6-seed/src/app/template/templates/templates.routing.ts @@ -0,0 +1,36 @@ +import { NgModule } from '@angular/core'; +import { Routes, RouterModule } from '@angular/router'; +// Templates Component +import { TemplatesComponent } from './templates.component'; +import { TemplateListComponent } from './templates-list/templates.list.component'; +import { TemplateEditComponent } from './templates-list/edit/templates.edit.component'; + +/* +* Templates Master Router Module details +*/ +const routes: Routes = [ + { + path: 'templates', + component: TemplatesComponent, + children: [ + { + path: '', + pathMatch: 'full', + redirectTo: 'list' + },{ + path: 'list', + component: TemplateListComponent, + children: [{ + path: 'edit/:question-id', + component: TemplateEditComponent, + }] + } + ] + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class TemplatesRouting {} diff --git a/ng6-seed/src/assets/data/100k.json b/ng6-seed/src/assets/data/100k.json old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/data/company.json b/ng6-seed/src/assets/data/company.json old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/data/projects.json b/ng6-seed/src/assets/data/projects.json old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/data/security.json b/ng6-seed/src/assets/data/security.json old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/fonts/data-table/data-table.eot b/ng6-seed/src/assets/fonts/data-table/data-table.eot old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/fonts/data-table/data-table.svg b/ng6-seed/src/assets/fonts/data-table/data-table.svg old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/fonts/data-table/data-table.ttf b/ng6-seed/src/assets/fonts/data-table/data-table.ttf old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/fonts/data-table/data-table.woff b/ng6-seed/src/assets/fonts/data-table/data-table.woff old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/fonts/data-table/icons.css b/ng6-seed/src/assets/fonts/data-table/icons.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/fonts/pe/css/helper.css b/ng6-seed/src/assets/fonts/pe/css/helper.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/fonts/pe/css/helper.min.css b/ng6-seed/src/assets/fonts/pe/css/helper.min.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/fonts/pe/css/pe-icon-set-weather.css b/ng6-seed/src/assets/fonts/pe/css/pe-icon-set-weather.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/fonts/pe/css/pe-icon-set-weather.min.css b/ng6-seed/src/assets/fonts/pe/css/pe-icon-set-weather.min.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/fonts/pe/fonts/pe-icon-set-weather.eot b/ng6-seed/src/assets/fonts/pe/fonts/pe-icon-set-weather.eot old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/fonts/pe/fonts/pe-icon-set-weather.svg b/ng6-seed/src/assets/fonts/pe/fonts/pe-icon-set-weather.svg old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/fonts/pe/fonts/pe-icon-set-weather.ttf b/ng6-seed/src/assets/fonts/pe/fonts/pe-icon-set-weather.ttf old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/fonts/pe/fonts/pe-icon-set-weather.woff b/ng6-seed/src/assets/fonts/pe/fonts/pe-icon-set-weather.woff old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/images/PD.jpeg b/ng6-seed/src/assets/images/PD.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..a5ba3e49c5453815ed584ac584a63317129f2841 GIT binary patch literal 40636 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 XnQ09+ok(pVAa)PEAOHRU0|5Wo;Vz8{ literal 0 HcmV?d00001 diff --git a/ng6-seed/src/assets/images/bg.png b/ng6-seed/src/assets/images/bg.png new file mode 100755 index 0000000000000000000000000000000000000000..6c8827466ae6af2f8fab6c9991d4699b9136dcff GIT binary patch literal 1315 zcmai!TWAzl7{{k3RI$~H?Tf9E=>(s2XU@#toMXl%?(FJ9C&bM{@(`@EGiNu`-I+7a zoV_GekrpW$XdX%xF$CWPLEAt|p|J`=l+u>ISXv^jV6n9jV=vHBuRXKLt`@R%Ue1Nz z_y2C^n`8Zbd)BRebuGg%>oR-QEM1>tm{oVztfISub80=uWnmCWx zjI9?@7U|~b!7oq`!*txXazkWDdjlHS=JkN#>$Xd+8Kx&ucXgwL2%ASm%Tc&{vzIy6 zG8JwxssYVSq7iHFn1=?&`f|ot$&gJhv5W1gLn>e+qO*0o?D(**a1C8Z_rbNmu?>Wj z6mBV~A+4WHVh^!V9)t`K18hv>#c(7Zk8fusAOZnMf+&T=I1Eb=0CxG~s5j3nz^s~H z_C-$$H$sRD1))}}@wG6Iy`mt>vK(kgQiu{Ef7Bs*J>>Y^O$8PChG)6N!VViK>Umrt z3P&SdO2KwpvW~x8CR#9|uDgQBgCL~_Xc{fft$5{zbJGw|8QI7oK4rxgORJ=5Eqp~; z+iuZ5$)cyZtw{U1Q5OkWqjZ~c=g`>5PhQJP5_?#p{5x|JN4MbrWETI}Ut-|PvXc$If|3PWvO`Yif3!4Tk zV9(ZR^{wEo3a(RZc+)hPaeSgX2Fj=kM-$^M%Y?hrVOdNADH2J?L@^cJ5lyA!xD0xw zxRi{^Qqxw&MkVM$)7E@y8*XbGyyl=wP(_|qMP}N=Hrwa~wA#l4+UhOan(bo|+u8~= z7$JC@&%D*<6&-+J+nPLjXw5Ei=)ih(G6xcK!*r^zXVl(YeSRU=yRqZ-HSbQ%KS_M@ z(wRze_~?e2v-^7h+};`Mocn4E=Pi6cZCra?{NwPY3$t(i{p)uN@W##`9u~Z7GY{Tg zyuN9=YvN#MatJGCzKD=Dq#1SH>?Mc-Z&mkBKM7*TOf(@SvZ+dH>?)eD(aT z_rKjTi6-;qxvnq&{HJv2_e-mVgNrBrn!Z)Kv%Yft{`p$xp;L?dUVHI{%9$g#A53gc zIpWk^=H{o5;=i1n{BSC~tNL3}0gv3xv291=&x_=<(?5N1uX^sr1k=G(yFZ?P{PNG^ P!EY;*>QgW5KJd=J>h8PR literal 0 HcmV?d00001 diff --git a/ng6-seed/src/assets/images/login_n.jpg b/ng6-seed/src/assets/images/login_n.jpg new file mode 100755 index 0000000000000000000000000000000000000000..325ceef278b271cee3c727476b29ec6035d28847 GIT binary patch literal 140777 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 literal 0 HcmV?d00001 diff --git a/ng6-seed/src/assets/styles/app.scss b/ng6-seed/src/assets/styles/app.scss old mode 100644 new mode 100755 index d966db7..e6edd5b --- a/ng6-seed/src/assets/styles/app.scss +++ b/ng6-seed/src/assets/styles/app.scss @@ -44,4 +44,11 @@ Author: TrendSetter Themes @import "scss/core"; @import "scss/material"; @import "scss/utilities/utilities"; +@import '~viewerjs/dist/viewer.css'; + +/* Add application styles & imports to this file! */ +@import "~angular-notifier/styles"; + +// import date time picker styles +@import "~ng-pick-datetime/assets/style/picker.min.css"; \ No newline at end of file diff --git a/ng6-seed/src/assets/styles/scss/_app.variables.scss b/ng6-seed/src/assets/styles/scss/_app.variables.scss old mode 100644 new mode 100755 index cab788b..406ea87 --- a/ng6-seed/src/assets/styles/scss/_app.variables.scss +++ b/ng6-seed/src/assets/styles/scss/_app.variables.scss @@ -37,7 +37,7 @@ $main-bg-color:linear-gradient(58deg, #f44336, #673ab7); // // Typography // -$font-size-base: 0.875rem !default; +$font-size-base: 1.2rem !default; $font-weight-base: 400 !default; $font-weight-medium: 500 !default; $font-weight-bold: 600 !default; diff --git a/ng6-seed/src/assets/styles/scss/_core.scss b/ng6-seed/src/assets/styles/scss/_core.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/_material.scss b/ng6-seed/src/assets/styles/scss/_material.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/_material.themes.scss b/ng6-seed/src/assets/styles/scss/_material.themes.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/_material.variables.scss b/ng6-seed/src/assets/styles/scss/_material.variables.scss old mode 100644 new mode 100755 index 3bd0a9f..e36285d --- a/ng6-seed/src/assets/styles/scss/_material.variables.scss +++ b/ng6-seed/src/assets/styles/scss/_material.variables.scss @@ -3,8 +3,9 @@ ---------------*/ @import '~@angular/material/theming'; -$primary: mat-palette($mat-deep-purple); -$accent: mat-palette($mat-amber, A200, A100, A400); +/**-- $primary: mat-palette($mat-deep-purple); --*/ +$primary: mat-palette($mat-red); +$accent: mat-palette($mat-blue,900); $warn: mat-palette($mat-red); $theme: mat-light-theme($primary, $accent, $warn); $background: map-get($theme, background); @@ -12,8 +13,9 @@ $foreground: map-get($theme, foreground); @include mat-core(); -$dark-primary: mat-palette($mat-blue-grey); -$dark-accent: mat-palette($mat-amber, A200, A100, A400); +/**-- $dark-primary: mat-palette($mat-blue-grey); --**/ +$dark-primary: mat-palette($mat-light-blue); +$dark-accent: mat-palette($mat-blue,900); $dark-warn: mat-palette($mat-deep-orange); $dark-theme: mat-dark-theme($dark-primary, $dark-accent, $dark-warn); $dark-background: map-get($dark-theme, background); @@ -22,5 +24,5 @@ $dark-foreground: map-get($dark-theme, foreground); - + diff --git a/ng6-seed/src/assets/styles/scss/_mixins.scss b/ng6-seed/src/assets/styles/scss/_mixins.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/components/_calendar.scss b/ng6-seed/src/assets/styles/scss/components/_calendar.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/components/_chat.scss b/ng6-seed/src/assets/styles/scss/components/_chat.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/components/_custom.scss b/ng6-seed/src/assets/styles/scss/components/_custom.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/components/_editor.scss b/ng6-seed/src/assets/styles/scss/components/_editor.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/components/_messages.scss b/ng6-seed/src/assets/styles/scss/components/_messages.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/components/_perfect-scrollbar.scss b/ng6-seed/src/assets/styles/scss/components/_perfect-scrollbar.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/components/_pricing.scss b/ng6-seed/src/assets/styles/scss/components/_pricing.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/components/_social.scss b/ng6-seed/src/assets/styles/scss/components/_social.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/components/_table.scss b/ng6-seed/src/assets/styles/scss/components/_table.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/components/_timeline.scss b/ng6-seed/src/assets/styles/scss/components/_timeline.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/components/_treeview.scss b/ng6-seed/src/assets/styles/scss/components/_treeview.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/components/_upload.scss b/ng6-seed/src/assets/styles/scss/components/_upload.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/core/_main-header.scss b/ng6-seed/src/assets/styles/scss/core/_main-header.scss old mode 100644 new mode 100755 index 38eee16..c33d923 --- a/ng6-seed/src/assets/styles/scss/core/_main-header.scss +++ b/ng6-seed/src/assets/styles/scss/core/_main-header.scss @@ -91,10 +91,10 @@ mat-toolbar { .head-menu { font-size: 1.3rem !important; border-bottom: 2px solid rgba(255, 255, 255, 0.2); - background: linear-gradient(58deg, #f44336, #673ab7); + background: linear-gradient(58deg, #ca2126, #ca2126); color: #fff; &:hover { - background: linear-gradient(58deg, #f44336, #673ab7); + background: linear-gradient(58deg, #ca2126, #673ab7); } } img { diff --git a/ng6-seed/src/assets/styles/scss/core/_main-panel.scss b/ng6-seed/src/assets/styles/scss/core/_main-panel.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/core/_main-sidebar.scss b/ng6-seed/src/assets/styles/scss/core/_main-sidebar.scss old mode 100644 new mode 100755 index bed7bdf..67cb61b --- a/ng6-seed/src/assets/styles/scss/core/_main-sidebar.scss +++ b/ng6-seed/src/assets/styles/scss/core/_main-sidebar.scss @@ -39,7 +39,7 @@ flex-direction: row; align-items: center; height: 48px; - padding: 0 16px; + padding: 0 8px; color: $sidebar-menu-color; } .sub-menu { @@ -480,7 +480,7 @@ .sidebar-red { .sidebar-panel { .bg-overlay { - background: rgba(244, 67, 54, 0.8)!important; + background: rgb(227, 31, 38)!important; } } } diff --git a/ng6-seed/src/assets/styles/scss/core/_notification-sidebar.scss b/ng6-seed/src/assets/styles/scss/core/_notification-sidebar.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/core/_scaffolding.scss b/ng6-seed/src/assets/styles/scss/core/_scaffolding.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/core/_sessions.scss b/ng6-seed/src/assets/styles/scss/core/_sessions.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/core/_typography.scss b/ng6-seed/src/assets/styles/scss/core/_typography.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/material/_buttons.scss b/ng6-seed/src/assets/styles/scss/material/_buttons.scss old mode 100644 new mode 100755 index 1a100da..bde7a36 --- a/ng6-seed/src/assets/styles/scss/material/_buttons.scss +++ b/ng6-seed/src/assets/styles/scss/material/_buttons.scss @@ -11,6 +11,10 @@ $mat-fab-padding: 16px !default; } } +[mat-raised-button] { + color:red; +} + [mat-icon-button] { &[mat-button-sm] { padding: 0; diff --git a/ng6-seed/src/assets/styles/scss/material/_cards.scss b/ng6-seed/src/assets/styles/scss/material/_cards.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/material/_dialog.scss b/ng6-seed/src/assets/styles/scss/material/_dialog.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/material/_lists.scss b/ng6-seed/src/assets/styles/scss/material/_lists.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/material/_menus.scss b/ng6-seed/src/assets/styles/scss/material/_menus.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/material/_select.scss b/ng6-seed/src/assets/styles/scss/material/_select.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/material/_tabs.scss b/ng6-seed/src/assets/styles/scss/material/_tabs.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/mixins/_breakpoints.scss b/ng6-seed/src/assets/styles/scss/mixins/_breakpoints.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/mixins/_clearfix.scss b/ng6-seed/src/assets/styles/scss/mixins/_clearfix.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/mixins/_flex.scss b/ng6-seed/src/assets/styles/scss/mixins/_flex.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/mixins/_hover.scss b/ng6-seed/src/assets/styles/scss/mixins/_hover.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/mixins/_misc.scss b/ng6-seed/src/assets/styles/scss/mixins/_misc.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/mixins/_text-emphasis.scss b/ng6-seed/src/assets/styles/scss/mixins/_text-emphasis.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/mixins/bi-app/_bi-app-ltr.scss b/ng6-seed/src/assets/styles/scss/mixins/bi-app/_bi-app-ltr.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/mixins/bi-app/_bi-app-rtl.scss b/ng6-seed/src/assets/styles/scss/mixins/bi-app/_bi-app-rtl.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/mixins/bi-app/_mixins.scss b/ng6-seed/src/assets/styles/scss/mixins/bi-app/_mixins.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/mixins/bi-app/_variables-ltr.scss b/ng6-seed/src/assets/styles/scss/mixins/bi-app/_variables-ltr.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/mixins/bi-app/_variables-rtl.scss b/ng6-seed/src/assets/styles/scss/mixins/bi-app/_variables-rtl.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/utilities/_background.scss b/ng6-seed/src/assets/styles/scss/utilities/_background.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/utilities/_general.scss b/ng6-seed/src/assets/styles/scss/utilities/_general.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/utilities/_spacing.scss b/ng6-seed/src/assets/styles/scss/utilities/_spacing.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/utilities/_text.scss b/ng6-seed/src/assets/styles/scss/utilities/_text.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/styles/scss/utilities/utilities.scss b/ng6-seed/src/assets/styles/scss/utilities/utilities.scss old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/.bower.json b/ng6-seed/src/assets/vendor/pace/.bower.json old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/LICENSE b/ng6-seed/src/assets/vendor/pace/LICENSE old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/README.md b/ng6-seed/src/assets/vendor/pace/README.md old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/bower.json b/ng6-seed/src/assets/vendor/pace/bower.json old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/install.json b/ng6-seed/src/assets/vendor/pace/install.json old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/pace.coffee b/ng6-seed/src/assets/vendor/pace/pace.coffee old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/pace.js b/ng6-seed/src/assets/vendor/pace/pace.js old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/pace.min.js b/ng6-seed/src/assets/vendor/pace/pace.min.js old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-barber-shop.css b/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-barber-shop.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-big-counter.css b/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-big-counter.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-bounce.css b/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-bounce.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-center-atom.css b/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-center-atom.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-center-circle.css b/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-center-circle.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-center-radar.css b/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-center-radar.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-center-simple.css b/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-center-simple.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-corner-indicator.css b/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-corner-indicator.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-fill-left.css b/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-fill-left.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-flash.css b/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-flash.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-flat-top.css b/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-flat-top.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-loading-bar.css b/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-loading-bar.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-mac-osx.css b/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-mac-osx.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-minimal.css b/ng6-seed/src/assets/vendor/pace/themes/black/pace-theme-minimal.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-barber-shop.css b/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-barber-shop.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-big-counter.css b/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-big-counter.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-bounce.css b/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-bounce.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-center-atom.css b/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-center-atom.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-center-circle.css b/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-center-circle.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-center-radar.css b/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-center-radar.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-center-simple.css b/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-center-simple.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-corner-indicator.css b/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-corner-indicator.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-fill-left.css b/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-fill-left.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-flash.css b/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-flash.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-flat-top.css b/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-flat-top.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-loading-bar.css b/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-loading-bar.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-mac-osx.css b/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-mac-osx.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-minimal.css b/ng6-seed/src/assets/vendor/pace/themes/blue/pace-theme-minimal.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-barber-shop.css b/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-barber-shop.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-big-counter.css b/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-big-counter.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-bounce.css b/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-bounce.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-center-atom.css b/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-center-atom.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-center-circle.css b/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-center-circle.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-center-radar.css b/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-center-radar.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-center-simple.css b/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-center-simple.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-corner-indicator.css b/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-corner-indicator.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-fill-left.css b/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-fill-left.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-flash.css b/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-flash.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-flat-top.css b/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-flat-top.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-loading-bar.css b/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-loading-bar.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-mac-osx.css b/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-mac-osx.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-minimal.css b/ng6-seed/src/assets/vendor/pace/themes/green/pace-theme-minimal.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-barber-shop.css b/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-barber-shop.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-big-counter.css b/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-big-counter.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-bounce.css b/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-bounce.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-center-atom.css b/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-center-atom.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-center-circle.css b/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-center-circle.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-center-radar.css b/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-center-radar.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-center-simple.css b/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-center-simple.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-corner-indicator.css b/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-corner-indicator.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-fill-left.css b/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-fill-left.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-flash.css b/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-flash.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-flat-top.css b/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-flat-top.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-loading-bar.css b/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-loading-bar.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-mac-osx.css b/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-mac-osx.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-minimal.css b/ng6-seed/src/assets/vendor/pace/themes/orange/pace-theme-minimal.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-barber-shop.css b/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-barber-shop.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-big-counter.css b/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-big-counter.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-bounce.css b/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-bounce.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-center-atom.css b/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-center-atom.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-center-circle.css b/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-center-circle.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-center-radar.css b/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-center-radar.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-center-simple.css b/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-center-simple.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-corner-indicator.css b/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-corner-indicator.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-fill-left.css b/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-fill-left.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-flash.css b/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-flash.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-flat-top.css b/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-flat-top.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-loading-bar.css b/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-loading-bar.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-mac-osx.css b/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-mac-osx.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-minimal.css b/ng6-seed/src/assets/vendor/pace/themes/pink/pace-theme-minimal.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-barber-shop.css b/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-barber-shop.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-big-counter.css b/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-big-counter.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-bounce.css b/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-bounce.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-center-atom.css b/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-center-atom.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-center-circle.css b/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-center-circle.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-center-radar.css b/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-center-radar.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-center-simple.css b/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-center-simple.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-corner-indicator.css b/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-corner-indicator.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-fill-left.css b/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-fill-left.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-flash.css b/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-flash.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-flat-top.css b/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-flat-top.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-loading-bar.css b/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-loading-bar.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-mac-osx.css b/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-mac-osx.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-minimal.css b/ng6-seed/src/assets/vendor/pace/themes/purple/pace-theme-minimal.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-barber-shop.css b/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-barber-shop.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-big-counter.css b/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-big-counter.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-bounce.css b/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-bounce.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-center-atom.css b/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-center-atom.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-center-circle.css b/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-center-circle.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-center-radar.css b/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-center-radar.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-center-simple.css b/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-center-simple.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-corner-indicator.css b/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-corner-indicator.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-fill-left.css b/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-fill-left.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-flash.css b/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-flash.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-flat-top.css b/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-flat-top.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-loading-bar.css b/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-loading-bar.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-mac-osx.css b/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-mac-osx.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-minimal.css b/ng6-seed/src/assets/vendor/pace/themes/red/pace-theme-minimal.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-barber-shop.css b/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-barber-shop.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-big-counter.css b/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-big-counter.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-bounce.css b/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-bounce.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-center-atom.css b/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-center-atom.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-center-circle.css b/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-center-circle.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-center-radar.css b/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-center-radar.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-center-simple.css b/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-center-simple.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-corner-indicator.css b/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-corner-indicator.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-fill-left.css b/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-fill-left.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-flash.css b/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-flash.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-flat-top.css b/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-flat-top.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-loading-bar.css b/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-loading-bar.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-mac-osx.css b/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-mac-osx.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-minimal.css b/ng6-seed/src/assets/vendor/pace/themes/silver/pace-theme-minimal.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-barber-shop.css b/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-barber-shop.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-big-counter.css b/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-big-counter.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-bounce.css b/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-bounce.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-center-atom.css b/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-center-atom.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-center-circle.css b/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-center-circle.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-center-radar.css b/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-center-radar.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-center-simple.css b/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-center-simple.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-corner-indicator.css b/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-corner-indicator.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-fill-left.css b/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-fill-left.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-flash.css b/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-flash.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-flat-top.css b/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-flat-top.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-loading-bar.css b/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-loading-bar.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-mac-osx.css b/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-mac-osx.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-minimal.css b/ng6-seed/src/assets/vendor/pace/themes/white/pace-theme-minimal.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-barber-shop.css b/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-barber-shop.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-big-counter.css b/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-big-counter.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-bounce.css b/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-bounce.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-center-atom.css b/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-center-atom.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-center-circle.css b/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-center-circle.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-center-radar.css b/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-center-radar.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-center-simple.css b/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-center-simple.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-corner-indicator.css b/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-corner-indicator.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-fill-left.css b/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-fill-left.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-flash.css b/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-flash.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-flat-top.css b/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-flat-top.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-loading-bar.css b/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-loading-bar.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-mac-osx.css b/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-mac-osx.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-minimal.css b/ng6-seed/src/assets/vendor/pace/themes/yellow/pace-theme-minimal.css old mode 100644 new mode 100755 diff --git a/ng6-seed/src/environments/environment.prod.ts b/ng6-seed/src/environments/environment.prod.ts index 3612073..1e65ca6 100644 --- a/ng6-seed/src/environments/environment.prod.ts +++ b/ng6-seed/src/environments/environment.prod.ts @@ -1,3 +1,4 @@ export const environment = { - production: true + production: true, + apiEndpoint: 'https://ssa.sineedge.com/sparqtest/api/' }; diff --git a/ng6-seed/src/environments/environment.ts b/ng6-seed/src/environments/environment.ts index da00d13..a4d8afa 100644 --- a/ng6-seed/src/environments/environment.ts +++ b/ng6-seed/src/environments/environment.ts @@ -5,7 +5,7 @@ export const environment = { production: false, - + apiEndpoint: 'https://ssa.sineedge.com/sparqapi/api/', region: 'ap-south-1', identityPoolId: 'ap-south-1:9a551eab-97cf-4991-b677-2f9bcd058961', diff --git a/ng6-seed/src/favicon.ico b/ng6-seed/src/favicon.ico index 8081c7ceaf2be08bf59010158c586170d9d2d517..b9c4a9e13454a68e309fd70f9b93686f80fc1a3e 100644 GIT binary patch literal 1522 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 humW;*g7R+&|Ledvc- - + + + - Optima - Angular 6 Material Admin Template + PD Genie diff --git a/package-lock.json b/package-lock.json new file mode 100755 index 0000000..48e341a --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3 @@ +{ + "lockfileVersion": 1 +}