diff --git a/ng6-seed/package-lock.json b/ng6-seed/package-lock.json index 12a9754..c0236c4 100755 --- a/ng6-seed/package-lock.json +++ b/ng6-seed/package-lock.json @@ -1432,6 +1432,14 @@ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, "accepts": { "version": "1.3.7", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", @@ -1584,6 +1592,14 @@ "positioning": "^1.3.1" } }, + "angular-cropperjs": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/angular-cropperjs/-/angular-cropperjs-1.0.2.tgz", + "integrity": "sha512-S+fy+bJUdQ1BCcAJ1yQHxJiPM5yhfeQXzjvSjNqPfrvB/pWKXyDLtVu2jl5Z4QW6WhH/vQPu5wBn4/KxXIMdEw==", + "requires": { + "tslib": "^1.9.0" + } + }, "angular-draggable-droppable": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/angular-draggable-droppable/-/angular-draggable-droppable-2.0.0.tgz", @@ -1957,6 +1973,21 @@ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" }, + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "requires": { + "follow-redirects": "^1.14.0" + }, + "dependencies": { + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + } + } + }, "babel-code-frame": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", @@ -2189,6 +2220,11 @@ "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==" }, + "bignumber.js": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.0.tgz", + "integrity": "sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A==" + }, "binary-extensions": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", @@ -2280,6 +2316,11 @@ "multicast-dns-service-types": "^1.1.0" } }, + "bootstrap": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.1.3.tgz", + "integrity": "sha512-rDFIzgXcof0jDyjNosjv4Sno77X4KuPeFxG2XZZv1/Kc8DRVGVADdoQyyOVDwPqL36DDmtCQbrpMCqvpPLJQ0w==" + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -2468,6 +2509,11 @@ "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", "dev": true }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, "buffer-fill": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", @@ -2578,6 +2624,15 @@ "resolved": "https://registry.npmjs.org/calendar-utils/-/calendar-utils-0.1.2.tgz", "integrity": "sha512-9j4Zd1itopNYTSWzFU4MqD2IDHMqznfxsGr8UWGh7hWv+lKzjRJz0LS29iAg5rHtP6+6x3ikQnhoMGqFUzoD2Q==" }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, "caller-callsite": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", @@ -3254,6 +3309,11 @@ "sha.js": "^2.4.8" } }, + "cropperjs": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/cropperjs/-/cropperjs-1.5.12.tgz", + "integrity": "sha512-re7UdjE5UnwdrovyhNzZ6gathI4Rs3KGCBSc8HCIjUo5hO42CtzyblmWLj6QWVw7huHyDMfpKxhiO2II77nhDw==" + }, "cross-spawn": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", @@ -4060,6 +4120,14 @@ "safer-buffer": "^2.1.0" } }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, "ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -4432,6 +4500,11 @@ "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", "dev": true }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + }, "eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -4918,6 +4991,11 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fast-text-encoding": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz", + "integrity": "sha512-VhXlQgj9ioXCqGstD37E/HBeqEGV/qOD/kmbVG8h5xKBYvM1L3lR1Zn4555cQ8GkYbJa8aJSipLPndE1k6zK2w==" + }, "fastparse": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", @@ -5762,6 +5840,55 @@ "wide-align": "^1.1.0" } }, + "gaxios": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.3.3.tgz", + "integrity": "sha512-gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA==", + "requires": { + "abort-controller": "^3.0.0", + "extend": "^3.0.2", + "https-proxy-agent": "^5.0.0", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.7" + }, + "dependencies": { + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "gaze": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", @@ -5770,6 +5897,15 @@ "globule": "^1.0.0" } }, + "gcp-metadata": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz", + "integrity": "sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==", + "requires": { + "gaxios": "^4.0.0", + "json-bigint": "^1.0.0" + } + }, "genfun": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", @@ -5781,6 +5917,23 @@ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" }, + "get-intrinsic": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", + "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + } + } + }, "get-stdin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", @@ -5911,11 +6064,352 @@ "resolved": "https://registry.npmjs.org/glur/-/glur-1.1.2.tgz", "integrity": "sha1-8g6jbbEDv8KSNDkh8fkeg8NGdok=" }, + "google-auth-library": { + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-6.1.6.tgz", + "integrity": "sha512-Q+ZjUEvLQj/lrVHF/IQwRo6p3s8Nc44Zk/DALsN+ac3T4HY/g/3rrufkgtl+nZ1TW7DNAw5cTChdVp4apUXVgQ==", + "requires": { + "arrify": "^2.0.0", + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "fast-text-encoding": "^1.0.0", + "gaxios": "^4.0.0", + "gcp-metadata": "^4.2.0", + "gtoken": "^5.0.4", + "jws": "^4.0.0", + "lru-cache": "^6.0.0" + }, + "dependencies": { + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "google-p12-pem": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.4.tgz", + "integrity": "sha512-HHuHmkLgwjdmVRngf5+gSmpkyaRI6QmOg77J8tkNBHhNEI62sGHyw4/+UkgyZEI7h84NbWprXDJ+sa3xOYFvTg==", + "requires": { + "node-forge": "^1.3.1" + }, + "dependencies": { + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" + } + } + }, + "google-spreadsheet": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/google-spreadsheet/-/google-spreadsheet-3.3.0.tgz", + "integrity": "sha512-ahmRNh14s1i3phfvbF2mxen1lohWJpUaFWgsU6P6bXu7QrmxMaim1Ys/7BU4W5yucWCzphoIrHMbrbeIR5K9mw==", + "requires": { + "axios": "^0.21.4", + "google-auth-library": "^6.1.3", + "lodash": "^4.17.21" + }, + "dependencies": { + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + } + } + }, + "googleapis": { + "version": "109.0.0", + "resolved": "https://registry.npmjs.org/googleapis/-/googleapis-109.0.0.tgz", + "integrity": "sha512-m2+cwWg4R0TQ6Goe8vKydQKLuIH/M0phJzdH1zt5SCGNvoGyIpofq7FOyHKlnrrNdtHSTTI3aGtTazioHD1gPA==", + "requires": { + "google-auth-library": "^8.0.2", + "googleapis-common": "^6.0.0" + }, + "dependencies": { + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "gaxios": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.0.2.tgz", + "integrity": "sha512-TjtV2AJOZoMQqRYoy5eM8cCQogYwazWNYLQ72QB0kwa6vHHruYkGmhhyrlzbmgNHK1dNnuP2WSH81urfzyN2Og==", + "requires": { + "extend": "^3.0.2", + "https-proxy-agent": "^5.0.0", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.7" + } + }, + "gcp-metadata": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.0.1.tgz", + "integrity": "sha512-jiRJ+Fk7e8FH68Z6TLaqwea307OktJpDjmYnU7/li6ziwvVvU2RlrCyQo5vkdeP94chm0kcSCOOszvmuaioq3g==", + "requires": { + "gaxios": "^5.0.0", + "json-bigint": "^1.0.0" + } + }, + "google-auth-library": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-8.6.0.tgz", + "integrity": "sha512-y6bw1yTWMVgs1vGJwBZ3uu+uIClfgxQfsEVcTNKjQeNQOVwox69+ZUgTeTAzrh+74hBqrk1gWyb9RsQVDI7seg==", + "requires": { + "arrify": "^2.0.0", + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "fast-text-encoding": "^1.0.0", + "gaxios": "^5.0.0", + "gcp-metadata": "^5.0.0", + "gtoken": "^6.1.0", + "jws": "^4.0.0", + "lru-cache": "^6.0.0" + } + }, + "google-p12-pem": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-4.0.1.tgz", + "integrity": "sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ==", + "requires": { + "node-forge": "^1.3.1" + } + }, + "gtoken": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-6.1.2.tgz", + "integrity": "sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==", + "requires": { + "gaxios": "^5.0.1", + "google-p12-pem": "^4.0.0", + "jws": "^4.0.0" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, + "googleapis-common": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/googleapis-common/-/googleapis-common-6.0.3.tgz", + "integrity": "sha512-Xyb4FsQ6PQDu4tAE/M/ev4yzZhFe2Gc7+rKmuCX2ZGk1ajBKbafsGlVYpmzGqQOT93BRDe8DiTmQb6YSkbICrA==", + "requires": { + "extend": "^3.0.2", + "gaxios": "^5.0.1", + "google-auth-library": "^8.0.2", + "qs": "^6.7.0", + "url-template": "^2.0.8", + "uuid": "^9.0.0" + }, + "dependencies": { + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "arrify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", + "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "gaxios": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-5.0.2.tgz", + "integrity": "sha512-TjtV2AJOZoMQqRYoy5eM8cCQogYwazWNYLQ72QB0kwa6vHHruYkGmhhyrlzbmgNHK1dNnuP2WSH81urfzyN2Og==", + "requires": { + "extend": "^3.0.2", + "https-proxy-agent": "^5.0.0", + "is-stream": "^2.0.0", + "node-fetch": "^2.6.7" + } + }, + "gcp-metadata": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.0.1.tgz", + "integrity": "sha512-jiRJ+Fk7e8FH68Z6TLaqwea307OktJpDjmYnU7/li6ziwvVvU2RlrCyQo5vkdeP94chm0kcSCOOszvmuaioq3g==", + "requires": { + "gaxios": "^5.0.0", + "json-bigint": "^1.0.0" + } + }, + "google-auth-library": { + "version": "8.6.0", + "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-8.6.0.tgz", + "integrity": "sha512-y6bw1yTWMVgs1vGJwBZ3uu+uIClfgxQfsEVcTNKjQeNQOVwox69+ZUgTeTAzrh+74hBqrk1gWyb9RsQVDI7seg==", + "requires": { + "arrify": "^2.0.0", + "base64-js": "^1.3.0", + "ecdsa-sig-formatter": "^1.0.11", + "fast-text-encoding": "^1.0.0", + "gaxios": "^5.0.0", + "gcp-metadata": "^5.0.0", + "gtoken": "^6.1.0", + "jws": "^4.0.0", + "lru-cache": "^6.0.0" + } + }, + "google-p12-pem": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-4.0.1.tgz", + "integrity": "sha512-WPkN4yGtz05WZ5EhtlxNDWPhC4JIic6G8ePitwUWy4l+XPVYec+a0j0Ts47PDtW59y3RwAhUd9/h9ZZ63px6RQ==", + "requires": { + "node-forge": "^1.3.1" + } + }, + "gtoken": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-6.1.2.tgz", + "integrity": "sha512-4ccGpzz7YAr7lxrT2neugmXQ3hP9ho2gcaityLVkiUecAiwiy60Ii8gRbZeOsXV19fYaRjgBSshs8kXw+NKCPQ==", + "requires": { + "gaxios": "^5.0.1", + "google-p12-pem": "^4.0.0", + "jws": "^4.0.0" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==" + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "uuid": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz", + "integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } + }, "graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" }, + "gtoken": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.3.2.tgz", + "integrity": "sha512-gkvEKREW7dXWF8NV8pVrKfW7WqReAmjjkMBh6lNCCGOM4ucS0r0YyXXl0r/9Yj8wcW/32ISkfc8h5mPTDbtifQ==", + "requires": { + "gaxios": "^4.0.0", + "google-p12-pem": "^3.1.3", + "jws": "^4.0.0" + } + }, "hammerjs": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/hammerjs/-/hammerjs-2.0.8.tgz", @@ -6706,6 +7200,11 @@ "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", "dev": true }, + "is-promise": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz", + "integrity": "sha512-mjWH5XxnhMA8cFnDchr6qRP9S/kLntKuEfIYku+PaN1CnS8v+OG9O/BKpRCVRJvpIkgAZm0Pf5Is3iSSOILlcg==" + }, "is-regex": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", @@ -7069,9 +7568,9 @@ "dev": true }, "jquery": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", - "integrity": "sha512-XwIBPqcMn57FxfT+Go5pzySnm4KWkT1Tv7gjrpT1srtf8Weynl6R273VJ5GjkRb51IzMp5nbaPjJXMWeju2MKg==" + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", + "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==" }, "js-base64": { "version": "2.6.4", @@ -7111,6 +7610,14 @@ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", "dev": true }, + "json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "requires": { + "bignumber.js": "^9.0.0" + } + }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -7165,6 +7672,25 @@ "verror": "1.10.0" } }, + "jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "requires": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + }, "karma": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/karma/-/karma-1.7.0.tgz", @@ -7965,6 +8491,11 @@ "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", "dev": true }, + "merge-images": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-images/-/merge-images-2.0.0.tgz", + "integrity": "sha512-bpI4j54n/Zl6ZTgxaR3xWou/lqI53RAAt8peXijW37BKqoON83LQ7XCZqtFiwzBfEXIws1isYyR06584yffAyA==" + }, "methods": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", @@ -8393,6 +8924,22 @@ } } }, + "ngx-photo-editor": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/ngx-photo-editor/-/ngx-photo-editor-0.4.3.tgz", + "integrity": "sha512-XwrsLfU/h45SZWwnkurzHnRoXG8IEzYcrNoDFsmTyqx5p46yVRRfxIDC+IgdyTJIMJFWiMO1PGFfiXBD1UgtWA==", + "requires": { + "cropperjs": ">=1.5.12", + "tslib": "^2.3.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } + }, "ngx-viewer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/ngx-viewer/-/ngx-viewer-1.0.1.tgz", @@ -8421,6 +8968,14 @@ "resolved": "https://registry.npmjs.org/node-ensure/-/node-ensure-0.0.0.tgz", "integrity": "sha1-7K52QVDemYYexcgQ/V0Jaxg5Mqc=" }, + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, "node-fetch-npm": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.2.tgz", @@ -8573,6 +9128,25 @@ } } }, + "nodeify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nodeify/-/nodeify-1.0.1.tgz", + "integrity": "sha512-n7C2NyEze8GCo/z73KdbjRsBiLbv6eBn1FxwYKQ23IqGo7pQY3mhQan61Sv7eEDJCiyUjTVrVkXTzJCo1dW7Aw==", + "requires": { + "is-promise": "~1.0.0", + "promise": "~1.3.0" + }, + "dependencies": { + "promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/promise/-/promise-1.3.0.tgz", + "integrity": "sha512-R9WrbTF3EPkVtWjp7B7umQGVndpsi+rsDAfrR4xAALQpFLa/+2OriecLhawxzvii2gd9+DZFwROWDuUUaqS5yA==", + "requires": { + "is-promise": "~1" + } + } + } + }, "nopt": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", @@ -10455,6 +11029,16 @@ "uuid": "^3.3.2" } }, + "request-promise": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/request-promise/-/request-promise-3.0.0.tgz", + "integrity": "sha512-wVGUX+BoKxYsavTA72i6qHcyLbjzM4LR4y/AmDCqlbuMAursZdDWO7PmgbGAUvD2SeEJ5iB99VSq/U51i/DNbw==", + "requires": { + "bluebird": "^3.3", + "lodash": "^4.6.1", + "request": "^2.34" + } + }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -10921,6 +11505,42 @@ "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", "dev": true }, + "sheetsu": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/sheetsu/-/sheetsu-1.2.0.tgz", + "integrity": "sha512-hljg5haeSqmNHd1O0/PMlYfL6aOOT2pWsHgqHg9zKbEuQawSFqhacf5Dhx/QHuV/X6WqQJP06/b2MzOpSsyW1Q==", + "requires": { + "bluebird": "^3.0.6", + "co": "^4.6.0", + "lodash": "^3.10.1", + "nodeify": "^1.0.0", + "request-promise": "^3.0.0" + }, + "dependencies": { + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha512-9mDDwqVIma6OZX79ZlDACZl8sBm0TEnkf99zV3iMA4GzkIT/9hiqP5mY0HoT1iNLCrKc/R1HByV+yJfRWVJryQ==" + } + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "dependencies": { + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" + } + } + }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", @@ -12130,6 +12750,11 @@ } } }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, "tree-kill": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz", @@ -12466,6 +13091,11 @@ "requires-port": "^1.0.0" } }, + "url-template": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz", + "integrity": "sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==" + }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -12815,6 +13445,11 @@ } } }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, "webpack": { "version": "4.28.4", "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.28.4.tgz", @@ -13171,6 +13806,15 @@ "resolved": "https://registry.npmjs.org/webworkify/-/webworkify-1.5.0.tgz", "integrity": "sha512-AMcUeyXAhbACL8S2hqqdqOLqvJ8ylmIbNwUIqQujRSouf4+eUFaXbG6F1Rbu+srlJMmxQWsiU7mOJi0nMBfM1g==" }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "when": { "version": "3.6.4", "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", diff --git a/ng6-seed/package.json b/ng6-seed/package.json index c9fb365..3c4e937 100755 --- a/ng6-seed/package.json +++ b/ng6-seed/package.json @@ -39,11 +39,13 @@ "@types/file-saver": "^2.0.0", "amazon-cognito-identity-js": "^2.0.30", "angular-calendar": "0.23.3", + "angular-cropperjs": "^1.0.2", "angular-notifier": "^4.1.1", "angular-sortablejs": "^2.7.0", "angular-split": "^3.0.2", "angular-tree-component": "6.1.0", "blueimp-canvas-to-blob": "^3.28.0", + "bootstrap": "^4.1.3", "chart.js": "2.6.0", "core-js": "^2.6.5", "d3": "^4.9.1", @@ -52,10 +54,11 @@ "font-awesome": "4.7.0", "hammerjs": "2.0.8", "intl": "^1.2.4", - "jquery": "^3.5.1", + "jquery": "^3.6.0", "karma-jasmine": "^1.1.1", "leaflet": "^1.4.0", "mat-video": "^2.8.1", + "merge-images": "^2.0.0", "moment": "^2.24.0", "ng-pick-datetime": "^6.0.16", "ng2-charts": "1.6.0", @@ -70,6 +73,7 @@ "ngx-mat-daterange-picker": "^1.1.4", "ngx-mat-select-search": "^1.8.0", "ngx-perfect-scrollbar": "5.0.0-7", + "ngx-photo-editor": "^0.4.3", "ngx-viewer": "^1.0.1", "node-sass": "^4.14.1", "perfect-scrollbar": "^1.3.0", @@ -92,7 +96,7 @@ "@angular/compiler-cli": "^6.1.10", "@types/aws-sdk": "^2.7.0", "@types/jasmine": "2.5.52", - "@types/jquery": "3.2.0", + "@types/jquery": "^3.2.0", "@types/node": "^8.10.46", "aws-sdk": "^2.443.0", "codelyzer": "~4.1.0", diff --git a/ng6-seed/salespd_pwa__testing_07-09-2020.zip b/ng6-seed/salespd_pwa__testing_07-09-2020.zip new file mode 100644 index 0000000..4774a4b Binary files /dev/null and b/ng6-seed/salespd_pwa__testing_07-09-2020.zip differ diff --git a/ng6-seed/src/app/app.routing.ts b/ng6-seed/src/app/app.routing.ts index 58c3981..0a88f48 100755 --- a/ng6-seed/src/app/app.routing.ts +++ b/ng6-seed/src/app/app.routing.ts @@ -5,11 +5,25 @@ import { AuthLayoutComponent } from './layouts/auth/auth-layout.component'; import { CognitoService} from './AwsService/cognito.service'; import { AuthGuard } from './_guard/auth.guard'; // import { SalesPdComponent } from './sales-pd/sales-pd.component'; +// let role = localStorage.g('user_role'); +// console.log(role) +var route: string = "fly-hi"; +const role = JSON.parse(localStorage.getItem("user_role")); + +if (role == "20") { +//Fly-hi role + route = "fly-hi" +} else { + //normal user role + route = "sales-pd-list" +} +console.log(role,route) export const AppRoutes: Routes = [{ + path: '', - redirectTo: 'sales-pd-list', + redirectTo: route, pathMatch: 'full', -}, { +} , { path: '', component: AdminLayoutComponent, canActivateChild:[AuthGuard], @@ -31,6 +45,7 @@ export const AppRoutes: Routes = [{ // loadChildren:'./quality-check/quality-check.module#QualityCheckModule' // }, // { + { path:'sales-pd-list', loadChildren:'./sales-pd/sales-pd.module#SalesPdModule' diff --git a/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list-filter/fly-hi-list-filter.component.html b/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list-filter/fly-hi-list-filter.component.html new file mode 100644 index 0000000..2e162a3 --- /dev/null +++ b/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list-filter/fly-hi-list-filter.component.html @@ -0,0 +1,3 @@ +

