From 36c628907091173c0a01d51278d918c173e7acba Mon Sep 17 00:00:00 2001 From: pmcb55 Date: Mon, 27 Apr 2020 01:16:30 +0100 Subject: [PATCH 01/15] Big tidy up of constants/index.js, now using generated LIT vocabs. --- .gitignore | 2 +- package-lock.json | 252 +++++++++++++++++- package.json | 2 + src/demo/App.js | 4 +- src/lib/classes/access-control-list.js | 22 +- src/lib/classes/notification.js | 4 +- .../Form/UI/CheckBox/check-box.component.js | 8 +- .../Form/UI/CheckBox/check-box.test.js | 12 +- .../UI/Classifier/classifier.component.js | 10 +- .../UI/ColorPicker/color-picker.component.js | 4 +- .../Form/UI/ColorPicker/color-picker.test.js | 8 +- .../Form/UI/Comment/comment.component.js | 4 +- .../children/Form/UI/Comment/comment.test.js | 4 +- .../date-time-picker.component.js | 35 +-- .../DateTimePicker/date-time-picker.test.js | 14 +- .../Form/UI/Decimal/decimal.component.js | 15 +- .../children/Form/UI/Decimal/decimal.test.js | 4 +- .../UI/DeleteButton/delete-button.test.js | 1 - .../children/Form/UI/Email/email.component.js | 16 +- .../children/Form/UI/Email/email.test.js | 8 +- .../children/Form/UI/Float/float.component.js | 15 +- .../children/Form/UI/Float/float.test.js | 8 +- .../Form/UI/Heading/heading.component.js | 5 +- .../children/Form/UI/Heading/heading.test.js | 4 +- .../children/Form/UI/Input/input.component.js | 11 +- .../children/Form/UI/Input/input.test.js | 8 +- .../Form/UI/Integer/integer.component.js | 13 +- .../children/Form/UI/Integer/integer.test.js | 8 +- .../children/Form/UI/Phone/phone.component.js | 15 +- .../children/Form/UI/Phone/phone.test.js | 8 +- .../UI/RadioButton/radio-button.component.js | 4 +- .../Form/UI/RadioButton/radio-button.test.js | 8 +- .../Form/UI/TextArea/text-area.component.js | 8 +- .../Form/UI/TextArea/text-area.test.js | 8 +- .../children/Form/UI/component-mapping.js | 36 +-- .../children/Group/group.component.js | 6 +- .../children/Multiple/multiple.component.js | 12 +- .../Viewer/UI/BoolLine/bool-line.component.js | 4 +- .../Viewer/UI/BoolLine/bool-line.test.js | 11 +- .../UI/ColorLine/color-line.component.js | 4 +- .../Viewer/UI/ColorLine/color-line.test.js | 6 +- .../Viewer/UI/DateLine/date-line.component.js | 14 +- .../Viewer/UI/DateLine/date-line.test.js | 16 +- .../UI/MultiLine/multi-line.component.js | 4 +- .../Viewer/UI/MultiLine/multi-line.test.js | 8 +- .../multiple-viewer.component.js | 8 +- .../UI/SingleLine/single-line.component.js | 4 +- .../Viewer/UI/SingleLine/single-line.test.js | 8 +- .../children/Viewer/UI/ui-mapping.js | 34 +-- .../children/Viewer/viewer.component.js | 14 +- .../FormModel/form-model.component.js | 8 +- src/lib/constants/index.js | 180 +++++++------ src/lib/utils/datestimes.test.js | 8 +- src/lib/utils/datetimes.js | 10 +- 54 files changed, 605 insertions(+), 342 deletions(-) diff --git a/.gitignore b/.gitignore index 053dd197..5484be25 100644 --- a/.gitignore +++ b/.gitignore @@ -13,7 +13,6 @@ # misc .DS_Store -.idea .env.local .env.development.local .env.test.local @@ -21,6 +20,7 @@ # editors .idea +*.iml npm-debug.log* yarn-debug.log* diff --git a/package-lock.json b/package-lock.json index b8181f27..02121240 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2328,6 +2328,14 @@ "resolved": "https://repo.janeirodigital.com/repository/npm-all/@icons/material/-/material-0.2.4.tgz", "integrity": "sha512-QPcGmICAPbGLGb6F/yNf/KzKqvFx8z5qx3D1yFqVAjoFmXK35EgyW+cJ57Te3CNsmzblwtzakLGFqHPqrfb4Tw==" }, + "@inrupt/lit-generated-vocab-solid-common-rdfext": { + "version": "0.2.0", + "resolved": "http://localhost:4873/@inrupt%2flit-generated-vocab-solid-common-rdfext/-/lit-generated-vocab-solid-common-rdfext-0.2.0.tgz", + "integrity": "sha512-qxy+ytRq9QsVkPu6nWNGPlyZM1evwsFIjz26JpeYA7ylj/bEK29J7MDgVECtuPEGvK57liYGmt730QejRetNNg==", + "requires": { + "@pmcb55/lit-vocab-term-rdf-ext": "^0.2.4" + } + }, "@inrupt/solid-sdk-forms": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@inrupt/solid-sdk-forms/-/solid-sdk-forms-0.1.1.tgz", @@ -2619,6 +2627,58 @@ "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", "dev": true }, + "@pmcb55/lit-generated-vocab-common-rdfext": { + "version": "0.2.0", + "resolved": "http://localhost:4873/@pmcb55%2flit-generated-vocab-common-rdfext/-/lit-generated-vocab-common-rdfext-0.2.0.tgz", + "integrity": "sha512-GDCIT9B/REk75fDfbGHPoA6mIMUWk07lq+M7VBtdB5eO+Js4sqUU9NsQ1HApjd19UF8tk0FzrRwBNL0vlJrsuA==", + "requires": { + "@pmcb55/lit-vocab-term-rdf-ext": "^0.2.4" + } + }, + "@pmcb55/lit-vocab-term-base": { + "version": "0.2.4", + "resolved": "http://localhost:4873/@pmcb55%2flit-vocab-term-base/-/lit-vocab-term-base-0.2.4.tgz", + "integrity": "sha512-S5zIXe+1tmlibavBTmcl3n3WL6axEe7u3LYx1lkvVJcicThaGuyaeccj/DVBcxkXhUyDVwB+l5zldwXLJ+gXEQ==", + "requires": { + "debug": "^4.1.1", + "moment": "^2.24.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "http://localhost:4873/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "@pmcb55/lit-vocab-term-rdf-ext": { + "version": "0.2.4", + "resolved": "http://localhost:4873/@pmcb55%2flit-vocab-term-rdf-ext/-/lit-vocab-term-rdf-ext-0.2.4.tgz", + "integrity": "sha512-LMlHur5SJf7ipSTgfpgOaDOg4+k19IEGOngRuP32YFyBEoq5/lvTqfNyvxgghR1EDzILhffFgn5N0sbQpKI3DQ==", + "requires": { + "@pmcb55/lit-vocab-term-base": "0.2.4", + "@rdfjs/formats-common": "^2.0.1", + "aggregation": "^1.2.5", + "debug": "^4.1.1", + "moment": "^2.24.0", + "rdf-ext": "^1.3.0", + "stream-to-string": "^1.2.0", + "string-to-stream": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "http://localhost:4873/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + } + } + }, "@rdfjs/data-model": { "version": "1.1.2", "resolved": "https://repo.janeirodigital.com/repository/npm-all/@rdfjs/data-model/-/data-model-1.1.2.tgz", @@ -2627,6 +2687,118 @@ "@types/rdf-js": "^2.0.1" } }, + "@rdfjs/formats-common": { + "version": "2.1.0", + "resolved": "http://localhost:4873/@rdfjs%2fformats-common/-/formats-common-2.1.0.tgz", + "integrity": "sha512-DVsQsMwSf+bNelIocDe35Wq/POkC+puXYd0BRwP76A3tzYKjIHwBHQFfq7wXMUaBe3jQq80x4DaFpxPaI7sPKA==", + "requires": { + "@rdfjs/parser-jsonld": "^1.1.1", + "@rdfjs/parser-n3": "^1.1.2", + "@rdfjs/serializer-jsonld": "^1.2.0", + "@rdfjs/serializer-ntriples": "^1.0.1", + "@rdfjs/sink-map": "^1.0.0", + "rdfxml-streaming-parser": "^1.2.0" + } + }, + "@rdfjs/parser-jsonld": { + "version": "1.2.1", + "resolved": "http://localhost:4873/@rdfjs%2fparser-jsonld/-/parser-jsonld-1.2.1.tgz", + "integrity": "sha512-m8WQBacXaU2qPgf+rPEqit4EiEjBxpohvDEG4aF7YvFAT6uEto3lHu7ilKcMKpLfMKmbXp4v6KzJXm9yvockNw==", + "requires": { + "@rdfjs/data-model": "^1.0.1", + "@rdfjs/sink": "^1.0.2", + "concat-stream": "^2.0.0", + "jsonld": "^1.8.1", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "http://localhost:4873/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "@rdfjs/parser-n3": { + "version": "1.1.4", + "resolved": "http://localhost:4873/@rdfjs%2fparser-n3/-/parser-n3-1.1.4.tgz", + "integrity": "sha512-PUKSNlfD2Zq3GcQZuOF2ndfrLbc+N96FUe2gNIzARlR2er0BcOHBHEFUJvVGg1Xmsg3hVKwfg0nwn1JZ7qKKMw==", + "requires": { + "@rdfjs/data-model": "^1.0.1", + "@rdfjs/sink": "^1.0.2", + "n3": "^1.3.5", + "readable-stream": "^3.6.0", + "readable-to-readable": "^0.1.0" + }, + "dependencies": { + "n3": { + "version": "1.3.6", + "resolved": "http://localhost:4873/n3/-/n3-1.3.6.tgz", + "integrity": "sha512-EPaniuSPI+f66F8MP3GPXI3CA4cgSaA688PGUEs1Q5qyeAf/yIhe/8WbDV5+Hnmn8/ewcP7qYY6vfVnjbL5jcg==" + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "http://localhost:4873/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "@rdfjs/serializer-jsonld": { + "version": "1.2.2", + "resolved": "http://localhost:4873/@rdfjs%2fserializer-jsonld/-/serializer-jsonld-1.2.2.tgz", + "integrity": "sha512-BXcmi2qZlpkrJcVms9g1JSFWXeiOhgJyFsEa6UuN0CPst6WRNY5z6djp0o6rfDgfmgb5FrXFwBgAIDunI5VZoQ==", + "requires": { + "@rdfjs/sink": "^1.0.2", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "http://localhost:4873/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "@rdfjs/serializer-ntriples": { + "version": "1.0.3", + "resolved": "http://localhost:4873/@rdfjs%2fserializer-ntriples/-/serializer-ntriples-1.0.3.tgz", + "integrity": "sha512-XXFgzNJyYrix0YgysqYowKw40hCJ+zeVqA/CGgO3y5XyKY+NL/VJJELMn7cTwjJteiLVCgRNAvaUVn4CjJ2PCg==", + "requires": { + "@rdfjs/sink": "^1.0.3", + "@rdfjs/to-ntriples": "^1.0.2", + "readable-to-readable": "^0.1.0" + } + }, + "@rdfjs/sink": { + "version": "1.0.3", + "resolved": "http://localhost:4873/@rdfjs%2fsink/-/sink-1.0.3.tgz", + "integrity": "sha512-2KfYa8mAnptRNeogxhQqkWNXqfYVWO04jQThtXKepySrIwYmz83+WlevQtA4VDLFe+kFd2TwgL29ekPe5XVUfA==" + }, + "@rdfjs/sink-map": { + "version": "1.0.1", + "resolved": "http://localhost:4873/@rdfjs%2fsink-map/-/sink-map-1.0.1.tgz", + "integrity": "sha512-PRp5TjULHe2oRcupR80SClZ/l50wnSuX2Pl+TlkcRazt1w7AT86kLmQYFbDfjqGM7uDwSyD6evLJxXBDf5UuvQ==" + }, + "@rdfjs/to-ntriples": { + "version": "1.0.2", + "resolved": "http://localhost:4873/@rdfjs%2fto-ntriples/-/to-ntriples-1.0.2.tgz", + "integrity": "sha512-ngw5XAaGHjgGiwWWBPGlfdCclHftonmbje5lMys4G2j4NvfExraPIuRZgjSnd5lg4dnulRVUll8tRbgKO+7EDA==" + }, "@reach/router": { "version": "1.2.1", "resolved": "https://repo.janeirodigital.com/repository/npm-all/@reach/router/-/router-1.2.1.tgz", @@ -6399,6 +6571,11 @@ } } }, + "aggregation": { + "version": "1.2.6", + "resolved": "http://localhost:4873/aggregation/-/aggregation-1.2.6.tgz", + "integrity": "sha512-TdxNrY8hHSwcK2YNl2wbvC4ybki79cQUgPZWQyer3WVSUOGZp0MzuutWxx/T+WR+aPC/sZW34092NTc2r6mCoA==" + }, "airbnb-js-shims": { "version": "2.2.0", "resolved": "https://repo.janeirodigital.com/repository/npm-all/airbnb-js-shims/-/airbnb-js-shims-2.2.0.tgz", @@ -8330,8 +8507,7 @@ "buffer-from": { "version": "1.1.1", "resolved": "https://repo.janeirodigital.com/repository/npm-all/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "buffer-indexof": { "version": "1.1.1", @@ -9039,6 +9215,17 @@ "resolved": "https://repo.janeirodigital.com/repository/npm-all/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" }, + "concat-stream": { + "version": "2.0.0", + "resolved": "http://localhost:4873/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, "config-chain": { "version": "1.1.12", "resolved": "https://repo.janeirodigital.com/repository/npm-all/config-chain/-/config-chain-1.1.12.tgz", @@ -20230,6 +20417,26 @@ "semver": "^5.6.0" } }, + "rdf-dataset-indexed": { + "version": "0.4.0", + "resolved": "http://localhost:4873/rdf-dataset-indexed/-/rdf-dataset-indexed-0.4.0.tgz", + "integrity": "sha512-xIZ3PGwBHh1DVax9FTq/zhJcrdJTkCgRT2xolF5ZhKj0EOFoT6wdITyfxKSmnD6YNyGyng5F5o2SR62TYask3Q==", + "requires": { + "@rdfjs/data-model": "^1.1.1", + "readable-stream": "^3.3.0" + } + }, + "rdf-ext": { + "version": "1.3.0", + "resolved": "http://localhost:4873/rdf-ext/-/rdf-ext-1.3.0.tgz", + "integrity": "sha512-bzkJpINH1uZgAeSIlE7K1nLF6Y82vGi9U9sBRuiz864pNk/31ba3dw+yLoIkcvQsPcVwnKBVLvGCR3dvD9xM+Q==", + "requires": { + "@rdfjs/data-model": "^1.1.0", + "@rdfjs/to-ntriples": "^1.0.1", + "rdf-dataset-indexed": "^0.4.0", + "rdf-normalize": "^1.0.0" + } + }, "rdf-literal": { "version": "1.0.0", "resolved": "https://repo.janeirodigital.com/repository/npm-all/rdf-literal/-/rdf-literal-1.0.0.tgz", @@ -20239,6 +20446,11 @@ "@types/rdf-js": "^2.0.2" } }, + "rdf-normalize": { + "version": "1.0.0", + "resolved": "http://localhost:4873/rdf-normalize/-/rdf-normalize-1.0.0.tgz", + "integrity": "sha1-U0lrrzYszp2fyh8iFsbDAAf5nMo=" + }, "rdf-store-stream": { "version": "1.0.0", "resolved": "https://repo.janeirodigital.com/repository/npm-all/rdf-store-stream/-/rdf-store-stream-1.0.0.tgz", @@ -20992,13 +21204,32 @@ "version": "3.4.0", "resolved": "https://repo.janeirodigital.com/repository/npm-all/readable-stream/-/readable-stream-3.4.0.tgz", "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "dev": true, "requires": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" } }, + "readable-to-readable": { + "version": "0.1.3", + "resolved": "http://localhost:4873/readable-to-readable/-/readable-to-readable-0.1.3.tgz", + "integrity": "sha512-G+0kz01xJM/uTuItKcqC73cifW8S6CZ7tp77NLN87lE5mrSU+GC8geoSAlfmp0NocmXckQ7W8s8ns73HYsIA3w==", + "requires": { + "readable-stream": "^3.6.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "http://localhost:4873/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, "readdirp": { "version": "2.2.1", "resolved": "https://repo.janeirodigital.com/repository/npm-all/readdirp/-/readdirp-2.2.1.tgz", @@ -22958,6 +23189,14 @@ "integrity": "sha1-Ab4mZaHPosV1IMkQaY9sonakxyY=", "dev": true }, + "string-to-stream": { + "version": "3.0.1", + "resolved": "http://localhost:4873/string-to-stream/-/string-to-stream-3.0.1.tgz", + "integrity": "sha512-Hl092MV3USJuUCC6mfl9sPzGloA3K5VwdIeJjYIkXY/8K+mUvaeEabWJgArp+xXrsWxCajeT2pc4axbVhIZJyg==", + "requires": { + "readable-stream": "^3.4.0" + } + }, "string-width": { "version": "1.0.2", "resolved": "https://repo.janeirodigital.com/repository/npm-all/string-width/-/string-width-1.0.2.tgz", @@ -23028,7 +23267,6 @@ "version": "1.3.0", "resolved": "https://repo.janeirodigital.com/repository/npm-all/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "requires": { "safe-buffer": "~5.2.0" } @@ -23905,8 +24143,7 @@ "typedarray": { "version": "0.0.6", "resolved": "https://repo.janeirodigital.com/repository/npm-all/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "ua-parser-js": { "version": "0.7.20", @@ -24195,8 +24432,7 @@ "util-deprecate": { "version": "1.0.2", "resolved": "https://repo.janeirodigital.com/repository/npm-all/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "util.promisify": { "version": "1.0.0", diff --git a/package.json b/package.json index d4123fa5..abae770a 100644 --- a/package.json +++ b/package.json @@ -57,7 +57,9 @@ "license": "MIT", "dependencies": { "@babel/runtime": "^7.1.2", + "@inrupt/lit-generated-vocab-solid-common-rdfext": "^0.2.0", "@inrupt/solid-sdk-forms": "0.1.1", + "@pmcb55/lit-generated-vocab-common-rdfext": "^0.2.0", "@rdfjs/data-model": "^1.1.1", "@shexjs/core": "^1.0.0-alpha.9", "@shexjs/loader": "^1.0.0-alpha.5", diff --git a/src/demo/App.js b/src/demo/App.js index 77d48478..0fbe419a 100644 --- a/src/demo/App.js +++ b/src/demo/App.js @@ -13,7 +13,7 @@ import { ProfileViewer } from '@lib'; import { AccessControlList, ACLFactory } from '@classes'; -import { NotificationTypes } from '@constants'; +import { AS } from '@pmcb55/lit-generated-vocab-common-rdfext'; const HeaderWrapper = styled.section` margin-top: 60px; @@ -129,7 +129,7 @@ const App = () => { actor: 'https://solidsdk.inrupt.net/profile/card#me' }, inboxUrl, - NotificationTypes.ANNOUNCE + AS.Announce.value ); } catch (ex) { // eslint-disable-next-line no-console diff --git a/src/lib/classes/access-control-list.js b/src/lib/classes/access-control-list.js index 29c60a65..7406e4cc 100644 --- a/src/lib/classes/access-control-list.js +++ b/src/lib/classes/access-control-list.js @@ -5,6 +5,8 @@ import { isEqual } from 'lodash'; import ldflex from '@solid/query-ldflex'; import { SolidError } from '@utils'; import { PERMISSIONS, ACL_PREFIXES } from '@constants'; +import { FOAF, RDF } from '@pmcb55/lit-generated-vocab-common-rdfext'; +import { ACL } from '@inrupt/lit-generated-vocab-solid-common-rdfext'; type Permissions = { agents: null | String | Array, @@ -45,30 +47,29 @@ export default class AccessControlList { * @param {Array | null} agents Array of webId or null if for everyone */ createQuadList = (modes: Array, agents: Array | null) => { - const { acl, foaf, rdf } = ACL_PREFIXES; const subject = `${this.aclUri}#${modes.join('')}`; const { documentUri } = this; const originalPredicates = [ - this.createQuad(subject, `${rdf}type`, namedNode(`${acl}Authorization`)), - this.createQuad(subject, `${acl}accessTo`, namedNode(documentUri)), - this.createQuad(subject, `${acl}default`, namedNode(documentUri)) + this.createQuad(subject, RDF.type, ACL.Authorization), + this.createQuad(subject, ACL.accessTo, namedNode(documentUri)), + this.createQuad(subject, ACL.default, namedNode(documentUri)) ]; let predicates = []; if (agents) { const agentsArray = Array.isArray(agents) ? agents : [agents]; const agentsQuads = agentsArray.map(agent => - this.createQuad(subject, `${acl}agent`, namedNode(agent)) + this.createQuad(subject, ACL.agent, namedNode(agent)) ); predicates = [...originalPredicates, ...agentsQuads]; } else { - const publicQuad = this.createQuad(subject, `${acl}agentClass`, namedNode(`${foaf}Agent`)); + const publicQuad = this.createQuad(subject, ACL.agentClass, FOAF.Agent); predicates = [...originalPredicates, publicQuad]; } const quadList = modes.reduce( (array, mode) => [ ...array, - this.createQuad(subject, `${acl}mode`, namedNode(`${acl}${mode}`)) + this.createQuad(subject, ACL.mode, namedNode(`${ACL.NAMESPACE}${mode}`)) ], predicates ); @@ -243,9 +244,8 @@ export default class AccessControlList { */ createMode = async ({ modes, agents }) => { try { - const { acl, foaf } = ACL_PREFIXES; const subject = `${this.aclUri}#${modes.join('')}`; - await ldflex[subject].type.add(namedNode(`${acl}Authorization`)); + await ldflex[subject].type.add(ACL.Authorization); const path = namedNode(this.documentUri); await ldflex[subject]['acl:accessTo'].add(path); await ldflex[subject]['acl:default'].add(path); @@ -255,11 +255,11 @@ export default class AccessControlList { await ldflex[subject]['acl:agent'].add(namedNode(agent)); } } else { - await ldflex[subject]['acl:agentClass'].add(namedNode(`${foaf}Agent`)); + await ldflex[subject]['acl:agentClass'].add(FOAF.Agent); } for await (const mode of modes) { - await ldflex[subject]['acl:mode'].add(namedNode(`${acl}${mode}`)); + await ldflex[subject]['acl:mode'].add(namedNode(`${ACL.NAMESPACE}${mode}`)); } return { modes, agents }; } catch (e) { diff --git a/src/lib/classes/notification.js b/src/lib/classes/notification.js index d9a7e355..3d9d9c1d 100644 --- a/src/lib/classes/notification.js +++ b/src/lib/classes/notification.js @@ -5,8 +5,8 @@ import { solidResponse, SolidError, shexUtil, getBasicPod } from '@utils'; import defaultShape from '../shapes/notification.json'; import AccessControlList from './access-control-list'; import ACLFactory from './access-control-factory'; -import { NotificationTypes } from '@constants'; import { ensureSlash } from '../utils/solidFetch'; +import { AS } from '@pmcb55/lit-generated-vocab-common-rdfext'; const PREFIXES = { terms: 'https://www.w3.org/ns/solid/terms#', @@ -239,7 +239,7 @@ export class Notification { const licenseType = 'http://schema.org/license'; // If a type has not been set, default to Announce type - const notificationType = type || NotificationTypes.ANNOUNCE; + const notificationType = type || AS.Announce.value; // If a license has not been set, default to the CC license const licenseLink = license || 'https://creativecommons.org/licenses/by-sa/4.0/'; diff --git a/src/lib/components/FormModel/children/Form/UI/CheckBox/check-box.component.js b/src/lib/components/FormModel/children/Form/UI/CheckBox/check-box.component.js index 65875395..fdb0c46f 100644 --- a/src/lib/components/FormModel/children/Form/UI/CheckBox/check-box.component.js +++ b/src/lib/components/FormModel/children/Form/UI/CheckBox/check-box.component.js @@ -1,7 +1,7 @@ import React, { useEffect, useState, useContext } from 'react'; import { ThemeContext } from '@context'; -import { UI } from '@constants'; import { InputGroup } from '../Input/input.styles'; +import { UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; type Props = { id: string, @@ -17,7 +17,7 @@ export const CheckBox = (props: Props) => { useEffect(() => { try { - const podValue = data[UI.VALUE]; + const podValue = data[UI.value.value]; if (!podValue || podValue === 'false') { setChecked(false); } else { @@ -26,9 +26,9 @@ export const CheckBox = (props: Props) => { } catch (e) { setChecked(false); } - }, [data[UI.VALUE]]); + }, [data[UI.value.value]]); - const { [UI.LABEL]: label } = data; + const { [UI.label.value]: label } = data; const onChange = event => { const updatedPart = { ...data, value: String(event.target.checked) }; diff --git a/src/lib/components/FormModel/children/Form/UI/CheckBox/check-box.test.js b/src/lib/components/FormModel/children/Form/UI/CheckBox/check-box.test.js index f3148714..f36fabe6 100644 --- a/src/lib/components/FormModel/children/Form/UI/CheckBox/check-box.test.js +++ b/src/lib/components/FormModel/children/Form/UI/CheckBox/check-box.test.js @@ -2,7 +2,7 @@ import React from 'react'; import { render, cleanup } from '@testing-library/react'; import { getByText, getByLabelText } from '@testing-library/dom'; import { CheckBox } from './check-box.component'; -import { UI } from '@constants'; +import { UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; import 'jest-dom/extend-expect'; afterAll(cleanup); @@ -15,7 +15,7 @@ test('Renders without crashing', () => { test('Renders the label', () => { const data = { - [UI.LABEL]: 'check' + [UI.label.value]: 'check' }; const { container } = render(); expect(getByText(container, 'check')).toBeTruthy(); @@ -23,8 +23,8 @@ test('Renders the label', () => { test('Renders a checked box', () => { const data = { - [UI.LABEL]: 'checklabel', - [UI.VALUE]: 'true' + [UI.label.value]: 'checklabel', + [UI.value.value]: 'true' }; const { container } = render(); expect(getByLabelText(container, 'checklabel').checked).toBeTruthy(); @@ -32,8 +32,8 @@ test('Renders a checked box', () => { test('Renders an unchecked box', () => { const data = { - [UI.LABEL]: 'checklabel', - [UI.VALUE]: 'false' + [UI.label.value]: 'checklabel', + [UI.value.value]: 'false' }; const { container } = render(); expect(getByLabelText(container, 'checklabel').checked).toBeFalsy(); diff --git a/src/lib/components/FormModel/children/Form/UI/Classifier/classifier.component.js b/src/lib/components/FormModel/children/Form/UI/Classifier/classifier.component.js index dbbe869a..12fca40b 100644 --- a/src/lib/components/FormModel/children/Form/UI/Classifier/classifier.component.js +++ b/src/lib/components/FormModel/children/Form/UI/Classifier/classifier.component.js @@ -3,17 +3,17 @@ import { n3Helper } from '@inrupt/solid-sdk-forms'; import unique from 'unique'; import { SelectWrapper } from './classifier.style'; import { ThemeContext } from '@context'; -import { UI } from '@constants'; +import { UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; export const Classifier = props => { const { id, data, updateData } = props; const { theme } = useContext(ThemeContext); const { - [UI.LABEL]: label, - [UI.VALUE]: initialValue, - [UI.CATEGORY]: category, - [UI.VALUES]: values + [UI.label.value]: label, + [UI.value.value]: initialValue, + [UI.category.value]: category, + [UI.values.value]: values } = data; const [options, setOptions] = useState([]); diff --git a/src/lib/components/FormModel/children/Form/UI/ColorPicker/color-picker.component.js b/src/lib/components/FormModel/children/Form/UI/ColorPicker/color-picker.component.js index 5a0e94fe..71e07744 100644 --- a/src/lib/components/FormModel/children/Form/UI/ColorPicker/color-picker.component.js +++ b/src/lib/components/FormModel/children/Form/UI/ColorPicker/color-picker.component.js @@ -1,10 +1,10 @@ import React, { useEffect, useContext, useState } from 'react'; import { ChromePicker } from 'react-color'; -import { UI } from '@constants'; import { ThemeContext } from '@context'; import { PickerGroup, ColorSwatch, Cover, Popover } from './color-picker.styles'; +import { UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; type Props = { id: string, @@ -16,7 +16,7 @@ const ColorPicker = (props: Props) => { const { id, data, updateData } = props; const { theme } = useContext(ThemeContext); - const { [UI.LABEL]: label, [UI.VALUE]: initialValue } = data; + const { [UI.label.value]: label, [UI.value.value]: initialValue } = data; const [pickerVisible, setPickerVisible] = useState(false); const [color, setColor] = useState(initialValue); diff --git a/src/lib/components/FormModel/children/Form/UI/ColorPicker/color-picker.test.js b/src/lib/components/FormModel/children/Form/UI/ColorPicker/color-picker.test.js index f5639a6f..86beaa12 100644 --- a/src/lib/components/FormModel/children/Form/UI/ColorPicker/color-picker.test.js +++ b/src/lib/components/FormModel/children/Form/UI/ColorPicker/color-picker.test.js @@ -2,8 +2,8 @@ import React from 'react'; import { render, cleanup } from '@testing-library/react'; import { getByText } from '@testing-library/dom'; import ColorPicker from './color-picker.component'; -import { UI } from '@constants'; import 'jest-dom/extend-expect'; +import { UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; afterAll(cleanup); @@ -15,7 +15,7 @@ test('Renders without crashing', () => { test('Renders the label', () => { const data = { - [UI.LABEL]: 'choose color' + [UI.label.value]: 'choose color' }; const { container } = render(); expect(getByText(container, 'choose color')).toBeTruthy(); @@ -23,8 +23,8 @@ test('Renders the label', () => { test('Renders the color in text', () => { const data = { - [UI.LABEL]: 'choose color', - [UI.VALUE]: '#aabbcc' + [UI.label.value]: 'choose color', + [UI.value.value]: '#aabbcc' }; const { container } = render(); expect(getByText(container, '#aabbcc')).toBeTruthy(); diff --git a/src/lib/components/FormModel/children/Form/UI/Comment/comment.component.js b/src/lib/components/FormModel/children/Form/UI/Comment/comment.component.js index 68b94986..7d795f58 100644 --- a/src/lib/components/FormModel/children/Form/UI/Comment/comment.component.js +++ b/src/lib/components/FormModel/children/Form/UI/Comment/comment.component.js @@ -1,7 +1,7 @@ import React, { useContext } from 'react'; -import { UI } from '@constants'; import { ThemeContext } from '@context'; +import { UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; type Props = { data: object @@ -9,7 +9,7 @@ type Props = { export const Comment = (props: Props) => { const { data } = props; - const { [UI.CONTENTS]: comment } = data; + const { [UI.contents.value]: comment } = data; const { theme } = useContext(ThemeContext); diff --git a/src/lib/components/FormModel/children/Form/UI/Comment/comment.test.js b/src/lib/components/FormModel/children/Form/UI/Comment/comment.test.js index 3df85c25..e175c223 100644 --- a/src/lib/components/FormModel/children/Form/UI/Comment/comment.test.js +++ b/src/lib/components/FormModel/children/Form/UI/Comment/comment.test.js @@ -2,8 +2,8 @@ import React from 'react'; import { render, cleanup } from '@testing-library/react'; import { getByText } from '@testing-library/dom'; import { Comment } from './comment.component'; -import { UI } from '@constants'; import 'jest-dom/extend-expect'; +import { UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; afterAll(cleanup); @@ -15,7 +15,7 @@ test('Renders without crashing', () => { test('Renders the comment', () => { const data = { - [UI.CONTENTS]: 'comment' + [UI.contents.value]: 'comment' }; const { container } = render(); expect(getByText(container, 'comment')).toBeTruthy(); diff --git a/src/lib/components/FormModel/children/Form/UI/DateTimePicker/date-time-picker.component.js b/src/lib/components/FormModel/children/Form/UI/DateTimePicker/date-time-picker.component.js index 6e22fdfe..e178ccc0 100644 --- a/src/lib/components/FormModel/children/Form/UI/DateTimePicker/date-time-picker.component.js +++ b/src/lib/components/FormModel/children/Form/UI/DateTimePicker/date-time-picker.component.js @@ -6,7 +6,8 @@ import DatePicker, { registerLocale } from 'react-datepicker'; import 'react-datepicker/dist/react-datepicker.css'; import { ThemeContext } from '@context'; -import { UITypes, DATE_FORMAT, UI, RDF } from '@constants'; +import { DATE_FORMAT } from '@constants'; +import { RDF, UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; import { parseInitialValue, isValidDate, getClosestLocale } from '@utils'; @@ -18,18 +19,18 @@ export const DateTimePicker = props => { const { theme } = useContext(ThemeContext); useEffect(() => { - setDate(parseInitialValue(data[UI.VALUE], data[RDF.TYPE])); - }, [data[UI.VALUE]]); + setDate(parseInitialValue(data[UI.value.value], data[RDF.type.value])); + }, [data[UI.value.value]]); // Fetch relevant values from the data prop, which represents the properties in the form model - const minValue = data[UI.MIN_VALUE]; - const maxValue = data[UI.MAX_VALUE]; - const mindateOffset = parseInt(data[UI.MIN_DATE_OFFSET], 10); - const maxdateOffset = parseInt(data[UI.MAX_DATE_OFFSET], 10); - const mindatetimeOffset = parseInt(data[UI.MIN_DATETIME_OFFSET], 10); - const maxdatetimeOffset = parseInt(data[UI.MAX_DATETIME_OFFSET], 10); - const label = data[UI.LABEL] || ''; - const type = data[RDF.TYPE]; + const minValue = data[UI.minValue.value]; + const maxValue = data[UI.maxValue.value]; + const mindateOffset = parseInt(data[UI.minDateOffset.value], 10); + const maxdateOffset = parseInt(data[UI.maxDateOffset.value], 10); + const mindatetimeOffset = parseInt(data[UI.minDatetimeOffset.value], 10); + const maxdatetimeOffset = parseInt(data[UI.maxDatetimeOffset.value], 10); + const label = data[UI.label.value] || ''; + const type = data[RDF.type.value]; const onChange = date => { /* User wants to remove the date */ @@ -42,9 +43,9 @@ export const DateTimePicker = props => { let value; /* assign the format to save based on the type */ - if (type === UITypes.TimeField) value = format(date, DATE_FORMAT.TIME); - if (type === UITypes.DateField) value = format(date, DATE_FORMAT.DATE); - if (type === UITypes.DateTimeField) value = date.toISOString(); + if (type === UI.TimeField.value) value = format(date, DATE_FORMAT.TIME); + if (type === UI.DateField.value) value = format(date, DATE_FORMAT.DATE); + if (type === UI.DateTimeField.value) value = date.toISOString(); const updatedPart = { ...data, value }; updateData(id, updatedPart); @@ -59,7 +60,7 @@ export const DateTimePicker = props => { let dateOptions; /* Transform the incoming values depending on the type of element to display */ - if (type === UITypes.TimeField) { + if (type === UI.TimeField.value) { /* min, max Values are times */ let minHours; let minMinutes; @@ -93,7 +94,7 @@ export const DateTimePicker = props => { }; } - if (type === UITypes.DateTimeField) { + if (type === UI.DateTimeField.value) { /* min, max Values are datetimes and offset is in seconds */ if (!Number.isNaN(mindatetimeOffset)) minDate = addSeconds(new Date(), mindatetimeOffset); if (!Number.isNaN(maxdatetimeOffset)) maxDate = addSeconds(new Date(), maxdatetimeOffset); @@ -105,7 +106,7 @@ export const DateTimePicker = props => { dateOptions = { minDate, maxDate, dateFormat: 'Pp', showTimeSelect: true }; } - if (type === UITypes.DateField) { + if (type === UI.DateField.value) { /* min,maxValue are dates and offset is in days */ if (!Number.isNaN(mindateOffset)) minDate = addDays(new Date(), mindateOffset); if (!Number.isNaN(maxdateOffset)) maxDate = addDays(new Date(), maxdateOffset); diff --git a/src/lib/components/FormModel/children/Form/UI/DateTimePicker/date-time-picker.test.js b/src/lib/components/FormModel/children/Form/UI/DateTimePicker/date-time-picker.test.js index d0eab33b..0663fedf 100644 --- a/src/lib/components/FormModel/children/Form/UI/DateTimePicker/date-time-picker.test.js +++ b/src/lib/components/FormModel/children/Form/UI/DateTimePicker/date-time-picker.test.js @@ -2,7 +2,7 @@ import React from 'react'; import { render, cleanup } from '@testing-library/react'; import { DateTimePicker } from './date-time-picker.component'; import 'jest-dom/extend-expect'; -import { UITypes } from '@constants'; +import { RDF, UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; afterAll(cleanup); @@ -10,7 +10,7 @@ test('Time picker should render', () => { const data = { formObject: {}, value: '11:00:15', - 'rdf:type': UITypes.TimeField + [RDF.type.value]: UI.TimeField.value }; const { container } = render(); @@ -21,7 +21,7 @@ test('Date picker should render', () => { const data = { formObject: {}, value: '2011-06-06', - 'rdf:type': UITypes.DateField + [RDF.type.value]: UI.DateField.value }; const { container } = render(); @@ -32,7 +32,7 @@ test('Datetime picker should render', () => { const data = { formObject: {}, value: '2019-11-29T04:00:00.000Z', - 'rdf:type': UITypes.DateTimeField + [RDF.type.value]: UI.DateTimeField.value }; const { container } = render(); @@ -43,7 +43,7 @@ test('Datetime picker should render with undefined value', () => { const data = { formObject: {}, value: undefined, - 'rdf:type': UITypes.DateTimeField + [RDF.type.value]: UI.DateTimeField.value }; const { container } = render(); @@ -54,7 +54,7 @@ test('Timepicker should render with undefined value', () => { const data = { formObject: {}, value: undefined, - 'rdf:type': UITypes.TimeField + [RDF.type.value]: UI.TimeField.value }; const { container } = render(); @@ -65,7 +65,7 @@ test('Date picker should render with undefined value', () => { const data = { formObject: {}, value: undefined, - 'rdf:type': UITypes.DateField + [RDF.type.value]: UI.DateField.value }; const { container } = render(); diff --git a/src/lib/components/FormModel/children/Form/UI/Decimal/decimal.component.js b/src/lib/components/FormModel/children/Form/UI/Decimal/decimal.component.js index d5fba549..1f2a11a7 100644 --- a/src/lib/components/FormModel/children/Form/UI/Decimal/decimal.component.js +++ b/src/lib/components/FormModel/children/Form/UI/Decimal/decimal.component.js @@ -1,19 +1,20 @@ import React, { useState, useContext } from 'react'; -import { InputTextTypes, UI, RDF } from '@constants'; +import { InputTextTypes } from '@constants'; import { ThemeContext } from '@context'; import { InputGroup } from '../Input/input.styles'; +import { RDF, UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; export const Decimal = props => { const { id, data, updateData } = props; const { theme } = useContext(ThemeContext); const { - [RDF.TYPE]: type, - [UI.LABEL]: label, - [UI.MAX_LENGTH]: maxLength, - [UI.MIN_VALUE]: minValue, - [UI.SIZE]: size, - [UI.VALUE]: initialValue + [RDF.type.value]: type, + [UI.label.value]: label, + [UI.maxLength.value]: maxLength, + [UI.minValue.value]: minValue, + [UI.size.value]: size, + [UI.value.value]: initialValue } = data; const [value, setValue] = useState(initialValue); diff --git a/src/lib/components/FormModel/children/Form/UI/Decimal/decimal.test.js b/src/lib/components/FormModel/children/Form/UI/Decimal/decimal.test.js index 20f310bf..0a4f990e 100644 --- a/src/lib/components/FormModel/children/Form/UI/Decimal/decimal.test.js +++ b/src/lib/components/FormModel/children/Form/UI/Decimal/decimal.test.js @@ -2,8 +2,8 @@ import React from 'react'; import { render, cleanup } from '@testing-library/react'; import { getByText } from '@testing-library/dom'; import { Decimal } from './decimal.component'; -import { UI } from '@constants'; import 'jest-dom/extend-expect'; +import { UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; afterAll(cleanup); @@ -15,7 +15,7 @@ test('Renders without crashing', () => { test('Renders the decimal label', () => { const data = { - [UI.LABEL]: 'decimal label' + [UI.label.value]: 'decimal label' }; const { container } = render(); expect(getByText(container, 'decimal label')).toBeTruthy(); diff --git a/src/lib/components/FormModel/children/Form/UI/DeleteButton/delete-button.test.js b/src/lib/components/FormModel/children/Form/UI/DeleteButton/delete-button.test.js index c48c2257..a05ca939 100644 --- a/src/lib/components/FormModel/children/Form/UI/DeleteButton/delete-button.test.js +++ b/src/lib/components/FormModel/children/Form/UI/DeleteButton/delete-button.test.js @@ -2,7 +2,6 @@ import React from 'react'; import { render, cleanup } from '@testing-library/react'; import { getByText } from '@testing-library/dom'; import { DeleteButton } from './delete-button.component'; -import { UI } from '@constants'; import 'jest-dom/extend-expect'; afterAll(cleanup); diff --git a/src/lib/components/FormModel/children/Form/UI/Email/email.component.js b/src/lib/components/FormModel/children/Form/UI/Email/email.component.js index d282221b..a9132c0f 100644 --- a/src/lib/components/FormModel/children/Form/UI/Email/email.component.js +++ b/src/lib/components/FormModel/children/Form/UI/Email/email.component.js @@ -1,5 +1,7 @@ import React, { useState, useContext } from 'react'; -import { InputTextTypes, UI, RDF } from '@constants'; +import { InputTextTypes } from '@constants'; +import { RDF, UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; + import { ThemeContext } from '@context'; import { InputGroup } from '../Input/input.styles'; @@ -14,12 +16,12 @@ export const Email = (props: Props) => { const { theme } = useContext(ThemeContext); const { - [RDF.TYPE]: type, - [UI.LABEL]: label, - [UI.MAX_LENGTH]: maxLength, - [UI.SIZE]: size, - [UI.PATTERN]: pattern, - [UI.VALUE]: initialValue + [RDF.type.value]: type, + [UI.label.value]: label, + [UI.maxLength.value]: maxLength, + [UI.size.value]: size, + [UI.pattern.value]: pattern, + [UI.value.value]: initialValue } = data; const [value, setValue] = useState(initialValue); diff --git a/src/lib/components/FormModel/children/Form/UI/Email/email.test.js b/src/lib/components/FormModel/children/Form/UI/Email/email.test.js index cb166e95..b75f665d 100644 --- a/src/lib/components/FormModel/children/Form/UI/Email/email.test.js +++ b/src/lib/components/FormModel/children/Form/UI/Email/email.test.js @@ -2,8 +2,8 @@ import React from 'react'; import { render, cleanup } from '@testing-library/react'; import { getByText, getByLabelText } from '@testing-library/dom'; import { Email } from './email.component'; -import { UI } from '@constants'; import 'jest-dom/extend-expect'; +import { UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; afterAll(cleanup); @@ -15,7 +15,7 @@ test('Renders without crashing', () => { test('Renders the label', () => { const data = { - [UI.LABEL]: 'email label' + [UI.label.value]: 'email label' }; const { container } = render(); expect(getByText(container, 'email label')).toBeTruthy(); @@ -23,8 +23,8 @@ test('Renders the label', () => { test('Renders the email address', () => { const data = { - [UI.LABEL]: 'email label', - [UI.VALUE]: 'test@email.com' + [UI.label.value]: 'email label', + [UI.value.value]: 'test@email.com' }; const { container } = render(); expect(getByLabelText(container, 'email label').value).toBe('test@email.com'); diff --git a/src/lib/components/FormModel/children/Form/UI/Float/float.component.js b/src/lib/components/FormModel/children/Form/UI/Float/float.component.js index 5408f03e..ac73e702 100644 --- a/src/lib/components/FormModel/children/Form/UI/Float/float.component.js +++ b/src/lib/components/FormModel/children/Form/UI/Float/float.component.js @@ -1,7 +1,8 @@ import React, { useContext, useState } from 'react'; -import { InputTextTypes, UI, RDF } from '@constants'; +import { InputTextTypes } from '@constants'; import { ThemeContext } from '@context'; import { InputGroup } from '../Input/input.styles'; +import { RDF, UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; type Props = { id: string, @@ -14,12 +15,12 @@ export const Float = (props: Props) => { const { theme } = useContext(ThemeContext); const { - [RDF.TYPE]: type, - [UI.LABEL]: label, - [UI.MAX_LENGTH]: maxLength, - [UI.MIN_VALUE]: minValue, - [UI.SIZE]: size, - [UI.VALUE]: initialValue + [RDF.type.value]: type, + [UI.label.value]: label, + [UI.maxLength.value]: maxLength, + [UI.minValue.value]: minValue, + [UI.size.value]: size, + [UI.value.value]: initialValue } = data; const [value, setValue] = useState(initialValue); diff --git a/src/lib/components/FormModel/children/Form/UI/Float/float.test.js b/src/lib/components/FormModel/children/Form/UI/Float/float.test.js index ad836d65..9aff3a77 100644 --- a/src/lib/components/FormModel/children/Form/UI/Float/float.test.js +++ b/src/lib/components/FormModel/children/Form/UI/Float/float.test.js @@ -2,8 +2,8 @@ import React from 'react'; import { render, cleanup } from '@testing-library/react'; import { getByText, getByLabelText } from '@testing-library/dom'; import { Float } from './float.component'; -import { UI } from '@constants'; import 'jest-dom/extend-expect'; +import { UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; afterAll(cleanup); @@ -15,7 +15,7 @@ test('Renders without crashing', () => { test('Renders the label', () => { const data = { - [UI.LABEL]: 'float label' + [UI.label.value]: 'float label' }; const { container } = render(); expect(getByText(container, 'float label')).toBeTruthy(); @@ -23,8 +23,8 @@ test('Renders the label', () => { test('Renders the float value', () => { const data = { - [UI.VALUE]: '123.43', - [UI.LABEL]: 'float label' + [UI.value.value]: '123.43', + [UI.label.value]: 'float label' }; const { container } = render(); diff --git a/src/lib/components/FormModel/children/Form/UI/Heading/heading.component.js b/src/lib/components/FormModel/children/Form/UI/Heading/heading.component.js index 62d37c61..a496bae8 100644 --- a/src/lib/components/FormModel/children/Form/UI/Heading/heading.component.js +++ b/src/lib/components/FormModel/children/Form/UI/Heading/heading.component.js @@ -1,10 +1,9 @@ import React, { useContext } from 'react'; -import { UI } from '@constants'; -import { DataContext, ThemeContext } from '@context'; +import { UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; export const Heading = props => { const { data } = props; - return

