diff --git a/projects/angular-formio/resource/src/resource.component.ts b/projects/angular-formio/resource/src/resource.component.ts index 913ac7e8..1618f989 100644 --- a/projects/angular-formio/resource/src/resource.component.ts +++ b/projects/angular-formio/resource/src/resource.component.ts @@ -33,7 +33,7 @@ export class FormioResourceComponent implements OnInit, OnDestroy { } init() { - return this.service.init(this.route).then(() => + return this.service.init(this.route, this.router).then(() => this.auth.ready.then(() => this.service.formFormio.userPermissions( this.auth.user, diff --git a/projects/angular-formio/resource/src/resource.service.ts b/projects/angular-formio/resource/src/resource.service.ts index 518cd1ad..00322804 100644 --- a/projects/angular-formio/resource/src/resource.service.ts +++ b/projects/angular-formio/resource/src/resource.service.ts @@ -1,5 +1,5 @@ import { EventEmitter, Injectable, Optional } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; +import { ActivatedRoute, Router } from '@angular/router'; import { FormioResourceConfig } from './resource.config'; import { FormioResources } from './resources.service'; import { FormioPromiseService } from '@formio/angular'; @@ -84,9 +84,18 @@ export class FormioResourceService { this.resource = { data: {} }; } - init(route: ActivatedRoute) { + init(route: ActivatedRoute, router: Router = null) { const snapshot = route.snapshot; - const reset = snapshot.queryParams?.hasOwnProperty('reset') ? snapshot.queryParams.reset : false; + let reset = false; + if (snapshot.queryParams?.hasOwnProperty('reset')) { + reset = snapshot.queryParams.reset; + } + else if (router) { + const navigation = router.getCurrentNavigation(); + if (navigation?.extras.state && navigation.extras.state.hasOwnProperty('reset')) { + reset = navigation.extras.state['reset']; + } + } const resourceId = snapshot.params['id']; if (resourceId && (resourceId === this.resourceId) && !reset) { return this.ready; diff --git a/yarn.lock b/yarn.lock index 2102d019..7d28ee67 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1299,6 +1299,11 @@ dependencies: regenerator-runtime "^0.14.0" +"@babel/runtime@^7.9.2": + version "7.27.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.27.6.tgz#ec4070a04d76bae8ddbb10770ba55714a417b7c6" + integrity sha512-vbavdySgbTTrmFE+EsiqUTzlOr5bzlnJtUv9PynGCAKvfQqjIXbvFdumPM/GxMDfyuGMJaJAU6TO4zc1Jf1i8Q== + "@babel/template@^7.24.7": version "7.24.7" resolved "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz#02efcee317d0609d2c07117cb70ef8fb17ab7315" @@ -1904,18 +1909,27 @@ resolved "https://registry.npmjs.org/@foliojs-fork/restructure/-/restructure-2.0.2.tgz#73759aba2aff1da87b7c4554e6839c70d43c92b4" integrity sha512-59SgoZ3EXbkfSX7b63tsou/SDGzwUEK6MuB5sKqgVK1/XE0fxmpsOb9DQI8LXW3KfGnAjImCGhhEb7uPPAUVNA== -"@formio/bootstrap@v3.2.0-rc.1": - version "3.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@formio/bootstrap/-/bootstrap-3.2.0-rc.1.tgz#e9ec4728a064745e0bf271203b402f60e8a67367" - integrity sha512-F4eQsaIVq4R9eIF13A6hwdqHINQrAlATfHla1Z2cXFN47bX63jH/dpgqmXMKiIyVpCOPSA0m90M+eQDjPWVniw== +"@formio/bootstrap@3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@formio/bootstrap/-/bootstrap-3.1.1.tgz#a8cceb3fd5498994c50176e5ad3866bb23667e8d" + integrity sha512-VXm5P5Ic3q7d5tkWaweIRAaPtBjDoov6Vv28y5aHKbR2Ri8ykMINtQJ70NwPHghW+csZmjmtKDDGDXENQVhIbA== + +"@formio/choices.js@^10.2.1": + version "10.2.1" + resolved "https://registry.yarnpkg.com/@formio/choices.js/-/choices.js-10.2.1.tgz#d0f5c032d94f33152b6036f6a5bb42fcc4684e31" + integrity sha512-NCE5u7jG3XGokJP16MyAbVSUptKu/mpJYAxd4PPIoLiO/l9Do5uoOQ0MgNb9qG9qABJiOX+qNRE8q8RybY/SwQ== + dependencies: + deepmerge "^4.2.2" + fuse.js "^6.6.2" + redux "^4.2.0" -"@formio/core@v2.5.0-rc.1": - version "2.5.0-rc.1" - resolved "https://registry.yarnpkg.com/@formio/core/-/core-2.5.0-rc.1.tgz#5645ea33f093c0039f1b3640cfd7126aea582287" - integrity sha512-5eiCZoaxtrSgnwCWiiuIfGvBSj+IpxaMkq54Ko6eFt99PDJ17zanQyOT36FhC2nIXj3h2zgKUOIO0WiXts2Jrw== +"@formio/core@2.5.0": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@formio/core/-/core-2.5.0.tgz#13eaec3aa8cf37255c17b3cd1681a1677d39bd5e" + integrity sha512-UFX0ThWtW6uUaweWUd/CHCbmAW7jSnFKJ9i+9uhVny75SXF2V8vCi/B6eHQpSAash3ZKG9GV1jYMmq2uCJTuVQ== dependencies: browser-cookies "^1.2.0" - core-js "^3.40.0" + core-js "^3.39.0" dayjs "^1.11.12" dompurify "^3.2.4" eventemitter3 "^5.0.0" @@ -1931,26 +1945,26 @@ resolved "https://registry.npmjs.org/@formio/deprecated-types/-/deprecated-types-0.1.0.tgz#e8db67b93a2eded12efd640a10c7ddf0cffa2441" integrity sha512-jNc3Nw55nc75KESg+KPxxdG9ktnERTYodScAx3eh/J2dlA06N2Korafhu9zmwcDis8lOqtEz3X89cVxpJM9MzQ== -"@formio/js@^5.2.0": - version "5.2.0-rc.1" - resolved "https://registry.yarnpkg.com/@formio/js/-/js-5.2.0-rc.1.tgz#fcdbf04a4199cf33efe9dcd89ea0baf50e3da8dd" - integrity sha512-BtLRmd7J3Pv3hLypsFIkHJocdL0fI0FU1dQfWNgq+egHXFeok6+Zx37T/xx6vybRsp63RfC756oOliEnGlpPsg== +"@formio/js@^5.2.0-rc.1": + version "5.2.0" + resolved "https://registry.yarnpkg.com/@formio/js/-/js-5.2.0.tgz#6dbae7ff598ed029fa9a32f1b11e8fd736d5e5e8" + integrity sha512-tEZfzyKm2RCAZMyVsA4MagDGfi7f2LuSb1aDSgtjIkcLX2oIB4H1AtanxBVMUkdKFRqwWubJb7hzRTNqZUMdLw== dependencies: - "@formio/bootstrap" v3.2.0-rc.1 - "@formio/core" v2.5.0-rc.1 - "@formio/text-mask-addons" "3.8.0-formio.4" + "@formio/bootstrap" "3.1.1" + "@formio/choices.js" "^10.2.1" + "@formio/core" "2.5.0" + "@formio/text-mask-addons" "^3.8.0-formio.4" "@formio/vanilla-text-mask" "^5.1.1-formio.1" abortcontroller-polyfill "^1.7.5" autocompleter "^8.0.4" bootstrap "^5.3.3" browser-cookies "^1.2.0" browser-md5-file "^1.1.1" - choices.js "^11.0.6" - compare-versions "^6.1.1" + compare-versions "^6.0.0-rc.2" core-js "^3.37.1" dialog-polyfill "^0.5.6" dom-autoscroller "^2.3.4" - dompurify "^3.1.6" + dompurify "^3.2.4" downloadjs "^1.4.7" dragula "^3.7.3" eventemitter3 "^5.0.1" @@ -1959,12 +1973,12 @@ idb "^7.1.1" inputmask "^5.0.8" ismobilejs "^1.1.1" - json-logic-js "^2.0.5" + json-logic-js "^2.0.2" jstimezonedetect "^1.0.7" jwt-decode "^3.1.2" lodash "^4.17.21" moment "^2.29.4" - moment-timezone "^0.5.47" + moment-timezone "^0.5.44" quill "^2.0.2" signature_pad "^4.2.0" string-hash "^1.1.3" @@ -1972,7 +1986,7 @@ uuid "^9.0.0" vanilla-picker "^2.12.3" -"@formio/text-mask-addons@3.8.0-formio.4": +"@formio/text-mask-addons@^3.8.0-formio.4": version "3.8.0-formio.4" resolved "https://registry.yarnpkg.com/@formio/text-mask-addons/-/text-mask-addons-3.8.0-formio.4.tgz#f3ce4bf978c6c5e8f671641d96f6fd116f7c92a3" integrity sha512-vhkeIyuL+1rtC9S4IW8O3JCwroPtvJrkrcMO4wyELNqMIgQRKbiyBAitZfUP4tY04xdB5lxAinbzdwb+NMdX6w== @@ -4106,13 +4120,6 @@ cheerio@^1.0.0-rc.12: undici "^6.19.5" whatwg-mimetype "^4.0.0" -choices.js@^11.0.6: - version "11.1.0" - resolved "https://registry.yarnpkg.com/choices.js/-/choices.js-11.1.0.tgz#4fcfb5834fdf0c7d1959f0261d1bbe526a7c9222" - integrity sha512-mIt0uLhedHg2ea/K2PACrVpt391vRGHuOoctPAiHcyemezwzNMxj7jOzNEk8e7EbjLh0S0sspDkSCADOKz9kcw== - dependencies: - fuse.js "^7.0.0" - chokidar@^3.5.1, chokidar@^3.5.2, chokidar@^3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" @@ -4314,7 +4321,7 @@ commondir@^1.0.1: resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== -compare-versions@^6.1.1: +compare-versions@^6.0.0-rc.2: version "6.1.1" resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-6.1.1.tgz#7af3cc1099ba37d244b3145a9af5201b629148a9" integrity sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg== @@ -4435,10 +4442,10 @@ core-js@^3.37.1: resolved "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz#d21751ddb756518ac5a00e4d66499df981a62db9" integrity sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw== -core-js@^3.40.0: - version "3.41.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.41.0.tgz#57714dafb8c751a6095d028a7428f1fb5834a776" - integrity sha512-SJ4/EHwS36QMJd6h/Rg+GyR4A5xE0FSI3eZ+iBVpfqf1x0eTSg1smWLHrA+2jQThZSh97fmSgFSU8B61nxosxA== +core-js@^3.39.0: + version "3.43.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.43.0.tgz#f7258b156523208167df35dea0cfd6b6ecd4ee88" + integrity sha512-N6wEbTTZSYOY2rYAn85CuvWWkCK6QweMn7/4Nr3w+gDBeBhk/x4EJeY6FPo4QzDoJZxVTv8U7CMvgWk6pOHHqA== core-util-is@1.0.2: version "1.0.2" @@ -4657,6 +4664,11 @@ deep-equal@^1.0.0: object-keys "^1.1.1" regexp.prototype.flags "^1.5.1" +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + default-browser-id@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/default-browser-id/-/default-browser-id-5.0.0.tgz#a1d98bf960c15082d8a3fa69e83150ccccc3af26" @@ -4849,7 +4861,7 @@ domhandler@^5.0.2, domhandler@^5.0.3: dependencies: domelementtype "^2.3.0" -dompurify@^3.1.6, dompurify@^3.2.4: +dompurify@^3.2.4: version "3.2.5" resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.2.5.tgz#11b108656a5fb72b24d916df17a1421663d7129c" integrity sha512-mLPd29uoRe9HpvwP2TxClGQBzGXeEC/we/q+bFlmPPmj2p2Ugl3r6ATu/UU1v77DXNcehiBg9zsr1dREyA/dJQ== @@ -5723,10 +5735,10 @@ functions-have-names@^1.2.3: resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== -fuse.js@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-7.1.0.tgz#306228b4befeee11e05b027087c2744158527d09" - integrity sha512-trLf4SzuuUxfusZADLINj+dE8clK1frKdmqiJNb1Es75fmI5oY6X2mxLVUciLLjxqw/xr72Dhy+lER6dGd02FQ== +fuse.js@^6.6.2: + version "6.6.2" + resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-6.6.2.tgz#fe463fed4b98c0226ac3da2856a415576dc9a111" + integrity sha512-cJaJkxCCxC8qIIcPBF9yGxY0W/tVZS3uEISDxhYIdtk8OL93pe+6Zj7LjCqVV4dzbqcriOZ+kQ/NE4RXZHsIGA== gensync@^1.0.0-beta.2: version "1.0.0-beta.2" @@ -6852,7 +6864,7 @@ jsesc@~3.0.2: resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== -json-logic-js@^2.0.5: +json-logic-js@^2.0.2, json-logic-js@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/json-logic-js/-/json-logic-js-2.0.5.tgz#55f0c687dd6f56b02ccdcfdd64171ed998ab5499" integrity sha512-rTT2+lqcuUmj4DgWfmzupZqQDA64AdmYqizzMPWj3DxGdfFNsxPpcNVSaTj4l8W2tG/+hg7/mQhxjU3aPacO6g== @@ -7505,7 +7517,7 @@ mkdirp@^3.0.1: resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz#e44e4c5607fb279c168241713cc6e0fea9adcb50" integrity sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg== -moment-timezone@^0.5.47: +moment-timezone@^0.5.44: version "0.5.48" resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.48.tgz#111727bb274734a518ae154b5ca589283f058967" integrity sha512-f22b8LV1gbTO2ms2j2z13MuPogNoh5UzxL3nzNAYKGraILnbGc9NEE6dyiiiLv46DGRb8A4kg8UKWLjPthxBHw== @@ -8565,6 +8577,13 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +redux@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.2.1.tgz#c08f4306826c49b5e9dc901dee0452ea8fce6197" + integrity sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w== + dependencies: + "@babel/runtime" "^7.9.2" + reflect-metadata@^0.2.0: version "0.2.2" resolved "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.2.tgz#400c845b6cba87a21f2c65c4aeb158f4fa4d9c5b"