diff --git a/packages/person-select/rollup.config.js b/packages/person-select/rollup.config.js index 7ad95cdbcd51f2fa17a0cde19131c2cd298a3218..0e67955dac65aed3c5889feb7d32e3d3d36f12be 100644 --- a/packages/person-select/rollup.config.js +++ b/packages/person-select/rollup.config.js @@ -20,7 +20,9 @@ export default { plugins: [ multiEntry(), resolve(), - commonjs(), + commonjs({ + include: 'node_modules/**' + }), json(), replace({ "process.env.BUILD": '"' + build + '"', diff --git a/packages/person-select/src/i18n/de/select2.js b/packages/person-select/src/i18n/de/select2.js index b4711db2f1959fe914dfc81132f238997a718c5b..45d2c8b347b69b88dd2274e9d4e56bf4f5260aa9 100644 --- a/packages/person-select/src/i18n/de/select2.js +++ b/packages/person-select/src/i18n/de/select2.js @@ -1,7 +1,7 @@ /** * Content from https://github.com/select2/select2/blob/master/src/js/select2/i18n/de.js */ -module.exports = function () { +export default function () { // German return { errorLoading: function () { @@ -43,4 +43,4 @@ module.exports = function () { return 'Entferne alle Gegenstände'; } }; -}; \ No newline at end of file +}; diff --git a/packages/person-select/src/i18n/en/select2.js b/packages/person-select/src/i18n/en/select2.js index f644ab736bf6991e1b6c23ff80e78e67f57871c0..31578425021686e0127e471c4809c1556e93b51e 100644 --- a/packages/person-select/src/i18n/en/select2.js +++ b/packages/person-select/src/i18n/en/select2.js @@ -1,7 +1,7 @@ /** * Content from https://github.com/select2/select2/blob/master/src/js/select2/i18n/en.js */ -module.exports = function () { +export default function () { // English return { errorLoading: function () { @@ -47,4 +47,4 @@ module.exports = function () { return 'Remove all items'; } }; -}; \ No newline at end of file +}; diff --git a/packages/person-select/src/person-select-demo.js b/packages/person-select/src/person-select-demo.js index 01b4183b38c5c077619cbb71f4fd6484d17bda10..c08f53ae22303e7e98a7422928e6f628cc5e23d2 100644 --- a/packages/person-select/src/person-select-demo.js +++ b/packages/person-select/src/person-select-demo.js @@ -1,4 +1,4 @@ -import utils from './utils.js'; +import {setting, getAPiUrl} from './utils.js'; import {i18n} from './i18n.js'; import {html, LitElement} from 'lit-element'; import './person-select.js'; @@ -35,14 +35,14 @@ class PersonSelectDemo extends LitElement { <h1 class="title">Person-Select-Demo</h1> </div> <div class="container"> - <vpu-auth lang="${this.lang}" client-id="${utils.setting('keyCloakClientId')}" load-person force-login></vpu-auth> + <vpu-auth lang="${this.lang}" client-id="${setting('keyCloakClientId')}" load-person force-login></vpu-auth> </div> <div class="container"> <form> <div class="field"> <label class="label">Person</label> <div class="control"> - <vpu-person-select lang="${this.lang}" entry-point-url="${utils.getAPiUrl()}"></vpu-person-select> + <vpu-person-select lang="${this.lang}" entry-point-url="${getAPiUrl()}"></vpu-person-select> </div> </div> </form> diff --git a/packages/person-select/src/person-select.js b/packages/person-select/src/person-select.js index 434df8986c503c70f72df32e50831ed0321bcd57..a1af59531eab1c717fceda7a1872fd6b3a4f5853 100644 --- a/packages/person-select/src/person-select.js +++ b/packages/person-select/src/person-select.js @@ -1,5 +1,5 @@ import $ from 'jquery'; -import utils from './utils.js'; +import {getAPiUrl, getAssetURL, findObjectInApiResults} from './utils.js'; import select2 from 'select2'; import select2LangDe from './i18n/de/select2' import select2LangEn from './i18n/en/select2' @@ -16,7 +16,7 @@ class PersonSelect extends VPULitElementJQuery { constructor() { super(); this.lang = 'de'; - this.entryPointUrl = utils.getAPiUrl(); + this.entryPointUrl = getAPiUrl(); this.jsonld = null; this.$select = null; } @@ -105,7 +105,7 @@ class PersonSelect extends VPULitElementJQuery { $this.attr("value", identifier); $this.val(identifier); - const object = utils.findObjectInApiResults(identifier, lastResult); + const object = findObjectInApiResults(identifier, lastResult); $this.attr("data-object", JSON.stringify(object)); // fire a change event @@ -146,7 +146,7 @@ class PersonSelect extends VPULitElementJQuery { } render() { - const select2CSS = utils.getAssetURL('select2/css/select2.min.css'); + const select2CSS = getAssetURL('select2/css/select2.min.css'); return html` <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.5/css/bulma.min.css"> diff --git a/packages/person-select/src/utils.js b/packages/person-select/src/utils.js index 82095b3f075f9c413cb0fd0e69e75bf2bdfde920..a1365827a5636b0c3123e8b5fc0f7f24a089b61c 100644 --- a/packages/person-select/src/utils.js +++ b/packages/person-select/src/utils.js @@ -1,46 +1,44 @@ -const vars = require("./vars"); +import vars from './vars.js'; -module.exports = { - getAssetURL: (path) => { - const elm = document.getElementById('vpu-library-shelving-wc-src'); - if (!elm) - return path; - const url = elm.src; - // newer browsers only - //var url = import.meta.url; - return new URL(path, url).href; - }, +export const getAssetURL = (path) => { + const elm = document.getElementById('vpu-library-shelving-wc-src'); + if (!elm) + return path; + const url = elm.src; + // newer browsers only + //var url = import.meta.url; + return new URL(path, url).href; +} - getAPiUrl: function(path = "", withPrefix = true) { - return vars.apiBaseUrl + (withPrefix ? vars.apiUrlPrefix : "") + path; - }, +export const getAPiUrl = function(path = "", withPrefix = true) { + return vars.apiBaseUrl + (withPrefix ? vars.apiUrlPrefix : "") + path; +} - /** - * Finds an object in a JSON result by identifier - * - * @param identifier - * @param results - * @param identifierAttribute - */ - findObjectInApiResults: (identifier, results, identifierAttribute = "@id") => { - const members = results["hydra:member"]; +/** + * Finds an object in a JSON result by identifier + * + * @param identifier + * @param results + * @param identifierAttribute + */ +export const findObjectInApiResults = (identifier, results, identifierAttribute = "@id") => { + const members = results["hydra:member"]; - if (members === undefined) { - return; - } + if (members === undefined) { + return; + } - for (const object of members){ - if (object[identifierAttribute] === identifier) { - return object; - } + for (const object of members){ + if (object[identifierAttribute] === identifier) { + return object; } - }, + } +} - /** - * Reads a setting - * - * @param key - * @returns {*} - */ - setting: (key) => vars[key] -}; +/** + * Reads a setting + * + * @param key + * @returns {*} + */ +export const setting = (key) => vars[key] diff --git a/packages/person-select/src/vars.js b/packages/person-select/src/vars.js index d34d7b63f23d553f51165f12d8cffa61c87865f1..0e25edd8790c49edf590d995c992267aa2f11926 100644 --- a/packages/person-select/src/vars.js +++ b/packages/person-select/src/vars.js @@ -1,7 +1,8 @@ +var config; switch(process.env.BUILD) { case "development": - module.exports = { + config = { apiBaseUrl: 'https://mw-dev.tugraz.at', apiUrlPrefix: '', keyCloakClientId: 'auth-dev-mw-frontend', @@ -9,14 +10,14 @@ switch(process.env.BUILD) { break; case "production": - module.exports = { + config = { apiBaseUrl: 'https://mw.tugraz.at', apiUrlPrefix: '', keyCloakClientId: 'auth-prod-mw-frontend', }; break; case "demo": - module.exports = { + config = { apiBaseUrl: 'https://api-demo.tugraz.at', apiUrlPrefix: '', keyCloakClientId: 'auth-dev-mw-frontend', @@ -24,9 +25,11 @@ switch(process.env.BUILD) { break; case "local": default: - module.exports = { + config = { apiBaseUrl: 'http://127.0.0.1:8000', apiUrlPrefix: '', keyCloakClientId: 'auth-dev-mw-frontend-local', }; } + +export default config; diff --git a/packages/person-select/test/unit.js b/packages/person-select/test/unit.js index 6f013090b26c10a69f75e1e18a9d86594c1520e5..e396c5eae01d2f2243ac733e074d4b926016d9f0 100644 --- a/packages/person-select/test/unit.js +++ b/packages/person-select/test/unit.js @@ -1,4 +1,5 @@ import '../src/person-select'; +import '../src/demo'; describe('vpu-person-select basics', () => { let node; @@ -17,3 +18,21 @@ describe('vpu-person-select basics', () => { expect(node).to.have.property('shadowRoot'); }); }); + +describe('vpu-person-select-demo basics', () => { + let node; + + beforeEach(async () => { + node = document.createElement('vpu-person-select-demo'); + document.body.appendChild(node); + await node.updateComplete; + }); + + afterEach(() => { + node.remove(); + }); + + it('should render', () => { + expect(node).to.have.property('shadowRoot'); + }); +}); diff --git a/packages/person-select/vendor/auth b/packages/person-select/vendor/auth index 0daf533bbdca1bcb5b8f5d16bb258b86bdb59242..2752cf0ce9d1710792cc939f8b26f48641693516 160000 --- a/packages/person-select/vendor/auth +++ b/packages/person-select/vendor/auth @@ -1 +1 @@ -Subproject commit 0daf533bbdca1bcb5b8f5d16bb258b86bdb59242 +Subproject commit 2752cf0ce9d1710792cc939f8b26f48641693516 diff --git a/packages/person-select/vendor/common b/packages/person-select/vendor/common index 68e0a4f1f1a3ef6e05aca5216bf8684578ec2229..b30eaa6475ccc65b5f99d2ead86ddbe2b8e015a7 160000 --- a/packages/person-select/vendor/common +++ b/packages/person-select/vendor/common @@ -1 +1 @@ -Subproject commit 68e0a4f1f1a3ef6e05aca5216bf8684578ec2229 +Subproject commit b30eaa6475ccc65b5f99d2ead86ddbe2b8e015a7