This commit is contained in:
surendar.m@watermelon.us 2023-04-04 15:42:22 +05:30
commit 3c6360d127
11 changed files with 799 additions and 81 deletions

View File

@ -1,7 +1,7 @@
{
"name": "optima",
"version": "3.0.0",
"lockfileVersion": 2,
"lockfileVersion": 1,
"requires": true,
"packages": {
"": {
@ -20621,6 +20621,14 @@
"tslib": "^2.0.0"
}
},
"@angular/fire": {
"version": "6.1.5",
"resolved": "https://registry.npmjs.org/@angular/fire/-/fire-6.1.5.tgz",
"integrity": "sha512-jrstSStogpfJvhlrX8ajtsnbVzIzcrh/InYUGbMVzXyQoT6wHA0LODjR6eIzGhb9/YQ+myMuVelJ39PfU3e8Sg==",
"requires": {
"tslib": "^2.0.0"
}
},
"@angular/flex-layout": {
"version": "11.0.0-beta.33",
"resolved": "https://registry.npmjs.org/@angular/flex-layout/-/flex-layout-11.0.0-beta.33.tgz",
@ -21703,6 +21711,344 @@
"integrity": "sha512-HyYEUDeIj5rRQU2Hk5HTB2uHsbRQpF70nvMhVzi+VJR0X+xNEhjPui4/kBf3VeH/wqD28PT4sVOm8qqLjBrSZg==",
"dev": true
},
"@firebase/analytics": {
"version": "0.6.18",
"resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.6.18.tgz",
"integrity": "sha512-FXNtYDxbs9ynPbzUVuG94BjFPOPpgJ7156660uvCBuKgoBCIVcNqKkJQQ7TH8384fqvGjbjdcgARY9jgAHbtog==",
"requires": {
"@firebase/analytics-types": "0.6.0",
"@firebase/component": "0.5.6",
"@firebase/installations": "0.4.32",
"@firebase/logger": "0.2.6",
"@firebase/util": "1.3.0",
"tslib": "^2.1.0"
}
},
"@firebase/analytics-types": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.6.0.tgz",
"integrity": "sha512-kbMawY0WRPyL/lbknBkme4CNLl+Gw+E9G4OpNeXAauqoQiNkBgpIvZYy7BRT4sNGhZbxdxXxXbruqUwDzLmvTw=="
},
"@firebase/app": {
"version": "0.6.30",
"resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.6.30.tgz",
"integrity": "sha512-uAYEDXyK0mmpZ8hWQj5TNd7WVvfsU8PgsqKpGljbFBG/HhsH8KbcykWAAA+c1PqL7dt/dbt0Reh1y9zEdYzMhg==",
"requires": {
"@firebase/app-types": "0.6.3",
"@firebase/component": "0.5.6",
"@firebase/logger": "0.2.6",
"@firebase/util": "1.3.0",
"dom-storage": "2.1.0",
"tslib": "^2.1.0",
"xmlhttprequest": "1.8.0"
}
},
"@firebase/app-check": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@firebase/app-check/-/app-check-0.3.2.tgz",
"integrity": "sha512-YjpsnV1xVTO1B836IKijRcDeceLgHQNJ/DWa+Vky9UHkm1Mi4qosddX8LZzldaWRTWKX7BN1MbZOLY8r7M/MZQ==",
"requires": {
"@firebase/app-check-interop-types": "0.1.0",
"@firebase/app-check-types": "0.3.1",
"@firebase/component": "0.5.6",
"@firebase/logger": "0.2.6",
"@firebase/util": "1.3.0",
"tslib": "^2.1.0"
}
},
"@firebase/app-check-interop-types": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/@firebase/app-check-interop-types/-/app-check-interop-types-0.1.0.tgz",
"integrity": "sha512-uZfn9s4uuRsaX5Lwx+gFP3B6YsyOKUE+Rqa6z9ojT4VSRAsZFko9FRn6OxQUA1z5t5d08fY4pf+/+Dkd5wbdbA=="
},
"@firebase/app-check-types": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/@firebase/app-check-types/-/app-check-types-0.3.1.tgz",
"integrity": "sha512-KJ+BqJbdNsx4QT/JIT1yDj5p6D+QN97iJs3GuHnORrqL+DU3RWc9nSYQsrY6Tv9jVWcOkMENXAgDT484vzsm2w=="
},
"@firebase/app-types": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.6.3.tgz",
"integrity": "sha512-/M13DPPati7FQHEQ9Minjk1HGLm/4K4gs9bR4rzLCWJg64yGtVC0zNg9gDpkw9yc2cvol/mNFxqTtd4geGrwdw=="
},
"@firebase/auth": {
"version": "0.16.8",
"resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.16.8.tgz",
"integrity": "sha512-mR0UXG4LirWIfOiCWxVmvz1o23BuKGxeItQ2cCUgXLTjNtWJXdcky/356iTUsd7ZV5A78s2NHeN5tIDDG6H4rg==",
"requires": {
"@firebase/auth-types": "0.10.3"
}
},
"@firebase/auth-interop-types": {
"version": "0.1.6",
"resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.1.6.tgz",
"integrity": "sha512-etIi92fW3CctsmR9e3sYM3Uqnoq861M0Id9mdOPF6PWIg38BXL5k4upCNBggGUpLIS0H1grMOvy/wn1xymwe2g=="
},
"@firebase/auth-types": {
"version": "0.10.3",
"resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.10.3.tgz",
"integrity": "sha512-zExrThRqyqGUbXOFrH/sowuh2rRtfKHp9SBVY2vOqKWdCX1Ztn682n9WLtlUDsiYVIbBcwautYWk2HyCGFv0OA=="
},
"@firebase/component": {
"version": "0.5.6",
"resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.5.6.tgz",
"integrity": "sha512-GyQJ+2lrhsDqeGgd1VdS7W+Y6gNYyI0B51ovNTxeZVG/W8I7t9MwEiCWsCvfm5wQgfsKp9dkzOcJrL5k8oVO/Q==",
"requires": {
"@firebase/util": "1.3.0",
"tslib": "^2.1.0"
}
},
"@firebase/database": {
"version": "0.11.0",
"resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.11.0.tgz",
"integrity": "sha512-b/kwvCubr6G9coPlo48PbieBDln7ViFBHOGeVt/bt82yuv5jYZBEYAac/mtOVSxpf14aMo/tAN+Edl6SWqXApw==",
"requires": {
"@firebase/auth-interop-types": "0.1.6",
"@firebase/component": "0.5.6",
"@firebase/database-types": "0.8.0",
"@firebase/logger": "0.2.6",
"@firebase/util": "1.3.0",
"faye-websocket": "0.11.3",
"tslib": "^2.1.0"
},
"dependencies": {
"faye-websocket": {
"version": "0.11.3",
"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz",
"integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==",
"requires": {
"websocket-driver": ">=0.5.1"
}
}
}
},
"@firebase/database-types": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.8.0.tgz",
"integrity": "sha512-7IdjAFRfPWyG3b4wcXyghb3Y1CLCSJFZIg1xl5GbTVMttSQFT4B5NYdhsfA34JwAsv5pMzPpjOaS3/K9XJ2KiA==",
"requires": {
"@firebase/app-types": "0.6.3",
"@firebase/util": "1.3.0"
}
},
"@firebase/firestore": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-2.4.0.tgz",
"integrity": "sha512-PQ6+lWNrvh74GvFTHT4gCutFipDmtu8D1tNNawKe+/SyL6XFgeuMYgZIpKQgkTSezVDogC7EGQTJBFnewF9pOg==",
"requires": {
"@firebase/component": "0.5.6",
"@firebase/firestore-types": "2.4.0",
"@firebase/logger": "0.2.6",
"@firebase/util": "1.3.0",
"@firebase/webchannel-wrapper": "0.5.1",
"@grpc/grpc-js": "^1.3.2",
"@grpc/proto-loader": "^0.6.0",
"node-fetch": "2.6.1",
"tslib": "^2.1.0"
}
},
"@firebase/firestore-types": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-2.4.0.tgz",
"integrity": "sha512-0dgwfuNP7EN6/OlK2HSNSQiQNGLGaRBH0gvgr1ngtKKJuJFuq0Z48RBMeJX9CGjV4TP9h2KaB+KrUKJ5kh1hMg=="
},
"@firebase/functions": {
"version": "0.6.15",
"resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.6.15.tgz",
"integrity": "sha512-b7RpLwFXi0N+HgkfK8cmkarSOoBeSrc1jNdadkCacQt+vIePkKM3E9EJXF4roWSa8GwTruodpBsvH+lK9iCAKQ==",
"requires": {
"@firebase/component": "0.5.6",
"@firebase/functions-types": "0.4.0",
"@firebase/messaging-types": "0.5.0",
"node-fetch": "2.6.1",
"tslib": "^2.1.0"
}
},
"@firebase/functions-types": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.4.0.tgz",
"integrity": "sha512-3KElyO3887HNxtxNF1ytGFrNmqD+hheqjwmT3sI09FaDCuaxGbOnsXAXH2eQ049XRXw9YQpHMgYws/aUNgXVyQ=="
},
"@firebase/installations": {
"version": "0.4.32",
"resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.4.32.tgz",
"integrity": "sha512-K4UlED1Vrhd2rFQQJih+OgEj8OTtrtH4+Izkx7ip2bhXSc+unk8ZhnF69D0kmh7zjXAqEDJrmHs9O5fI3rV6Tw==",
"requires": {
"@firebase/component": "0.5.6",
"@firebase/installations-types": "0.3.4",
"@firebase/util": "1.3.0",
"idb": "3.0.2",
"tslib": "^2.1.0"
}
},
"@firebase/installations-types": {
"version": "0.3.4",
"resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.3.4.tgz",
"integrity": "sha512-RfePJFovmdIXb6rYwtngyxuEcWnOrzdZd9m7xAW0gRxDIjBT20n3BOhjpmgRWXo/DAxRmS7bRjWAyTHY9cqN7Q=="
},
"@firebase/logger": {
"version": "0.2.6",
"resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.2.6.tgz",
"integrity": "sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw=="
},
"@firebase/messaging": {
"version": "0.8.0",
"resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.8.0.tgz",
"integrity": "sha512-hkFHDyVe1kMcY9KEG+prjCbvS6MtLUgVFUbbQqq7JQfiv58E07YCzRUcMrJolbNi/1QHH6Jv16DxNWjJB9+/qA==",
"requires": {
"@firebase/component": "0.5.6",
"@firebase/installations": "0.4.32",
"@firebase/messaging-types": "0.5.0",
"@firebase/util": "1.3.0",
"idb": "3.0.2",
"tslib": "^2.1.0"
}
},
"@firebase/messaging-types": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/@firebase/messaging-types/-/messaging-types-0.5.0.tgz",
"integrity": "sha512-QaaBswrU6umJYb/ZYvjR5JDSslCGOH6D9P136PhabFAHLTR4TWjsaACvbBXuvwrfCXu10DtcjMxqfhdNIB1Xfg=="
},
"@firebase/performance": {
"version": "0.4.18",
"resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.4.18.tgz",
"integrity": "sha512-lvZW/TVDne2TyOpWbv++zjRn277HZpbjxbIPfwtnmKjVY1gJ+H77Qi1c2avVIc9hg80uGX/5tNf4pOApNDJLVg==",
"requires": {
"@firebase/component": "0.5.6",
"@firebase/installations": "0.4.32",
"@firebase/logger": "0.2.6",
"@firebase/performance-types": "0.0.13",
"@firebase/util": "1.3.0",
"tslib": "^2.1.0"
}
},
"@firebase/performance-types": {
"version": "0.0.13",
"resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.0.13.tgz",
"integrity": "sha512-6fZfIGjQpwo9S5OzMpPyqgYAUZcFzZxHFqOyNtorDIgNXq33nlldTL/vtaUZA8iT9TT5cJlCrF/jthKU7X21EA=="
},
"@firebase/polyfill": {
"version": "0.3.36",
"resolved": "https://registry.npmjs.org/@firebase/polyfill/-/polyfill-0.3.36.tgz",
"integrity": "sha512-zMM9oSJgY6cT2jx3Ce9LYqb0eIpDE52meIzd/oe/y70F+v9u1LDqk5kUF5mf16zovGBWMNFmgzlsh6Wj0OsFtg==",
"requires": {
"core-js": "3.6.5",
"promise-polyfill": "8.1.3",
"whatwg-fetch": "2.0.4"
},
"dependencies": {
"core-js": {
"version": "3.6.5",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz",
"integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA=="
}
}
},
"@firebase/remote-config": {
"version": "0.1.43",
"resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.1.43.tgz",
"integrity": "sha512-laNM4MN0CfeSp7XCVNjYOC4DdV6mj0l2rzUh42x4v2wLTweCoJ/kc1i4oWMX9TI7Jw8Am5Wl71Awn1J2pVe5xA==",
"requires": {
"@firebase/component": "0.5.6",
"@firebase/installations": "0.4.32",
"@firebase/logger": "0.2.6",
"@firebase/remote-config-types": "0.1.9",
"@firebase/util": "1.3.0",
"tslib": "^2.1.0"
}
},
"@firebase/remote-config-types": {
"version": "0.1.9",
"resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.1.9.tgz",
"integrity": "sha512-G96qnF3RYGbZsTRut7NBX0sxyczxt1uyCgXQuH/eAfUCngxjEGcZQnBdy6mvSdqdJh5mC31rWPO4v9/s7HwtzA=="
},
"@firebase/storage": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.7.0.tgz",
"integrity": "sha512-ebDFKJbM5HOxVtZV+RhVEBVtlWHK+Z5L3kA5uDBA2jMYcn+8NV/crozJnEE+iRsGEco6dLK5JS+Er4qtKLpH5A==",
"requires": {
"@firebase/component": "0.5.6",
"@firebase/storage-types": "0.5.0",
"@firebase/util": "1.3.0",
"node-fetch": "2.6.1",
"tslib": "^2.1.0"
}
},
"@firebase/storage-types": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.5.0.tgz",
"integrity": "sha512-6Wv3Lu7s18hsgW7HG4BFwycTquZ3m/C8bjBoOsmPu0TD6M1GKwCzOC7qBdN7L6tRYPh8ipTj5+rPFrmhGfUVKA=="
},
"@firebase/util": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/@firebase/util/-/util-1.3.0.tgz",
"integrity": "sha512-SESvmYwuKOVCZ1ZxLbberbx+9cnbxpCa4CG2FUSQYqN6Ab8KyltegMDIsqMw5KyIBZ4n1phfHoOa22xo5NzAlQ==",
"requires": {
"tslib": "^2.1.0"
}
},
"@firebase/webchannel-wrapper": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.5.1.tgz",
"integrity": "sha512-dZMzN0uAjwJXWYYAcnxIwXqRTZw3o14hGe7O6uhwjD1ZQWPVYA5lASgnNskEBra0knVBsOXB4KXg+HnlKewN/A=="
},
"@grpc/grpc-js": {
"version": "1.8.13",
"resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.8.13.tgz",
"integrity": "sha512-iY3jsdfbc0ARoCLFvbvUB8optgyb0r1XLPb142u+QtgBcKJYkCIFt3Fd/881KqjLYWjsBJF57N3b8Eop9NDfUA==",
"requires": {
"@grpc/proto-loader": "^0.7.0",
"@types/node": ">=12.12.47"
},
"dependencies": {
"@grpc/proto-loader": {
"version": "0.7.6",
"resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.6.tgz",
"integrity": "sha512-QyAXR8Hyh7uMDmveWxDSUcJr9NAWaZ2I6IXgAYvQmfflwouTM+rArE2eEaCtLlRqO81j7pRLCt81IefUei6Zbw==",
"requires": {
"@types/long": "^4.0.1",
"lodash.camelcase": "^4.3.0",
"long": "^4.0.0",
"protobufjs": "^7.0.0",
"yargs": "^16.2.0"
}
}
}
},
"@grpc/proto-loader": {
"version": "0.6.13",
"resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.13.tgz",
"integrity": "sha512-FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g==",
"requires": {
"@types/long": "^4.0.1",
"lodash.camelcase": "^4.3.0",
"long": "^4.0.0",
"protobufjs": "^6.11.3",
"yargs": "^16.2.0"
},
"dependencies": {
"protobufjs": {
"version": "6.11.3",
"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz",
"integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==",
"requires": {
"@protobufjs/aspromise": "^1.1.2",
"@protobufjs/base64": "^1.1.2",
"@protobufjs/codegen": "^2.0.4",
"@protobufjs/eventemitter": "^1.1.0",
"@protobufjs/fetch": "^1.1.0",
"@protobufjs/float": "^1.0.2",
"@protobufjs/inquire": "^1.1.0",
"@protobufjs/path": "^1.1.2",
"@protobufjs/pool": "^1.1.0",
"@protobufjs/utf8": "^1.1.0",
"@types/long": "^4.0.1",
"@types/node": ">=13.7.0",
"long": "^4.0.0"
}
}
}
},
"@istanbuljs/schema": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
@ -21980,6 +22326,60 @@
}
}
},
"@protobufjs/aspromise": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
"integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ=="
},
"@protobufjs/base64": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
"integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="
},
"@protobufjs/codegen": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
"integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg=="
},
"@protobufjs/eventemitter": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
"integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q=="
},
"@protobufjs/fetch": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
"integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
"requires": {
"@protobufjs/aspromise": "^1.1.1",
"@protobufjs/inquire": "^1.1.0"
}
},
"@protobufjs/float": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
"integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ=="
},
"@protobufjs/inquire": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
"integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q=="
},
"@protobufjs/path": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
"integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA=="
},
"@protobufjs/pool": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
"integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw=="
},
"@protobufjs/utf8": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
"integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw=="
},
"@scarf/scarf": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/@scarf/scarf/-/scarf-1.1.1.tgz",
@ -22364,6 +22764,14 @@
"resolved": "https://registry.npmjs.org/@types/dragula/-/dragula-2.1.36.tgz",
"integrity": "sha512-K1GIMqdiviBIvUsLJPO1xkjpDFS308nU2l57zmV7LEO+znF3gtZGnWQ+c/ef78r6Ngb0cniQk8pnNkObeNlXQQ=="
},
"@types/firebase": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/@types/firebase/-/firebase-3.2.1.tgz",
"integrity": "sha512-G8XgHMu2jHlElfc2xVNaYP50F0qrqeTCjgeG1v5b4SRwWG4XKC4fCuEdVZuZaMRmVygcnbRZBAo9O7RsDvmkGQ==",
"requires": {
"firebase": "*"
}
},
"@types/geojson": {
"version": "7946.0.10",
"resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz",
@ -22401,6 +22809,11 @@
"integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==",
"dev": true
},
"@types/long": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz",
"integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA=="
},
"@types/minimatch": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz",
@ -22410,8 +22823,7 @@
"@types/node": {
"version": "14.18.36",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.36.tgz",
"integrity": "sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ==",
"dev": true
"integrity": "sha512-FXKWbsJ6a1hIrRxv+FoukuHnGTgEzKYGi7kilfMae96AL9UNkPFNWJEEYWzdRI9ooIkbr4AKldyuSTLql06vLQ=="
},
"@types/nvd3": {
"version": "1.8.42",
@ -25490,6 +25902,11 @@
"entities": "^2.0.0"
}
},
"dom-storage": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/dom-storage/-/dom-storage-2.1.0.tgz",
"integrity": "sha512-g6RpyWXzl0RR6OTElHKBl7nwnK87GUyZMYC7JWsB/IA73vpqK2K6LT39x4VepLxlSsWBFrPVLnsSR5Jyty0+2Q=="
},
"domain-browser": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz",
@ -25744,7 +26161,6 @@
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
"integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
"devOptional": true,
"requires": {
"prr": "~1.0.1"
}
@ -26286,6 +26702,28 @@
"path-exists": "^4.0.0"
}
},
"firebase": {
"version": "8.10.0",
"resolved": "https://registry.npmjs.org/firebase/-/firebase-8.10.0.tgz",
"integrity": "sha512-GCABTbJdo88QgzX5OH/vsfKBWvTRbLUylGlYXtO7uYo1VErfGd2BWW9ATlJP5Gxx+ClDfyvVTvcs2rcNWn3uUA==",
"requires": {
"@firebase/analytics": "0.6.18",
"@firebase/app": "0.6.30",
"@firebase/app-check": "0.3.2",
"@firebase/app-types": "0.6.3",
"@firebase/auth": "0.16.8",
"@firebase/database": "0.11.0",
"@firebase/firestore": "2.4.0",
"@firebase/functions": "0.6.15",
"@firebase/installations": "0.4.32",
"@firebase/messaging": "0.8.0",
"@firebase/performance": "0.4.18",
"@firebase/polyfill": "0.3.36",
"@firebase/remote-config": "0.1.43",
"@firebase/storage": "0.7.0",
"@firebase/util": "1.3.0"
}
},
"flatted": {
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
@ -26701,8 +27139,7 @@
"graceful-fs": {
"version": "4.2.10",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
"devOptional": true
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
},
"hammerjs": {
"version": "2.0.8",
@ -26982,8 +27419,7 @@
"http-parser-js": {
"version": "0.5.8",
"resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz",
"integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==",
"dev": true
"integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q=="
},
"http-proxy": {
"version": "1.18.1",
@ -27182,6 +27618,11 @@
"integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==",
"dev": true
},
"idb": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/idb/-/idb-3.0.2.tgz",
"integrity": "sha512-+FLa/0sTXqyux0o6C+i2lOR0VoS60LU/jzUo5xjfY6+7sEEgy4Gz1O7yFBXvjd7N0NyIGWIRg8DcQSLEG+VSPw=="
},
"ieee754": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
@ -28396,6 +28837,11 @@
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz",
"integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw=="
},
"lodash.camelcase": {
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
"integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA=="
},
"lodash.memoize": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
@ -28488,6 +28934,11 @@
"integrity": "sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg==",
"dev": true
},
"long": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz",
"integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA=="
},
"loud-rejection": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
@ -28520,7 +28971,6 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
"integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
"devOptional": true,
"requires": {
"pify": "^4.0.1",
"semver": "^5.6.0"
@ -28758,8 +29208,7 @@
"mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"devOptional": true
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
},
"mime-db": {
"version": "1.52.0",
@ -29227,6 +29676,11 @@
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
"dev": true
},
"node-fetch": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
"integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
},
"node-forge": {
"version": "0.10.0",
"resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz",
@ -30342,8 +30796,7 @@
"pify": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
"integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
"devOptional": true
"integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g=="
},
"pinkie": {
"version": "2.0.4",
@ -30839,6 +31292,11 @@
"integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
"dev": true
},
"promise-polyfill": {
"version": "8.1.3",
"resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.3.tgz",
"integrity": "sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g=="
},
"promise-retry": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz",
@ -30863,6 +31321,32 @@
}
}
},
"protobufjs": {
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz",
"integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==",
"requires": {
"@protobufjs/aspromise": "^1.1.2",
"@protobufjs/base64": "^1.1.2",
"@protobufjs/codegen": "^2.0.4",
"@protobufjs/eventemitter": "^1.1.0",
"@protobufjs/fetch": "^1.1.0",
"@protobufjs/float": "^1.0.2",
"@protobufjs/inquire": "^1.1.0",
"@protobufjs/path": "^1.1.2",
"@protobufjs/pool": "^1.1.0",
"@protobufjs/utf8": "^1.1.0",
"@types/node": ">=13.7.0",
"long": "^5.0.0"
},
"dependencies": {
"long": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/long/-/long-5.2.1.tgz",
"integrity": "sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A=="
}
}
},
"protractor": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz",
@ -31189,8 +31673,7 @@
"prr": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
"integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
"devOptional": true
"integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw=="
},
"psl": {
"version": "1.9.0",
@ -31907,8 +32390,7 @@
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"dev": true
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
},
"safe-regex": {
"version": "1.1.0",
@ -33206,15 +33688,6 @@
}
}
},
"string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"dev": true,
"requires": {
"safe-buffer": "~5.2.0"
}
},
"string-width": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
@ -33225,6 +33698,15 @@
"strip-ansi": "^6.0.1"
}
},
"string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"dev": true,
"requires": {
"safe-buffer": "~5.2.0"
}
},
"strip-ansi": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
@ -35224,15 +35706,6 @@
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
},
"string_decoder": {
"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"
}
},
"string-width": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
@ -35261,6 +35734,15 @@
}
}
},
"string_decoder": {
"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"
}
},
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
@ -35430,7 +35912,6 @@
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz",
"integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==",
"dev": true,
"requires": {
"http-parser-js": ">=0.5.1",
"safe-buffer": ">=5.1.0",
@ -35440,8 +35921,12 @@
"websocket-extensions": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
"integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
"dev": true
"integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg=="
},
"whatwg-fetch": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz",
"integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng=="
},
"whatwg-mimetype": {
"version": "2.3.0",
@ -35582,6 +36067,11 @@
"integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==",
"dev": true
},
"xmlhttprequest": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz",
"integrity": "sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA=="
},
"xtend": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",