+ fly-hi-list-filter works! +

diff --git a/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list-filter/fly-hi-list-filter.component.scss b/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list-filter/fly-hi-list-filter.component.scss new file mode 100644 index 0000000..e69de29 diff --git a/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list-filter/fly-hi-list-filter.component.spec.ts b/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list-filter/fly-hi-list-filter.component.spec.ts new file mode 100644 index 0000000..901f87c --- /dev/null +++ b/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list-filter/fly-hi-list-filter.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { FlyHiListFilterComponent } from './fly-hi-list-filter.component'; + +describe('FlyHiListFilterComponent', () => { + let component: FlyHiListFilterComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ FlyHiListFilterComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(FlyHiListFilterComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list-filter/fly-hi-list-filter.component.ts b/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list-filter/fly-hi-list-filter.component.ts new file mode 100644 index 0000000..4cfe5b7 --- /dev/null +++ b/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list-filter/fly-hi-list-filter.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-fly-hi-list-filter', + templateUrl: './fly-hi-list-filter.component.html', + styleUrls: ['./fly-hi-list-filter.component.scss'] +}) +export class FlyHiListFilterComponent implements OnInit { + + constructor() { } + + ngOnInit() { + } + +} diff --git a/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list.component.html b/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list.component.html index e8afd30..5737aa7 100644 --- a/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list.component.html +++ b/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list.component.html @@ -49,12 +49,14 @@ +
{{details.sales_pd_id}}
{{details.sales_pd_sno}}
+ {{details.sales_pd_type_master}}
@@ -92,10 +94,10 @@
- + matTooltipPosition="left" [ngStyle]="{'color':roleID == 20 ? '#0d93a9' :'#f44336'}" (click)="salesPDpdf(details.sales_pd_id)">file_download +
@@ -133,9 +135,145 @@
+
+ + + + + + +
{{details.sales_pd_id}}
+ +
+
+ + + + + {{details.sales_pd_sno}}
+ {{details.sales_pd_type_master}}
+ +
+
+ + + + {{details.applicant_name}} +
+ {{details.applicant_id}} + + +
+
+ + + {{details.short_name}}
+ {{details.abbr}} + + +
+
+ + + + -- + + + {{details.officer_name}} + + + + + + + + + -- + + + {{details.status}} + + + + + + + + {{details.createdon | date: 'dd/MM/yyyy'}} + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + +
diff --git a/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list.component.scss b/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list.component.scss index 537921a..0e02d30 100644 --- a/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list.component.scss +++ b/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list.component.scss @@ -139,5 +139,16 @@ p.note { font-size: 80%; } } + + ::ng-deep.mat-tab-body-content { + height: 100%; + overflow: hidden !important; + } + .mat-row { + min-width: max-content; + } + mat-table{ + width: 98%; + } diff --git a/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list.component.ts b/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list.component.ts index 571e6f7..a061ad1 100644 --- a/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list.component.ts +++ b/ng6-seed/src/app/fly-hi/fly-hi-list/fly-hi-list.component.ts @@ -1,19 +1,22 @@ -import { Component, OnInit, ViewChild } from '@angular/core'; +import { Component, Input, OnInit, ViewChild, ViewEncapsulation } from '@angular/core'; import { FlyhiService } from '../services/flyhi.service'; import { Router, ActivatedRoute } from '@angular/router'; -import { MatDialog, MatTableDataSource, MatPaginator, MatSort } from '@angular/material'; +import { MatDialog, MatTableDataSource, MatPaginator, MatSort, PageEvent } from '@angular/material'; import { ConstantsProvider } from 'app/providers/constants/constants'; import { LoaderService } from 'app/shared/loaderService/loader.service'; import { SalesPdService } from 'app/sales-pd/services/sales-pd.service'; +import { ReGenerateReportComponent } from 'app/sales-pd/sales-pd-list/re-generate-report/re-generate-report.component'; @Component({ selector: 'app-fly-hi-list', templateUrl: './fly-hi-list.component.html', - styleUrls: ['./fly-hi-list.component.scss'] + styleUrls: ['./fly-hi-list.component.scss'], + encapsulation: ViewEncapsulation.None }) export class FlyHiListComponent implements OnInit { @ViewChild(MatPaginator) paginator: MatPaginator; @ViewChild(MatSort) sort: MatSort; + @Input() bindFilterValue: string; public dataLengthTab4: number; public dataSourceTab4 = new MatTableDataSource(); is_sales_login:boolean = false @@ -25,7 +28,12 @@ export class FlyHiListComponent implements OnInit { limitMsg: boolean = false; finallink: string; filter_drop_down_data: { product_ids: any[]; lender_ids: any[]; pd_status: any[]; }; - + length = 5; + pageIndex = 0; + pageSize = 10; + pageEvent: PageEvent; + displayedColumns = ['sales_pd_id','sales_pd_sno','applicant_name','short_name','officer_name','status','createdon','view' +]; constructor(private loaderService:LoaderService,private constantProvider:ConstantsProvider,private dialog:MatDialog,private route: ActivatedRoute, private router: Router,private _fly_Hi:FlyhiService,private SalesPDService:SalesPdService) { this.roleID = localStorage.getItem('user_role'); setTimeout(()=>{ @@ -56,6 +64,7 @@ export class FlyHiListComponent implements OnInit { ngOnInit() { this.getListofFlyhi() + localStorage.setItem('sales_pd_type',null) } getListofFlyhi(){ @@ -66,6 +75,7 @@ export class FlyHiListComponent implements OnInit { this.roleID = localStorage.getItem('user_role') this.flyHiData = res['records']; + console.log(this.flyHiData) this.dataLengthTab4 = res['records'].length; this.dataSourceTab4.data = this.flyHiData; this.recordStatus=false @@ -297,6 +307,7 @@ export class FlyHiListComponent implements OnInit { } salesPDpdf(pdfdetail){ + console.log(pdfdetail) this.loaderService.showMatSpinnerDialog('Processing...') this.SalesPDService.getSalesPdpdf(pdfdetail) .subscribe( @@ -318,20 +329,20 @@ export class FlyHiListComponent implements OnInit { } -// regeneratereport(data,option) -// { + regeneratereport(data,option) +{ -// const dialogRef = this.dialog.open(ReGenerateReportComponent,{ -// data: {pdid: data,option: option}, -// disableClose: true, -// minWidth: '30%', -// maxWidth: '40%', + const dialogRef = this.dialog.open(ReGenerateReportComponent,{ + data: {pdid: data,option: option}, + disableClose: true, + minWidth: '30%', + maxWidth: '40%', -// }) -// dialogRef.afterClosed() -// .subscribe(dataresult => { -// // this.viewPdDetails(this.viewID,this.masterRandomString) -// }) -// } + }) + dialogRef.afterClosed() + .subscribe(dataresult => { + // this.viewPdDetails(this.viewID,this.masterRandomString) + }) +} } diff --git a/ng6-seed/src/app/fly-hi/fly-hi.module.ts b/ng6-seed/src/app/fly-hi/fly-hi.module.ts index 596878a..1af98f5 100644 --- a/ng6-seed/src/app/fly-hi/fly-hi.module.ts +++ b/ng6-seed/src/app/fly-hi/fly-hi.module.ts @@ -29,7 +29,48 @@ import { AngularSplitModule } from 'angular-split'; import { FormComponent } from './forms-dynamic/form/form.component'; import { ImageVideoComponent } from './image-video/image-video.component'; import { AnswerOptionCreateDialogComponent } from './forms-dynamic/answer-option-create-dialog/answer-option-create-dialog.component'; - +import { FlyHiListFilterComponent } from './fly-hi-list/fly-hi-list-filter/fly-hi-list-filter.component'; +import { NotifierModule, NotifierOptions } from 'angular-notifier'; +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({ imports: [ CommonModule, @@ -79,10 +120,10 @@ import { AnswerOptionCreateDialogComponent } from './forms-dynamic/answer-option OwlDateTimeModule, OwlNativeDateTimeModule, AngularSplitModule, - MatVideoModule - + MatVideoModule, + NotifierModule.withConfig(pdCustomNotifierOptions), ], - declarations:[StartPd2Component,DynamicFormComponent,DynamicQuestionTemplateComponent,FormComponent,AnswerOptionCreateDialogComponent], + declarations:[StartPd2Component,DynamicFormComponent,DynamicQuestionTemplateComponent,FormComponent,AnswerOptionCreateDialogComponent, FlyHiListFilterComponent], exports:[StartPd2Component], entryComponents:[FlyHiListComponent,DynamicFormComponent,DynamicQuestionTemplateComponent,FormComponent], providers:[ConstantsProvider,{ provide: MAT_DATE_LOCALE, useValue: 'en-GB' },{provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE]}, diff --git a/ng6-seed/src/app/fly-hi/forms-dynamic/dynamic-form/dynamic-form/dynamic-form.component.ts b/ng6-seed/src/app/fly-hi/forms-dynamic/dynamic-form/dynamic-form/dynamic-form.component.ts index 41bb621..e9863db 100644 --- a/ng6-seed/src/app/fly-hi/forms-dynamic/dynamic-form/dynamic-form/dynamic-form.component.ts +++ b/ng6-seed/src/app/fly-hi/forms-dynamic/dynamic-form/dynamic-form/dynamic-form.component.ts @@ -33,27 +33,27 @@ export class DynamicFormComponent { this.questionService.currentMessageSubscriber.subscribe((data : any)=>{ - console.log(data) + //console.log(data) }) } ngOnInit() { - console.log(this.form_group_name) - console.log(this.questions_JSON.questions) + // console.log(this.form_group_name) + //.log(this.questions_JSON.questions) this.form_group_name=this.questionService.assignFormControl_array(this.form_group_name,this.questions_JSON.questions) this.generateGroupControls(); - console.log( this.questions_JSON.questions) + // console.log( this.questions_JSON.questions) this.questionService.notify(this.questions_JSON) if(this.questions_JSON.questions){ this.questions_JSON.questions.forEach(element => { if(element.question instanceof Array){ element.question.forEach(e => { - console.log(e.question) + // console.log(e.question) }); }else{ - console.log(this.questions_JSON.questions) + // console.log(this.questions_JSON.questions) } }); diff --git a/ng6-seed/src/app/fly-hi/forms-dynamic/dynamic-form/dynamic-question-template/dynamic-question-template.component.ts b/ng6-seed/src/app/fly-hi/forms-dynamic/dynamic-form/dynamic-question-template/dynamic-question-template.component.ts index 1e6e722..2fb43a8 100644 --- a/ng6-seed/src/app/fly-hi/forms-dynamic/dynamic-form/dynamic-question-template/dynamic-question-template.component.ts +++ b/ng6-seed/src/app/fly-hi/forms-dynamic/dynamic-form/dynamic-question-template/dynamic-question-template.component.ts @@ -32,6 +32,8 @@ export class DynamicQuestionTemplateComponent implements OnInit { local_pincode1: any; json_answers1:any; isChecked:any=[]; + city_array:any =[]; + pincode_array:any=[]; autoCompleteAns:Observable public commonFilterCtrl:FormControl = new FormControl(); public ngxFilteredValue:ReplaySubject = new ReplaySubject(1); @@ -46,7 +48,7 @@ export class DynamicQuestionTemplateComponent implements OnInit { ngOnInit() { this.quesService.currentMessageSubscriber.subscribe((data : any)=>{ - console.log(data) + //console.log(data) if(data){ this.check = true }else{ @@ -56,7 +58,7 @@ export class DynamicQuestionTemplateComponent implements OnInit { // output : {msg : 'do something'} }) localStorage.setItem('use',"0"); - console.log( this.whole_json) + //console.log( this.whole_json) this.parent_ques = this.currFormArrayObj @@ -70,7 +72,7 @@ export class DynamicQuestionTemplateComponent implements OnInit { } checkCat(data,w){ - console.log(this.isChecked) + // console.log(this.isChecked) if( this.isChecked.length == 0){ this.isChecked = this.json_answers[w.question_key] let ref = this.isChecked.find(x => x == data); // this checks the cat[] array @@ -89,6 +91,9 @@ export class DynamicQuestionTemplateComponent implements OnInit { } } + ngAfterViewInit(){ + this.ngOnChanges() + } ngOnChanges() { //alert('ans'); this.parent_ques = this.currFormArrayObj @@ -166,16 +171,16 @@ export class DynamicQuestionTemplateComponent implements OnInit { ] setTimeout(()=>{ - console.log(this.parent_ques); + // console.log(this.parent_ques); if( this.parent_ques.answers && this.parent_ques.answers instanceof Array){ - console.log(this.parent_ques.answers.length) - console.log( this.formGroupN.get(this.parent_ques.question_key)) + // console.log(this.parent_ques.answers.length) + // console.log( this.formGroupN.get(this.parent_ques.question_key)) if(this.parent_ques.type == '3' && this.parent_ques.answers.length == 1){ - console.log(this.parent_ques.answers.answer_id) + // console.log(this.parent_ques.answers.answer_id) this.formGroupN.get(this.parent_ques.question_key).patchValue(this.parent_ques.answers[0].answer_id || '') }else if(this.parent_ques.type == '3' && this.parent_ques.answers.length == 0){ - console.log(this.parent_ques.answers.answer_id) + // console.log(this.parent_ques.answers.answer_id) this.formGroupN.get(this.parent_ques.question_key).patchValue(this.parent_ques.answers[0].answer_id || '') } } @@ -190,12 +195,12 @@ export class DynamicQuestionTemplateComponent implements OnInit { this.formGroupN.get(this.parent_ques.question_key).patchValue((this.json_answers[this.parent_ques.question_key] || '')) if(this.parent_ques.question_key == '5'){ - this.isChecked = this.json_answers[this.parent_ques.question_key] - console.log( this.isChecked) + this.isChecked = this.json_answers[this.parent_ques.question_key] + .log( this.isChecked) } this.onChangeProperty({value:this.json_answers[this.parent_ques.question_key]},this.parent_ques,'','','','TS') - console.log( this.json_answers[this.parent_ques.question_key]) + // console.log( this.json_answers[this.parent_ques.question_key]) } else if(this.json_answers!=null && this.json_answers != undefined && this.json_answers){ // this.formGroupN.patchValue((this.json_answers[this.group_key] || '')) @@ -314,9 +319,9 @@ export class DynamicQuestionTemplateComponent implements OnInit { } } onChange_checkbox(event,sec_control){ - console.log(this.isChecked) + // console.log(this.isChecked) // this.isChecked =[]; - console.log( this.formGroupN.get(sec_control.question_key).value) + // console.log( this.formGroupN.get(sec_control.question_key).value) const control=this.formGroupN.get(sec_control.question_key) as FormArray @@ -333,7 +338,7 @@ export class DynamicQuestionTemplateComponent implements OnInit { onChangeProperty(event,sec_control,question_key,options?,sec_index?,from?){ // alert('datatamil'); if(!from && from != 'TS' && this.quesService.formanswers != null) { - console.log("Value changes",from); + // console.log("Value changes",from); this.quesService.formanswers = null } @@ -404,11 +409,11 @@ export class DynamicQuestionTemplateComponent implements OnInit { // onChangeProperties_value.push(JSON.parse(new_name)) onChangeProperties_value.forEach(onChangeProperty=>{ - console.log(onChangeProperty) + // console.log(onChangeProperty) if(onChangeProperty.purpose == 'api2'){ - console.log(event.value,onChangeProperty.params) + // console.log(event.value,onChangeProperty.params) if(onChangeProperty.api == 'getListOfStatesAndCities'){ - console.log(event.value,onChangeProperty.params) + // console.log(event.value,onChangeProperty.params) // onChangeProperty.params = JSON.stringify(onChangeProperty.params); // let updatedParams =JSON.stringify(onChangeProperty.params); // updatedParams = updatedParams.replace('value_of_answer',event.value); @@ -416,26 +421,75 @@ export class DynamicQuestionTemplateComponent implements OnInit { // console.log(JSON.parse(updatedParams),updatedParams,JSON.parse(JSON.stringify(updatedParams))) // debugger; let params={records:{state_id:event.value}} - + console.log( params,this.city_array,this.pincode_array) + if( this.city_array.length>0){ + this.city_array[this.json_index] = null + } + if( this.pincode_array.length>0){ + this.pincode_array[this.json_index] = null + } + this.quesService.apiCall(onChangeProperty.api,params,onChangeProperty.api_method).subscribe(res=>{ if(res['dataStatus']){ - this.local_city1=res['records'].cities - this.local_pincode1=res['records'].pincode - + this.local_city1=res['records'].cities + this.local_pincode1=res['records'].pincode + + // console.log( local_city1,local_pincode1) this.whole_json.forEach((val,index)=>{ - - + // let i= index-2 + console.log( this.json_index,index) if(val.api_properties == 'local_city1' ){ - this.local_city1=this.quesService.convertArrayNames(['city_id','city_name'],this.local_city1) - console.log( this.local_city1) - val.answers = (this.local_city1) + // this.local_city1=this.quesService.convertArrayNames(['city_id','city_name'], this.local_city1) + this.local_city1=this.quesService.convertArrayNames(['city_id','city_name'], this.local_city1) + // console.log( this.local_city1) + + // val.answers = null + + console.log( this.city_array[this.json_index]) + if(this.city_array[this.json_index] == undefined ){ + val.answers = this.local_city1 + // this.city_array=[] + this.city_array.push( this.local_city1) + }else{ + if( this.city_array[this.json_index] == null){ + this.city_array[this.json_index] = this.local_city1 + } + + val.answers = this.city_array[this.json_index] + } + // this.ngOnChanges() + console.log( this.city_array ) + // val.answers = this.city_array[this.json_index] + //val.answers = local_city1 + // console.log(this.whole_json,this.json_index, val.answers) } else if(val.api_properties == 'local_pincode1'){ - this.local_pincode1=this.quesService.convertArrayNames(['pincode_id','pincode'],this.local_pincode1) - val.answers = (this.local_pincode1) + this.local_pincode1=this.quesService.convertArrayNames(['pincode_id','pincode'], this.local_pincode1) + + // val.answers = local_pincode1 + // setTimeout(() => { + // console.log( this.pincode_array[index-1] ) + // }, 1000); + + if(this.pincode_array[this.json_index] == undefined){ + + val.answers = this.local_pincode1 + //this.pincode_array=[] + this.pincode_array.push( this.local_pincode1) + }else{ + if( this.pincode_array[this.json_index] == null){ + this.pincode_array[this.json_index] = this.local_pincode1 + } + // this.pincode_array[this.json_index] = this.local_pincode1 + val.answers = this.pincode_array[this.json_index] + } + console.log( this.pincode_array) + // val.answers = local_pincode2 + // console.log(this.whole_json, val.answers ) + // this.ngOnChanges() } }) @@ -467,12 +521,12 @@ export class DynamicQuestionTemplateComponent implements OnInit { if(val.api_properties == 'local_city' ){ this.local_city=this.quesService.convertArrayNames(['city_id','city_name'],this.local_city) - console.log( this.local_city) - val.answers = (this.local_city) + // console.log( this.local_city) + val.answers = (this.local_city) } else if(val.api_properties == 'local_pincode'){ this.local_pincode=this.quesService.convertArrayNames(['pincode_id','pincode'],this.local_pincode) - val.answers = (this.local_pincode) + val.answers = (this.local_pincode) } // if(val.api_properties == 'local_city1' ){ @@ -490,10 +544,10 @@ export class DynamicQuestionTemplateComponent implements OnInit { } }) }else if(onChangeProperty.purpose == 'api2'){ - console.log(event.value,onChangeProperty.params) + // console.log(event.value,onChangeProperty.params) if(onChangeProperty.api == 'getListOfStatesAndCities'){ - console.log(event.value,onChangeProperty.params) - // onChangeProperty.params = JSON.stringify(onChangeProperty.params); + // console.log(event.value,onChangeProperty.params) + // // onChangeProperty.params = JSON.stringify(onChangeProperty.params); // let updatedParams =JSON.stringify(onChangeProperty.params); // updatedParams = updatedParams.replace('value_of_answer',event.value); // // updatedParams = JSON.parse(updatedParams) @@ -514,8 +568,8 @@ export class DynamicQuestionTemplateComponent implements OnInit { if(val.api_properties == 'local_city1' ){ this.local_city1=this.quesService.convertArrayNames(['city_id','city_name'],this.local_city1) - console.log( this.local_city1) - val.answers = (this.local_city1) + // console.log( this.local_city1) + val.answers = (this.local_city1) } else if(val.api_properties == 'local_pincode1'){ this.local_pincode1=this.quesService.convertArrayNames(['pincode_id','pincode'],this.local_pincode1) @@ -567,7 +621,7 @@ export class DynamicQuestionTemplateComponent implements OnInit { // } } if(onChangeProperty.purpose == 'FORM_CTRL'){ - console.log(onChangeProperty) + // console.log(onChangeProperty) // if(options == 2){ // debugger; @@ -789,7 +843,7 @@ export class DynamicQuestionTemplateComponent implements OnInit { }) const question_temp:any = JSON.parse(JSON.stringify(val.question)); inserted_control_obj.questions[index].question = question_temp - console.log(control_names) + // console.log(control_names) childControl.push(this._fb.group(control_names)) val.group_questions[0].forEach((group_indi,arr_index)=>{ @@ -812,10 +866,10 @@ export class DynamicQuestionTemplateComponent implements OnInit { }) } addOrRemoveControl(val,ques_control,question_index_after,options,paren_ques) { - console.log(val); - console.log(ques_control); - console.log(question_index_after); - console.log(paren_ques); + // console.log(val); + // console.log(ques_control); + // console.log(question_index_after); + // console.log(paren_ques); if(options == 1){ let check_dup=ques_control.filter(control_key=>control_key.question_key == val.question_key) @@ -1037,20 +1091,20 @@ export class DynamicQuestionTemplateComponent implements OnInit { return updateMsg; } updateAllComplete(a,b){ - console.log(a) - console.log(b.checked) + // console.log(a) + // console.log(b.checked) if(b.checked){ - console.log( this.whole_json) + //console.log( this.whole_json) this.formGroupN.get(a).disable() this.parent_ques.disable =true this.vr = true }else{ - console.log( this.whole_json) + // console.log( this.whole_json) this.formGroupN.get(a).enable() this.parent_ques.disable = false this.vr = false - console.log(this.parent_ques.disable) + // console.log(this.parent_ques.disable) } diff --git a/ng6-seed/src/app/fly-hi/forms-dynamic/form/form.component.html b/ng6-seed/src/app/fly-hi/forms-dynamic/form/form.component.html index a572feb..68f197e 100644 --- a/ng6-seed/src/app/fly-hi/forms-dynamic/form/form.component.html +++ b/ng6-seed/src/app/fly-hi/forms-dynamic/form/form.component.html @@ -56,4 +56,4 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/ng6-seed/src/app/fly-hi/forms-dynamic/form/form.component.ts b/ng6-seed/src/app/fly-hi/forms-dynamic/form/form.component.ts index dc622df..edea2d0 100644 --- a/ng6-seed/src/app/fly-hi/forms-dynamic/form/form.component.ts +++ b/ng6-seed/src/app/fly-hi/forms-dynamic/form/form.component.ts @@ -54,7 +54,9 @@ export class FormComponent implements OnInit { private awsService:AwsService,private loaderService:LoaderService) { this.role_id = localStorage.getItem('LenderRoleID') console.log(jsonData) - this.questions_JSON = this.jsonData.Json['sections'][0]; + this.questions_JSON = this.jsonData.Json['sections'][0]; + console.log( this.questions_JSON) + this.quesService.formanswers = null // this.questions_JSON = this.jsonData.Json['sections'][0]; this.notifier = notifier; } @@ -226,8 +228,12 @@ export class FormComponent implements OnInit { // } } loadTemplate() { + + this.commonFormGroup = new FormGroup({}) + + this.questions_JSON = this.jsonData.Json['sections'][0]; console.log(this.questions_JSON) @@ -499,7 +505,7 @@ export class FormComponent implements OnInit { this._flyhi.saveForm(params).subscribe(result=>{ if(result['dataStatus']) { this.loaderService.closeMatSpinnerDialog() - // this.notifier.notify("success","Saved Successfully"); + this.notifier.notify("success","Saved Successfully"); setTimeout(()=>{ this.dialogRef.close('refresh') },1500) diff --git a/ng6-seed/src/app/fly-hi/services/flyhi.service.ts b/ng6-seed/src/app/fly-hi/services/flyhi.service.ts index 729f1f9..5ac0ef5 100644 --- a/ng6-seed/src/app/fly-hi/services/flyhi.service.ts +++ b/ng6-seed/src/app/fly-hi/services/flyhi.service.ts @@ -107,19 +107,19 @@ loadCreditPDTemplate2(form_id,mapid,Formname,template_id):Observable { } -loadTemplate(form_id,mapid,Formname) { - console.log( Formname) +loadTemplatelocal() { + // return this._http.get('assets/data/SMC_CREDIT_TEMPLATES/'+form_id+'.json').map(rr=>{ // return this._http.get('assets/data/SMC_CREDIT_TEMPLATES/LFMP/16.json').map(rr=>{ - if( Formname == 'Business Information'){ - return this._http.get('assets/data/SMC_CREDIT_TEMPLATES/LFMP/1.json').map(rr=>{ - // return this._http.get('assets/data/SMC_CREDIT_TEMPLATES/LFMP/'+form_id+'.json').map(rr=>{ - let returnValue ={dataStatus:true,status:200,records:{template:JSON.stringify(rr)}} - // this.raw_credit_pd_template= returnValue.records.template - return returnValue - }) + // if( Formname == 'Business Information'){ + // return this._http.get('assets/data/SMC_CREDIT_TEMPLATES/LFMP/1.json').map(rr=>{ + // // return this._http.get('assets/data/SMC_CREDIT_TEMPLATES/LFMP/'+form_id+'.json').map(rr=>{ + // let returnValue ={dataStatus:true,status:200,records:{template:JSON.stringify(rr)}} + // // this.raw_credit_pd_template= returnValue.records.template + // return returnValue + // }) - }else{ + // }else{ // return this._http.get(this.apiUrl + "formWiseJSONTemplateV2?form_id="+form_id+"&map_id="+mapid+"").map(result=>{ // console.log(result) // let apivalue ={dataStatus:true,status:200,records:{template:JSON.stringify(result)}} @@ -127,13 +127,13 @@ loadTemplate(form_id,mapid,Formname) { // return apivalue // }) //return this._http.get('assets/data/SMC_CREDIT_TEMPLATES/all/'+form_id+'.json').map(rr=>{ - return this._http.get('assets/data/SMC_CREDIT_TEMPLATES/DONE/6.json').map(rr=>{ + return this._http.get('assets/data/flyhi.json').map(rr=>{ let returnValue ={dataStatus:true,status:200,records:{template:JSON.stringify(rr)}} // this.raw_credit_pd_template= returnValue.records.template console.log("12345") return returnValue }) - } + // } } diff --git a/ng6-seed/src/app/layouts/admin/admin-layout.component.html b/ng6-seed/src/app/layouts/admin/admin-layout.component.html index a973418..cd74f65 100755 --- a/ng6-seed/src/app/layouts/admin/admin-layout.component.html +++ b/ng6-seed/src/app/layouts/admin/admin-layout.component.html @@ -105,7 +105,7 @@ - | {{userDep}} + | {{userDep}} @@ -121,12 +121,14 @@
+ \ No newline at end of file diff --git a/ng6-seed/src/app/sales-pd/components/ques-template/image-edit/image-edit.component.scss b/ng6-seed/src/app/sales-pd/components/ques-template/image-edit/image-edit.component.scss new file mode 100644 index 0000000..05bdd38 --- /dev/null +++ b/ng6-seed/src/app/sales-pd/components/ques-template/image-edit/image-edit.component.scss @@ -0,0 +1,207 @@ + +.crop-res img { + max-width: 100%; +} +.btn-group, .btn-group-vertical { + position: relative; + display: -ms-inline-flexbox; + display: inline-flex; + vertical-align: middle; +} +.docs-buttons > .btn, .docs-buttons > .btn-group, .docs-buttons > .form-control { + margin-bottom: .5rem; + margin-right: .25rem; +} + +/*** animation preloader ***/ +.container-preloader { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + display: flex; +} + +.dash { + margin: 0 15px; + width: 35px; + height: 15px; + border-radius: 8px; + background: #FF2CBD; + box-shadow: 0 0 10px 0 #FECDFF; +} + +.uno { + margin-right: -18px; + transform-origin: center left; + animation: spin 3s linear infinite; +} + +.dos { + transform-origin: center right; + animation: spin2 3s linear infinite; + animation-delay: .2s; +} + +.tres { + transform-origin: center right; + animation: spin3 3s linear infinite; + animation-delay: .3s; +} + +.cuatro { + transform-origin: center right; + animation: spin4 3s linear infinite; + animation-delay: .4s; +} + +@keyframes spin { + 0% { + transform: rotate(0deg); + } + 25% { + transform: rotate(360deg); + } + 30% { + transform: rotate(370deg); + } + 35% { + transform: rotate(360deg); + } + 100% { + transform: rotate(360deg); + } +} + +@keyframes spin2 { + 0% { + transform: rotate(0deg); + } + 20% { + transform: rotate(0deg); + } + 30% { + transform: rotate(-180deg); + } + 35% { + transform: rotate(-190deg); + } + 40% { + transform: rotate(-180deg); + } + 78% { + transform: rotate(-180deg); + } + 95% { + transform: rotate(-360deg); + } + 98% { + transform: rotate(-370deg); + } + 100% { + transform: rotate(-360deg); + } +} + +@keyframes spin3 { + 0% { + transform: rotate(0deg); + } + 27% { + transform: rotate(0deg); + } + 40% { + transform: rotate(180deg); + } + 45% { + transform: rotate(190deg); + } + 50% { + transform: rotate(180deg); + } + 62% { + transform: rotate(180deg); + } + 75% { + transform: rotate(360deg); + } + 80% { + transform: rotate(370deg); + } + 85% { + transform: rotate(360deg); + } + 100% { + transform: rotate(360deg); + } +} + +@keyframes spin4 { + 0% { + transform: rotate(0deg); + } + 38% { + transform: rotate(0deg); + } + 60% { + transform: rotate(-360deg); + } + 65% { + transform: rotate(-370deg); + } + 75% { + transform: rotate(-360deg); + } + 100% { + transform: rotate(-360deg); + } +} + +.thumb { + border-radius: 4px; + height: 100px; + object-fit: contain; + width: 100px; + border: solid 1px #cccccc; + padding: 2px; + margin: 3px; + cursor: pointer; +} + +.toolbar { + color: #fff !important; + // background-color: #e00201 !important; +} + +.toolbar-icon { + padding: 0 14px; + color: #fff !important; +} + +.empty-spacer { + flex: 1 1 auto; +} + +.empty-little-spacer { + flex: 0.01 0 auto; +} + +.card-container { + text-align: center; +} +.img-container { + width: 640px; + height: 480px; + float: left; +} + +.img-preview { + width: 200px; + height: 200px; + float: left; + margin-left: 10px; +} +.cropper-container cropper-bg{ + width: 779px !important; + height: 393px !important; +} \ No newline at end of file diff --git a/ng6-seed/src/app/sales-pd/components/ques-template/image-edit/image-edit.component.spec.ts b/ng6-seed/src/app/sales-pd/components/ques-template/image-edit/image-edit.component.spec.ts new file mode 100644 index 0000000..b844315 --- /dev/null +++ b/ng6-seed/src/app/sales-pd/components/ques-template/image-edit/image-edit.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ImageEditComponent } from './image-edit.component'; + +describe('ImageEditComponent', () => { + let component: ImageEditComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ ImageEditComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(ImageEditComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/sales-pd/components/ques-template/image-edit/image-edit.component.ts b/ng6-seed/src/app/sales-pd/components/ques-template/image-edit/image-edit.component.ts new file mode 100644 index 0000000..f88acf0 --- /dev/null +++ b/ng6-seed/src/app/sales-pd/components/ques-template/image-edit/image-edit.component.ts @@ -0,0 +1,202 @@ +// import { Component, Inject, OnInit } from '@angular/core'; +import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material'; +import { DomSanitizer } from '@angular/platform-browser'; +import { NotifierService } from 'angular-notifier'; +import { PdTrigerService } from 'app/personal-discussion/pd-service/pd-triger.service'; +import {AfterViewInit, Component, ElementRef, ViewChild,OnInit, Inject} from '@angular/core'; +import {CropperComponent} from 'angular-cropperjs'; +import mergeImages from 'merge-images'; +import { SalesPdService } from '../../../services/sales-pd.service'; +declare var $: any; +@Component({ + selector: 'app-image-edit', + templateUrl: './image-edit.component.html', + styleUrls: ['./image-edit.component.scss'] +}) +export class ImageEditComponent implements AfterViewInit { + + imageUrl: any; + imageUrls = []; + cropperRes: string; + showCropper: boolean =false + savedImg: boolean =false; + resizedBase64: any; + cropperConfig: object = { + movable: true, + scalable: true, + zoomable: true, + viewMode: 2, + checkCrossOrigin: true + }; + text = ''; + downloadLink = ''; + cropperResults = []; + mergedRes: any; + + @ViewChild('angularCropper') public angularCropper: CropperComponent; + @ViewChild("canvasEl") canvasEl: ElementRef; + private context: CanvasRenderingContext2D; + role_id: string; + + constructor(private SalesPdService:SalesPdService,@Inject(MAT_DIALOG_DATA) public data,private dialogRef: MatDialogRef ) { + console.log(this.data) + this.role_id = localStorage.getItem('LenderRoleID') + this.imageUrls.push(this.data.img); + // this.onFileSelected(this.data) + console.log(this.imageUrls) +// setTimeout(() => { +// this.showCropper = true; +// this.refreshCrop(this.imageUrls[1]); +// }, 3000); + + } + + ngAfterViewInit() { + this.context = (this.canvasEl + .nativeElement as HTMLCanvasElement).getContext("2d"); + this.draw(''); + + } + + private draw(src: string) { + this.context.clearRect(0, 0, (this.canvasEl.nativeElement as HTMLCanvasElement).width, (this.canvasEl.nativeElement as HTMLCanvasElement).height); + const img = new Image(); + img.src = src; + img.onload = () => { + const newW = img.width > 700 && img.height > 700 ? img.width / 3 : img.width; + const newH = img.height > 700 && img.width > 700 ? img.height / 3 : img.height; + (this.canvasEl.nativeElement as HTMLCanvasElement).width = newW; + (this.canvasEl.nativeElement as HTMLCanvasElement).height = newH; + this.context.font = "30px Arial"; + this.context.textBaseline = "middle"; + this.context.textAlign = "center"; + this.context.drawImage(img, 0, 0, newW, newH); + this.context.fillText(this.text, newW / 2, newH / 2); + this.downloadLink = this.canvasEl.nativeElement.toDataURL("image/jpg"); + this.cropperResults.push(this.downloadLink); + console.log( this.downloadLink ) + } + } + + onFileSelected(event) { + console.log(event) + const that = this; + if (event.target.files && event.target.files[0]) { + for (let i = 0; i < event.target.files.length; i++) { + const reader = new FileReader(); + that.showCropper = false; + reader.onload = (eventCurr: ProgressEvent) => { + that.imageUrls.push((eventCurr.target).result); + console.log(that.imageUrls) + }; + reader.readAsDataURL(event.target.files[i]); + } + } + } + + selectImg(i: number) { + this.refreshCrop(this.imageUrls[i]); + } + + refreshCrop(img) { + this.imageUrl = img; + this.showCropper = true; + console.log(this.imageUrls) + } + + cropendImage(event) { + this.cropperRes = this.angularCropper.cropper.getCroppedCanvas().toDataURL('image/jpeg'); + } + + readyImage(event) { + this.cropperRes = this.angularCropper.cropper.getCroppedCanvas().toDataURL('image/jpeg'); + } + + rotate(turn) { + turn = turn === 'left' ? -45 : 45; + this.angularCropper.cropper.rotate(turn); + this.cropperRes = this.angularCropper.cropper.getCroppedCanvas().toDataURL('image/jpeg'); + } + + destroy(event) { + this.angularCropper.cropper.destroy(); + } + + zoomManual() { + this.cropperRes = this.angularCropper.cropper.getCroppedCanvas().toDataURL('image/jpeg'); + } + + zoom(status) { + status = status === 'positive' ? 0.1 : -0.1; + this.angularCropper.cropper.zoom(status); + this.cropperRes = this.angularCropper.cropper.getCroppedCanvas().toDataURL('image/jpeg'); + } + + move(offsetX, offsetY) { + this.angularCropper.cropper.move(offsetX, offsetY); + this.cropperRes = this.angularCropper.cropper.getCroppedCanvas().toDataURL('image/jpeg'); + } + + scale(offset) { + if (offset === 'x') { + this.angularCropper.cropper.scaleX(-1); + } else { + this.angularCropper.cropper.scaleY(-1); + } + this.cropperRes = this.angularCropper.cropper.getCroppedCanvas().toDataURL('image/jpeg'); + } + + clear() { + this.angularCropper.cropper.clear(); + this.cropperRes = this.angularCropper.cropper.getCroppedCanvas().toDataURL('image/jpeg'); + } + + disable() { + this.angularCropper.cropper.disable(); + this.cropperRes = this.angularCropper.cropper.getCroppedCanvas().toDataURL('image/jpeg'); + } + + enable() { + this.angularCropper.cropper.enable(); + this.cropperRes = this.angularCropper.cropper.getCroppedCanvas().toDataURL('image/jpeg'); + } + + reset() { + this.angularCropper.cropper.reset(); + this.cropperRes = this.angularCropper.cropper.getCroppedCanvas().toDataURL('image/jpeg'); + } + + saveImg() { + this.savedImg = true; + this.draw(this.cropperRes); + console.log(this.cropperRes) + this.save() + } + preImg() { + this.savedImg = true; + this.draw(this.cropperRes); + console.log(this.cropperRes) + + } + + mergeAll() { + mergeImages(this.cropperResults) + .then(b64 => this.mergedRes = b64); + } + + save(){ + let params={"fk_sales_pd_id":this.data.sales_pd_id,"img":this.cropperRes,"img_name":this.data.question_key,"location": this.data.location,'img_id':this.data.img_id } + + let form_structure = this.data.json + console.log(params,form_structure) + this.SalesPdService.saveSalesPDImage(params,form_structure).subscribe(apiresult=>{ + console.log(apiresult) + if(apiresult['status'] == 200){ + console.log(apiresult) + this.dialogRef.close(1); + } + + }) + } + +} diff --git a/ng6-seed/src/app/sales-pd/components/ques-template/ques-template.html b/ng6-seed/src/app/sales-pd/components/ques-template/ques-template.html index 5d7c29a..4087017 100755 --- a/ng6-seed/src/app/sales-pd/components/ques-template/ques-template.html +++ b/ng6-seed/src/app/sales-pd/components/ques-template/ques-template.html @@ -74,16 +74,60 @@
-
-

Image is not captured.

- +
+ +
+
+ + +
+ + + + + + + +
+

+
+

+ + Image is not Captured. +
+ + camera + +

+
+ +
-
- - +
+ +
@@ -335,7 +379,7 @@
-
{{parent_ques.get('group_title').value}}
+
{{parent_ques.get('group_title').value}}
@@ -350,13 +394,45 @@ -

Image is not captured.

+
+

+ + Image is not Captured. +
+ + Add More images. +
+ + camera + +

+
+
-
+
-
+
+ +
+
+ + + +
+ +
+
+
@@ -386,12 +462,12 @@
--> -
+
- +
diff --git a/ng6-seed/src/app/sales-pd/components/ques-template/ques-template.scss b/ng6-seed/src/app/sales-pd/components/ques-template/ques-template.scss index 07ea1f7..9e081b0 100755 --- a/ng6-seed/src/app/sales-pd/components/ques-template/ques-template.scss +++ b/ng6-seed/src/app/sales-pd/components/ques-template/ques-template.scss @@ -71,4 +71,53 @@ ::ng-deep .mat-option-text.mat-option-text { white-space: normal; - } \ No newline at end of file + } + + .top .thumbnail{ + //height: 400px; + position: relative; + + } + + .top .thumbnail .date { + // margin-right: 13px; + position: absolute; + right: -10px; + top: 4px; + + + } + .top .thumbnail .date1 { + // margin-right: 13px; + position: absolute; + right: -10px; + top: 50px; + + } + + .thumbnail{ + max-width: 200px; + width: auto; + // height: 200px; + margin-top: 25px; + padding: 1.4%; + } + + .dummy-img { + width: 125px; + height: 120px; + } + + .dummy-img { + width: 200px; + height: 170px; + border: 3px dashed rgba(0, 0, 0, 0.2); + border-radius: 7px; + background: #eeee; + color: gray; + } + + .image-class { + width: 200px; + height: 170px; + } \ No newline at end of file diff --git a/ng6-seed/src/app/sales-pd/components/ques-template/ques-template.ts b/ng6-seed/src/app/sales-pd/components/ques-template/ques-template.ts index 1d28b89..73ea42e 100755 --- a/ng6-seed/src/app/sales-pd/components/ques-template/ques-template.ts +++ b/ng6-seed/src/app/sales-pd/components/ques-template/ques-template.ts @@ -1,4 +1,4 @@ -import { Component, Input, EventEmitter, Output,ViewChild, ElementRef } from '@angular/core'; +import { Component, Input, EventEmitter, Output,ViewChild, ElementRef, OnDestroy, HostListener } from '@angular/core'; import { FormGroup, FormArray, FormBuilder, FormControl,FormControlName } from '@angular/forms'; //import { QuesServiceProvider } from '../../providers/ques-service/ques-service'; //import { SalesPdService } from '../../providers/sales-pd/sales-pd'; @@ -26,6 +26,7 @@ import { SectionListComponent } from 'app/sales-pd/section-list/section-list.com import { CameraService } from 'app/sales-pd/providers/camera/camera.service'; import { ApiServiceService } from 'app/lender-credit-pd/services/apiService/api-service.service'; +import { ImageEditComponent } from './image-edit/image-edit.component'; // const originFormControlNameNgOnChanges = FormControlName.prototype.ngOnChanges; // FormControlName.prototype.ngOnChanges = function () { // const result = originFormControlNameNgOnChanges.apply(this, arguments); @@ -41,11 +42,13 @@ import { ApiServiceService } from 'app/lender-credit-pd/services/apiService/api- */ @Component({ selector: 'ques-template', - templateUrl: 'ques-template.html' + templateUrl: 'ques-template.html', + styleUrls: ['ques-template.scss'] }) -export class QuesTemplateComponent { +export class QuesTemplateComponent implements OnDestroy { photoStructure = photoJSONStructure text: string; + @Output() login = new EventEmitter(); private notifier: NotifierService; // notifier: NotifierService; @Input() questions_JSON:any; @@ -84,7 +87,18 @@ export class QuesTemplateComponent { pdstatus: string; local_city1: any; local_pincode1: any; + role_id: any; + disable_capture:any=false; + + +// @HostListener('window:unload', ['$event']) +// unloadHandler(event) { +// console.log('window:unload'); +// this.Destroy() + + constructor( private cameraService: CameraService,public dialogRef: MatDialogRef,private route: ActivatedRoute,private router: Router,private dialog:MatDialog,private _fb:FormBuilder,private questionService:QuestionServiceService,private SalesPdService:SalesPdService,notifier: NotifierService,private loaderService:LoaderService) { + this.role_id = localStorage.getItem('LenderRoleID') console.log('Hello QuesTemplateComponent Component'); this.text = 'Hello World'; this.notifier = notifier; @@ -95,6 +109,10 @@ export class QuesTemplateComponent { console.log(this.roleID) } + @HostListener("window:beforeunload", ["$event"]) unloadHandler(event: Event) { + console.log("Processing beforeunload...", ); + this.Destroy(); + } ngOnChanges(){ //alert('abi'); @@ -180,7 +198,11 @@ this.pdstatus = status.status console.log(this.pdstatus) // alert('pass'); console.log(sales_pd_id) - // this.loaderService.showMatSpinnerDialog('Fetching Data...') + if(sales_pd_id == null){ + sales_pd_id = status.sales_pd_id + } + this.loaderService.showMatSpinnerDialog('Fetching Data...') + // this.checkGroupandPatchValues() // this.loadingProvider.pdloader("Fetching Data...") let params={sales_pd_id:sales_pd_id,section_id:this.local_ques_JSON.section_id} @@ -190,27 +212,34 @@ console.log(this.pdstatus) console.log(response); if(response['dataStatus']){ // alert('3rd'); + console.log('response1'); + this.disable_capture = false + localStorage.setItem('disable_capture','false') this.raw_data_Section=response['records'][0] this.original_result_data=response['records'][0].section_data this.original_result_data=JSON.parse(this.original_result_data); console.log(this.original_result_data) - console.log(response['records'][0].section_data) + console.log(JSON.parse(response['records'][0].section_data)) // this.original_result_data.questions=this.original_result_data.questions.filter(val=>val.question_key == 'selfie_with_person_met') this.checkGroupandPatchValues() this.loaderService.closeMatSpinnerDialog() } - else{ + else{ + this.disable_capture = false + // alert('4th'); this.sendAutomaticallyToApi() // FOR DISPLAYING THE CUSTOMER CAPTURED IMAGE (STRUCTURED DYNAMICALLY CREATED IN FRONTEND) (***TELE PD ONLY***) - + console.log(sales_pd_id , this.sales_pd_type , this.sales_pd_type == '2', this.local_ques_JSON.section_id ,this. sales_pd_id.includes('local')) if(sales_pd_id && this.sales_pd_type && this.sales_pd_type == '2' && this.local_ques_JSON.section_id == '9' && !this. sales_pd_id.includes('local')) { let sales_rand_string = localStorage.getItem('sales_rand_string') + console.log('response2'); // this.SalesPdService.getData_fromLocal('sales_rand_string').then((sales_rand_string)=>{ let params = {"rand_string":sales_rand_string} this.SalesPdService.getSalesPDImgDataCusLink(params).subscribe(result=>{ if(result['dataStatus']){ + this.disable_capture = true this.updateCustomerImages(result['records']) this.checkGroupandPatchValues() } @@ -221,7 +250,28 @@ console.log(this.pdstatus) // }) } else{ + console.log('response3'); // alert('5th'); + const role = JSON.parse(localStorage.getItem("user_role")); + + if (role == "20" && this.local_ques_JSON.section_id == '9' ) { + let sales_rand_string = localStorage.getItem('sales_rand_string') + // this.SalesPdService.getData_fromLocal('sales_rand_string').then((sales_rand_string)=>{ + let params = {"rand_string":sales_rand_string} + this.SalesPdService.getSalesPDImgDataCusLink(params).subscribe(result=>{ + if(result['dataStatus']){ + //this.disable_capture = true + // localStorage.setItem('disable_capture','true') + console.log(result['records']); + this.original_result_data = [] + this.updateCustomerImages(result['records']) + this.checkGroupandPatchValues() + } + this.loaderService.closeMatSpinnerDialog() + },err=>{ + this.loaderService.closeMatSpinnerDialog() + }) + } this.loaderService.closeMatSpinnerDialog() } } @@ -292,7 +342,11 @@ console.log(this.pdstatus) current_control_obj = createPhotoStructure[findRootIndex] console.log(createPhotoStructure[findRootIndex],createPhotoStructure[findRootIndex].is_repeatable) if(img_obj.is_multiple != '1'){ + // location = element.image_location + // imgid = element.image_id current_control_obj.answer_value = img_obj.img_url + current_control_obj.image_location = img_obj.location + current_control_obj.image_id = img_obj.img_id } else { if(img_obj.hasOwnProperty('img_data') && img_obj.img_data.length > 0) { @@ -321,6 +375,8 @@ console.log(this.pdstatus) temp_obj.question = img_obj.img_name temp_obj.question_key = img_obj.img_key temp_obj.answer_value = multi_obj.img_url + temp_obj.image_location = multi_obj.location + temp_obj.image_id = multi_obj.img_id // console.log(temp_obj); // debugger; // current_control_obj.questions_group.unshift({questions:[temp_obj]}) @@ -340,7 +396,7 @@ console.log(this.pdstatus) } } - proceedonChangeProperty(local_value_obj?){ + proceedonChangeProperty(local_value_obj?){ console.log("On Change Property",this.quesAnsForm.value.questions); this.quesAnsForm.controls.questions['controls'].forEach((val,p_i)=>{ @@ -408,6 +464,7 @@ console.log(this.pdstatus) // JSON QUESTION CHANGE FOR GROUP // setTimeout(()=>{ + // console.log(JSON.parse(this.original_result_data.section_data)) let form_c=single_ques let form_control=this.quesAnsForm.value.questions[p_i].questions_group[g_i].questions[s_i] let local__g_data=this.original_result_data.questions[p_i].questions_group[g_i].questions @@ -417,6 +474,7 @@ console.log(this.pdstatus) } } + // }) //---- END OF JSON QUESTION CHANGE---- }) @@ -428,7 +486,8 @@ console.log(this.pdstatus) checkGroupandPatchValues(){ console.log('371') let modified=this.original_result_data - console.log(modified) + console.log( this.questions_JSON ,modified) + // this.questions_JSON = modified.questions modified.questions.forEach((parent_ques,p_i)=>{ // FOR ADDING THE GROUP QUES TO DISPLAY WITHOUT CONSIDERING INDEX 0 if(parent_ques.is_repeatable == '1'){ @@ -452,12 +511,16 @@ console.log(this.pdstatus) } } }) + setTimeout(() => { + + this.proceedonChangeProperty(modified) this.quesAnsForm.get('questions').patchValue(this.original_result_data.questions); console.log( this.quesAnsForm) + }, 500); } setStep(index: number) { this.step = index; @@ -506,6 +569,9 @@ this.proceedonChangeProperty(modified) this.tmp_control = this.questionService this.current_index = index; + console.log( this.current_index) + + console.log( this.current_index) } addImage(event, index, parent_index, data,single_ques1) { this.loaderService.showMatSpinnerDialog('Fetching Data...') @@ -530,7 +596,13 @@ this.proceedonChangeProperty(modified) console.log(single_ques) console.log(event, index); this.imageData = this.quesAnsForm.value.questions - + this.imageData.forEach(element => { + if(element.question_key == this.tmp[0].value.question_key){ + index= this.imageData.indexOf(element) + } + + }); + console.log('index', index,this.current_index); console.log(this.quesAnsForm.value.questions) // console.log(this.questions_JSON.questions) console.log(this.imageData); @@ -549,40 +621,48 @@ this.proceedonChangeProperty(modified) console.log(geoCords); console.log(this.imageData); console.log(this.current_index); - this.cameraService.addWatermarks(reader.result, geoCoordinates).then(watermarked_img => { - if (this.current_index != 'last') { - if (this.imageData[this.current_index].is_multiple == 1) { - console.log('multi'); - let img_param = {img_url: watermarked_img, is_base64: true, link: geoCoordinates}; - this.imageData[this.current_index].img_data.push(img_param); - console.log(this.imageData) - // this.sendImage(this.imageData, this.imageData[this.current_index].img_data.length - 1); - } else { - this.imageData[this.current_index].img_url = watermarked_img; - this.imageData[this.current_index].is_base64 = true; - this.imageData[this.current_index].link = geoCoordinates; - console.log(this.imageData) - // this.sendImage(this.imageData); - } - } else { - this.getImageName().then(result => { - console.log(result); - this.imageData.push( { - img_key: 'common_image', - img_name:this.tmp[0].value.group_title, - img_url: watermarked_img, - fk_form_id: '', - is_base64: true, - link: geoCoordinates + this.imageData = this.quesAnsForm.value.questions + let tmp_index; + this.imageData.forEach(element => { + if(element.question_key == this.tmp[0].value.question_key){ + tmp_index= this.imageData.indexOf(element) + } + }); - // let el = document.getElementById('dummy-img-more'); - // el.scrollIntoView(); - setTimeout(() => { - this.dummyImgMoreRef.nativeElement.scrollIntoView({behavior: 'smooth', block: 'end'}); - }, 1000); - // this.sendImage(this.imageData); - }); - } + this.cameraService.addWatermarks(reader.result, geoCoordinates).then(watermarked_img => { + // if (this.current_index != 'last') { + // if (this.imageData[this.current_index].is_multiple == 1) { + // console.log('multi'); + // let img_param = {img_url: watermarked_img, is_base64: true, link: geoCoordinates}; + // this.imageData[this.current_index].img_data.push(img_param); + // console.log(this.imageData) + // // this.sendImage(this.imageData, this.imageData[this.current_index].img_data.length - 1); + // } else { + // this.imageData[this.current_index].img_url = watermarked_img; + // this.imageData[this.current_index].is_base64 = true; + // this.imageData[this.current_index].link = geoCoordinates; + // console.log(this.imageData) + // // this.sendImage(this.imageData); + // } + // } else { + // this.getImageName().then(result => { + // console.log(result); + // this.imageData.push( { + // img_key: 'common_image', + // img_name:this.tmp[0].value.group_title, + // img_url: watermarked_img, + // fk_form_id: '', + // is_base64: true, + // link: geoCoordinates + // }); + // // let el = document.getElementById('dummy-img-more'); + // // el.scrollIntoView(); + // setTimeout(() => { + // this.dummyImgMoreRef.nativeElement.scrollIntoView({behavior: 'smooth', block: 'end'}); + // }, 1000); + // // this.sendImage(this.imageData); + // }); + // } console.log(watermarked_img); console.log(single_ques.controls) console.log(single_ques.value.question) @@ -651,7 +731,8 @@ this.proceedonChangeProperty(modified) parent_index control.push(this._fb.group({ 'questions': this._fb.array([]) })) - let sub_childControl: any = control.controls[this.current_index + 1].get('questions') as FormArray + console.log(control) + let sub_childControl: any = control.controls[this.current_index+1].get('questions') as FormArray console.log(sub_childControl) console.log(data) @@ -699,7 +780,7 @@ this.proceedonChangeProperty(modified) } else { geoCoordinates = null; } - console.log(geoCords); + console.log(geoCords,reader.result); console.log(this.imageData); console.log(this.current_index); this.current_index = parent_index; @@ -746,7 +827,7 @@ this.proceedonChangeProperty(modified) this.geoCoordinates = localStorage.getItem('current_coordinates') console.log(this.geoCoordinates) //SENDING SINGLE IMAGE TO API WITH PRIMARY KEY - let params={"fk_sales_pd_id":"","img":watermarked_img,"img_name":parent_control.value.question_key,"location": geoCoordinates} + let params={"fk_sales_pd_id":"","img":watermarked_img,"img_name":parent_control.value.question_key,"location": geoCoordinates ,"img_id":null} let storage_param=this.questions_JSON const form_structure=this.questions_JSON form_structure.questions=this.quesAnsForm.getRawValue().questions @@ -765,7 +846,7 @@ this.proceedonChangeProperty(modified) this.emittedFormGroup = this.quesAnsForm.getRawValue() this.imageUploadCheck.emit(this.emittedFormGroup); - + console.log(params,form_structure) this.SalesPdService.saveSalesPDImage(params,form_structure).subscribe(apiresult=>{ console.log(apiresult) @@ -1603,6 +1684,7 @@ this.proceedonChangeProperty(modified) // return invalid; } onSubmit(flag){ + console.log(this.quesAnsForm.getRawValue()) // this.loaderService.showMatSpinnerDialog('Please wait...') //1-Submit 0-Draft @@ -1744,7 +1826,14 @@ this.proceedonChangeProperty(modified) // alert('lastsave'); console.log('lastsave'); console.log(params); + if(params.section_id == 9 || this.local_ques_JSON.section_id == 9){ + params.questions = this.key_set(params.questions) + } + console.log(params); console.log('1158',this.local_ques_JSON.section_id) + setTimeout(() => { + + this.SalesPdService.saveSalesPDSection(params).subscribe(response=>{ if(this.local_ques_JSON.section_id != 9){ if(response.dataStatus){ @@ -1765,6 +1854,7 @@ this.proceedonChangeProperty(modified) } } },err=>this.loaderService.closeMatSpinnerDialog()) + }, 1000); // this.loaderService.closeMatSpinnerDialog() } sendDatatoApi(section_data?){ @@ -1778,8 +1868,8 @@ this.proceedonChangeProperty(modified) // alert('b'); const dialogRef = this.dialog.open(AlertDialogComponent, { width: '500px', - data: {buttons:[{name:"Complete",visible:true,id:'Complete'},{name:'Cancel',visible:'true',id:'cancel'}],title:'Complete PD', - msg:'You are completing this PD, once completed you will not be able to make changes'} + data: {buttons:[{name:"Complete",visible:true,id:'Complete'},{name:'Cancel',visible:'true',id:'cancel'}],title:'Complete Verification', + msg:'You are completing this Verification, once completed you will not be able to make changes'} }); dialogRef.afterClosed().subscribe(data => { @@ -1989,6 +2079,45 @@ this.proceedonChangeProperty(modified) this.sendSectiontoApi(sectionApi_param) } } + Destroy(){ + // console.clear() + console.log("dirty check",this.quesAnsForm.dirty) + if(this.local_ques_JSON.section_id == 9 && this.emittedFormGroup != null){ + // FOR SENDING THE IMAGE SECTION (SECTION ID 9) JSON Structure + let form_structure=this.quesAnsForm.getRawValue().questions + form_structure.forEach((parent_ques,p_index, p_object)=>{ + if(parent_ques.hasOwnProperty('is_repeatable') && parent_ques.is_repeatable != '1'){ + if(parent_ques.answer_value != '' && parent_ques.answer_value != null){ + //parent_ques.answer_value = 'SAVED' + if(parent_ques.is_loader == false && parent_ques.is_saved == false){ + p_object.splice(p_index,1) + } + } + } + else{ + parent_ques.questions_group.forEach((group_ques,g_index,g_object)=>{ + group_ques.questions.forEach((single_ques,s_index, s_object)=>{ + if(single_ques.answer_value != '' && single_ques.answer_value != null){ + // single_ques.answer_value = 'SAVED' + if(single_ques.is_loader == false && single_ques.is_saved == false){ + // single_ques.is_saved = '' + // single_ques.is_loader = '' + // single_ques.is_image_status=false + g_object.splice(g_index,1) + // delete parent_ques.questions_group[g_index] + } + } + }) + }) + } + }) + + let sectionApi_param=this.questions_JSON + sectionApi_param.questions=form_structure + sectionApi_param.is_complete=1 + this.sendSectiontoApi(sectionApi_param) + } + } imageReupload(single_ques){ let storage_param=this.questions_JSON @@ -2061,4 +2190,89 @@ this.proceedonChangeProperty(modified) } }); } + imageCrop(pic,question,index) { + let modified=this.original_result_data + console.log(modified,index) + console.log(pic,question) + let key = question.get('question_key').value + let location ; + let imgid ; + console.log(key,location) + modified.questions.forEach(element => { + if(element.question_key == key){ + + if(element.is_repeatable == null){ + location = element.image_location + imgid = element.image_id + }else{ + console.log( element.questions_group) + location = element.questions_group[index].questions[0].image_location + imgid = element.questions_group[index].questions[0].image_id + // element.questions_group.forEach(e => { + //location = e.questions[index].image_location + // }); + } + + } + }); + console.log(key,location) + // let arr = { 'pic_name':pic_name,'pic':pic,'from_id':this.form_id} + //pic.pdid = this.pdid; + const imageRef = this.dialog.open(ImageEditComponent, { + // const imageRef = this.dialog.open(CropToolsComponent, { + data: {'json':this.questions_JSON,img:pic,'sales_pd_id':this.sales_pd_id,'question_key':key,'location':location,'img_id':imgid}, + maxWidth: '100vw', + maxHeight: '100vh', + height: '200%', + width: '100%', + }); + imageRef.afterClosed() + .subscribe(dataresult => { + if (dataresult == 1) { + this.notifier.notify("success","Image Saved Successfully"); + this.emitter.emit('1'); + this.SalesPdService.nav_close.next(1); + + //this.getSalesPDSectionFromApi(modified.sales_pd_id) + // this.router.navigate(['../../fly-hi/sectionlist'], {relativeTo: this.route}); + } + }); + } + + key_set(param){ + let data =param + if(data instanceof Array){ + + + data.forEach(element => { + + if(element.hasOwnProperty('answer_value') ){ + console.log(element) + if(element.answer_value != ''){ + element.answer_value = 'saved' + } + + }else{ + if( element.questions_group instanceof Array){ + element.questions_group.forEach(e => { + e.questions.forEach(c => { + if(c.hasOwnProperty('answer_value') ){ + console.log(c) + if(c.answer_value != ''){ + c.answer_value = 'saved' + } + } + + }); + + }); + } + + + } + + }); + return data + } +} } diff --git a/ng6-seed/src/app/sales-pd/components/ques-template/single-capture-btn/single-capture-btn.component.ts b/ng6-seed/src/app/sales-pd/components/ques-template/single-capture-btn/single-capture-btn.component.ts index 885a043..20ccad7 100644 --- a/ng6-seed/src/app/sales-pd/components/ques-template/single-capture-btn/single-capture-btn.component.ts +++ b/ng6-seed/src/app/sales-pd/components/ques-template/single-capture-btn/single-capture-btn.component.ts @@ -1,6 +1,8 @@ import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core'; import { Ng2ImgMaxService } from 'ng2-img-max'; import { LoaderService } from 'app/shared/loaderService/loader.service'; +import { MatDialog } from '@angular/material'; +import { ImageEditComponent } from '../image-edit/image-edit.component'; @Component({ selector: 'app-single-capture-btn', @@ -15,31 +17,63 @@ export class SingleCaptureBtnComponent implements OnInit { @Output() singleDataEmitter = new EventEmitter sales_pd_type: string; role_id: string; + disable_capture:any; - constructor(private ng2ImgMax:Ng2ImgMaxService,private loaderService:LoaderService) { + constructor(private ng2ImgMax:Ng2ImgMaxService,private loaderService:LoaderService,private dialog: MatDialog) { this.role_id = localStorage.getItem('user_role') this.sales_pd_type = localStorage.getItem('sales_pd_type') - console.log(this.sales_pd_type) + this.disable_capture = localStorage.getItem('disable_capture') + console.log(this.disable_capture,this.sales_pd_type) } ngOnInit(): void { console.log(this.addMoreBtn) + this.disable_capture = localStorage.getItem('disable_capture') + console.log(this.disable_capture,this.sales_pd_type) } singlecapturedImage(event){ this.loaderService.showMatSpinnerDialog('Fetching Data...') console.log(event); let imageData= event.target.files[0] + // const dialogRef = this.dialog.open(ImageEditComponent, { + // data: { 'data': event}, + // // position: { right: '0'}, + // disableClose: true, + // // height: '80%', + + // minWidth: '80%', + // maxWidth: '80%', + + + // }); + // dialogRef.afterClosed() + // .subscribe(dataresult => { + // console.log(dataresult) + + // // if(dataresult == 1){ + // // this.getApiData() + // // } + + if(imageData == undefined){ + this.loaderService.closeMatSpinnerDialog() + }else{ + + + + // }); this.ng2ImgMax.resizeImage(imageData, 450, 650).subscribe( result => { - - this.singleDataEmitter.emit(result) + console.log(result); + this.singleDataEmitter.emit(result) this.loaderService.closeMatSpinnerDialog() }, error => { console.log('😢 Oh no!', error); + this.loaderService.closeMatSpinnerDialog() } ); + } } singlecapture(event){ @@ -47,6 +81,9 @@ export class SingleCaptureBtnComponent implements OnInit { let element:HTMLElement = document.getElementById('input-files') as HTMLElement element.click(); } + ngOnChanges(){ + this.disable_capture = localStorage.getItem('disable_capture') + } } diff --git a/ng6-seed/src/app/sales-pd/home/home.html b/ng6-seed/src/app/sales-pd/home/home.html index cce38af..b53f3db 100755 --- a/ng6-seed/src/app/sales-pd/home/home.html +++ b/ng6-seed/src/app/sales-pd/home/home.html @@ -11,7 +11,7 @@
- +
diff --git a/ng6-seed/src/app/sales-pd/home/home.ts b/ng6-seed/src/app/sales-pd/home/home.ts index 7b199d7..e87bdba 100755 --- a/ng6-seed/src/app/sales-pd/home/home.ts +++ b/ng6-seed/src/app/sales-pd/home/home.ts @@ -46,6 +46,14 @@ export class HomePage{ // @Inject(MAT_DIALOG_DATA)public pd_all_details: any ){ constructor(public dialogRef: MatDialogRef,private dialog:MatDialog,notifier: NotifierService,private route: ActivatedRoute, private router: Router,private salesPDService:SalesPdService){ this.getProducts() + this.salesPDService.nav_close_observable$.subscribe((res) => { + console.log('nav list 3', res); + if(res == 1){ + this.loadPdViewCompoent() + } + + + }); } getProducts(){ let users:any=localStorage.getItem('user_details') @@ -188,9 +196,10 @@ export class Section1 { } }) + } - + ngOnInit() { console.log('ionViewDidLoad HomePage'); // this.cameraProvider.enableAccuracy() @@ -702,7 +711,7 @@ export class Section9 { role_id: any; //network_status: ConnectionStatus - constructor(public dialogRef: MatDialogRef,notifier: NotifierService,private route: ActivatedRoute,private router: Router,private dialog: MatDialog,private MatDialogModule:MatDialogModule,@Inject(MAT_DIALOG_DATA) public data: any) { + constructor(public dialogRef: MatDialogRef,notifier: NotifierService,private route: ActivatedRoute,private router: Router,private dialog: MatDialog,private MatDialogModule:MatDialogModule,@Inject(MAT_DIALOG_DATA) public data: any,private salesPDService:SalesPdService) { this.role_id = localStorage.getItem('user_role') // alert('section9') console.log('data',data) @@ -710,6 +719,16 @@ export class Section9 { // this.route.snapshot.params['section9']; this.section_local= data.section_id + this.salesPDService.nav_close_observable$.subscribe((res) => { + console.log('nav list 3', res); + if(res == 1){ + this.salesPDService.nav_close.next(0); + this.loadPdViewCompoent() + + } + + + }); // if(this.navParams.get('section_id')){ // this.section_local=this.navParams.get('section_id') // } @@ -772,6 +791,7 @@ export class Section9 { console.log("Leaving on ionViewCanLeave"); } setGroupControl(event){ + console.log(event) this.formGroupValue=event } checkImageUploadingStatus(sec_value) { diff --git a/ng6-seed/src/app/sales-pd/sales-pd-list/re-generate-report/re-generate-report.component.ts b/ng6-seed/src/app/sales-pd/sales-pd-list/re-generate-report/re-generate-report.component.ts index 868fd08..204fc13 100644 --- a/ng6-seed/src/app/sales-pd/sales-pd-list/re-generate-report/re-generate-report.component.ts +++ b/ng6-seed/src/app/sales-pd/sales-pd-list/re-generate-report/re-generate-report.component.ts @@ -17,7 +17,9 @@ export class ReGenerateReportComponent implements OnInit { title:any; question:any; geolocation:FormControl = new FormControl('',Validators.compose([Validators.required])) - constructor(private loaderService:LoaderService,notifier: NotifierService,private SalesPDService:SalesPdService,private dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data: any) { this.notifier = notifier; } + roleID: string; + constructor(private loaderService:LoaderService,notifier: NotifierService,private SalesPDService:SalesPdService,private dialogRef: MatDialogRef,@Inject(MAT_DIALOG_DATA) public data: any) { this.notifier = notifier; + this.roleID = localStorage.getItem('user_role'); } ngOnInit() { this.option=this.data.option; @@ -42,7 +44,7 @@ export class ReGenerateReportComponent implements OnInit { this.loaderService.showMatSpinnerDialog('Please wait...') if(option=='report') { - this.SalesPDService.generatesalereport(pdid) + this.SalesPDService.generatesalereport(pdid,this.roleID) .subscribe( data => { if (data.status == 200) { diff --git a/ng6-seed/src/app/sales-pd/sales-pd-list/sales-pd.component.html b/ng6-seed/src/app/sales-pd/sales-pd-list/sales-pd.component.html index 0d4b22a..ecd43f7 100644 --- a/ng6-seed/src/app/sales-pd/sales-pd-list/sales-pd.component.html +++ b/ng6-seed/src/app/sales-pd/sales-pd-list/sales-pd.component.html @@ -58,7 +58,7 @@ -
+ -
+
- + +
+
+ +
+
+
+ + +
+
+ +
+
+
+ +
+
+ +
+
+ + + + + + + +
+
- --> + diff --git a/ng6-seed/src/app/sales-pd/sales-pd-list/sales-pd.component.scss b/ng6-seed/src/app/sales-pd/sales-pd-list/sales-pd.component.scss index cf2643e..ee29b74 100644 --- a/ng6-seed/src/app/sales-pd/sales-pd-list/sales-pd.component.scss +++ b/ng6-seed/src/app/sales-pd/sales-pd-list/sales-pd.component.scss @@ -117,5 +117,13 @@ p.note { font-size: 80%; } } + mat-table{ + // overflow: hidden; + // zoom: 90%; + } + ::ng-deep mat-tab-body .mat-tab-body-content { + height: 100%; + overflow: hidden !important; + } diff --git a/ng6-seed/src/app/sales-pd/section-list/section-list.component.html b/ng6-seed/src/app/sales-pd/section-list/section-list.component.html index 478dcc1..82339f7 100644 --- a/ng6-seed/src/app/sales-pd/section-list/section-list.component.html +++ b/ng6-seed/src/app/sales-pd/section-list/section-list.component.html @@ -15,7 +15,9 @@    -    +    + +