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 @@
+
+
+ 0" >
+
+
+
+
+ {{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 @@
-
+
+
+