View File

@ -18,6 +18,7 @@
"@angular/common": "^11.2.7",
"@angular/compiler": "^11.2.7",
"@angular/core": "^11.2.7",
"@angular/fire": "^6.1.5",
"@angular/flex-layout": "11.0.0-beta.33",
"@angular/forms": "^11.2.7",
"@angular/localize": "^11.2.7",
@ -30,6 +31,7 @@
"@ngx-translate/http-loader": "^6.0.0",
"@swimlane/ngx-charts": "^17.0.1",
"@swimlane/ngx-datatable": "19.0.0",
"@types/firebase": "^3.2.1",
"angular-calendar": "^0.28.22",
"angular-notifier": "^9.1.0",
"chart.js": "^2.9.4",
@ -37,6 +39,7 @@
"d3": "^6.6.1",
"date-fns": "^2.19.0",
"dragula": "^3.7.3",
"firebase": "^8.10.0",
"font-awesome": "4.7.0",
"hammerjs": "^2.0.8",
"jquery": "^3.6.0",

View File

@ -40,7 +40,14 @@ import { AppointmentService } from './appoinment/appointment.service';
import { RoleMenuItemsPipe } from './layouts/role-menu-items.pipe';
import { AuthGuard } from './_guard/auth.guard';
import { NotifierModule, NotifierOptions } from 'angular-notifier';
import { AngularFireModule } from '@angular/fire';
import { AngularFireAuthModule } from '@angular/fire/auth';
import { AngularFirestoreModule } from '@angular/fire/firestore';
import firebase from 'firebase';
import { environment } from 'environments/environment';
import { HashLocationStrategy, LocationStrategy } from '@angular/common';
firebase.initializeApp(environment.firebase);
const customNotifierOptions: NotifierOptions = {
position: {
horizontal: {
@ -107,7 +114,7 @@ const DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {
NotifierModule.withConfig(customNotifierOptions),
BrowserAnimationsModule,
SharedModule,
RouterModule.forRoot(AppRoutes, {scrollPositionRestoration: 'enabled'}),
RouterModule.forRoot(AppRoutes,{useHash: true}),
FormsModule,
MatSidenavModule,
MatInputModule,
@ -122,6 +129,9 @@ const DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {
HttpClientModule,
AppoinmentModule,
MatFormFieldModule,
AngularFireModule.initializeApp(environment.firebase),
AngularFireAuthModule,
AngularFirestoreModule,
TranslateModule.forRoot({
loader: {
provide: TranslateLoader,
@ -144,7 +154,7 @@ const DEFAULT_PERFECT_SCROLLBAR_CONFIG: PerfectScrollbarConfigInterface = {
provide: HTTP_INTERCEPTORS,
useClass: TokenInterceptor,
multi: true
}
},{provide: LocationStrategy, useClass: HashLocationStrategy}
],
entryComponents: [],
bootstrap: [AppComponent],

View File

@ -11,7 +11,7 @@ export const AppRoutes: Routes = [{
}, {
path: '',
component: AdminLayoutComponent,
canActivateChild:[AuthGuard],
canActivateChild:[AuthGuard],
children: [{
path: 'home',
loadChildren: () => import('./dashboard/dashboard.module').then(m => m.DashboardModule)
@ -48,10 +48,17 @@ export const AppRoutes: Routes = [{
]
}, {
path: 'customer',
loadChildren: () => import('./end-user/end-user.module').then(m => m.EndUserModule)
},
{
path: '',
//component: AuthLayoutComponent,
children: [
{
path: 'customer',
loadChildren: () => import('./end-user/end-user.module').then(m => m.EndUserModule)
}
]
},{
path: '',
component: AuthLayoutComponent,

View File

@ -172,7 +172,7 @@ export class BusinessListComponent implements OnInit {
// formData.append('city', JSON.stringify(formValue[0].city));
// formData.append('email', JSON.stringify(formValue[0].email));
// formData.append('contactNo', JSON.stringify(formValue[0].contactNo));
console.log(formValue[0])
//console.log(formData)
this._bus.addFormDetails(formValue[0]).subscribe(res => {
if (res.status == 200) {
// this.customersList = res.data;

View File

@ -1,4 +1,4 @@
<ng-scrollbar class="scrollHV">
<mat-toolbar>
<span style="text-align: center;">Appointment</span>
@ -32,9 +32,12 @@
<mat-error *ngIf="myError('phoneNo', 'required')">Phone No is required</mat-error>
<mat-error *ngIf="myError('phoneNo', 'maxlength')">Limit exceed</mat-error>
</mat-form-field>
<div id="sign-in-button"></div>
</div>
<div id="sign-in-button"></div>
<div *ngIf="verifyOTP != '1'" fxFlex.xs="20" fxFlex.sm="20" fxFlex.md="20" fxFlex.lg="20" fxFlex.xl="20">
<button mat-raised-button (click)="getOPT(1)" color="primary" class="mr-1 mb-1">Get OTP</button>
<button mat-raised-button (click)="getOTP(1)" [disabled]="myError('phoneNo', 'minlength') || myError('phoneNo', 'required')" color="primary" class="mr-1 mb-1">Get OTP</button>
</div>
<span *ngIf="verifyOTP == '1'"><mat-icon style="color: #4CAF50;">verified</mat-icon></span>
</div>
@ -42,7 +45,7 @@
<div fxLayout="row" *ngIf="verifyOTP != '1'">
<div fxFlex.xs="80" fxFlex.sm="80" fxFlex.md="80" fxFlex.lg="80" fxFlex.xl="80">
<mat-form-field style="width: 100%">
<input matInput placeholder="Enter OTP" #otp type="text" maxlength="6">
<input matInput placeholder="Enter OTP" formControlName="otp" type="text" maxlength="6">
</mat-form-field>
</div>
<div fxFlex.xs="20" fxFlex.sm="20" fxFlex.md="20" fxFlex.lg="20" fxFlex.xl="20">
@ -51,7 +54,7 @@
</div>
<div fxLayout="row" *ngIf="verifyOTP != '1'">
<button *ngIf="timeLeft != 0" mat-raised-button color="primary">{{timeLeft == 0 ? 'Resend OTP' : timeLeft+' Seconds Left....' }} </button>
<button *ngIf="timeLeft == 0" mat-raised-button color="primary" (click)="resendOTP()">{{timeLeft == 0 ? 'Resend OTP' : timeLeft+' Seconds Left....' }} </button>
<button *ngIf="timeLeft == 0" mat-raised-button color="primary" (click)="resendOTP(1)">{{timeLeft == 0 ? 'Resend OTP' : timeLeft+' Seconds Left....' }} </button>
</div>
</div>
</div>
@ -80,10 +83,22 @@
</form>
</mat-card>
</div>
<!-- <div fxFlex.xs="50" fxFlex.sm="50" fxFlex.md="50" fxFlex.lg="50" fxFlex.xl="50" class="m-gap p-gap flx" fxLayoutAlign="end center">
<app-summary></app-summary>
</div> -->
</div>
</div>
</ng-scrollbar>
<!-- <div class="contain">
<div class="row d-flex align-items-center justify-content-center">
<form class="col-md-6">
<div class="card px-5 py-5">
<div class="form-input">
<input type="text" name="phoneNumber" placeholder="Phone Number" class="form-control"
placeholder="Enter Phone Number" [(ngModel)]="phoneNumber" min="10" max="15">
</div>
<button class="btn btn-success mt-4 signup" (click)="getOTP()">Get OTP</button> -->
<!-- </div>
</form>
</div>
-->

View File

@ -33,4 +33,41 @@ mat-toolbar{
::ng-deep body{
background-color: #f7f8f5 !important;
}
}
.card {
border: none;
padding: 20px;
background-color: #1c1e21;
color: #fff
}
.contain{
margin: 10rem 0 3rem 0;
}
.form-input {
position: relative;
margin-bottom: 10px;
margin-top: 10px
}
.form-control {
height: 50px;
background-color: #dfe7f3;
text-indent: 24px;
font-size: 15px
}
.form-control:focus {
background-color: #25272a;
box-shadow: none;
color: #fff;
border-color: #4f63e7
}
.signup {
height: 50px;
font-size: 14px
}

View File

@ -1,9 +1,21 @@
import { Component, OnInit } from '@angular/core';
import { Component, NgZone, OnInit } from '@angular/core';
import { FormBuilder, FormControl, FormGroup, RequiredValidator, Validators } from '@angular/forms';
import { Router } from '@angular/router';
import { EndUserService } from '../end-user.service';
import firebase from 'firebase/app';
import 'firebase/auth';
import 'firebase/firestore';
var config = {
apiKey: "AIzaSyBVPQ6C7cg5l8I-o7WSmmXdioMa4C0ZKNM",
authDomain: "phone-otp-5d22e.firebaseapp.com",
projectId: "phone-otp-5d22e",
storageBucket: "phone-otp-5d22e.appspot.com",
messagingSenderId: "207025211598",
appId: "1:207025211598:web:f2e4ebfb2e4ca5d5d8a89f",
measurementId: "G-LJFTVZSP38"
}
@Component({
selector: 'app-customer-info',
templateUrl: './customer-info.component.html',
@ -15,9 +27,17 @@ export class CustomerInfoComponent implements OnInit {
timeLeft: number = 0;
interval;
verifyOTP: any = 0;
constructor(private router: Router,private formBuilder: FormBuilder,public _cus:EndUserService) {}
phoneNumber: any;
reCaptchaVerifier!: any;
otp!: string;
verifykey: any;
constructor(private router: Router,private formBuilder: FormBuilder,public _cus:EndUserService, private ngZone: NgZone) {
// firebase.initializeApp(config)
}
ngOnInit() {
ngOnInit(): void {
this.form = new FormGroup({
cusName: new FormControl('', [Validators.required]),
email: new FormControl('', [Validators.required, Validators.email,Validators.pattern(
@ -26,8 +46,9 @@ export class CustomerInfoComponent implements OnInit {
address_1: new FormControl('', [Validators.maxLength(50)]),
city: new FormControl('', [Validators.maxLength(10)]),
state: new FormControl('', [Validators.maxLength(10)]),
otp: new FormControl('', [Validators.maxLength(10)]),
pincode: new FormControl('',[Validators.maxLength(6)]),
phoneNo: new FormControl('', [Validators.required, Validators.maxLength(10)]),
phoneNo: new FormControl('', [Validators.required, Validators.maxLength(10),Validators.minLength(10)]),
});
}
@ -50,15 +71,15 @@ export class CustomerInfoComponent implements OnInit {
city: row_obj.city,
};
this._cus.addCusDetails(addFormData).subscribe(res => {
if (res.status == 200) {
console.log(res)
// this._cus.addCusDetails(addFormData).subscribe(res => {
// if (res.status == 200) {
// console.log(res)
let URL = this.router.url;
console.log(URL)
this.router.navigate([URL+"/"+res['data'].id+"/pt"])
}
});
// let URL = this.router.url;
// console.log(URL)
// this.router.navigate([URL+"/"+res['data'].id+"/pt"])
// }
// });
}
@ -75,18 +96,125 @@ export class CustomerInfoComponent implements OnInit {
}
resendOTP() {
this.timeLeft = 10;
this.interval = setInterval(() => {
if(this.timeLeft > 0) {
this.timeLeft--;
} else {
clearInterval(this.interval);
this.phoneNumber = this.form.value.phoneNo
if( this.phoneNumber.length!=10){
alert("invalid Phone No...!")
}else{
this.otpData = event
this.timeLeft = 60;
this.interval = setInterval(() => {
if(this.timeLeft > 0) {
this.timeLeft--;
} else {
clearInterval(this.interval);
}
},1000)
this.reCaptchaVerifier = new firebase.auth.RecaptchaVerifier(
'sign-in-button',
{
size: 'invisible',
}
},1000)
);
console.log(this.reCaptchaVerifier);
this.phoneNumber = "+91"+this.phoneNumber;
console.log(this.phoneNumber);
firebase
.auth()
.signInWithPhoneNumber(this.phoneNumber, this.reCaptchaVerifier)
.then((confirmationResult) => {
localStorage.setItem(
'verificationId',
JSON.stringify(confirmationResult.verificationId)
);
this.ngZone.run(() => {
//this.router.navigate(['/code']);
});
})
.catch((error) => {
console.log(error.message);
alert(error.message);
setTimeout(() => {
window.location.reload();
}, 5000);
});
}
}
verify(event){
this.verifyOTP = event
this.verifykey = JSON.parse(localStorage.getItem('verificationId') || '{}');
console.log(this.verifykey);
this.otp = this.form.value.otp
console.log(this.otp);
var credential = firebase.auth.PhoneAuthProvider.credential(
this.verifykey,
this.otp
);
console.log(credential);
firebase
.auth()
.signInWithCredential(credential)
.then((response) => {
console.log(response);
localStorage.setItem('user_data', JSON.stringify(response));
this.ngZone.run(() => {
// this.router.navigate(['/dashboard']);
this.verifyOTP = event
});
})
.catch((error) => {
console.log(error);
alert(error.message);
});
}
getOTP(event) {
this.phoneNumber = this.form.value.phoneNo
if( this.phoneNumber.length!=10){
alert("invalid Phone No...!")
}else{
this.otpData = event
this.timeLeft = 60;
this.interval = setInterval(() => {
if(this.timeLeft > 0) {
this.timeLeft--;
} else {
clearInterval(this.interval);
}
},1000)
this.reCaptchaVerifier = new firebase.auth.RecaptchaVerifier(
'sign-in-button',
{
size: 'invisible',
}
);
console.log(this.reCaptchaVerifier);
this.phoneNumber = "+91"+this.phoneNumber;
console.log(this.phoneNumber);
firebase
.auth()
.signInWithPhoneNumber(this.phoneNumber, this.reCaptchaVerifier)
.then((confirmationResult) => {
localStorage.setItem(
'verificationId',
JSON.stringify(confirmationResult.verificationId)
);
this.ngZone.run(() => {
//this.router.navigate(['/code']);
});
})
.catch((error) => {
console.log(error.message);
alert(error.message);
setTimeout(() => {
window.location.reload();
}, 5000);
});
}
}
}

View File

@ -9,8 +9,13 @@ import { PaymentComponent } from './payment/payment.component';
import { SearchCategoryComponent } from './search-category/search-category.component';
import { ServiceListComponent } from './service-list-details/service-list.component';
import { SlotBookingDetailsComponent } from './slot-booking/slot-booking-details.component';
import { ErrorOneComponent } from 'app/error/404/error-404.component';
const routes: Routes = [
const routes: Routes = [{
path: '',
redirectTo: 'error',
pathMatch: 'full',
},
{
path: 'slot-booking',
component: SlotBookingDetailsComponent
@ -68,6 +73,10 @@ const routes: Routes = [
path: 'business/:randstr/:randstrs/practitioner/details',
component: DoctorProfileComponent
},
{
path: 'error',
component: ErrorOneComponent
},
// {
// path: 'calendar-list',

View File

@ -1,5 +1,14 @@
export const environment = {
production: true,
environmentName: 'Production Environment',//Localhost Environment.
apiEndpoint:'https://api.venbait.in/api/',
apiEndpoint:'http://venbainfotech.com:5000/',
firebase : {
apiKey: "AIzaSyBVPQ6C7cg5l8I-o7WSmmXdioMa4C0ZKNM",
authDomain: "phone-otp-5d22e.firebaseapp.com",
projectId: "phone-otp-5d22e",
storageBucket: "phone-otp-5d22e.appspot.com",
messagingSenderId: "207025211598",
appId: "1:207025211598:web:f2e4ebfb2e4ca5d5d8a89f",
measurementId: "G-LJFTVZSP38"
}
};

View File

@ -6,8 +6,18 @@
export const environment = {
production: false,
environmentName: 'Testing Environment',//Localhost Environment.
// apiEndpoint:'http://venbainfotech.com:5000/api/',
// apiEndpoint:'https://api.venbait.in/api/',
apiEndpoint:'http://192.168.1.20:8080/api/',
// apiEndpoint:'http://venbainfotech.com:5000/api/',
// apiEndpoint:'http://192.168.1.20:8080/api/',
apiEndpoint:'https://api.venbait.in/api/',
firebase: {
apiKey: "AIzaSyBVPQ6C7cg5l8I-o7WSmmXdioMa4C0ZKNM",
authDomain: "phone-otp-5d22e.firebaseapp.com",
projectId: "phone-otp-5d22e",
storageBucket: "phone-otp-5d22e.appspot.com",
messagingSenderId: "207025211598",
appId: "1:207025211598:web:f2e4ebfb2e4ca5d5d8a89f",
measurementId: "G-LJFTVZSP38"
},
};