diff --git a/index.html b/index.html index 1b65b9e643491ffb7f90d7b5471b098b8c4fc8f8..c31b98c2c5a2e71eb94dfffa4051823609b283c7 100644 --- a/index.html +++ b/index.html @@ -18,28 +18,39 @@ <script type="module" src="./src/index.js"></script> </head> <body> - <ul> - <li> - <solid-link next="regenerative-produce-portal-producers-list"> - <icon-mdi-account-box></icon-mdi-account-box> Producers List - </solid-link> - </li> - <li> - <solid-link next="regenerative-produce-portal-products-list"> - Products List - </solid-link> - </li> - <li> - <solid-link next="regenerative-produce-portal-producer-details" data-src="http://localhost:5173/api/producer/rec2aFRu0H3Czf2IG.json"> - Producer Details - </solid-link> - </li> - <li> - <solid-link next="regenerative-produce-portal-product-details" data-src="http://localhost:5173/api/product/rec07CR18S2eerIyc.json"> - Product Details - </solid-link> - </li> - </ul> + <nav> + <div class="nav-wrapper"> + <a href="#" class="brand-logo">Examples</a> + <ul class="right"> + <li> + <solid-link next="regenerative-produce-portal-producers-list"> + <a><icon-mdi-home-silo></icon-mdi-home-silo> Producers List</a> + </solid-link> + </li> + <li> + <solid-link next="regenerative-produce-portal-products-list"> + <a><icon-mdi-food-apple></icon-mdi-food-apple> Products List</a> + </solid-link> + </li> + <li> + <solid-link + next="regenerative-produce-portal-producer-details" + data-src="http://localhost:5173/api/producer/recXJrzz9mquDaCv7.json" + > + <a><icon-mdi-home-silo></icon-mdi-home-silo> Producer Details</a> + </solid-link> + </li> + <li> + <solid-link + next="regenerative-produce-portal-product-details" + data-src="http://localhost:5173/api/product/rec07CR18S2eerIyc.json" + > + <a><icon-mdi-food-apple></icon-mdi-food-apple> Product Details</a> + </solid-link> + </li> + </ul> + </div> + </nav> <solid-ofn-rpp producers-src="http://localhost:5173/api/producers.json" products-src="http://localhost:5173/api/products.json" diff --git a/package-lock.json b/package-lock.json index 7f41ae329286271cdd37843e2c0d25046e1d81c9..5ca671da367dbfcf430d83c61030412001f48cfb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,9 +9,11 @@ "version": "0.1.0", "license": "MIT", "dependencies": { + "@fontsource/open-sans": "^5.0.20", "@iconify-json/mdi": "^1.1.64", "autoprefixer": "^10.4.16", "cssnano": "^6.0.2", + "materialize-css": "^1.0.0-rc.2", "postcss": "^8.4.32", "postcss-preset-env": "^9.3.0", "postcss-scss": "^4.0.9", @@ -1230,6 +1232,11 @@ "node": ">=12" } }, + "node_modules/@fontsource/open-sans": { + "version": "5.0.20", + "resolved": "https://registry.npmjs.org/@fontsource/open-sans/-/open-sans-5.0.20.tgz", + "integrity": "sha512-Tgdqmp9QX8YZd5TO+rEv5n5cZkTaDf0I0eHUHMe3xKxUgGR/9uKS7VYL+kiVZfMNZ/8EyMLwzcNFWVsNG6nZAg==" + }, "node_modules/@iconify-json/mdi": { "version": "1.1.64", "resolved": "https://registry.npmjs.org/@iconify-json/mdi/-/mdi-1.1.64.tgz", @@ -2175,6 +2182,11 @@ "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==" }, + "node_modules/materialize-css": { + "version": "1.0.0-rc.2", + "resolved": "https://registry.npmjs.org/materialize-css/-/materialize-css-1.0.0-rc.2.tgz", + "integrity": "sha512-FuQmSyq4Qv0ov7A2qXw0E6/jbQzSWx2P1pg2/XQDYTkkSc/GyiFAxu3fw9zgShwuTvyumEiw5jkxQWT9siqMBQ==" + }, "node_modules/mdn-data": { "version": "2.0.30", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", diff --git a/package.json b/package.json index 3aca86b5afc5f156da0bf04988620ad234d7e9ad..e9546c5e9030b410fb234d8b673ff067af1ef1b7 100644 --- a/package.json +++ b/package.json @@ -54,9 +54,11 @@ "last 2 Chrome versions" ], "dependencies": { + "@fontsource/open-sans": "^5.0.20", "@iconify-json/mdi": "^1.1.64", "autoprefixer": "^10.4.16", "cssnano": "^6.0.2", + "materialize-css": "^1.0.0-rc.2", "postcss": "^8.4.32", "postcss-preset-env": "^9.3.0", "postcss-scss": "^4.0.9", diff --git a/public/api/producer/rec2aFRu0H3Czf2IG.json b/public/api/producer/rec2aFRu0H3Czf2IG.json index 682bf2827bc5234ee22132aa7da5c0bccc25e7d8..7a62bf336185c71d27ab9805bcab8d9c8e8c4a5a 100644 --- a/public/api/producer/rec2aFRu0H3Czf2IG.json +++ b/public/api/producer/rec2aFRu0H3Czf2IG.json @@ -1,7 +1,7 @@ { "@id": "http://localhost:5173/api/producer/rec2aFRu0H3Czf2IG.json", "@type": "dfc-b:Enterprise", - "dfc-b:hasAddress": "http://localhost:5173/api/addresses/rec2aFRu0H3Czf2IG.json", + "dfc-b:hasAddress": {"@id":"http://localhost:5173/api/addresses/rec2aFRu0H3Czf2IG.json"}, "dfc-b:websitePage": "grazedandgrown.com.au", "dfc-b:hasSocialMedia": { "@id": "#", diff --git a/public/api/producer/rec64TU56RNMKfG8d.json b/public/api/producer/rec64TU56RNMKfG8d.json index 10bc81169e266ffb5ff2ef81d452885ac523ef65..a10ddf1d76720e826683bd9c7ba43369a1072bde 100644 --- a/public/api/producer/rec64TU56RNMKfG8d.json +++ b/public/api/producer/rec64TU56RNMKfG8d.json @@ -1,7 +1,7 @@ { "@id": "http://localhost:5173/api/producer/rec64TU56RNMKfG8d.json", "@type": "dfc-b:Enterprise", - "dfc-b:hasAddress": "http://localhost:5173/api/addresses/rec64TU56RNMKfG8d.json", + "dfc-b:hasAddress": {"@id":"http://localhost:5173/api/addresses/rec64TU56RNMKfG8d.json"}, "dfc-b:email": "hello@commongroundproject.com.au", "dfc-b:websitePage": "www.commongroundproject.com.au", "dfc-b:hasSocialMedia": { diff --git a/public/api/producer/recALjpHmGmqsXpaW.json b/public/api/producer/recALjpHmGmqsXpaW.json index 03cb693a2424299234c8e684c7b9aaea4568c1b5..42f87db4a989b6332f463d7e5e819b6f4ab4be78 100644 --- a/public/api/producer/recALjpHmGmqsXpaW.json +++ b/public/api/producer/recALjpHmGmqsXpaW.json @@ -1,7 +1,7 @@ { "@id": "http://localhost:5173/api/producer/recALjpHmGmqsXpaW.json", "@type": "dfc-b:Enterprise", - "dfc-b:hasAddress": "http://localhost:5173/api/addresses/recALjpHmGmqsXpaW.json", + "dfc-b:hasAddress": {"@id":"http://localhost:5173/api/addresses/recALjpHmGmqsXpaW.json"}, "dfc-b:websitePage": "", "dfc-b:hasSocialMedia": { "@id": "#", diff --git a/public/api/producer/recHYLgKXBhtgemfb.json b/public/api/producer/recHYLgKXBhtgemfb.json index b8ecf5ce673415a2950028093205545fa5675380..4abf82046e1593808146128191ad2913f8537ef9 100644 --- a/public/api/producer/recHYLgKXBhtgemfb.json +++ b/public/api/producer/recHYLgKXBhtgemfb.json @@ -1,7 +1,7 @@ { "@id": "http://localhost:5173/api/producer/recHYLgKXBhtgemfb.json", "@type": "dfc-b:Enterprise", - "dfc-b:hasAddress": "http://localhost:5173/api/addresses/recHYLgKXBhtgemfb.json", + "dfc-b:hasAddress": {"@id":"http://localhost:5173/api/addresses/recHYLgKXBhtgemfb.json"}, "dfc-b:websitePage": "www.handfortheland.com", "dfc-b:hasSocialMedia": { "@id": "#", diff --git a/public/api/producer/recIwhSu2iJRTJdIn.json b/public/api/producer/recIwhSu2iJRTJdIn.json index 6361fec38634bbfd66e6ba0375057256f38ddcc4..cde66e21ade29dcf412e006f684ced146415f7a1 100644 --- a/public/api/producer/recIwhSu2iJRTJdIn.json +++ b/public/api/producer/recIwhSu2iJRTJdIn.json @@ -1,7 +1,7 @@ { "@id": "http://localhost:5173/api/producer/recIwhSu2iJRTJdIn.json", "@type": "dfc-b:Enterprise", - "dfc-b:hasAddress": "http://localhost:5173/api/addresses/recIwhSu2iJRTJdIn.json", + "dfc-b:hasAddress": {"@id":"http://localhost:5173/api/addresses/recIwhSu2iJRTJdIn.json"}, "dfc-b:websitePage": "thestillroom.com.au", "dfc-b:hasSocialMedia": { "@id": "#", diff --git a/public/api/producer/recSrhBnWnzkFRS3y.json b/public/api/producer/recSrhBnWnzkFRS3y.json index 597150c1cdd46589de6896c47b6f902066fe4929..5281be44f7f182c916ad7fe2a5e5e3b1b8e9e18f 100644 --- a/public/api/producer/recSrhBnWnzkFRS3y.json +++ b/public/api/producer/recSrhBnWnzkFRS3y.json @@ -1,7 +1,7 @@ { "@id": "http://localhost:5173/api/producer/recSrhBnWnzkFRS3y.json", "@type": "dfc-b:Enterprise", - "dfc-b:hasAddress": "http://localhost:5173/api/addresses/recSrhBnWnzkFRS3y.json", + "dfc-b:hasAddress": {"@id":"http://localhost:5173/api/addresses/recSrhBnWnzkFRS3y.json"}, "dfc-b:hasSocialMedia": { "@id": "#", "@type": "ldp:Container", diff --git a/public/api/producer/recVIrkdXWbRzs8IQ.json b/public/api/producer/recVIrkdXWbRzs8IQ.json index af54bb727bad26d8d94b877ef5d06f6e5e2318d3..6eed0570a2971d825591ced50fe0504e106e8e5a 100644 --- a/public/api/producer/recVIrkdXWbRzs8IQ.json +++ b/public/api/producer/recVIrkdXWbRzs8IQ.json @@ -1,7 +1,7 @@ { "@id": "http://localhost:5173/api/producer/recVIrkdXWbRzs8IQ.json", "@type": "dfc-b:Enterprise", - "dfc-b:hasAddress": "http://localhost:5173/api/addresses/recVIrkdXWbRzs8IQ.json", + "dfc-b:hasAddress": {"@id":"http://localhost:5173/api/addresses/recVIrkdXWbRzs8IQ.json"}, "dfc-b:hasPhoneNumber": "0427229322", "dfc-b:email": "geoff@geoffthechef.com.au", "dfc-b:websitePage": "", diff --git a/public/api/producer/recW1epOZsVUhJvRI.json b/public/api/producer/recW1epOZsVUhJvRI.json index 84bf9f2f98f5dad2d9ccf9abc450d1598acc6045..5c5151cd8a01fb6df8de613fa48fe1a9552b749e 100644 --- a/public/api/producer/recW1epOZsVUhJvRI.json +++ b/public/api/producer/recW1epOZsVUhJvRI.json @@ -1,7 +1,7 @@ { "@id": "http://localhost:5173/api/producer/recW1epOZsVUhJvRI.json", "@type": "dfc-b:Enterprise", - "dfc-b:hasAddress": "http://localhost:5173/api/addresses/recW1epOZsVUhJvRI.json", + "dfc-b:hasAddress": {"@id":"http://localhost:5173/api/addresses/recW1epOZsVUhJvRI.json"}, "dfc-b:email": "murrnong@gmail.com", "dfc-b:websitePage": "www.murrnong.com", "dfc-b:hasSocialMedia": { diff --git a/public/api/producer/recXJrzz9mquDaCv7.json b/public/api/producer/recXJrzz9mquDaCv7.json index 04da8a3aaeacb1f4dcb1005ce30868d2b8ad32aa..2794f011118867427381fdb3c02b415f7f394fc4 100644 --- a/public/api/producer/recXJrzz9mquDaCv7.json +++ b/public/api/producer/recXJrzz9mquDaCv7.json @@ -1,7 +1,7 @@ { "@id": "http://localhost:5173/api/producer/recXJrzz9mquDaCv7.json", "@type": "dfc-b:Enterprise", - "dfc-b:hasAddress": "http://localhost:5173/api/addresses/recXJrzz9mquDaCv7.json", + "dfc-b:hasAddress": {"@id":"http://localhost:5173/api/addresses/recXJrzz9mquDaCv7.json"}, "dfc-b:email": "hello@farmingforgood.com.au", "dfc-b:websitePage": "farmingforgood.com.au", "dfc-b:hasSocialMedia": { diff --git a/public/api/producer/recaaryaB0oaTKamH.json b/public/api/producer/recaaryaB0oaTKamH.json index 17a39a739c5b892e428d73cfb0334133e5b1defc..06b63a6ebc280a6674b94c7646d7f3902d0decbe 100644 --- a/public/api/producer/recaaryaB0oaTKamH.json +++ b/public/api/producer/recaaryaB0oaTKamH.json @@ -1,7 +1,7 @@ { "@id": "http://localhost:5173/api/producer/recaaryaB0oaTKamH.json", "@type": "dfc-b:Enterprise", - "dfc-b:hasAddress": "http://localhost:5173/api/addresses/recaaryaB0oaTKamH.json", + "dfc-b:hasAddress": {"@id":"http://localhost:5173/api/addresses/recaaryaB0oaTKamH.json"}, "dfc-b:hasSocialMedia": { "@id": "#", "@type": "ldp:Container", diff --git a/public/api/producer/recjBYlXskXtilPBC.json b/public/api/producer/recjBYlXskXtilPBC.json index 62917975cf4ce40f79582071a5bfbb51856133e5..99daabbe6f8c6a8a63de693819e97dc2582f4315 100644 --- a/public/api/producer/recjBYlXskXtilPBC.json +++ b/public/api/producer/recjBYlXskXtilPBC.json @@ -1,7 +1,7 @@ { "@id": "http://localhost:5173/api/producer/recjBYlXskXtilPBC.json", "@type": "dfc-b:Enterprise", - "dfc-b:hasAddress": "http://localhost:5173/api/addresses/recjBYlXskXtilPBC.json", + "dfc-b:hasAddress": {"@id":"http://localhost:5173/api/addresses/recjBYlXskXtilPBC.json"}, "dfc-b:email": "kirsten.larsen76+farm@gmail.com", "dfc-b:websitePage": "", "dfc-b:hasSocialMedia": { diff --git a/public/api/producer/recrIQDQMQpTODtjB.json b/public/api/producer/recrIQDQMQpTODtjB.json index 6183258abe3364e6a73c830cfe0430368b8779dc..2973557fde119363811f138c5d499b9b658a798f 100644 --- a/public/api/producer/recrIQDQMQpTODtjB.json +++ b/public/api/producer/recrIQDQMQpTODtjB.json @@ -1,7 +1,7 @@ { "@id": "http://localhost:5173/api/producer/recrIQDQMQpTODtjB.json", "@type": "dfc-b:Enterprise", - "dfc-b:hasAddress": "http://localhost:5173/api/addresses/recrIQDQMQpTODtjB.json", + "dfc-b:hasAddress": {"@id":"http://localhost:5173/api/addresses/recrIQDQMQpTODtjB.json"}, "dfc-b:websitePage": "reedycreekprovidore.au", "dfc-b:hasSocialMedia": { "@id": "#", diff --git a/public/api/producer/rectRZksVDjV0Pdlk.json b/public/api/producer/rectRZksVDjV0Pdlk.json index dee7915963753b9edeb97dc12474a8afa3d8df47..868b0943ef7658536132f01092726be006d0203b 100644 --- a/public/api/producer/rectRZksVDjV0Pdlk.json +++ b/public/api/producer/rectRZksVDjV0Pdlk.json @@ -1,7 +1,7 @@ { "@id": "http://localhost:5173/api/producer/rectRZksVDjV0Pdlk.json", "@type": "dfc-b:Enterprise", - "dfc-b:hasAddress": "http://localhost:5173/api/addresses/rectRZksVDjV0Pdlk.json", + "dfc-b:hasAddress": {"@id":"http://localhost:5173/api/addresses/rectRZksVDjV0Pdlk.json"}, "dfc-b:websitePage": "www.cockatoocreekfarm.com.au", "dfc-b:hasSocialMedia": { "@id": "#", diff --git a/public/api/producer/reczDHQn85Y3fvHKK.json b/public/api/producer/reczDHQn85Y3fvHKK.json index ec59fda75eb68ddaf8b57fdbec4d4c51f3865b0f..d8264dc14642b4a79312cb004bb3abdc2c3933f4 100644 --- a/public/api/producer/reczDHQn85Y3fvHKK.json +++ b/public/api/producer/reczDHQn85Y3fvHKK.json @@ -1,7 +1,7 @@ { "@id": "http://localhost:5173/api/producer/reczDHQn85Y3fvHKK.json", "@type": "dfc-b:Enterprise", - "dfc-b:hasAddress": "http://localhost:5173/api/addresses/reczDHQn85Y3fvHKK.json", + "dfc-b:hasAddress": {"@id":"http://localhost:5173/api/addresses/reczDHQn85Y3fvHKK.json"}, "dfc-b:websitePage": "www.bellobeef.com.au", "dfc-b:hasSocialMedia": { "@id": "#", diff --git a/src/solid-ofn-rpp.js b/src/solid-ofn-rpp.js index a7388b4fe51958b0e4af364d65a64f6469122ffd..ab77bf61bc1487e7d883b89d0d6c174af4a92f4a 100644 --- a/src/solid-ofn-rpp.js +++ b/src/solid-ofn-rpp.js @@ -1,7 +1,28 @@ import style from './styles/index.scss?inline'; -import '~icons/mdi/account-box'; +// import 'materialize-css/dist/js/materialize.min.js'; // Not required +import '~icons/mdi/home-silo'; +import '~icons/mdi/food-apple'; import('./utils.js').then(utils => { import(/* @vite-ignore */utils.coreVersion()).then(core => { + + // Custom widget for producer description, original contains some unsafe html + customElements.define("safe-html-value", + class extends core.SolidTemplateElement { + constructor() { + super(); + } + static get propsDefinition() { + return { + value: "value" + }; + } + template({ + value + }) { + return utils.truncate(utils.sanitize(value), 125); + } + }); + customElements.define( "solid-ofn-rpp", class extends core.SolidTemplateElement { @@ -21,20 +42,21 @@ import('./utils.js').then(utils => { styles() { let render = ` <style>${style}</style> + <script id="client-context" type="application/ld+json" data-default-context> + ${JSON.stringify(utils.CLIENT_CONTEXT)} + </script> `; return render; } routers() { let render = ` - <nav id="${this.uniq}-nav"> - <solid-router default-route="${this.route}-producers-list"> - <solid-route name="${this.route}-producers-list"></solid-route> - <solid-route name="${this.route}-products-list"></solid-route> - <solid-route name="${this.route}-producer-details" use-id></solid-route> - <solid-route name="${this.route}-product-details" use-id></solid-route> - </solid-router> - </nav> + <solid-router default-route="${this.route}-producers-list"> + <solid-route name="${this.route}-producers-list"></solid-route> + <solid-route name="${this.route}-products-list"></solid-route> + <solid-route name="${this.route}-producer-details" use-id></solid-route> + <solid-route name="${this.route}-product-details" use-id></solid-route> + </solid-router> `; return render; } @@ -46,10 +68,45 @@ import('./utils.js').then(utils => { viewProducersList(props={}) { let render = ` - <div id="${this.route}-producers-list" data-view="${this.route}-producers-list"> - <solid-display - data-src="${this.producersSrc}" - ></solid-display> + <div id="${this.route}-producers-list" data-view="${this.route}-producers-list" class="row"> + <div class="col s4"></div> + <div class="col s8"> + <solid-display + data-src="${this.producersSrc}" + fields="set-card-row(set-card-col(set-card-panel(set-card-wrapper(set-left-panel(ofn:logo_url), set-right-panel(set-title(dfc-b:name, dfc-b:hasAddress.dfc-b:hasCity), set-description(ofn:long_description), set-tags(ofn:First_Nations_country, ofn:Produce_category))))))" + + widget-set-card-row="div" + class-set-card-row="row" + widget-set-card-col="div" + class-set-card-col="col s12" + widget-set-card-panel="div" + class-set-card-panel="card-panel z-depth-1" + widget-set-card-wrapper="div" + class-set-card-wrapper="row valign-wrapper" + + widget-set-left-panel="div" + class-set-left-panel="col s2" + class-ofn:logo_url="responsive-img" + widget-ofn:logo_url="solid-display-img" + default-ofn:logo_url="https://placehold.co/120" + + widget-set-right-panel="div" + class-set-right-panel="col s10" + + widget-set-title="div" + widget-dfc-b:name="solid-display-value" + class-dfc-b:name="dfc_b_name bold" + widget-dfc-b:hasAddress.dfc-b:hasCity="solid-display-value" + + widget-set-description="div" + widget-ofn:long_description="safe-html-value" + + widget-set-tags="div" + widget-ofn:First_Nations_country="solid-display-value" + widget-ofn:Produce_category="solid-display-value" + + ></solid-display> + </div> </div> `; return render; diff --git a/src/styles/index.scss b/src/styles/index.scss index 9f44090c94a7945c3adbf850da3290c85a60a0ab..f7a832755b48a0d28e320c291fd448069477932f 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -1 +1,51 @@ @charset "UTF-8"; + +// Pre-requisites +@import "@fontsource/open-sans"; +@import "materialize-css/sass/components/color-variables"; +@import "materialize-css/sass/components/color-classes"; +@import "materialize-css/sass/components/variables"; +@import "materialize-css/sass/components/normalize"; +@import "materialize-css/sass/components/global"; + +// Optionals +// @import "materialize-css/sass/components/badges"; +// @import "materialize-css/sass/components/icons-material-design"; +@import "materialize-css/sass/components/grid"; +@import "materialize-css/sass/components/navbar"; +@import "materialize-css/sass/components/typography"; +// @import "materialize-css/sass/components/transitions"; +@import "materialize-css/sass/components/cards"; +// @import "materialize-css/sass/components/toast"; +// @import "materialize-css/sass/components/tabs"; +// @import "materialize-css/sass/components/tooltip"; +@import "materialize-css/sass/components/buttons"; +// @import "materialize-css/sass/components/dropdown"; +// @import "materialize-css/sass/components/waves"; +// @import "materialize-css/sass/components/modal"; +// @import "materialize-css/sass/components/collapsible"; +// @import "materialize-css/sass/components/chips"; +// @import "materialize-css/sass/components/materialbox"; +// @import "materialize-css/sass/components/forms/forms"; +// @import "materialize-css/sass/components/table_of_contents"; +// @import "materialize-css/sass/components/sidenav"; +// @import "materialize-css/sass/components/preloader"; +// @import "materialize-css/sass/components/slider"; +// @import "materialize-css/sass/components/carousel"; +// @import "materialize-css/sass/components/tapTarget"; +// @import "materialize-css/sass/components/pulse"; +// @import "materialize-css/sass/components/datepicker"; +// @import "materialize-css/sass/components/timepicker"; + +:root { + font-family: Open Sans, sans-serif; +} + +.dfc_b_name { + display: inline-block; + font-size: 19px; + font-weight: 600; + line-height: 25px; + letter-spacing: -0.022em; + text-align: left; +} diff --git a/src/utils.js b/src/utils.js index cac660dc06558d627514f65e58846622f30a763a..21c7f24360dca834fcf8c7058f0a77818682c1e4 100644 --- a/src/utils.js +++ b/src/utils.js @@ -1,4 +1,4 @@ -const componentName = 'ofn-rpp'; +const componentName = "ofn-rpp"; export function path() { let path = "."; @@ -16,14 +16,31 @@ export function uniq() { export const CLIENT_CONTEXT = { "@vocab": "", - "dfc": "dfc", - "dc": "dc", + dfc: "dfc", + dc: "dc", "dfc-b": "dfc-b", "dfc-p": "dfc-p", "dfc-t": "dfc-t", "dfc-m": "dfc-m", "dfc-pt": "dfc-p", "dfc-f": "dfc-f", - "ontosec": "ontosec", - "name": "name" + ontosec: "ontosec", + name: "name", +}; + +export const sanitize = (input) => { + const tmp = document.createElement("div"); + tmp.innerHTML = input; + return tmp.textContent || tmp.innerText || ""; +}; + +export const truncate = (str, length) => { + if (str.length > length) { + const lastSpaceIndex = str.substr(0, length).lastIndexOf(" "); + str = + lastSpaceIndex !== -1 + ? str.substr(0, lastSpaceIndex) + "..." + : str.substr(0, length) + "..."; + } + return str; }; diff --git a/vite.config.js b/vite.config.js index 2a4f646ba4b6a38a09b737f7a698eb2992fa5caa..eefc63c16dda5203e0817bcc582e61bd5f9c352c 100644 --- a/vite.config.js +++ b/vite.config.js @@ -3,6 +3,13 @@ import { defineConfig } from 'vite' import Icons from 'unplugin-icons/vite' export default defineConfig({ + css: { + preprocessorOptions: { + scss: { + quietDeps: true + } + } + }, build: { lib: { entry: resolve(__dirname, 'src/index.js'),