✨(widgets) import widgets code from Messages and setup Docker workflow (#33)
This adds Gaufre v2 with source, documentation, examples and built artefacts. Also includes the feedback widget from Messages.
This commit is contained in:
1
website/public/widgets/demo/feedback-api-error.json
Normal file
1
website/public/widgets/demo/feedback-api-error.json
Normal file
@@ -0,0 +1 @@
|
||||
{"success": true, "config": {"captcha": false, "submitUrl": "/error"}}
|
||||
1
website/public/widgets/demo/feedback-api.json
Normal file
1
website/public/widgets/demo/feedback-api.json
Normal file
@@ -0,0 +1 @@
|
||||
{"success": true, "config": {"captcha": false}}
|
||||
57
website/public/widgets/demo/lagaufre-data.json
Normal file
57
website/public/widgets/demo/lagaufre-data.json
Normal file
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"organization": {
|
||||
"name": "Example Organization",
|
||||
"type": "Public Administration",
|
||||
"siret": "12345678901234"
|
||||
},
|
||||
"services": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "Authentication Service",
|
||||
"url": "https://example.com/auth",
|
||||
"maturity": "stable",
|
||||
"logo": "/widgets/demo/logos/auth.svg",
|
||||
"subscribed": true
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "Document Portal",
|
||||
"url": "https://example.com/docs",
|
||||
"maturity": "stable",
|
||||
"logo": "/widgets/demo/logos/docs.svg",
|
||||
"subscribed": true
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "Payment Gateway",
|
||||
"url": "https://example.com/payments",
|
||||
"maturity": "stable",
|
||||
"logo": "/widgets/demo/logos/payment.svg",
|
||||
"subscribed": false
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "Analytics Dashboard",
|
||||
"url": "https://example.com/analytics",
|
||||
"maturity": "beta",
|
||||
"logo": "/widgets/demo/logos/analytics.svg",
|
||||
"subscribed": true
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"name": "Notification Center",
|
||||
"url": "https://example.com/notifications",
|
||||
"maturity": "alpha",
|
||||
"logo": "/widgets/demo/logos/notifications.svg",
|
||||
"subscribed": false
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"name": "File Storage",
|
||||
"url": "https://example.com/storage",
|
||||
"maturity": "stable",
|
||||
"logo": "/widgets/demo/logos/storage.svg",
|
||||
"subscribed": true
|
||||
}
|
||||
]
|
||||
}
|
||||
5
website/public/widgets/demo/logos/analytics.svg
Normal file
5
website/public/widgets/demo/logos/analytics.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="40" height="40" rx="8" fill="#ffc107"/>
|
||||
<path d="M20 12L24 20L20 28L16 20L20 12Z" fill="white"/>
|
||||
<path d="M20 16L22 20L20 24L18 20L20 16Z" fill="#ffc107"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 278 B |
5
website/public/widgets/demo/logos/auth.svg
Normal file
5
website/public/widgets/demo/logos/auth.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="40" height="40" rx="8" fill="#000091"/>
|
||||
<path d="M20 12C15.58 12 12 15.58 12 20C12 24.42 15.58 28 20 28C24.42 28 28 24.42 28 20C28 15.58 24.42 12 20 12ZM20 26C16.69 26 14 23.31 14 20C14 16.69 16.69 14 20 14C23.31 14 26 16.69 26 20C26 23.31 23.31 26 20 26Z" fill="white"/>
|
||||
<path d="M20 16C17.79 16 16 17.79 16 20C16 22.21 17.79 24 20 24C22.21 24 24 22.21 24 20C24 17.79 22.21 16 20 16Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 523 B |
4
website/public/widgets/demo/logos/docs.svg
Normal file
4
website/public/widgets/demo/logos/docs.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="40" height="40" rx="8" fill="#28a745"/>
|
||||
<path d="M12 14H28V26H12V14ZM14 16V24H26V16H14ZM16 18H24V20H16V18ZM16 21H20V22H16V21Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 262 B |
5
website/public/widgets/demo/logos/notifications.svg
Normal file
5
website/public/widgets/demo/logos/notifications.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="40" height="40" rx="8" fill="#17a2b8"/>
|
||||
<path d="M20 12C15.58 12 12 15.58 12 20C12 24.42 15.58 28 20 28C24.42 28 28 24.42 28 20C28 15.58 24.42 12 20 12ZM20 26C16.69 26 14 23.31 14 20C14 16.69 16.69 14 20 14C23.31 14 26 16.69 26 20C26 23.31 23.31 26 20 26Z" fill="white"/>
|
||||
<path d="M18 18H22V20H18V18ZM18 21H22V22H18V21ZM18 24H22V25H18V24Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 477 B |
5
website/public/widgets/demo/logos/payment.svg
Normal file
5
website/public/widgets/demo/logos/payment.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="40" height="40" rx="8" fill="#dc3545"/>
|
||||
<path d="M20 12C15.58 12 12 15.58 12 20C12 24.42 15.58 28 20 28C24.42 28 28 24.42 28 20C28 15.58 24.42 12 20 12ZM20 26C16.69 26 14 23.31 14 20C14 16.69 16.69 14 20 14C23.31 14 26 16.69 26 20C26 23.31 23.31 26 20 26Z" fill="white"/>
|
||||
<path d="M18 18H22V22H18V18Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 439 B |
4
website/public/widgets/demo/logos/storage.svg
Normal file
4
website/public/widgets/demo/logos/storage.svg
Normal file
@@ -0,0 +1,4 @@
|
||||
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="40" height="40" rx="8" fill="#6f42c1"/>
|
||||
<path d="M14 16H26V24H14V16ZM16 18V22H24V18H16ZM18 20H22V21H18V20Z" fill="white"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 243 B |
1
website/public/widgets/dist/feedback.js
vendored
Normal file
1
website/public/widgets/dist/feedback.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
website/public/widgets/dist/lagaufre.js
vendored
Normal file
1
website/public/widgets/dist/lagaufre.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
website/public/widgets/dist/loader.js
vendored
Normal file
1
website/public/widgets/dist/loader.js
vendored
Normal file
@@ -0,0 +1 @@
|
||||
(function(){"use strict";const m='div{position:fixed;bottom:20px;right:20px;z-index:1000}button{width:60px;height:60px;border-radius:50%;background:#000091;border:none;cursor:pointer;box-shadow:0 4px 12px #0000914d;transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease;display:flex;align-items:center;justify-content:center;padding:0;margin:0}svg{width:35px;height:35px}button:focus-visible{outline:3px solid #0a76f6;outline-offset:2px}button:hover{background:#1212ff;transform:scale(1.1);box-shadow:0 6px 16px #1212ff66}button:active{transform:scale(.95)}button.loading{background:#2323ff}button.loading:after{content:"";width:25px;height:25px;border:3px solid transparent;border-top:3px solid white;border-radius:50%;animation:spin 1s linear infinite}button.loading svg{display:none}button.opened svg{display:none}button.opened:after{content:"+";font-size:50px;color:#fff;height:60px;line-height:60px;font-family:Arial;transform:rotate(45deg)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 420px){button{width:40px;height:40px}svg{width:25px;height:25px}div{right:15px;bottom:15px}button.opened:after{font-size:40px}}';function x(e,t,n){const i=`lasuite-widget-${e}-shadow`,a=document.getElementById(i);a&&a.remove();const o=document.createElement("div");o.id=i;const s=o.attachShadow({mode:"open"}),d=document.createElement("style");d.textContent=n;const u=document.createElement("div");return u.innerHTML=t,s.appendChild(d),s.appendChild(u),o}const v='<svg aria-hidden="true" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" transform="matrix(-1, 0, 0, 1, 0, 0)"><g stroke-width="0"></g><g stroke-linecap="round" stroke-linejoin="round"></g><g><path d="M7 9H17M7 13H17M21 20L17.6757 18.3378C17.4237 18.2118 17.2977 18.1488 17.1656 18.1044C17.0484 18.065 16.9277 18.0365 16.8052 18.0193C16.6672 18 16.5263 18 16.2446 18H6.2C5.07989 18 4.51984 18 4.09202 17.782C3.71569 17.5903 3.40973 17.2843 3.21799 16.908C3 16.4802 3 15.9201 3 14.8V7.2C3 6.07989 3 5.51984 3.21799 5.09202C3.40973 4.71569 3.71569 4.40973 4.09202 4.21799C4.51984 4 5.0799 4 6.2 4H17.8C18.9201 4 19.4802 4 19.908 4.21799C20.2843 4.40973 20.5903 4.71569 20.782 5.09202C21 5.51984 21 6.0799 21 7.2V20Z" stroke="#FFFFFF" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path> </g></svg>',f="lasuite-widget",p=(e,t,n,i)=>document.dispatchEvent(new CustomEvent(`${f}-${e}-${t}`,n?{detail:n}:void 0)),r=(e,t,n,i,a)=>{const o=d=>a(d.detail),s=e?`${f}-${e}-${t}`:t;return document.addEventListener(s,o,i?{once:!0}:void 0),()=>document.removeEventListener(s,o,i?{once:!0}:void 0)},C=1,l=2,c=e=>window._lasuite_widget?._loaded?.[e],h=(e,t)=>{window._lasuite_widget?._loaded&&(window._lasuite_widget._loaded[e]=t)},_=e=>{window._lasuite_widget||(window._lasuite_widget=[]);const t=window._lasuite_widget;if(t._loaded||(t._loaded={}),c(e)!==l){t.push=(...n)=>{for(const i of n)c(i[0])===l?p(i[0],i[1],i[2]):t[t.length]=i;return t.length},h(e,l);for(const n of t.splice(0,t.length))t.push(n)}p(e,"loaded")},E=(e,t="")=>{const n=document.createElement("script");n.src=e,n.type=t,n.defer=!0,document.body.appendChild(n)},g="loader";r(g,"init",null,!1,e=>{const t=e.widget||"feedback",n=`<div><button type="button">${v}</button></div>`,i=x(g,n,m),o=i.shadowRoot.querySelector("button"),s=()=>{o.setAttribute("aria-label",String(e.closeLabel||"Close widget")),o.setAttribute("aria-expanded","true")},d=()=>{o.setAttribute("aria-label",String(e.label||"Load widget")),o.setAttribute("aria-expanded","false")};d(),r(t,"closed",null,!1,()=>{o.classList.remove("opened"),d()}),r(t,"opened",null,!1,()=>{o.classList.add("opened"),s()}),o.addEventListener("click",()=>{if(o.classList.contains("opened")){p(t,"close");return}const u=setTimeout(()=>{o.classList.remove("loading")},1e4);o.classList.add("loading");const w=()=>{clearTimeout(u),o.classList.remove("loading");const b=Object.assign({},e.params);b.bottomOffset=o.offsetHeight+20,window._lasuite_widget.push([t,"init",b])};c(t)===l?w():(r(t,"loaded",null,!0,w),c(t)||(E(e.script,e.scriptType||""),h(t,C)))}),document.body.appendChild(i)}),_(g)})();
|
||||
Reference in New Issue
Block a user