{data[UI.CONTENTS]}

; + return

{data[UI.contents.value]}

; }; diff --git a/src/lib/components/FormModel/children/Form/UI/Heading/heading.test.js b/src/lib/components/FormModel/children/Form/UI/Heading/heading.test.js index 5e182b56..4a55c04c 100644 --- a/src/lib/components/FormModel/children/Form/UI/Heading/heading.test.js +++ b/src/lib/components/FormModel/children/Form/UI/Heading/heading.test.js @@ -2,7 +2,7 @@ import React from 'react'; import { render, cleanup } from '@testing-library/react'; import { getByText } from '@testing-library/dom'; import { Heading } from './heading.component'; -import { UI } from '@constants'; +import { UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; import 'jest-dom/extend-expect'; @@ -16,7 +16,7 @@ test('Renders without crashing', () => { test('Renders the heading', () => { const data = { - [UI.CONTENTS]: 'heading' + [UI.contents.value]: 'heading' }; const { container } = render(); expect(getByText(container, 'heading')).toBeTruthy(); diff --git a/src/lib/components/FormModel/children/Form/UI/Input/input.component.js b/src/lib/components/FormModel/children/Form/UI/Input/input.component.js index 31e9809b..53668302 100644 --- a/src/lib/components/FormModel/children/Form/UI/Input/input.component.js +++ b/src/lib/components/FormModel/children/Form/UI/Input/input.component.js @@ -1,17 +1,18 @@ import React, { useContext, useState } from 'react'; import { InputGroup } from './input.styles'; import { ThemeContext } from '@context'; -import { UI, RDF, InputTextTypes } from '@constants'; +import { InputTextTypes } from '@constants'; +import { RDF, UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; export const Input = props => { const { id, data, updateData } = props; const { theme } = useContext(ThemeContext); const { - [UI.LABEL]: label, - [UI.MAXLENGTH]: maxLength, - [RDF.TYPE]: type, - [UI.VALUE]: initialValue + [UI.label.value]: label, + [UI.maxLength.value]: maxLength, + [RDF.type.value]: type, + [UI.value.value]: initialValue } = data; const [value, setValue] = useState(initialValue); diff --git a/src/lib/components/FormModel/children/Form/UI/Input/input.test.js b/src/lib/components/FormModel/children/Form/UI/Input/input.test.js index 718be139..6b8ffafb 100644 --- a/src/lib/components/FormModel/children/Form/UI/Input/input.test.js +++ b/src/lib/components/FormModel/children/Form/UI/Input/input.test.js @@ -2,8 +2,8 @@ import React from 'react'; import { render, cleanup } from '@testing-library/react'; import { getByText, getByLabelText } from '@testing-library/dom'; import { Input } from './input.component'; -import { UI } from '@constants'; import 'jest-dom/extend-expect'; +import { UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; afterAll(cleanup); @@ -15,7 +15,7 @@ test('Renders without crashing', () => { test('Renders the label', () => { const data = { - [UI.LABEL]: 'input label' + [UI.label.value]: 'input label' }; const { container } = render(); expect(getByText(container, 'input label')).toBeTruthy(); @@ -23,8 +23,8 @@ test('Renders the label', () => { test('Renders the input content', () => { const data = { - [UI.LABEL]: 'input label', - [UI.VALUE]: 'any content' + [UI.label.value]: 'input label', + [UI.value.value]: 'any content' }; const { container } = render(); expect(getByLabelText(container, 'input label').value).toBe('any content'); diff --git a/src/lib/components/FormModel/children/Form/UI/Integer/integer.component.js b/src/lib/components/FormModel/children/Form/UI/Integer/integer.component.js index 3b5c5913..a093d3e6 100644 --- a/src/lib/components/FormModel/children/Form/UI/Integer/integer.component.js +++ b/src/lib/components/FormModel/children/Form/UI/Integer/integer.component.js @@ -1,7 +1,8 @@ import React, { useState, useContext } from 'react'; -import { UI, RDF, InputTextTypes } from '@constants'; +import { InputTextTypes } from '@constants'; import { ThemeContext } from '@context'; import { InputGroup } from '../Input/input.styles'; +import { RDF, UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; type Props = { id: string, @@ -14,11 +15,11 @@ export const Integer = (props: Props) => { const { theme } = useContext(ThemeContext); const { - [RDF.TYPE]: type, - [UI.LABEL]: label, - [UI.MIN_VALUE]: minValue, - [UI.SIZE]: size, - [UI.VALUE]: initialValue + [RDF.type.value]: type, + [UI.label.value]: label, + [UI.minValue.value]: minValue, + [UI.size.value]: size, + [UI.value.value]: initialValue } = data; const [value, setValue] = useState(initialValue); diff --git a/src/lib/components/FormModel/children/Form/UI/Integer/integer.test.js b/src/lib/components/FormModel/children/Form/UI/Integer/integer.test.js index b5ac3198..15629dfe 100644 --- a/src/lib/components/FormModel/children/Form/UI/Integer/integer.test.js +++ b/src/lib/components/FormModel/children/Form/UI/Integer/integer.test.js @@ -2,8 +2,8 @@ import React from 'react'; import { render, cleanup } from '@testing-library/react'; import { getByText, getByLabelText } from '@testing-library/dom'; import { Integer } from './integer.component'; -import { UI } from '@constants'; import 'jest-dom/extend-expect'; +import { UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; afterAll(cleanup); @@ -15,7 +15,7 @@ test('Renders without crashing', () => { test('Renders the label', () => { const data = { - [UI.LABEL]: 'integer label' + [UI.label.value]: 'integer label' }; const { container } = render(); expect(getByText(container, 'integer label')).toBeTruthy(); @@ -23,8 +23,8 @@ test('Renders the label', () => { test('Renders the integer value', () => { const data = { - [UI.LABEL]: 'integer label', - [UI.VALUE]: '123' + [UI.label.value]: 'integer label', + [UI.value.value]: '123' }; const { container } = render(); expect(getByLabelText(container, 'integer label').value).toBe('123'); diff --git a/src/lib/components/FormModel/children/Form/UI/Phone/phone.component.js b/src/lib/components/FormModel/children/Form/UI/Phone/phone.component.js index ac1aad33..5c2660fa 100644 --- a/src/lib/components/FormModel/children/Form/UI/Phone/phone.component.js +++ b/src/lib/components/FormModel/children/Form/UI/Phone/phone.component.js @@ -1,7 +1,8 @@ import React, { useState, useContext } from 'react'; -import { InputTextTypes, UI, RDF } from '@constants'; +import { InputTextTypes } from '@constants'; import { ThemeContext } from '@context'; import { InputGroup } from '../Input/input.styles'; +import { RDF, UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; type Props = { id: string, @@ -14,12 +15,12 @@ export const Phone = (props: Props) => { const { theme } = useContext(ThemeContext); const { - [RDF.TYPE]: type, - [UI.LABEL]: label, - [UI.MAX_LENGTH]: maxLength, - [UI.SIZE]: size, - [UI.PATTERN]: pattern, - [UI.VALUE]: initialValue + [RDF.type.value]: type, + [UI.label.value]: label, + [UI.maxLength.value]: maxLength, + [UI.size.value]: size, + [UI.pattern.value]: pattern, + [UI.value.value]: initialValue } = data; const [value, setValue] = useState(initialValue); diff --git a/src/lib/components/FormModel/children/Form/UI/Phone/phone.test.js b/src/lib/components/FormModel/children/Form/UI/Phone/phone.test.js index 32073baa..940047ca 100644 --- a/src/lib/components/FormModel/children/Form/UI/Phone/phone.test.js +++ b/src/lib/components/FormModel/children/Form/UI/Phone/phone.test.js @@ -2,8 +2,8 @@ import React from 'react'; import { render, cleanup } from '@testing-library/react'; import { getByText, getByLabelText } from '@testing-library/dom'; import { Phone } from './phone.component'; -import { UI } from '@constants'; import 'jest-dom/extend-expect'; +import { UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; afterAll(cleanup); @@ -15,7 +15,7 @@ test('Renders without crashing', () => { test('Renders the label', () => { const data = { - [UI.LABEL]: 'Phone label' + [UI.label.value]: 'Phone label' }; const { container } = render(); expect(getByText(container, 'Phone label')).toBeTruthy(); @@ -23,8 +23,8 @@ test('Renders the label', () => { test('Renders the Phone address', () => { const data = { - [UI.LABEL]: 'Phone label', - [UI.VALUE]: '(555) 555-5555' + [UI.label.value]: 'Phone label', + [UI.value.value]: '(555) 555-5555' }; const { container } = render(); expect(getByLabelText(container, 'Phone label').value).toBe('(555) 555-5555'); diff --git a/src/lib/components/FormModel/children/Form/UI/RadioButton/radio-button.component.js b/src/lib/components/FormModel/children/Form/UI/RadioButton/radio-button.component.js index 8ea57f3f..2169cb24 100644 --- a/src/lib/components/FormModel/children/Form/UI/RadioButton/radio-button.component.js +++ b/src/lib/components/FormModel/children/Form/UI/RadioButton/radio-button.component.js @@ -1,6 +1,6 @@ import React, { useContext, useState } from 'react'; import { ThemeContext } from '@context'; -import { UI } from '@constants'; +import { UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; type Props = { id: string, @@ -12,7 +12,7 @@ export const RadioButton = (props: Props) => { const { id, data, updateData } = props; const { theme } = useContext(ThemeContext); - const { [UI.LABEL]: label, [UI.VALUE]: initialValue } = data; + const { [UI.label.value]: label, [UI.value.value]: initialValue } = data; const [value, setValue] = useState(initialValue); diff --git a/src/lib/components/FormModel/children/Form/UI/RadioButton/radio-button.test.js b/src/lib/components/FormModel/children/Form/UI/RadioButton/radio-button.test.js index a2f91793..2a5c4db5 100644 --- a/src/lib/components/FormModel/children/Form/UI/RadioButton/radio-button.test.js +++ b/src/lib/components/FormModel/children/Form/UI/RadioButton/radio-button.test.js @@ -1,9 +1,9 @@ import React from 'react'; import { render, cleanup } from '@testing-library/react'; import { getByLabelText } from '@testing-library/dom'; -import { UI } from '@constants'; import { RadioButton } from './radio-button.component'; import 'jest-dom/extend-expect'; +import { UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; afterAll(cleanup); @@ -14,7 +14,7 @@ test('should render without crashing', () => { test('should render a label', () => { const data = { - [UI.LABEL]: '123' + [UI.label.value]: '123' }; const { container } = render(); @@ -23,8 +23,8 @@ test('should render a label', () => { test('should render a selected radio button', () => { const data = { - [UI.LABEL]: '123', - [UI.VALUE]: true + [UI.label.value]: '123', + [UI.value.value]: true }; const { container } = render(); diff --git a/src/lib/components/FormModel/children/Form/UI/TextArea/text-area.component.js b/src/lib/components/FormModel/children/Form/UI/TextArea/text-area.component.js index 1ca58fb9..06b31ea5 100644 --- a/src/lib/components/FormModel/children/Form/UI/TextArea/text-area.component.js +++ b/src/lib/components/FormModel/children/Form/UI/TextArea/text-area.component.js @@ -1,7 +1,7 @@ import React, { useState, useContext } from 'react'; import { ThemeContext } from '@context'; -import { UI } from '@constants'; import { TextAreaGroup } from './text-area.styles'; +import { UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; type Props = { id: string, @@ -13,7 +13,11 @@ export const TextArea = (props: Props) => { const { id, data, updateData } = props; const { theme } = useContext(ThemeContext); - const { [UI.LABEL]: label, [UI.MAX_LENGTH]: maxLength, [UI.VALUE]: initialValue } = data; + const { + [UI.label.value]: label, + [UI.maxLength.value]: maxLength, + [UI.value.value]: initialValue + } = data; const [value, setValue] = useState(initialValue); diff --git a/src/lib/components/FormModel/children/Form/UI/TextArea/text-area.test.js b/src/lib/components/FormModel/children/Form/UI/TextArea/text-area.test.js index a6f02239..21819be6 100644 --- a/src/lib/components/FormModel/children/Form/UI/TextArea/text-area.test.js +++ b/src/lib/components/FormModel/children/Form/UI/TextArea/text-area.test.js @@ -2,8 +2,8 @@ import React from 'react'; import { render, cleanup } from '@testing-library/react'; import { getByText, getByLabelText } from '@testing-library/dom'; import { TextArea } from './text-area.component'; -import { UI } from '@constants'; import 'jest-dom/extend-expect'; +import { UI } from '@pmcb55/lit-generated-vocab-common-rdfext'; afterAll(cleanup); @@ -15,7 +15,7 @@ test('Renders without crashing', () => { test('Renders the label', () => { const data = { - [UI.LABEL]: 'text area label' + [UI.label.value]: 'text area label' }; const { container } = render(