From 274a3fae766a932c8d07ef9fcc834c1d9d70c757 Mon Sep 17 00:00:00 2001 From: gaelle morin Date: Thu, 1 Apr 2021 08:51:51 +0200 Subject: [PATCH 01/47] feature: community - new listing page + set up --- src/index.pug | 4 ++++ src/locales/en.json | 1 + src/locales/es.json | 1 + src/locales/fr.json | 1 + src/views/page-communities.pug | 1 + src/views/partials/menu-left.pug | 7 +++++++ 6 files changed, 15 insertions(+) create mode 100644 src/views/page-communities.pug diff --git a/src/index.pug b/src/index.pug index e36d8b2..b239916 100644 --- a/src/index.pug +++ b/src/index.pug @@ -110,6 +110,10 @@ html(lang="en") hubl-reactivity(bind-user nested-field="circles" target-src=`${component.endpoints.get}joinable/`) include views/page-circle.pug + if component.type == "communities" + .scrollbar-content + include views/page-communities.pug + if component.type == "dashboard" .scrollbar-content include views/page-dashboard.pug diff --git a/src/locales/en.json b/src/locales/en.json index f097c39..3776fc7 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -26,6 +26,7 @@ "resources": "Resources", "jobBoard": "Job offers", "profileDirectory": "Profiles directory", + "communities": "Communities", "projects": "Projects", "circles": "Circles", "messages": "Messages", diff --git a/src/locales/es.json b/src/locales/es.json index 2092c19..66113cc 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -26,6 +26,7 @@ "resources": "Recursos", "jobBoard": "Ofertas de trabajo", "profileDirectory": "Directorio de miembrxs", + "communities": "Las comunidades", "projects": "Proyectos", "circles": "Círculos", "messages": "Mensajes", diff --git a/src/locales/fr.json b/src/locales/fr.json index 3195dfe..a69bb6b 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -26,6 +26,7 @@ "resources": "Ressources", "jobBoard": "Offres de mission", "profileDirectory": "Annuaire des membres", + "communities": "Les communautés", "projects": "Projets", "circles": "Cercles", "messages": "Messages", diff --git a/src/views/page-communities.pug b/src/views/page-communities.pug new file mode 100644 index 0000000..09a0111 --- /dev/null +++ b/src/views/page-communities.pug @@ -0,0 +1 @@ +p Hello \ No newline at end of file diff --git a/src/views/partials/menu-left.pug b/src/views/partials/menu-left.pug index 3b285ac..407151a 100644 --- a/src/views/partials/menu-left.pug +++ b/src/views/partials/menu-left.pug @@ -9,6 +9,13 @@ solid-router#navbar-router(default-route='dashboard') div.icon.icon-small.icon-home div.segment.text-uppercase.text-letter-spacing-large(data-trans=`${component.name?component.name:"menuLeft.dashboard"}`) div.divider + if component.type == "communities" + solid-route.menu.segment.full.padding-xsmall.text-semibold.text-color-white.heading-active.bg-color-heading.hover.active(name=component.route) + div.segment.margin-right-xxsmall + div.segment.icon.icon-small.icon-grid + div.segment.text-uppercase.text-letter-spacing-large(data-trans="menuLeft.communities") + div.divider + if component.type == "circles" div.menu-wrapper if componentSet.has("admin") From 0a86dc25361d150c8efd933fe336417160500b16 Mon Sep 17 00:00:00 2001 From: gaelle morin Date: Thu, 1 Apr 2021 10:32:42 +0200 Subject: [PATCH 02/47] patch: community - set up list --- src/views/page-communities.pug | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/src/views/page-communities.pug b/src/views/page-communities.pug index 09a0111..42ed10c 100644 --- a/src/views/page-communities.pug +++ b/src/views/page-communities.pug @@ -1 +1,21 @@ -p Hello \ No newline at end of file +div.padding-top-xlarge.padding-right-small.padding-bottom-xlarge.padding-left-small.whitespace-normal + + h2.margin-left-xsmall.sm-margin-none.text-xlarge.text-bold.text-color-heading.text-uppercase Les communautés + + div + solid-form-search.form.search-form.search-button( + id=`communities-filter-${page}` + fields='name' + label-name='' + widget-name='solid-form-label-text' + class-name="segment margin-bottom-medium sm-margin-bottom-none third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + submit-button="" + submit-widget="button" + ) + //- data-trans='label-name=circle.list.searchBy;submit-button=circle.list.searchButton' + + +solid-display( + data-src=`${getComponent('communities')}` + fields='logo, name, shortDescription' +) \ No newline at end of file From 874f94a1e255b67c797226df6f9b5f96d1b14203 Mon Sep 17 00:00:00 2001 From: gaelle morin Date: Sun, 4 Apr 2021 17:42:24 +0200 Subject: [PATCH 03/47] patch: list - display + styles (wip) --- src/locales/en.json | 5 +++ src/locales/es.json | 5 +++ src/locales/fr.json | 5 +++ src/views/page-communities.pug | 32 +++++++++++++++---- .../partials/admin/page-admin-circles.pug | 2 +- src/views/partials/widgets.pug | 3 ++ .../hubl-communities-counter-alternate.pug | 12 +++++++ .../widgets/hubl-communities-logo.pug | 3 ++ .../widgets/hubl-communities-name.pug | 18 +++++++++++ 9 files changed, 77 insertions(+), 8 deletions(-) create mode 100644 src/views/partials/widgets/hubl-communities-counter-alternate.pug create mode 100644 src/views/partials/widgets/hubl-communities-logo.pug create mode 100644 src/views/partials/widgets/hubl-communities-name.pug diff --git a/src/locales/en.json b/src/locales/en.json index 3776fc7..85b632d 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -154,6 +154,11 @@ "email": "Email*", "password": "Password*", "formCreateAccount": "Create an account" + }, + "list": { + "title": "Communities", + "searchBy": "Find by name", + "searchButton": "Search" } }, "project": { diff --git a/src/locales/es.json b/src/locales/es.json index 66113cc..6e134d4 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -154,6 +154,11 @@ "email": "Correo electrónico*", "password": "Contraseña*", "formCreateAccount": "Crear una cuenta" + }, + "list": { + "title": "", + "searchBy": "", + "searchButton": "" } }, "project": { diff --git a/src/locales/fr.json b/src/locales/fr.json index a69bb6b..655922b 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -154,6 +154,11 @@ "email": "E-mail*", "password": "Mot de passe*", "formCreateAccount": "Créer un compte" + }, + "list": { + "title": "Les communautés", + "searchBy": "Trouver par nom", + "searchButton": "Rechercher" } }, "project": { diff --git a/src/views/page-communities.pug b/src/views/page-communities.pug index 42ed10c..c24baa2 100644 --- a/src/views/page-communities.pug +++ b/src/views/page-communities.pug @@ -1,21 +1,39 @@ div.padding-top-xlarge.padding-right-small.padding-bottom-xlarge.padding-left-small.whitespace-normal - h2.margin-left-xsmall.sm-margin-none.text-xlarge.text-bold.text-color-heading.text-uppercase Les communautés + h2.margin-left-xsmall.sm-margin-none.text-xlarge.text-bold.text-color-heading.text-uppercase(data-trans='communities.list.title') div solid-form-search.form.search-form.search-button( id=`communities-filter-${page}` fields='name' label-name='' - widget-name='solid-form-label-text' + widget-name='solid-form-text' class-name="segment margin-bottom-medium sm-margin-bottom-none third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" submit-button="" submit-widget="button" + data-trans='label-name=communities.list.searchBy;submit-button=communities.list.searchButton' ) - //- data-trans='label-name=circle.list.searchBy;submit-button=circle.list.searchButton' +div.segment.full.padding-small.padding-top-xsmall.sm-padding-xsmall.whitespace-normal + solid-display( + class='segment full children children-quarter sm-children-full children-margin-bottom-medium sm-children-margin-bottom-xsmall children-padding-right-xsmall children-padding-left-xsmall sm-children-padding-none sm-whitespace-normal masonry pagination' + data-src='https://api.test3.startinblox.com/communities/' + fields='segment1(segment2(logo), segment3(name, shortDescription, counter))' + filtered-by=`communities-filter-${page}` + order-by='name' + paginate-by='20' + loader-id=`loader-communities-${page}` -solid-display( - data-src=`${getComponent('communities')}` - fields='logo, name, shortDescription' -) \ No newline at end of file + class-segment1='segment hover bg-color-white shadow border-rounded-xxsmall full text-top whitespace-normal' + class-segment2='segment block padding-xlarge text-center' + class-segment3='segment full padding-xlarge padding-top-medium sm-padding-medium border-top border-color-grey text-center whitespace-normal' + class-name='segment block text-xlarge text-bold text-color-heading margin-bottom-xsmall whitespace-normal' + class-shortDescription='segment two-lines-ellipsis margin-bottom-xlarge sm-margin-bottom-medium whitespace-normal circle-subtitle-custom' + class-counter='segment block margin-bottom-large whitespace-normal' + + widget-logo='hubl-communities-logo' + action-name=`` + widget-name='hubl-communities-name' + action-counter="counter" + widget-counter='hubl-communities-counter-alternate' + ) \ No newline at end of file diff --git a/src/views/partials/admin/page-admin-circles.pug b/src/views/partials/admin/page-admin-circles.pug index 2cf0519..964c93c 100644 --- a/src/views/partials/admin/page-admin-circles.pug +++ b/src/views/partials/admin/page-admin-circles.pug @@ -25,7 +25,7 @@ div.segment.full.padding-large.padding-top-medium.padding-bottom-xsmall.sm-paddi fields='name' label-name='' widget-name='solid-form-label-text' - class-name="segment margin-bottom-medium sm-margin-bottom-none third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-name="segment margin-bottom-medium sm-margin-bottom-none third sm-full padding-right-small sm-padding-none text-small" submit-button="" submit-widget="button" data-trans='label-name=circle.list.searchBy;submit-button=circle.list.searchButton' diff --git a/src/views/partials/widgets.pug b/src/views/partials/widgets.pug index b3dbc1c..58ae680 100644 --- a/src/views/partials/widgets.pug +++ b/src/views/partials/widgets.pug @@ -20,6 +20,9 @@ include widgets/hubl-circle-join-button.pug include widgets/hubl-circle-owner.pug include widgets/hubl-circle-team-contact.pug include widgets/hubl-circle-user-admin.pug +include widgets/hubl-communities-counter-alternate.pug +include widgets/hubl-communities-logo.pug +include widgets/hubl-communities-name.pug include widgets/hubl-counter.pug include widgets/hubl-create-contact.pug include widgets/hubl-email-field.pug diff --git a/src/views/partials/widgets/hubl-communities-counter-alternate.pug b/src/views/partials/widgets/hubl-communities-counter-alternate.pug new file mode 100644 index 0000000..a92b274 --- /dev/null +++ b/src/views/partials/widgets/hubl-communities-counter-alternate.pug @@ -0,0 +1,12 @@ +if componentSet.has('admin') && componentSet.has('communities') + solid-widget(name='hubl-communities-counter-alternate') + template + div + span.icon.icon-people.icon-third.icon-large.margin-right-xsmall + solid-display( + fields='' + data-src="${src || value}" + nested-field="members" + counter-template="\\\${counter}" + ) + span members diff --git a/src/views/partials/widgets/hubl-communities-logo.pug b/src/views/partials/widgets/hubl-communities-logo.pug new file mode 100644 index 0000000..adde5a4 --- /dev/null +++ b/src/views/partials/widgets/hubl-communities-logo.pug @@ -0,0 +1,3 @@ +if componentSet.has('admin') && componentSet.has('communities') + solid-widget(name='hubl-communities-logo') + template ${value != "" ? `
` : `
`} \ No newline at end of file diff --git a/src/views/partials/widgets/hubl-communities-name.pug b/src/views/partials/widgets/hubl-communities-name.pug new file mode 100644 index 0000000..5662457 --- /dev/null +++ b/src/views/partials/widgets/hubl-communities-name.pug @@ -0,0 +1,18 @@ +if componentSet.has('admin') && componentSet.has('communities') + solid-widget(name='hubl-communities-name-title') + template + div.segment.block.one-line-ellipsis( + title="\${value}" + ) ${value} + + solid-widget(name='hubl-communities-name') + template + solid-link( + data-src="${src || value}" + next=`` + ) + solid-display( + data-src="${src || value}" + fields="name" + widget-name="hubl-communities-name-title" + ) From 334a374a8de8bcd6e08b5465e7f2f5299a9d6937 Mon Sep 17 00:00:00 2001 From: gaelle morin Date: Mon, 5 Apr 2021 16:29:26 +0200 Subject: [PATCH 04/47] patch: list - display + styles (end) --- package-lock.json | 6 +- package.json | 2 +- src/styles/index.scss | 9 +++ src/views/page-communities.pug | 71 ++++++++++--------- .../communities/page-community-profile.pug | 0 src/views/partials/widgets.pug | 1 - .../widgets/hubl-communities-name.pug | 18 ----- 7 files changed, 50 insertions(+), 57 deletions(-) create mode 100644 src/views/partials/communities/page-community-profile.pug delete mode 100644 src/views/partials/widgets/hubl-communities-name.pug diff --git a/package-lock.json b/package-lock.json index 3eeb2a9..045e087 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1159,9 +1159,9 @@ } }, "@startinblox/hubl-styling-framework": { - "version": "1.8.12", - "resolved": "https://registry.npmjs.org/@startinblox/hubl-styling-framework/-/hubl-styling-framework-1.8.12.tgz", - "integrity": "sha512-BtB6OSSfMgVQMwYFk9DGIRV6Uazasw/BHFoW1cmnlXszD3lQdbMrIKTd3AQI2/tEacTVIUqcXJ+pWt6g0djbeQ==" + "version": "1.8.17", + "resolved": "https://registry.npmjs.org/@startinblox/hubl-styling-framework/-/hubl-styling-framework-1.8.17.tgz", + "integrity": "sha512-x9TlnpLs/k2WyJAwlYyexSXs3q9QmSOe/43E1O8Scuh4V1qzs5pnMKz9B91lw9563d6u62Z5WyGPeqaS4detmA==" }, "@types/q": { "version": "1.5.4", diff --git a/package.json b/package.json index 9f5a3bb..8a91316 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ ] }, "dependencies": { - "@startinblox/hubl-styling-framework": "^1.8.12", + "@startinblox/hubl-styling-framework": "^1.8.17", "cross-env": "^7.0.3", "fs-extra": "^9.0.1", "normalize.css": "^8.0.1", diff --git a/src/styles/index.scss b/src/styles/index.scss index f6a3305..d85ea4a 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -104,6 +104,15 @@ hubl-create-contact { justify-content: center; } +/* Animation on cards in #communities */ +#communities { + + .segment.hover:hover { + box-shadow: 0 0 16px 0 rgba(46, 63, 88, 0.34); + bottom: 2px; + } +} + /* Fix on Join button in admin (circles + projects) */ /* Styles on buttons and .children-link don't work because this input is inside too many elements. */ /* And no I can't add that stupid icon because it'a an input. */ diff --git a/src/views/page-communities.pug b/src/views/page-communities.pug index c24baa2..e26480c 100644 --- a/src/views/page-communities.pug +++ b/src/views/page-communities.pug @@ -1,39 +1,42 @@ -div.padding-top-xlarge.padding-right-small.padding-bottom-xlarge.padding-left-small.whitespace-normal +div.padding-small.whitespace-normal.sm-padding-none.sm-padding-top-large.sm-padding-bottom-large - h2.margin-left-xsmall.sm-margin-none.text-xlarge.text-bold.text-color-heading.text-uppercase(data-trans='communities.list.title') + h2.margin-top-xxsmall.margin-left-xsmall.margin-bottom-medium.sm-margin-none.sm-margin-right-xsmall.sm-margin-bottom-large.sm-margin-left-xsmall.text-xlarge.text-bold.text-color-heading.text-uppercase(data-trans='communities.list.title') - div - solid-form-search.form.search-form.search-button( - id=`communities-filter-${page}` - fields='name' - label-name='' - widget-name='solid-form-text' - class-name="segment margin-bottom-medium sm-margin-bottom-none third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" - submit-button="" - submit-widget="button" - data-trans='label-name=communities.list.searchBy;submit-button=communities.list.searchButton' - ) + div.padding-top-xxsmall.margin-left-xsmall.sm-padding-none.sm-margin-none.sm-margin-right-xsmall.sm-margin-left-xsmall + div.segment.half.sm-full + solid-form-search.form.search-form.search-button( + id=`communities-filter-${page}` + fields='name' + placeholder-name='' + widget-name='solid-form-placeholder-text' + class-name="segment margin-bottom-medium sm-margin-bottom-none three-quarter sm-full padding-right-small sm-padding-none text-small input-bg-white children-shadow" + submit-button="" + submit-widget="button" + data-trans='placeholder-name=communities.list.searchBy;submit-button=communities.list.searchButton' + ) + div.segment.half.sm-full.text-right + solid-link.segment.children-link-rounded.children-icon-map.children-link-reversed.color-secondary.bordered + span -div.segment.full.padding-small.padding-top-xsmall.sm-padding-xsmall.whitespace-normal - solid-display( - class='segment full children children-quarter sm-children-full children-margin-bottom-medium sm-children-margin-bottom-xsmall children-padding-right-xsmall children-padding-left-xsmall sm-children-padding-none sm-whitespace-normal masonry pagination' - data-src='https://api.test3.startinblox.com/communities/' - fields='segment1(segment2(logo), segment3(name, shortDescription, counter))' - filtered-by=`communities-filter-${page}` - order-by='name' - paginate-by='20' - loader-id=`loader-communities-${page}` + div.segment.full.padding-top-xsmall.sm-padding-xsmall.whitespace-normal + solid-display( + class='segment full children children-quarter sm-children-full children-margin-bottom-medium sm-children-margin-bottom-xsmall children-padding-right-xsmall children-padding-left-xsmall sm-children-padding-none sm-whitespace-normal masonry pagination' + data-src='https://api.test3.startinblox.com/communities/' + fields='segment1(segment2(logo), segment3(name, profile.shortDescription, counter))' + filtered-by=`communities-filter-${page}` + order-by='name' + paginate-by='20' + loader-id=`loader-communities-${page}` - class-segment1='segment hover bg-color-white shadow border-rounded-xxsmall full text-top whitespace-normal' - class-segment2='segment block padding-xlarge text-center' - class-segment3='segment full padding-xlarge padding-top-medium sm-padding-medium border-top border-color-grey text-center whitespace-normal' - class-name='segment block text-xlarge text-bold text-color-heading margin-bottom-xsmall whitespace-normal' - class-shortDescription='segment two-lines-ellipsis margin-bottom-xlarge sm-margin-bottom-medium whitespace-normal circle-subtitle-custom' - class-counter='segment block margin-bottom-large whitespace-normal' + class-segment1='segment hover bg-color-white shadow border-rounded-xxsmall full text-top whitespace-normal' + class-segment2='segment block padding-xlarge text-center' + class-segment3='segment full padding-xlarge padding-top-medium sm-padding-medium border-top border-color-grey text-center whitespace-normal' + class-name='segment block one-line-ellipsis text-xlarge text-bold text-color-heading margin-bottom-xsmall' + class-profile.shortDescription='segment two-lines-ellipsis margin-bottom-xlarge sm-margin-bottom-medium whitespace-normal circle-subtitle-custom' + class-counter='segment block margin-bottom-large whitespace-normal' - widget-logo='hubl-communities-logo' - action-name=`` - widget-name='hubl-communities-name' - action-counter="counter" - widget-counter='hubl-communities-counter-alternate' - ) \ No newline at end of file + widget-logo='hubl-communities-logo' + action-counter="counter" + widget-counter='hubl-communities-counter-alternate' + next="" + ) \ No newline at end of file diff --git a/src/views/partials/communities/page-community-profile.pug b/src/views/partials/communities/page-community-profile.pug new file mode 100644 index 0000000..e69de29 diff --git a/src/views/partials/widgets.pug b/src/views/partials/widgets.pug index 58ae680..91ec5c3 100644 --- a/src/views/partials/widgets.pug +++ b/src/views/partials/widgets.pug @@ -22,7 +22,6 @@ include widgets/hubl-circle-team-contact.pug include widgets/hubl-circle-user-admin.pug include widgets/hubl-communities-counter-alternate.pug include widgets/hubl-communities-logo.pug -include widgets/hubl-communities-name.pug include widgets/hubl-counter.pug include widgets/hubl-create-contact.pug include widgets/hubl-email-field.pug diff --git a/src/views/partials/widgets/hubl-communities-name.pug b/src/views/partials/widgets/hubl-communities-name.pug deleted file mode 100644 index 5662457..0000000 --- a/src/views/partials/widgets/hubl-communities-name.pug +++ /dev/null @@ -1,18 +0,0 @@ -if componentSet.has('admin') && componentSet.has('communities') - solid-widget(name='hubl-communities-name-title') - template - div.segment.block.one-line-ellipsis( - title="\${value}" - ) ${value} - - solid-widget(name='hubl-communities-name') - template - solid-link( - data-src="${src || value}" - next=`` - ) - solid-display( - data-src="${src || value}" - fields="name" - widget-name="hubl-communities-name-title" - ) From 1d10f797a207a528f209148cf0db328792acf054 Mon Sep 17 00:00:00 2001 From: gaelle morin Date: Wed, 7 Apr 2021 23:21:50 +0200 Subject: [PATCH 05/47] patch: community-map --- package-lock.json | 6 +- package.json | 2 +- src/dependencies.pug | 4 + src/images/photos.svg | 1 + src/index.pug | 2 +- src/locales/en.json | 8 +- src/locales/es.json | 8 +- src/locales/fr.json | 8 +- src/styles/admin-circles/_index.scss | 100 +++++++++++++++++- src/styles/index.scss | 9 -- src/views/page-communities.pug | 76 ++++++------- .../partials/admin/page-admin-circles.pug | 7 -- .../communities/page-community-directory.pug | 10 +- .../communities/page-community-map.pug | 22 +++- .../communities/page-community-profile.pug | 74 +++++++++++++ src/views/partials/header.pug | 2 +- src/views/partials/menu-left.pug | 1 + src/views/partials/widgets.pug | 11 ++ .../widgets/hubl-admin-community-logo.pug | 2 +- .../hubl-communities-counter-alternate.pug | 4 +- .../widgets/hubl-communities-logo.pug | 4 +- .../hubl-communities-profile-address.pug | 4 + .../hubl-communities-profile-email.pug | 3 + .../hubl-communities-profile-facebook.pug | 3 + .../hubl-communities-profile-instagram.pug | 3 + .../hubl-communities-profile-linkedin.pug | 3 + .../widgets/hubl-communities-profile-logo.pug | 2 +- ...bl-communities-profile-members-counter.pug | 4 +- .../hubl-communities-profile-phone.pug | 3 + .../hubl-communities-profile-picture.pug | 3 + .../hubl-communities-profile-profile.pug | 6 -- .../hubl-communities-profile-twitter.pug | 3 + .../hubl-communities-profile-website.pug | 3 + 33 files changed, 309 insertions(+), 92 deletions(-) create mode 100644 src/images/photos.svg create mode 100644 src/views/partials/widgets/hubl-communities-profile-email.pug create mode 100644 src/views/partials/widgets/hubl-communities-profile-facebook.pug create mode 100644 src/views/partials/widgets/hubl-communities-profile-instagram.pug create mode 100644 src/views/partials/widgets/hubl-communities-profile-linkedin.pug create mode 100644 src/views/partials/widgets/hubl-communities-profile-phone.pug create mode 100644 src/views/partials/widgets/hubl-communities-profile-picture.pug delete mode 100644 src/views/partials/widgets/hubl-communities-profile-profile.pug create mode 100644 src/views/partials/widgets/hubl-communities-profile-twitter.pug create mode 100644 src/views/partials/widgets/hubl-communities-profile-website.pug diff --git a/package-lock.json b/package-lock.json index 045e087..7b2b879 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1159,9 +1159,9 @@ } }, "@startinblox/hubl-styling-framework": { - "version": "1.8.17", - "resolved": "https://registry.npmjs.org/@startinblox/hubl-styling-framework/-/hubl-styling-framework-1.8.17.tgz", - "integrity": "sha512-x9TlnpLs/k2WyJAwlYyexSXs3q9QmSOe/43E1O8Scuh4V1qzs5pnMKz9B91lw9563d6u62Z5WyGPeqaS4detmA==" + "version": "1.8.18", + "resolved": "https://registry.npmjs.org/@startinblox/hubl-styling-framework/-/hubl-styling-framework-1.8.18.tgz", + "integrity": "sha512-GdtuX2AjYwPQfMqU7oCuFfjTS4B9UKdnllYDi9Eg/F6XCcUIdUGSG05TP5yNPkuyI1OZ0Rj/arzhchzLOWqHhA==" }, "@types/q": { "version": "1.5.4", diff --git a/package.json b/package.json index 8a91316..7046887 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ ] }, "dependencies": { - "@startinblox/hubl-styling-framework": "^1.8.17", + "@startinblox/hubl-styling-framework": "^1.8.18", "cross-env": "^7.0.3", "fs-extra": "^9.0.1", "normalize.css": "^8.0.1", diff --git a/src/dependencies.pug b/src/dependencies.pug index d92c743..4623119 100644 --- a/src/dependencies.pug +++ b/src/dependencies.pug @@ -14,6 +14,10 @@ if componentSet.has("chat") || componentSet.has("circles") || componentSet.has(" script(type="module" src="https://cdn.skypack.dev/@startinblox/component-chat@5.2" defer) //- script(type="module" src="/lib/solid-xmpp-chat/dist/index.js" defer) +if componentSet.has("communities") + script(type="module" src="https://cdn.skypack.dev/@startinblox/core@0.16/dist/components/solid-map.js" defer) + //- script(type="module" src="/lib/sib-core/dist/components/solid-map.js" defer) + if componentSet.has("dashboard") script(type="module" src="https://cdn.skypack.dev/@startinblox/component-dashboard@4.0" defer) //- script(type="module" src="/lib/solid-dashboard/dist/index.js" defer) diff --git a/src/images/photos.svg b/src/images/photos.svg new file mode 100644 index 0000000..c01bb22 --- /dev/null +++ b/src/images/photos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/index.pug b/src/index.pug index 7d6fcfb..fa00420 100644 --- a/src/index.pug +++ b/src/index.pug @@ -112,7 +112,7 @@ html(lang="en") include views/page-circle.pug if component.type == "communities" - .scrollbar-content + .scrollbar-content.whitespace-normal include views/page-communities.pug if component.type == "dashboard" diff --git a/src/locales/en.json b/src/locales/en.json index 2c3d40e..778dc96 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -161,7 +161,13 @@ "list": { "title": "Communities", "searchBy": "Find by name", - "searchButton": "Search" + "searchButton": "Search", + "members": "members" + }, + "profile": { + "back": "Back", + "members": "members", + "edit": "Edit the page" } }, "project": { diff --git a/src/locales/es.json b/src/locales/es.json index b369dda..43bd5d2 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -161,7 +161,13 @@ "list": { "title": "", "searchBy": "", - "searchButton": "" + "searchButton": "", + "members": "" + }, + "profile": { + "back": "", + "members": "", + "edit": "" } }, "project": { diff --git a/src/locales/fr.json b/src/locales/fr.json index ba9b513..75f732c 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -161,7 +161,13 @@ "list": { "title": "Les communautés", "searchBy": "Trouver par nom", - "searchButton": "Rechercher" + "searchButton": "Rechercher", + "members": "membres" + }, + "profile": { + "back": "Retour", + "members": "membres", + "edit": "Editer la page" } }, "project": { diff --git a/src/styles/admin-circles/_index.scss b/src/styles/admin-circles/_index.scss index e80679a..84ad1df 100644 --- a/src/styles/admin-circles/_index.scss +++ b/src/styles/admin-circles/_index.scss @@ -1,5 +1,6 @@ #admin-circles, -#admin-circles-leave { +#admin-circles-leave, +.communities-directory { /* Fix on Join button in admin (circles + projects) */ /* Styles on buttons and .children-link don't work because this input is inside too many elements. */ @@ -115,12 +116,77 @@ } } + hubl-communities-profile-logo { + height: 155px; + width: 100%; + display: block; + + div { + display: block; + width: 100%; + height: 100%; + background-position: center; + background-repeat: no-repeat; + background-size: contain; + } + } + .tab.active { font-weight: bold; border-bottom: 5px solid var(--color-third); padding-bottom: 10px; } + .communities-profile-picture { + height: 200px; + + div { + display: block; + width: 100%; + height: 100%; + background-position: center; + background-repeat: no-repeat; + background-size: contain; + } + + .picture-empty { + display: flex; + justify-content: center; + align-items: center; + + object { + height: 100px; + width: 100px; + object-fit: cover; + object-position: center; + } + } + + &:nth-child(2)>.picture-empty { + background: #E4E9F1; + + svg { + fill: #D0D4DA; + } + } + + &:nth-child(3)>.picture-empty { + background: #E9F2FF; + + svg { + fill: #D7E2F3; + } + } + } + + .communities-profile-map .leaflet-pane.leaflet-popup-pane { + /*display: none;*/ + + .leaflet-popup-content-wrapper { + white-space: normal; + } + } + @media (max-width: 768px) { .tabs { @@ -143,5 +209,37 @@ } } } + + .community-profile-logo { + border-bottom: 1px solid #D6CECE; + } + + hubl-communities-profile-logo { + height: 100px; + } + + .communities-profile-picture { + height: 180px; + + object { + height: 80px; + width: 80px; + } + } + + .mobile-map-search-field { + position: fixed; + top: 70px; + z-index: 1000; + width: 97%; + } + + .communities-map { + height: calc(100vh - 50px) !important; + + .leaflet-top.leaflet-left { + display: none; + } + } } } \ No newline at end of file diff --git a/src/styles/index.scss b/src/styles/index.scss index 96632fc..a5fc667 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -88,15 +88,6 @@ hubl-menu-empty+hubl-menu-empty { justify-content: center; } -/* Animation on cards in #communities */ -#communities { - - .segment.hover:hover { - box-shadow: 0 0 16px 0 rgba(46, 63, 88, 0.34); - bottom: 2px; - } -} - /* Style that already exists in the framework but strangely I can't find it in the inspector. So I duplicate it here */ .two-lines-ellipsis { display: -webkit-box !important; diff --git a/src/views/page-communities.pug b/src/views/page-communities.pug index e26480c..dfa5687 100644 --- a/src/views/page-communities.pug +++ b/src/views/page-communities.pug @@ -1,42 +1,34 @@ -div.padding-small.whitespace-normal.sm-padding-none.sm-padding-top-large.sm-padding-bottom-large - - h2.margin-top-xxsmall.margin-left-xsmall.margin-bottom-medium.sm-margin-none.sm-margin-right-xsmall.sm-margin-bottom-large.sm-margin-left-xsmall.text-xlarge.text-bold.text-color-heading.text-uppercase(data-trans='communities.list.title') - - div.padding-top-xxsmall.margin-left-xsmall.sm-padding-none.sm-margin-none.sm-margin-right-xsmall.sm-margin-left-xsmall - div.segment.half.sm-full - solid-form-search.form.search-form.search-button( - id=`communities-filter-${page}` - fields='name' - placeholder-name='' - widget-name='solid-form-placeholder-text' - class-name="segment margin-bottom-medium sm-margin-bottom-none three-quarter sm-full padding-right-small sm-padding-none text-small input-bg-white children-shadow" - submit-button="" - submit-widget="button" - data-trans='placeholder-name=communities.list.searchBy;submit-button=communities.list.searchButton' - ) - div.segment.half.sm-full.text-right - solid-link.segment.children-link-rounded.children-icon-map.children-link-reversed.color-secondary.bordered - span - - div.segment.full.padding-top-xsmall.sm-padding-xsmall.whitespace-normal - solid-display( - class='segment full children children-quarter sm-children-full children-margin-bottom-medium sm-children-margin-bottom-xsmall children-padding-right-xsmall children-padding-left-xsmall sm-children-padding-none sm-whitespace-normal masonry pagination' - data-src='https://api.test3.startinblox.com/communities/' - fields='segment1(segment2(logo), segment3(name, profile.shortDescription, counter))' - filtered-by=`communities-filter-${page}` - order-by='name' - paginate-by='20' - loader-id=`loader-communities-${page}` - - class-segment1='segment hover bg-color-white shadow border-rounded-xxsmall full text-top whitespace-normal' - class-segment2='segment block padding-xlarge text-center' - class-segment3='segment full padding-xlarge padding-top-medium sm-padding-medium border-top border-color-grey text-center whitespace-normal' - class-name='segment block one-line-ellipsis text-xlarge text-bold text-color-heading margin-bottom-xsmall' - class-profile.shortDescription='segment two-lines-ellipsis margin-bottom-xlarge sm-margin-bottom-medium whitespace-normal circle-subtitle-custom' - class-counter='segment block margin-bottom-large whitespace-normal' - - widget-logo='hubl-communities-logo' - action-counter="counter" - widget-counter='hubl-communities-counter-alternate' - next="" - ) \ No newline at end of file +div.communities-directory + solid-router(default-route=`${component.route}-directory` hidden) + solid-route(name=`${component.route}-directory`) + solid-route(name=`${component.route}-map`) + solid-route(name=`${component.route}-profile` use-id) + solid-route(name=`${component.route}-edit` use-id) + div( + id=`${component.route}-directory` + hidden + data-view=`${component.route}-directory` + no-render + ) + include partials/communities/page-community-directory.pug + div( + id=`${component.route}-map` + hidden + data-view=`${component.route}-map` + no-render + ) + include partials/communities/page-community-map.pug + div( + id=`${component.route}-profile` + hidden + data-view=`${component.route}-profile` + no-render + ) + include partials/communities/page-community-profile.pug + div( + id=`${component.route}-edit` + hidden + data-view=`${component.route}-edit` + no-render + ) + include partials/communities/page-community-edit.pug diff --git a/src/views/partials/admin/page-admin-circles.pug b/src/views/partials/admin/page-admin-circles.pug index 2e18bd4..9aae27b 100644 --- a/src/views/partials/admin/page-admin-circles.pug +++ b/src/views/partials/admin/page-admin-circles.pug @@ -22,18 +22,11 @@ div.segment.full.padding-large.padding-top-medium.padding-bottom-xsmall.sm-paddi solid-form-search.form.search-form.search-button( id=`admin-circle-filter-${page}` -<<<<<<< HEAD - fields='name' - label-name='' - widget-name='solid-form-label-text' - class-name="segment margin-bottom-medium sm-margin-bottom-none third sm-full padding-right-small sm-padding-none text-small" -======= fields='searchname' search-searchname='name, circle.name' label-searchname='' widget-searchname='solid-form-label-text' class-searchname="segment margin-bottom-medium sm-margin-bottom-none third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" ->>>>>>> b9a8c8ba4de7985088e46bda8c024cf121439ff8 submit-button="" submit-widget="button" data-trans='label-searchname=circle.list.searchBy;submit-button=circle.list.searchButton' diff --git a/src/views/partials/communities/page-community-directory.pug b/src/views/partials/communities/page-community-directory.pug index 50b0ba8..e615b49 100644 --- a/src/views/partials/communities/page-community-directory.pug +++ b/src/views/partials/communities/page-community-directory.pug @@ -1,7 +1,7 @@ -.padding-small.sm-padding-none.sm-padding-top-large.sm-padding-bottom-large - h2.margin-top-xxsmall.margin-left-xsmall.margin-bottom-medium.sm-margin-none.sm-margin-right-xsmall.sm-margin-bottom-large.sm-margin-left-xsmall.text-xlarge.text-bold.text-color-heading.text-uppercase(data-trans='communities.list.title') +.padding-small.sm-padding-none.sm-padding-top-medium.sm-padding-bottom-medium + h2.margin-top-xxsmall.margin-left-xsmall.margin-bottom-medium.sm-margin-none.sm-margin-right-xsmall.sm-margin-bottom-small.sm-margin-left-xsmall.text-xlarge.text-bold.text-color-heading.text-uppercase(data-trans='communities.list.title') - div.padding-top-xxsmall.margin-left-xsmall.sm-padding-none.sm-margin-none.sm-margin-right-xsmall.sm-margin-left-xsmall + div.padding-top-xxsmall.margin-left-xsmall.margin-right-xsmall.sm-padding-none.sm-margin-none.sm-margin-right-xsmall.sm-margin-left-xsmall div.segment.half.sm-full solid-form-search.form.search-form.search-button( id=`communities-filter` @@ -34,10 +34,10 @@ class-segment1='segment hover bg-color-white shadow border-rounded-xxsmall full text-top whitespace-normal' class-segment2='segment block padding-xlarge text-center' - class-segment3='segment full padding-xlarge padding-top-medium sm-padding-medium border-top border-color-grey text-center whitespace-normal' + class-segment3='segment full padding-xlarge sm-padding-medium border-top border-color-grey text-center whitespace-normal' class-name='segment block one-line-ellipsis text-xlarge text-bold text-color-heading margin-bottom-xsmall' class-profile.shortDescription='segment two-lines-ellipsis margin-bottom-xlarge sm-margin-bottom-medium whitespace-normal circle-subtitle-custom' - class-counter='segment block margin-bottom-large whitespace-normal' + class-counter='segment block whitespace-normal' widget-logo='hubl-admin-community-logo' action-counter="counter" diff --git a/src/views/partials/communities/page-community-map.pug b/src/views/partials/communities/page-community-map.pug index 68ce18d..bdaa8de 100644 --- a/src/views/partials/communities/page-community-map.pug +++ b/src/views/partials/communities/page-community-map.pug @@ -1,18 +1,30 @@ -.padding-small.sm-padding-none.sm-padding-top-large.sm-padding-bottom-large - h2.margin-top-xxsmall.margin-left-xsmall.margin-bottom-medium.sm-margin-none.sm-margin-right-xsmall.sm-margin-bottom-large.sm-margin-left-xsmall.text-xlarge.text-bold.text-color-heading.text-uppercase(data-trans='communities.list.title') +.padding-small.sm-padding-none + h2.segment.sm-hidden.margin-top-xxsmall.margin-left-xsmall.margin-bottom-medium.sm-margin-none.sm-margin-right-xsmall.sm-margin-bottom-large.sm-margin-left-xsmall.text-xlarge.text-bold.text-color-heading.text-uppercase(data-trans='communities.list.title') - div.padding-top-xxsmall.margin-left-xsmall.sm-padding-none.sm-margin-none.sm-margin-right-xsmall.sm-margin-left-xsmall + div.mobile-map-search-field.padding-top-xxsmall.margin-left-xsmall.margin-right-xsmall.sm-padding-none.sm-margin-none.sm-margin-right-xsmall.sm-margin-left-xsmall div.segment.half.sm-full solid-form-search.form.search-form.search-button( id=`communities-filter-map` fields='name' + search-name='community.name' placeholder-name='' widget-name='solid-form-placeholder-text' class-name="segment margin-bottom-medium sm-margin-bottom-none three-quarter sm-full padding-right-small sm-padding-none text-small input-bg-white children-shadow" + submit-button="" submit-widget="button" data-trans='placeholder-name=communities.list.searchBy;submit-button=communities.list.searchButton' ) div.segment.half.sm-full.text-right - solid-link.segment.children-link-rounded.children-icon-map.children-link-reversed.color-secondary.bordered(next=`${component.route}-directory`) - span \ No newline at end of file + solid-link.segment.children-link-rounded.children-icon-grid.children-link-reversed.color-secondary.bordered(next=`${component.route}-directory`) + span + + solid-map.communities-map.margin-right-xsmall.margin-left-xsmall.sm-margin-none.shadow( + data-src=`${component.endpoints.get}` + loader-id=`loader-${component.route}-map` + nested-field="addresses" + fields="position(community.name, community.profile.shortDescription, address_line1, address_line2)" + clustering="" + filtered-by=`communities-filter-map` + style="display:block;height:698px;" + ) \ No newline at end of file diff --git a/src/views/partials/communities/page-community-profile.pug b/src/views/partials/communities/page-community-profile.pug index e69de29..9e49a46 100644 --- a/src/views/partials/communities/page-community-profile.pug +++ b/src/views/partials/communities/page-community-profile.pug @@ -0,0 +1,74 @@ +div.community-profile.padding-medium.sm-padding-none + div.segment.full.sm-hidden.text-right + solid-link.backlink.text-xlarge.line-xlarge.margin-right-xxsmall(next=`${component.route}-directory` data-trans="communities.profile.back") + + div.segment.block.shadow.bg-color-white.margin-right-xxsmall.margin-top-large.margin-left-xxsmall.sm-margin-none + + div.loader(id=`loader-${component.route}-profile`) + div + div + div + div + + solid-display.segment.block.whitespace-normal( + fields="segment0(segment1(community-picture(logo)), segment2(segment3(segment4(name),segment5(profile.tweeter, profile.facebook, profile.linkedin, profile.instagram)), segment6(profile.shortDescription), segment7(profile.tweeter, profile.facebook, profile.linkedin, profile.instagram), segment8(addresses.adress_line1, addresses.address_line2, members, profile.website, profile.email, profile.phone), segment9(profile.description), segment10(edit))), segment11(profile.picture1, profile.picture2, profile.picture3)" + loader-id=`loader-${component.route}-profile` + + class-segment0="segment full padding-xlarge sm-padding-none whitespace-normal" + class-segment1="community-profile-logo segment third sm-full margin-top-medium padding-top-medium padding-right-medium sm-margin-top-xsmall sm-padding-medium text-center" + + class-segment2="segment two-third sm-full sm-padding-top-medium sm-padding-right-xsmall sm-padding-bottom-medium sm-padding-left-xsmall text-top sm-text-center whitespace-normal" + + class-segment3="segment full sm-two-third text-center" + class-segment4="segment half sm-two-third padding-top-xsmall" + class-name="segment block text-color-heading text-xxlarge text-bold sm-text-center margin-bottom-xxsmall whitespace-normal" + class-segment5="segment half text-right sm-hidden" + + class-segment6="segment two-third sm-full padding-top-xsmall sm-text-center" + class-profile.shortDescription="segment block sm-text-center margin-bottom-large whitespace-normal" + + class-segment7="segment lg-hidden sm-full" + + class-segment8="segment two-third sm-full padding-bottom-large padding-bottom-xxsmall sm-text-left" + + class-segment9="segment full" + class-profile.description="segment full whitespace-normal" + + class-segment10="segment full text-right margin-top-xxlarge" + action-edit=`${component.route}-edit` + class-edit="segment sm-full button text-xsmall text-bold text-uppercase text-center reversed color-secondary bordered icon icon-pencil" + value-edit="" + data-trans='value-edit=communities.profile.edit' + + class-segment11="segment full whitespace-normal" + class-profile.picture1="communities-profile-picture segment third" + class-profile.picture2="communities-profile-picture segment third" + class-profile.picture3="communities-profile-picture segment third" + + widget-logo="hubl-communities-profile-logo" + widget-profile.tweeter="hubl-communities-profile-twitter" + widget-profile.facebook="hubl-communities-profile-facebook" + widget-profile.linkedin="hubl-communities-profile-linkedin" + widget-profile.instagram="hubl-communities-profile-instagram" + widget-addresses="hubl-communities-profile-address" + widget-members="hubl-communities-profile-members-counter" + widget-profile.website="hubl-communities-profile-website" + widget-profile.email="hubl-communities-profile-email" + widget-profile.phone="hubl-communities-profile-phone" + widget-profile.picture1="hubl-communities-profile-picture" + widget-profile.picture2="hubl-communities-profile-picture" + widget-profile.picture3="hubl-communities-profile-picture" + + bind-resources + ) + + solid-map.communities-profile-map( + bind-resources + nested-field="addresses" + fields="position(community.name, address_line1, address_line2)" + class-community-name="segment block margin bottom-xsmall text-color-heading text-xlarge text-bold" + class-address_line1="segment block" + class-address_line2="segment block" + clustering="" + style="display:block;height:450px;" + ) diff --git a/src/views/partials/header.pug b/src/views/partials/header.pug index 5277980..ca1a3d1 100644 --- a/src/views/partials/header.pug +++ b/src/views/partials/header.pug @@ -99,7 +99,7 @@ div if componentSet.has("communities") solid-link.text-hover(next=`admin-${getRoute("chat", true)}`) li.segment.padding-top-small.sm-padding-top-medium - a.icon.icon-people.icon-third.icon-small.icon-margin-right-xsmall(data-trans='admin.menuRight.community') + a.icon.icon-grid.icon-third.icon-small.icon-margin-right-xsmall(data-trans='admin.menuRight.community') if componentSet.has("circles") solid-link.text-hover(next=`admin-${getRoute("circles", true)}`) li.segment.padding-top-small.sm-padding-top-medium diff --git a/src/views/partials/menu-left.pug b/src/views/partials/menu-left.pug index 4a50ef6..fa362ab 100644 --- a/src/views/partials/menu-left.pug +++ b/src/views/partials/menu-left.pug @@ -28,6 +28,7 @@ solid-router#navbar-router(default-route='dashboard') div.segment.margin-right-xxsmall div.segment.icon.icon-small.icon-grid div.segment.text-uppercase.text-letter-spacing-large(data-trans="menuLeft.communities") + solid-route(name=`${component.route}-profile`) div.divider if component.type == "circles" diff --git a/src/views/partials/widgets.pug b/src/views/partials/widgets.pug index 9abc0d8..a95c9f6 100644 --- a/src/views/partials/widgets.pug +++ b/src/views/partials/widgets.pug @@ -22,6 +22,17 @@ include widgets/hubl-circle-team-contact.pug include widgets/hubl-circle-user-admin.pug include widgets/hubl-communities-counter-alternate.pug include widgets/hubl-communities-logo.pug +include widgets/hubl-communities-profile-address.pug +include widgets/hubl-communities-profile-email.pug +include widgets/hubl-communities-profile-facebook.pug +include widgets/hubl-communities-profile-instagram.pug +include widgets/hubl-communities-profile-linkedin.pug +include widgets/hubl-communities-profile-logo.pug +include widgets/hubl-communities-profile-members-counter.pug +include widgets/hubl-communities-profile-phone.pug +include widgets/hubl-communities-profile-picture.pug +include widgets/hubl-communities-profile-twitter.pug +include widgets/hubl-communities-profile-website.pug include widgets/hubl-counter.pug include widgets/hubl-email-field.pug include widgets/hubl-menu-empty.pug diff --git a/src/views/partials/widgets/hubl-admin-community-logo.pug b/src/views/partials/widgets/hubl-admin-community-logo.pug index 8db707e..183b486 100644 --- a/src/views/partials/widgets/hubl-admin-community-logo.pug +++ b/src/views/partials/widgets/hubl-admin-community-logo.pug @@ -1,3 +1,3 @@ -if componentSet.has('admin') && componentSet.has('circles') +if (componentSet.has('admin') && componentSet.has('circles')) || componentSet.has('communities') solid-widget(name='hubl-admin-community-logo') template ${value != "" ? `
` : `
`} \ No newline at end of file diff --git a/src/views/partials/widgets/hubl-communities-counter-alternate.pug b/src/views/partials/widgets/hubl-communities-counter-alternate.pug index a92b274..076edea 100644 --- a/src/views/partials/widgets/hubl-communities-counter-alternate.pug +++ b/src/views/partials/widgets/hubl-communities-counter-alternate.pug @@ -1,4 +1,4 @@ -if componentSet.has('admin') && componentSet.has('communities') +if componentSet.has('communities') solid-widget(name='hubl-communities-counter-alternate') template div @@ -9,4 +9,4 @@ if componentSet.has('admin') && componentSet.has('communities') nested-field="members" counter-template="\\\${counter}" ) - span members + span(data-trans="communities.list.members") diff --git a/src/views/partials/widgets/hubl-communities-logo.pug b/src/views/partials/widgets/hubl-communities-logo.pug index adde5a4..17cea6c 100644 --- a/src/views/partials/widgets/hubl-communities-logo.pug +++ b/src/views/partials/widgets/hubl-communities-logo.pug @@ -1,3 +1,3 @@ -if componentSet.has('admin') && componentSet.has('communities') +if componentSet.has('communities') solid-widget(name='hubl-communities-logo') - template ${value != "" ? `
` : `
`} \ No newline at end of file + template ${value != "" ? `
` : `
`} diff --git a/src/views/partials/widgets/hubl-communities-profile-address.pug b/src/views/partials/widgets/hubl-communities-profile-address.pug index e69de29..b59b961 100644 --- a/src/views/partials/widgets/hubl-communities-profile-address.pug +++ b/src/views/partials/widgets/hubl-communities-profile-address.pug @@ -0,0 +1,4 @@ +if componentSet.has('communities') + solid-widget(name='hubl-communities-profile-address') + template + | ${await value != "" ? `\${await value.adress_line1}
\${await value.adress_line2}
` : ``} diff --git a/src/views/partials/widgets/hubl-communities-profile-email.pug b/src/views/partials/widgets/hubl-communities-profile-email.pug new file mode 100644 index 0000000..c9b0876 --- /dev/null +++ b/src/views/partials/widgets/hubl-communities-profile-email.pug @@ -0,0 +1,3 @@ +if componentSet.has('communities') + solid-widget(name='hubl-communities-profile-email') + template ${value != "" ? `\$value` : ``} diff --git a/src/views/partials/widgets/hubl-communities-profile-facebook.pug b/src/views/partials/widgets/hubl-communities-profile-facebook.pug new file mode 100644 index 0000000..11716b0 --- /dev/null +++ b/src/views/partials/widgets/hubl-communities-profile-facebook.pug @@ -0,0 +1,3 @@ +if componentSet.has('communities') + solid-widget(name='hubl-communities-profile-facebook') + template ${value != "" ? `` : ``} diff --git a/src/views/partials/widgets/hubl-communities-profile-instagram.pug b/src/views/partials/widgets/hubl-communities-profile-instagram.pug new file mode 100644 index 0000000..34d5c6f --- /dev/null +++ b/src/views/partials/widgets/hubl-communities-profile-instagram.pug @@ -0,0 +1,3 @@ +if componentSet.has('communities') + solid-widget(name='hubl-communities-profile-instagram') + template ${value != "" ? `` : ``} diff --git a/src/views/partials/widgets/hubl-communities-profile-linkedin.pug b/src/views/partials/widgets/hubl-communities-profile-linkedin.pug new file mode 100644 index 0000000..c3801f8 --- /dev/null +++ b/src/views/partials/widgets/hubl-communities-profile-linkedin.pug @@ -0,0 +1,3 @@ +if componentSet.has('communities') + solid-widget(name='hubl-communities-profile-linkedin') + template ${value != "" ? `` : ``} diff --git a/src/views/partials/widgets/hubl-communities-profile-logo.pug b/src/views/partials/widgets/hubl-communities-profile-logo.pug index aadc962..a58adb6 100644 --- a/src/views/partials/widgets/hubl-communities-profile-logo.pug +++ b/src/views/partials/widgets/hubl-communities-profile-logo.pug @@ -1,3 +1,3 @@ -if componentSet.has('admin') && componentSet.has('communities') +if componentSet.has('communities') solid-widget(name='hubl-communities-profile-logo') template ${value != "" ? `
` : `
`} \ No newline at end of file diff --git a/src/views/partials/widgets/hubl-communities-profile-members-counter.pug b/src/views/partials/widgets/hubl-communities-profile-members-counter.pug index 45a7e41..0ce0538 100644 --- a/src/views/partials/widgets/hubl-communities-profile-members-counter.pug +++ b/src/views/partials/widgets/hubl-communities-profile-members-counter.pug @@ -1,4 +1,4 @@ -if componentSet.has('admin') && componentSet.has('communities') +if componentSet.has('communities') solid-widget(name='hubl-communities-profile-members-counter') template p @@ -8,4 +8,4 @@ if componentSet.has('admin') && componentSet.has('communities') fields='' counter-template="\\\${counter}" ) - span members \ No newline at end of file + span(data-trans="communities.profile.members") \ No newline at end of file diff --git a/src/views/partials/widgets/hubl-communities-profile-phone.pug b/src/views/partials/widgets/hubl-communities-profile-phone.pug new file mode 100644 index 0000000..183befb --- /dev/null +++ b/src/views/partials/widgets/hubl-communities-profile-phone.pug @@ -0,0 +1,3 @@ +if componentSet.has('communities') + solid-widget(name='hubl-communities-profile-phone') + template ${value != "" ? `\$value` : ``} diff --git a/src/views/partials/widgets/hubl-communities-profile-picture.pug b/src/views/partials/widgets/hubl-communities-profile-picture.pug new file mode 100644 index 0000000..37caa95 --- /dev/null +++ b/src/views/partials/widgets/hubl-communities-profile-picture.pug @@ -0,0 +1,3 @@ +if componentSet.has('communities') + solid-widget(name='hubl-communities-profile-picture') + template ${value != "" ? `
` : `
`} diff --git a/src/views/partials/widgets/hubl-communities-profile-profile.pug b/src/views/partials/widgets/hubl-communities-profile-profile.pug deleted file mode 100644 index c0c53b3..0000000 --- a/src/views/partials/widgets/hubl-communities-profile-profile.pug +++ /dev/null @@ -1,6 +0,0 @@ -if componentSet.has('admin') && componentSet.has('communities') - solid-widget(name='hubl-communities-profile-profile') - template - | ${value.website != "" ? `\$value.website` : `
`} - | ${value.email != "" ? `\$value.email` : `
`} - | ${value.phone != "" ? `\$value.phone` : `
`} diff --git a/src/views/partials/widgets/hubl-communities-profile-twitter.pug b/src/views/partials/widgets/hubl-communities-profile-twitter.pug new file mode 100644 index 0000000..364c07e --- /dev/null +++ b/src/views/partials/widgets/hubl-communities-profile-twitter.pug @@ -0,0 +1,3 @@ +if componentSet.has('communities') + solid-widget(name='hubl-communities-profile-twitter') + template ${value != "" ? `` : ``} diff --git a/src/views/partials/widgets/hubl-communities-profile-website.pug b/src/views/partials/widgets/hubl-communities-profile-website.pug new file mode 100644 index 0000000..41eaf9c --- /dev/null +++ b/src/views/partials/widgets/hubl-communities-profile-website.pug @@ -0,0 +1,3 @@ +if componentSet.has('communities') + solid-widget(name='hubl-communities-profile-website') + template ${value != "" ? `$value` : ``} From 68587dc94e9d7345a3c07f75d6ad27845660f8c2 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Thu, 8 Apr 2021 12:25:26 +0200 Subject: [PATCH 06/47] fix: workaround for startinblox-feature-requests#250 --- src/locales/en.json | 2 +- src/locales/es.json | 2 +- src/locales/fr.json | 2 +- src/scripts/intl.js | 11 +++++++++++ src/views/partials/menu-left.pug | 3 ++- 5 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/locales/en.json b/src/locales/en.json index cde20c6..39880e5 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -32,7 +32,7 @@ "circlesBrowse": "Browse circles", "circleCreate": "Create circle", "messages": "Messages", - "search": "Search...", + "search": "Search", "republiqueESS": { "home": "Home", "contribute": "Contribute", diff --git a/src/locales/es.json b/src/locales/es.json index a393f2b..edfed16 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -32,7 +32,7 @@ "circlesBrowse": "Examinar los círculos", "circleCreate": "Crea un círculo.", "messages": "Mensajes", - "search": "Buscar...", + "search": "Buscar", "republiqueESS": { "home": "Hogar", "contribute": "Contribuir", diff --git a/src/locales/fr.json b/src/locales/fr.json index e58d485..b440cc3 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -32,7 +32,7 @@ "circlesBrowse": "Parcourir les cercles", "circleCreate": "Créer un cercle", "messages": "Messages", - "search": "Rechercher...", + "search": "Rechercher", "republiqueESS": { "home": "Accueil", "contribute": "Contribuer", diff --git a/src/scripts/intl.js b/src/scripts/intl.js index 5c02ae4..1f3e976 100644 --- a/src/scripts/intl.js +++ b/src/scripts/intl.js @@ -78,6 +78,17 @@ class JsI18n { this.translateNodeContent(label, k); } } + // https://git.startinblox.com/framework/sib-core/issues/755 + if (attr.startsWith('placeholder-')) { + let placeholder = node.querySelector('[placeholder="' + attr.replace("placeholder-", "") + '"]'); + if (placeholder != null) { + this.translateNodeContent(placeholder.attributes['placeholder'], k); + let input = node.querySelector('[name="' + attr.replace("placeholder-", "") + '"] > input'); + if(input != null) { + this.translateNodeContent(input.attributes['placeholder'], k); + } + } + } this.translateNodeContent(node.attributes[attr], k); } } diff --git a/src/views/partials/menu-left.pug b/src/views/partials/menu-left.pug index 2d59e0a..f3ff143 100644 --- a/src/views/partials/menu-left.pug +++ b/src/views/partials/menu-left.pug @@ -5,7 +5,8 @@ solid-form-search.icon.children-icon-magnifier( search-name='circle.name, project.customer.name, project.name, contact.username, contact.name' order-asc-names='name' - label-name='Rechercher' + placeholder-name='' + data-trans='placeholder-name=menuLeft.search' widget-name="solid-form-placeholder-text" submit-button="" From a5ede42a914a68ab60dcc039ac55ffd53a9925f0 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Thu, 8 Apr 2021 12:51:16 +0200 Subject: [PATCH 07/47] fix: startinblox-feature-request#249 --- src/components/hubl-status.js | 34 ------------------- src/index.pug | 1 - src/locales/en.json | 5 +-- src/locales/es.json | 5 +-- src/locales/fr.json | 5 +-- .../admin/page-admin-circles-create.pug | 5 +-- .../partials/circle/page-circle-edit.pug | 5 +-- 7 files changed, 9 insertions(+), 51 deletions(-) delete mode 100644 src/components/hubl-status.js diff --git a/src/components/hubl-status.js b/src/components/hubl-status.js deleted file mode 100644 index 299b882..0000000 --- a/src/components/hubl-status.js +++ /dev/null @@ -1,34 +0,0 @@ -import { - widgetFactory, - Helpers -} from 'https://cdn.skypack.dev/@startinblox/core@0.16'; -import SlimSelect from 'https://cdn.skypack.dev/slim-select@1.23'; - -const HublStatus = widgetFactory( - 'hubl-status', - ` - `, - '', - formWidget => { - let select = formWidget.querySelector('select'); - if (!select) return; - const slimSelect = new SlimSelect({ - select: select - }); - Helpers.importCSS('https://dev.jspm.io/slim-select/dist/slimselect.min.css'); - select.addEventListener('change', () => slimSelect.render()); - }, -); - -export { - HublStatus -} \ No newline at end of file diff --git a/src/index.pug b/src/index.pug index d3c72a0..61076a2 100644 --- a/src/index.pug +++ b/src/index.pug @@ -31,7 +31,6 @@ html(lang="en") script(type="module" src="/components/sentry.js" defer) script(type="module" src="/components/hubl-auto-login.js" defer) script(type="module" src="/components/hubl-search-users.js" defer) - script(type="module" src="/components/hubl-status.js" defer) script(type="module" src="/components/hubl-reactivity.js" defer) script(src="index.js" defer) diff --git a/src/locales/en.json b/src/locales/en.json index 39880e5..24709a9 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -248,10 +248,7 @@ "template-captain": { "isLead": "Captain" }, - "hublStatus": { - "private": "Private", - "public": "Public" - }, + "hublStatus": "Public = Public, Private = Private", "success": "Success!", "errors": { "somethingGoesWrong": "Something goes wrong, try to", diff --git a/src/locales/es.json b/src/locales/es.json index edfed16..747d704 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -248,10 +248,7 @@ "template-captain": { "isLead": "Líder" }, - "hublStatus": { - "private": "Privado", - "public": "Público" - }, + "hublStatus": "Público = Public, Privado = Private", "success": "¡Éxito!", "errors": { "somethingGoesWrong": "Algo sale mal, intenta", diff --git a/src/locales/fr.json b/src/locales/fr.json index b440cc3..bf01c5c 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -248,10 +248,7 @@ "template-captain": { "isLead": "Capitaine" }, - "hublStatus": { - "private": "Privé", - "public": "Public" - }, + "hublStatus": "Public = Public, Privé = Private", "success": "Succès!", "errors": { "somethingGoesWrong": "Quelque chose ne va pas, essayez de", diff --git a/src/views/partials/admin/page-admin-circles-create.pug b/src/views/partials/admin/page-admin-circles-create.pug index effa98e..ad90c8f 100644 --- a/src/views/partials/admin/page-admin-circles-create.pug +++ b/src/views/partials/admin/page-admin-circles-create.pug @@ -38,7 +38,8 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac range-community='store://user.communities' option-label-community="community.name" - widget-status='hubl-status' + widget-status='solid-form-dropdown-autocompletion-label' + enum-status="" widget-community='solid-form-dropdown-autocompletion-label' widget-linebreak='solid-form-hidden' @@ -50,5 +51,5 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac submit-button='' submit-widget="button" - data-trans='label-status=circle.create.labelStatus;label-community=circle.create.labelCommunity;label-name=circle.create.labelName;label-description=circle.create.labelDescription;submit-button=circle.create.buttonSubmit;label-subtitle=circle.create.labelSubtitle;label-help=circle.create.descriptionHelp' + data-trans='enum-status=hublStatus;label-status=circle.create.labelStatus;label-community=circle.create.labelCommunity;label-name=circle.create.labelName;label-description=circle.create.labelDescription;submit-button=circle.create.buttonSubmit;label-subtitle=circle.create.labelSubtitle;label-help=circle.create.descriptionHelp' ) diff --git a/src/views/partials/circle/page-circle-edit.pug b/src/views/partials/circle/page-circle-edit.pug index be7d998..7249a40 100644 --- a/src/views/partials/circle/page-circle-edit.pug +++ b/src/views/partials/circle/page-circle-edit.pug @@ -49,7 +49,8 @@ div.segment.full.padding-large.whitespace-normal class-owner='hidden' class-help='segment full text-small margin-bottom-medium padding-left-small' - widget-status='hubl-status' + widget-status='solid-form-dropdown-autocompletion-label' + enum-status="" widget-description='solid-form-richtext-label' widget-help='solid-form-hidden-label' widget-community='solid-form-dropdown-autocompletion-label' @@ -64,7 +65,7 @@ div.segment.full.padding-large.whitespace-normal submit-widget="button" next=`${component.route}-information` - data-trans='label-status=circle.edit.labelStatus;label-community=circle.edit.labelCommunity;label-name=circle.edit.labelName;label-owner=circle.edit.labelOwner;label-description=circle.edit.labelDescription;submit-button=circle.edit.buttonSubmit;label-subtitle=circle.edit.labelSubtitle;label-help=circle.edit.descriptionHelp' + data-trans='enum-status=hublStatus;label-status=circle.edit.labelStatus;label-community=circle.edit.labelCommunity;label-name=circle.edit.labelName;label-owner=circle.edit.labelOwner;label-description=circle.edit.labelDescription;submit-button=circle.edit.buttonSubmit;label-subtitle=circle.edit.labelSubtitle;label-help=circle.edit.descriptionHelp' ) h3.segment.full.padding-bottom-small.border-bottom.border-color-grey.text-color-heading.text-bold.text-letter-spacing-large(data-trans='circle.edit.subTitle') From ce0384563b03445a4217734beda7551d2dc3ca61 Mon Sep 17 00:00:00 2001 From: gaelle morin Date: Thu, 8 Apr 2021 16:08:42 +0200 Subject: [PATCH 08/47] patch: community-edit --- package-lock.json | 6 +- package.json | 2 +- src/locales/en.json | 21 ++++ src/locales/es.json | 21 ++++ src/locales/fr.json | 21 ++++ .../communities/page-community-edit.pug | 115 +++++++++++++++++- .../communities/page-community-profile.pug | 3 +- src/views/partials/widgets.pug | 2 + .../widgets/hubl-communities-edit-email.pug | 5 + .../widgets/hubl-communities-edit-website.pug | 5 + 10 files changed, 195 insertions(+), 6 deletions(-) create mode 100644 src/views/partials/widgets/hubl-communities-edit-email.pug create mode 100644 src/views/partials/widgets/hubl-communities-edit-website.pug diff --git a/package-lock.json b/package-lock.json index 7b2b879..25ba5b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1159,9 +1159,9 @@ } }, "@startinblox/hubl-styling-framework": { - "version": "1.8.18", - "resolved": "https://registry.npmjs.org/@startinblox/hubl-styling-framework/-/hubl-styling-framework-1.8.18.tgz", - "integrity": "sha512-GdtuX2AjYwPQfMqU7oCuFfjTS4B9UKdnllYDi9Eg/F6XCcUIdUGSG05TP5yNPkuyI1OZ0Rj/arzhchzLOWqHhA==" + "version": "1.8.21", + "resolved": "https://registry.npmjs.org/@startinblox/hubl-styling-framework/-/hubl-styling-framework-1.8.21.tgz", + "integrity": "sha512-4T0sqL7rqqe8uFmH4f8geigxZ4pIxI1ze3sycM762CQFtM5fXadAI9tl7wwAOQbY15y6xfZfDcPoK0YEjv0v9g==" }, "@types/q": { "version": "1.5.4", diff --git a/package.json b/package.json index 7046887..6f67c45 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ ] }, "dependencies": { - "@startinblox/hubl-styling-framework": "^1.8.18", + "@startinblox/hubl-styling-framework": "^1.8.21", "cross-env": "^7.0.3", "fs-extra": "^9.0.1", "normalize.css": "^8.0.1", diff --git a/src/locales/en.json b/src/locales/en.json index 778dc96..01bdf36 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -139,6 +139,7 @@ } }, "communities": { + "back": "Back", "title": "Administration", "menuMobile": "MENU", "linkInvite": "Invite a new user", @@ -168,6 +169,26 @@ "back": "Back", "members": "members", "edit": "Edit the page" + }, + "edit": { + "labelShortDescription": "Community headline", + "labelDescription": "community description", + "labelPhone": "Phone", + "labelEmail": "Email", + "labelWebsite": "Website", + "labelTwitter": "Twitter", + "labelFacebook": "Facebook", + "labelLinkedin": "Linkedin", + "labelInstagram": "Instagram", + "labelPicture1": "Picture 1", + "labelPicture2": "Picture 2", + "labelPicture3": "Picture 3", + "labelAddressLine1": "Address Line 1", + "labelAddressLine2": "Address Line 2", + "labelLogo": "Community Logo", + "subTitle": "Pictures", + "subTitle1": "Address", + "buttonSubmit": "Save" } }, "project": { diff --git a/src/locales/es.json b/src/locales/es.json index 43bd5d2..b3b4939 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -139,6 +139,7 @@ } }, "communities": { + "back": "", "title": "Administración", "menuMobile": "MENÚ", "linkInvite": "Invita a un/a nuevx usuarix", @@ -168,6 +169,26 @@ "back": "", "members": "", "edit": "" + }, + "edit": { + "labelShortDescription": "", + "labelDescription": "", + "labelPhone": "", + "labelEmail": "", + "labelWebsite": "", + "labelTwitter": "Twitter", + "labelFacebook": "Facebook", + "labelLinkedin": "Linkedin", + "labelInstagram": "Instagram", + "labelPicture1": "", + "labelPicture2": "", + "labelPicture3": "", + "labelAddressLine1": "", + "labelAddressLine2": "", + "labelLogo": "", + "subTitle": "", + "subTitle1": "", + "buttonSubmit": "Guardar" } }, "project": { diff --git a/src/locales/fr.json b/src/locales/fr.json index 75f732c..64b21a8 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -139,6 +139,7 @@ } }, "communities": { + "back": "Retour", "title": "Administration", "menuMobile": "MENU", "linkInvite": "Inviter un nouvel utilisateur", @@ -168,6 +169,26 @@ "back": "Retour", "members": "membres", "edit": "Editer la page" + }, + "edit": { + "labelShortDescription": "Sous-titre de la communauté", + "labelDescription": "Description de la communauté", + "labelPhone": "Téléphone", + "labelEmail": "Email", + "labelWebsite": "Site web", + "labelTwitter": "Twitter", + "labelFacebook": "Facebook", + "labelLinkedin": "Linkedin", + "labelInstagram": "Instagram", + "labelPicture1": "Photo 1", + "labelPicture2": "Photo 2", + "labelPicture3": "Photo 3", + "labelAddressLine1": "Adresse ligne 1", + "labelAddressLine2": "Adresse ligne 2", + "labelLogo": "Logo de la communauté", + "subTitle": "Photos", + "subTitle1": "Adresse", + "buttonSubmit": "Enregistrer" } }, "project": { diff --git a/src/views/partials/communities/page-community-edit.pug b/src/views/partials/communities/page-community-edit.pug index dae03c8..2aee307 100644 --- a/src/views/partials/communities/page-community-edit.pug +++ b/src/views/partials/communities/page-community-edit.pug @@ -1 +1,114 @@ -h1 COMMUEDIT \ No newline at end of file +div.bg-color-white + solid-ac-checker(permission='acl:Read', bind-resources) + div.segment.full.padding-large.border-bottom.border-color-grey + div.segment.half.sm-full + solid-display.text-color-heading.text-bold.text-xxlarge.text-letter-spacing-large( + bind-resources + fields='name' + ) + div.segment.half.sm-hidden.text-right + solid-link(class="backlink", bind-resources, next=`${component.route}-profile` data-trans="communities.back") + + div.segment.full.padding-large.whitespace-normal + + solid-ac-checker(permission='acl:Write', bind-resources) + div.loader.loader-top(id=`loader-${component.route}-edit`) + div + div + div + div + + solid-form.form( + bind-resources + + fields='profile.shortDescription, profile.description, segment(logo), profile.website, profile.email, profile.phone, profile.tweeter, profile.facebook, profile.linkedin, segment1(profile.instagram)' + + label-profile.shortDescription='' + label-profile.description='' + label-logo='' + label-profile.website='' + label-profile.email='' + label-profile.phone='' + label-profile.tweeter='' + label-profile.facebook='' + label-profile.linkedin='' + label-profile.instagram='' + + class-profile.shortDescription='segment margin-bottom-medium half sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' + class-profile.description='segment margin-bottom-medium full text-small text-semibold text-uppercase text-color-heading' + + class-segment='segment full' + class-logo='segment margin-bottom-medium half sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' + class-profile.website='segment margin-bottom-medium third sm-full padding-right-small sm-padding-none' + class-profile.email='segment margin-bottom-medium third sm-full padding-right-small padding-left-small sm-padding-none' + class-profile.phone='segment margin-bottom-medium third sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' + + class-profile.tweeter='segment margin-bottom-medium third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' + class-profile.facebook='segment margin-bottom-medium third sm-full padding-right-small padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' + class-profile.linkedin='segment margin-bottom-medium third sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' + class-segment1='segment full' + class-profile.instagram='segment margin-bottom-medium third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' + + widget-profile.description='solid-form-richtext-label' + widget-profile.email='hubl-communities-edit-email' + widget-profile.website='hubl-communities-edit-website' + upload-url-logo + + submit-button='' + submit-widget="button" + next=`${component.route}-profile` + + data-trans='label-logo=communities.edit.labelLogo;label-profile.shortDescription=communities.edit.labelShortDescription;label-profile.description=communities.edit.labelDescription;label-profile.phone=communities.edit.labelPhone;label-profile.tweeter=communities.edit.labelTwitter;label-profile.facebook=communities.edit.labelFacebook;label-profile.linkedin=communities.edit.labelLinkedin;label-profile.instagram=communities.edit.labelInstagram;submit-button=communities.edit.buttonSubmit' + ) + + h3.segment.full.padding-bottom-small.border-bottom.border-color-grey.text-color-heading.text-bold.text-letter-spacing-large(data-trans='communities.edit.subTitle') + + solid-form.form( + bind-resources + + fields='profile.picture1, profile.picture2, profile.picture3' + + upload-url-profile.picture1 + upload-url-profile.picture2 + upload-url-profile.picture3 + + label-profile.picture1='' + label-profile.picture2='' + label-profile.picture3='' + + class-profile.picture1='segment margin-bottom-medium third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' + class-profile.picture2='segment margin-bottom-medium third sm-full padding-right-small padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' + class-profile.picture3='segment margin-bottom-medium third sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' + + submit-button='' + submit-widget="button" + next=`${component.route}-profile` + + data-trans='label-profile.picture1=communities.edit.labelPicture1;label-profile.picture2=communities.edit.labelPicture2;label-profile.picture3=communities.edit.labelPicture3;submit-button=communities.edit.buttonSubmit' + ) + + h3.segment.full.padding-bottom-small.border-bottom.border-color-grey.text-color-heading.text-bold.text-letter-spacing-large(data-trans='communities.edit.subTitle1') + + solid-table.form( + bind-resources + nested-fields='addresses' + fields='address_line1, address_line2' + + editable-address_line1 + editable-address_line2 + + label-address_line1='' + label-address_line2='' + + widget-address_line1='solid-form-label-text' + widget-address_line2='solid-form-label-text' + + class-address_line1='segment margin-bottom-medium half sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' + class-address_line2='segment margin-bottom-medium half sm-full padding-right-small padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' + + submit-button='' + submit-widget="button" + next=`${component.route}-profile` + + data-trans='label-addresses.address_line1=communities.edit.labelAddressLine1;label-addresses.address_line2=communities.edit.labelAddressLine2' + ) diff --git a/src/views/partials/communities/page-community-profile.pug b/src/views/partials/communities/page-community-profile.pug index 9e49a46..62cc4bc 100644 --- a/src/views/partials/communities/page-community-profile.pug +++ b/src/views/partials/communities/page-community-profile.pug @@ -1,6 +1,6 @@ div.community-profile.padding-medium.sm-padding-none div.segment.full.sm-hidden.text-right - solid-link.backlink.text-xlarge.line-xlarge.margin-right-xxsmall(next=`${component.route}-directory` data-trans="communities.profile.back") + solid-link.backlink.text-xlarge.line-xlarge.margin-right-xxsmall(next=`${component.route}-directory` data-trans="communities.back") div.segment.block.shadow.bg-color-white.margin-right-xxsmall.margin-top-large.margin-left-xxsmall.sm-margin-none @@ -46,6 +46,7 @@ div.community-profile.padding-medium.sm-padding-none class-profile.picture3="communities-profile-picture segment third" widget-logo="hubl-communities-profile-logo" + widget-profile.description="solid-display-richtext-label" widget-profile.tweeter="hubl-communities-profile-twitter" widget-profile.facebook="hubl-communities-profile-facebook" widget-profile.linkedin="hubl-communities-profile-linkedin" diff --git a/src/views/partials/widgets.pug b/src/views/partials/widgets.pug index a95c9f6..9ae42b0 100644 --- a/src/views/partials/widgets.pug +++ b/src/views/partials/widgets.pug @@ -21,6 +21,8 @@ include widgets/hubl-circle-owner.pug include widgets/hubl-circle-team-contact.pug include widgets/hubl-circle-user-admin.pug include widgets/hubl-communities-counter-alternate.pug +include widgets/hubl-communities-edit-email.pug +include widgets/hubl-communities-edit-website.pug include widgets/hubl-communities-logo.pug include widgets/hubl-communities-profile-address.pug include widgets/hubl-communities-profile-email.pug diff --git a/src/views/partials/widgets/hubl-communities-edit-email.pug b/src/views/partials/widgets/hubl-communities-edit-email.pug new file mode 100644 index 0000000..529157a --- /dev/null +++ b/src/views/partials/widgets/hubl-communities-edit-email.pug @@ -0,0 +1,5 @@ +if componentSet.has('communities') + solid-widget(name='hubl-communities-edit-email') + template + label(class="text-small text-semibold text-uppercase text-color-heading" data-trans="communities.edit.labelEmail") + input(type="email" label="communities.edit.labelEmail" name="profile.email" required value="\${value}" data-holder) diff --git a/src/views/partials/widgets/hubl-communities-edit-website.pug b/src/views/partials/widgets/hubl-communities-edit-website.pug new file mode 100644 index 0000000..f7edbc1 --- /dev/null +++ b/src/views/partials/widgets/hubl-communities-edit-website.pug @@ -0,0 +1,5 @@ +if componentSet.has('communities') + solid-widget(name='hubl-communities-edit-website') + template + label(class="text-small text-semibold text-uppercase text-color-heading" data-trans='communities.edit.labelWebsite') + input(type="url" label="communities.edit.labelWebsite" name="profile.website" value="\${value}" data-holder) From 06521d9805608718f9e26d31b985731e4c5868ce Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Thu, 8 Apr 2021 17:48:21 +0200 Subject: [PATCH 09/47] major: migrate sw to workbox --- package-lock.json | 581 ++++++++++++++++++++++++++++++++- package.json | 10 + src/components/sw-toolbox.js | 45 +++ src/hubl-router.pug | 2 +- src/index.pug | 1 + src/locales/en.json | 6 + src/locales/es.json | 6 + src/locales/fr.json | 6 + src/scripts/register-sw.js | 11 - src/service-worker.js | 81 +++++ src/styles/content/_index.scss | 4 + src/sw.js | 115 ------- 12 files changed, 735 insertions(+), 133 deletions(-) create mode 100644 src/components/sw-toolbox.js delete mode 100644 src/scripts/register-sw.js create mode 100644 src/service-worker.js delete mode 100644 src/sw.js diff --git a/package-lock.json b/package-lock.json index 1fad494..819b6f6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1070,6 +1070,40 @@ } } }, + "@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", + "integrity": "sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==" + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz", + "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==" + }, + "@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz", + "integrity": "sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==" + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", + "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", + "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", + "requires": { + "@hapi/hoek": "^8.3.0" + } + }, "@iarna/toml": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", @@ -1429,6 +1463,14 @@ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" }, + "babel-extract-comments": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz", + "integrity": "sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==", + "requires": { + "babylon": "^6.18.0" + } + }, "babel-plugin-dynamic-import-node": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", @@ -1437,6 +1479,20 @@ "object.assign": "^4.1.0" } }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "requires": { + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" + } + }, "babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", @@ -1479,6 +1535,11 @@ "@babel/types": "^7.9.6" } }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + }, "babylon-walk": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/babylon-walk/-/babylon-walk-1.0.2.tgz", @@ -1797,6 +1858,11 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, "caniuse-api": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", @@ -2036,6 +2102,77 @@ } } }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + } + } + }, "clone": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", @@ -2130,8 +2267,7 @@ "common-tags": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", - "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", - "dev": true + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==" }, "component-emitter": { "version": "1.3.0", @@ -2692,6 +2828,11 @@ "ms": "2.1.2" } }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", @@ -2911,8 +3052,7 @@ "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "encodeurl": { "version": "1.0.2", @@ -3343,6 +3483,15 @@ "to-regex-range": "^2.1.0" } }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -3417,6 +3566,11 @@ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, "get-intrinsic": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", @@ -3427,6 +3581,11 @@ "has-symbols": "^1.0.1" } }, + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, "get-port": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/get-port/-/get-port-3.2.0.tgz", @@ -4054,6 +4213,11 @@ "has-symbols": "^1.0.1" } }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" + }, "is-resolvable": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", @@ -4423,11 +4587,24 @@ } } }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, "lodash": { "version": "4.17.20", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + }, "lodash.clone": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", @@ -4449,6 +4626,23 @@ "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" }, + "lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "requires": { + "lodash._reinterpolate": "^3.0.0" + } + }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -5122,12 +5316,33 @@ "integrity": "sha1-EnZjl3Sj+O8lcvf+QoDg6kVQwHs=", "dev": true }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, "p-map": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", "dev": true }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, "pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -5223,6 +5438,16 @@ } } }, + "parcel-plugin-sw-cache": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/parcel-plugin-sw-cache/-/parcel-plugin-sw-cache-0.3.1.tgz", + "integrity": "sha512-YPD3bap7V/gicZhxDjQc/DRgRU3t+jyoof5H0hMrTSgULeiWlqwO5CfLI+yxueJgqb55IUsPpxDUTqD1hJUwGg==", + "requires": { + "replace-in-file": "^4.1.0", + "rimraf": "^2.6.3", + "workbox-build": "^4.3.1" + } + }, "parse-asn1": { "version": "5.1.6", "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", @@ -5269,6 +5494,11 @@ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -5839,8 +6069,7 @@ "pretty-bytes": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.4.1.tgz", - "integrity": "sha512-s1Iam6Gwz3JI5Hweaz4GoCD1WUNUIyzePFy5+Js2hjwGVt2Z79wNN+ZKOZ2vB6C+Xs6njyB84Z1IthQg8d9LxA==", - "dev": true + "integrity": "sha512-s1Iam6Gwz3JI5Hweaz4GoCD1WUNUIyzePFy5+Js2hjwGVt2Z79wNN+ZKOZ2vB6C+Xs6njyB84Z1IthQg8d9LxA==" }, "process": { "version": "0.11.10", @@ -6252,6 +6481,16 @@ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, + "replace-in-file": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-4.3.1.tgz", + "integrity": "sha512-FqVvfmpqGTD2JRGI1JjJ86b24P17x/WWwGdxExeyJxnh/2rVQz2+jXfD1507UnnhEQw092X0u0DPCBf1WC4ooQ==", + "requires": { + "chalk": "^2.4.2", + "glob": "^7.1.6", + "yargs": "^15.0.2" + } + }, "request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", @@ -6306,6 +6545,16 @@ "tough-cookie": "^2.3.3" } }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, "resolve": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", @@ -6478,6 +6727,11 @@ "send": "0.17.1" } }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, "set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", @@ -6924,6 +7178,23 @@ "safe-buffer": "~5.2.0" } }, + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "requires": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "dependencies": { + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + } + } + }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -6932,6 +7203,15 @@ "ansi-regex": "^2.0.0" } }, + "strip-comments": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz", + "integrity": "sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==", + "requires": { + "babel-extract-comments": "^1.0.0", + "babel-plugin-transform-object-rest-spread": "^6.26.0" + } + }, "strip-final-newline": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", @@ -7535,6 +7815,11 @@ "isexe": "^2.0.0" } }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, "with": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", @@ -7551,6 +7836,228 @@ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" }, + "workbox-background-sync": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz", + "integrity": "sha512-1uFkvU8JXi7L7fCHVBEEnc3asPpiAL33kO495UMcD5+arew9IbKW2rV5lpzhoWcm/qhGB89YfO4PmB/0hQwPRg==", + "requires": { + "workbox-core": "^4.3.1" + }, + "dependencies": { + "workbox-core": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-4.3.1.tgz", + "integrity": "sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg==" + } + } + }, + "workbox-broadcast-update": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-4.3.1.tgz", + "integrity": "sha512-MTSfgzIljpKLTBPROo4IpKjESD86pPFlZwlvVG32Kb70hW+aob4Jxpblud8EhNb1/L5m43DUM4q7C+W6eQMMbA==", + "requires": { + "workbox-core": "^4.3.1" + }, + "dependencies": { + "workbox-core": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-4.3.1.tgz", + "integrity": "sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg==" + } + } + }, + "workbox-build": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-4.3.1.tgz", + "integrity": "sha512-UHdwrN3FrDvicM3AqJS/J07X0KXj67R8Cg0waq1MKEOqzo89ap6zh6LmaLnRAjpB+bDIz+7OlPye9iii9KBnxw==", + "requires": { + "@babel/runtime": "^7.3.4", + "@hapi/joi": "^15.0.0", + "common-tags": "^1.8.0", + "fs-extra": "^4.0.2", + "glob": "^7.1.3", + "lodash.template": "^4.4.0", + "pretty-bytes": "^5.1.0", + "stringify-object": "^3.3.0", + "strip-comments": "^1.0.2", + "workbox-background-sync": "^4.3.1", + "workbox-broadcast-update": "^4.3.1", + "workbox-cacheable-response": "^4.3.1", + "workbox-core": "^4.3.1", + "workbox-expiration": "^4.3.1", + "workbox-google-analytics": "^4.3.1", + "workbox-navigation-preload": "^4.3.1", + "workbox-precaching": "^4.3.1", + "workbox-range-requests": "^4.3.1", + "workbox-routing": "^4.3.1", + "workbox-strategies": "^4.3.1", + "workbox-streams": "^4.3.1", + "workbox-sw": "^4.3.1", + "workbox-window": "^4.3.1" + }, + "dependencies": { + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "workbox-cacheable-response": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-4.3.1.tgz", + "integrity": "sha512-Rp5qlzm6z8IOvnQNkCdO9qrDgDpoPNguovs0H8C+wswLuPgSzSp9p2afb5maUt9R1uTIwOXrVQMmPfPypv+npw==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-core": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-4.3.1.tgz", + "integrity": "sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg==" + }, + "workbox-expiration": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-4.3.1.tgz", + "integrity": "sha512-vsJLhgQsQouv9m0rpbXubT5jw0jMQdjpkum0uT+d9tTwhXcEZks7qLfQ9dGSaufTD2eimxbUOJfWLbNQpIDMPw==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-precaching": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-4.3.1.tgz", + "integrity": "sha512-piSg/2csPoIi/vPpp48t1q5JLYjMkmg5gsXBQkh/QYapCdVwwmKlU9mHdmy52KsDGIjVaqEUMFvEzn2LRaigqQ==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-routing": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-4.3.1.tgz", + "integrity": "sha512-FkbtrODA4Imsi0p7TW9u9MXuQ5P4pVs1sWHK4dJMMChVROsbEltuE79fBoIk/BCztvOJ7yUpErMKa4z3uQLX+g==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-strategies": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-4.3.1.tgz", + "integrity": "sha512-F/+E57BmVG8dX6dCCopBlkDvvhg/zj6VDs0PigYwSN23L8hseSRwljrceU2WzTvk/+BSYICsWmRq5qHS2UYzhw==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-window": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-4.3.1.tgz", + "integrity": "sha512-C5gWKh6I58w3GeSc0wp2Ne+rqVw8qwcmZnQGpjiek8A2wpbxSJb1FdCoQVO+jDJs35bFgo/WETgl1fqgsxN0Hg==", + "requires": { + "workbox-core": "^4.3.1" + } + } + } + }, + "workbox-google-analytics": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-4.3.1.tgz", + "integrity": "sha512-xzCjAoKuOb55CBSwQrbyWBKqp35yg1vw9ohIlU2wTy06ZrYfJ8rKochb1MSGlnoBfXGWss3UPzxR5QL5guIFdg==", + "requires": { + "workbox-background-sync": "^4.3.1", + "workbox-core": "^4.3.1", + "workbox-routing": "^4.3.1", + "workbox-strategies": "^4.3.1" + }, + "dependencies": { + "workbox-core": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-4.3.1.tgz", + "integrity": "sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg==" + }, + "workbox-routing": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-4.3.1.tgz", + "integrity": "sha512-FkbtrODA4Imsi0p7TW9u9MXuQ5P4pVs1sWHK4dJMMChVROsbEltuE79fBoIk/BCztvOJ7yUpErMKa4z3uQLX+g==", + "requires": { + "workbox-core": "^4.3.1" + } + }, + "workbox-strategies": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-4.3.1.tgz", + "integrity": "sha512-F/+E57BmVG8dX6dCCopBlkDvvhg/zj6VDs0PigYwSN23L8hseSRwljrceU2WzTvk/+BSYICsWmRq5qHS2UYzhw==", + "requires": { + "workbox-core": "^4.3.1" + } + } + } + }, + "workbox-navigation-preload": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-4.3.1.tgz", + "integrity": "sha512-K076n3oFHYp16/C+F8CwrRqD25GitA6Rkd6+qAmLmMv1QHPI2jfDwYqrytOfKfYq42bYtW8Pr21ejZX7GvALOw==", + "requires": { + "workbox-core": "^4.3.1" + }, + "dependencies": { + "workbox-core": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-4.3.1.tgz", + "integrity": "sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg==" + } + } + }, + "workbox-range-requests": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-4.3.1.tgz", + "integrity": "sha512-S+HhL9+iTFypJZ/yQSl/x2Bf5pWnbXdd3j57xnb0V60FW1LVn9LRZkPtneODklzYuFZv7qK6riZ5BNyc0R0jZA==", + "requires": { + "workbox-core": "^4.3.1" + }, + "dependencies": { + "workbox-core": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-4.3.1.tgz", + "integrity": "sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg==" + } + } + }, + "workbox-streams": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-4.3.1.tgz", + "integrity": "sha512-4Kisis1f/y0ihf4l3u/+ndMkJkIT4/6UOacU3A4BwZSAC9pQ9vSvJpIi/WFGQRH/uPXvuVjF5c2RfIPQFSS2uA==", + "requires": { + "workbox-core": "^4.3.1" + }, + "dependencies": { + "workbox-core": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-4.3.1.tgz", + "integrity": "sha512-I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg==" + } + } + }, + "workbox-sw": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-4.3.1.tgz", + "integrity": "sha512-0jXdusCL2uC5gM3yYFT6QMBzKfBr2XTk0g5TPAV4y8IZDyVNDyj1a8uSXy3/XrvkVTmQvLN4O5k3JawGReXr9w==" + }, "wrap-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", @@ -7606,6 +8113,68 @@ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + } + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, "yauzl": { "version": "2.10.0", "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", diff --git a/package.json b/package.json index eb6b566..f42d3dd 100644 --- a/package.json +++ b/package.json @@ -44,12 +44,22 @@ "@semantic-release/gitlab" ] }, + "cache": { + "strategy": "inject", + "swSrc": "./src/service-worker.js", + "swDest": "service-worker.js", + "globPatterns": [ + "**/*.{html,js,map,css,jpg,png,gif,webp,svg,eot,ttf,woff,woff2,json}" + ], + "clearDist": false + }, "dependencies": { "@startinblox/hubl-styling-framework": "^1.8.15", "cross-env": "^7.0.3", "fs-extra": "^9.0.1", "normalize.css": "^8.0.1", "parcel-bundler": "^1.12.4", + "parcel-plugin-sw-cache": "^0.3.1", "pug": "^3.0.0", "rimraf": "^2.7.1", "sass": "^1.29.0" diff --git a/src/components/sw-toolbox.js b/src/components/sw-toolbox.js new file mode 100644 index 0000000..4012aa0 --- /dev/null +++ b/src/components/sw-toolbox.js @@ -0,0 +1,45 @@ +import { + Workbox, + messageSW +} from 'https://storage.googleapis.com/workbox-cdn/releases/6.1.1/workbox-window.prod.mjs'; + +if ('serviceWorker' in navigator) { + window.addEventListener('load', function () { + + const wb = new Workbox('/service-worker.js'); + let registration; + + const showSkipWaitingPrompt = (event) => { + Swal.fire({ + position: 'bottom-end', + backdrop: false, + title: "", + text: hubl.intl.t('serviceWorker.newUpdate') + ". " + hubl.intl.t('serviceWorker.wantToUpdate'), + imageUrl: hubl.client.logo || 'https://cdn.startinblox.com/logos/webp/hubl.webp', + imageAlt: hubl.client.name, + showCancelButton: true, + confirmButtonClass: 'button text-xsmall text-bold text-center reversed color-secondary bordered icon icon-check no-background-image', + cancelButtonClass: 'button text-xsmall text-bold text-center reversed color-primary bordered icon icon-exclamation no-background-image', + confirmButtonText: hubl.intl.t('serviceWorker.yes'), + cancelButtonText: hubl.intl.t('serviceWorker.no') + }).then((result) => { + if (result.isConfirmed) { + wb.addEventListener('controlling', (event) => { + window.location.reload(); + }); + + if (registration && registration.waiting) { + messageSW(registration.waiting, { + type: 'SKIP_WAITING' + }); + } + } + }); + }; + + wb.addEventListener('waiting', showSkipWaitingPrompt); + wb.addEventListener('externalwaiting', showSkipWaitingPrompt); + + wb.register().then((r) => registration = r); + }); +} \ No newline at end of file diff --git a/src/hubl-router.pug b/src/hubl-router.pug index a4eada9..7dc7768 100644 --- a/src/hubl-router.pug +++ b/src/hubl-router.pug @@ -60,5 +60,5 @@ for component of components defaultRoute = defaultComponent[0].uniq; } -- const hublComponents = `window.hubl={};window.hubl.components = ${JSON.stringify(components)};window.hubl.defaultRoute = "${defaultRoute}";`; +- const hublComponents = `window.hubl={};window.hubl.components = ${JSON.stringify(components)};window.hubl.defaultRoute = "${defaultRoute}";window.hubl.client = ${JSON.stringify(client)}`; script!=hublComponents \ No newline at end of file diff --git a/src/index.pug b/src/index.pug index 61076a2..33a02d5 100644 --- a/src/index.pug +++ b/src/index.pug @@ -32,6 +32,7 @@ html(lang="en") script(type="module" src="/components/hubl-auto-login.js" defer) script(type="module" src="/components/hubl-search-users.js" defer) script(type="module" src="/components/hubl-reactivity.js" defer) + script(type="module" src="/components/sw-toolbox.js" defer) script(src="index.js" defer) include dependencies.pug diff --git a/src/locales/en.json b/src/locales/en.json index 24709a9..34d4909 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -309,5 +309,11 @@ "edit": "Edit", "back": "Back", "goButton": "GO" + }, + "serviceWorker": { + "newUpdate": "A new version is available", + "wantToUpdate": "Do you want to update?", + "yes": "Yes", + "no": "No" } } diff --git a/src/locales/es.json b/src/locales/es.json index 747d704..10fce5b 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -309,5 +309,11 @@ "edit": "Modificar", "back": "Atrás", "goButton": "GO" + }, + "serviceWorker": { + "newUpdate": "Una nueva version esta disponible", + "wantToUpdate": "¿Quieres actualizar?", + "yes": "Sí", + "no": "No" } } diff --git a/src/locales/fr.json b/src/locales/fr.json index bf01c5c..7be131a 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -309,5 +309,11 @@ "edit": "Editer", "back": "Retour", "goButton": "GO" + }, + "serviceWorker": { + "newUpdate": "Une nouvelle version est disponible", + "wantToUpdate": "Voulez-vous mettre à jour ?", + "yes": "Oui", + "no": "Non" } } diff --git a/src/scripts/register-sw.js b/src/scripts/register-sw.js deleted file mode 100644 index 2cd921e..0000000 --- a/src/scripts/register-sw.js +++ /dev/null @@ -1,11 +0,0 @@ -if ('serviceWorker' in navigator) { - var refreshing; - navigator.serviceWorker.addEventListener('controllerchange', () => { - if (refreshing) { - return; - } - refreshing = true; - window.location.reload(); - }); - navigator.serviceWorker.register('/sw.js'); -} \ No newline at end of file diff --git a/src/service-worker.js b/src/service-worker.js new file mode 100644 index 0000000..3244688 --- /dev/null +++ b/src/service-worker.js @@ -0,0 +1,81 @@ +importScripts('https://storage.googleapis.com/workbox-cdn/releases/6.1.1/workbox-sw.js'); + +workbox.precaching.precacheAndRoute([]); + +addEventListener('message', (event) => { + if (event.data && event.data.type === 'SKIP_WAITING') { + skipWaiting(); + } +}); + +workbox.routing.registerRoute( + ({url}) => url.origin === 'https://fonts.gstatic.com', + new workbox.strategies.CacheFirst({ + cacheName: 'google-fonts-webfonts', + plugins: [ + new workbox.cacheableResponse.CacheableResponsePlugin({ + statuses: [0, 200], + }), + new workbox.expiration.ExpirationPlugin({ + maxAgeSeconds: 60 * 60 * 24 * 365, + maxEntries: 30, + }), + ], + }) +); + +workbox.routing.registerRoute( + ({url}) => [ + 'https://cdn.jsdelivr.net', + 'https://unpkg.com', + 'https://cdn.skypack.dev', + 'https://jspm.dev', + 'https://fonts.googleapis.com', + 'https://cdn.startinblox.com' + ].includes(url.origin), + new workbox.strategies.StaleWhileRevalidate({ + cacheName: 'cdn', + }) +); + +workbox.routing.registerRoute( + ({ request }) => request.destination === 'image', + new workbox.strategies.CacheFirst({ + cacheName: 'images', + plugins: [ + new workbox.cacheableResponse.CacheableResponsePlugin({ + statuses: [200], + }), + new workbox.expiration.ExpirationPlugin({ + maxEntries: 300, + maxAgeSeconds: 60 * 60 * 24 * 30, + }), + ], + }), +); + +workbox.routing.registerRoute( + ({ request }) => + request.destination === 'style' || + request.destination === 'script', + new workbox.strategies.StaleWhileRevalidate({ + cacheName: 'assets', + plugins: [ + new workbox.cacheableResponse.CacheableResponsePlugin({ + statuses: [200], + }), + ], + }), +); + +workbox.routing.registerRoute( + ({ request }) => request.mode === 'navigate', + new workbox.strategies.NetworkFirst({ + cacheName: 'pages', + plugins: [ + new workbox.cacheableResponse.CacheableResponsePlugin({ + statuses: [200], + }), + ], + }), +); diff --git a/src/styles/content/_index.scss b/src/styles/content/_index.scss index c1e7d05..894169c 100644 --- a/src/styles/content/_index.scss +++ b/src/styles/content/_index.scss @@ -2,6 +2,10 @@ main { height: 100vh; } +.no-background-image { + background-image: none; +} + /* Styles of the right-hand menu + pages with that menu */ .with-sidebar { flex-grow: 1; diff --git a/src/sw.js b/src/sw.js deleted file mode 100644 index 87b192f..0000000 --- a/src/sw.js +++ /dev/null @@ -1,115 +0,0 @@ -const CACHE_NAME = 'hubl-store-epm9475'; - -self.addEventListener('install', function (e) { - self.skipWaiting(); - e.waitUntil( - caches.open(CACHE_NAME).then(function (cache) { - return cache.addAll([ - '/locales/es.json', - '/locales/fr.json', - '/scripts/index.js', - '/syles/index.css', - '/index.html', - '/' - ]); - }) - ); -}); - -self.addEventListener('activate', function (e) { - // invalidate older versions - e.waitUntil( - caches.keys() - .then(function (keyList) { - return Promise.all(keyList.map(function (key) { - if (key !== CACHE_NAME && key !== (CACHE_NAME + "-cdn") && key !== (CACHE_NAME + "-api")) { - return caches.delete(key); - } - })); - })); - self.clients.claim(); -}); - -if(process.env.NODE_ENV === 'production'){ - self.addEventListener('fetch', function (event) { - let requestURL = new URL(event.request.url); - if (requestURL.origin == location.origin) { - // Static asset, cache then network - event.respondWith( - caches.open(CACHE_NAME).then(function (cache) { - return cache.match(event.request).then(function (response) { - var fetchPromise = fetch(event.request).then(function (networkResponse) { - cache.put(event.request, networkResponse.clone()); - return networkResponse; - }); - return response || fetchPromise; - }); - }), - ); - } else { - if ( - event.request.method == 'POST' || - event.request.method == 'PUT' - ) { - // disabled: lead to cors errors - // // POST/PUT to api, rewrite the cache - // event.respondWith( - // caches.open(CACHE_NAME + '-api').then(function (cache) { - // return fetch(event.request).then(function (response) { - // cache.put(event.request, response.clone()); - // return response; - // }) - // })); - // api: no cache - event.respondWith(fetch(event.request)); - } else if ( - /matomo/.test(requestURL.origin) || - /sentry/.test(requestURL.origin) || - /jabber/.test(requestURL.origin) || - /xmpp/.test(requestURL.origin) - ) { - // analytics, always distant - event.respondWith(fetch(event.request)); - } else { - if ( - /unpkg/.test(requestURL.origin) || - /skypack/.test(requestURL.origin) || - /jspm/.test(requestURL.origin) || - /jsdeliver/.test(requestURL.origin) || - /cdn/.test(requestURL.origin) || - /googleapis/.test(requestURL.origin) - ) { - // cdn: cache then network - event.respondWith( - caches.open(CACHE_NAME + '-cdn').then(function (cache) { - return cache.match(event.request).then(function (response) { - var fetchPromise = fetch(event.request).then(function (networkResponse) { - cache.put(event.request, networkResponse.clone()); - return networkResponse; - }); - return response || fetchPromise; - }); - }), - ); - } else { - // disabled: lead to cors errors - // // api: distant then cache - // event.respondWith( - // fetch(event.request) - // .then((response) => { - // caches.open(CACHE_NAME + '-api').then(function (cache) { - // cache.put(event.request, response.clone()); - // return response; - // }); - // }) - // .catch(() => { - // return caches.match(event.request); - // }) - // ); - // api: no cache - event.respondWith(fetch(event.request)); - } - } - } - }); -} \ No newline at end of file From e2c9da245978e56536962d2740ceb69091c551f8 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Thu, 8 Apr 2021 20:22:39 +0200 Subject: [PATCH 10/47] fix: intl for ESS --- package-lock.json | 1902 ++++++++++++++++++++----------- package.json | 5 +- src/locales/en.json | 13 +- src/locales/es.json | 13 +- src/locales/fr.json | 17 +- src/scripts/intl.js | 87 +- src/styles/left-nav/_index.scss | 4 +- 7 files changed, 1289 insertions(+), 752 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1fad494..e7c0102 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,49 +5,73 @@ "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", "requires": { - "@babel/highlight": "^7.10.4" + "@babel/highlight": "^7.12.13" } }, "@babel/compat-data": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.12.7.tgz", - "integrity": "sha512-YaxPMGs/XIWtYqrdEOZOCPsVWfEoriXopnsz3/i7apYPXQ3698UFhS6dVT1KN5qOsWmVgw/FOrmQgpRaZayGsw==" + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.15.tgz", + "integrity": "sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA==" }, "@babel/core": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz", - "integrity": "sha512-gTXYh3M5wb7FRXQy+FErKFAv90BnlOuNn1QkCK2lREoPAjrQCO49+HVSrFoe5uakFAF5eenS75KbO2vQiLrTMQ==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.15.tgz", + "integrity": "sha512-6GXmNYeNjS2Uz+uls5jalOemgIhnTMeaXo+yBUA72kC2uX/8VW6XyhVIo2L8/q0goKQA3EVKx0KOQpVKSeWadQ==", "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helpers": "^7.12.5", - "@babel/parser": "^7.12.7", - "@babel/template": "^7.12.7", - "@babel/traverse": "^7.12.9", - "@babel/types": "^7.12.7", + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.9", + "@babel/helper-compilation-targets": "^7.13.13", + "@babel/helper-module-transforms": "^7.13.14", + "@babel/helpers": "^7.13.10", + "@babel/parser": "^7.13.15", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.15", + "@babel/types": "^7.13.14", "convert-source-map": "^1.7.0", "debug": "^4.1.0", - "gensync": "^1.0.0-beta.1", + "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", - "lodash": "^4.17.19", - "resolve": "^1.3.2", - "semver": "^5.4.1", + "semver": "^6.3.0", "source-map": "^0.5.0" }, "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/parser": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz", + "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==" + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", "requires": { "minimist": "^1.2.5" } }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -56,15 +80,30 @@ } }, "@babel/generator": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.5.tgz", - "integrity": "sha512-m16TQQJ8hPt7E+OS/XVQg/7U184MLXtvuGbCdA7na61vha+ImkyyNM/9DDA0unYCVZn3ZOhng+qz48/KBOT96A==", + "version": "7.13.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", + "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", "requires": { - "@babel/types": "^7.12.5", + "@babel/types": "^7.13.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" }, "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, "source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", @@ -73,189 +112,410 @@ } }, "@babel/helper-annotate-as-pure": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", - "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", + "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.13" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", - "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz", + "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==", "requires": { - "@babel/helper-explode-assignable-expression": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-builder-react-jsx": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz", - "integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-builder-react-jsx-experimental": { - "version": "7.12.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.4.tgz", - "integrity": "sha512-AjEa0jrQqNk7eDQOo0pTfUOwQBMF+xVqrausQwT9/rTKy0g04ggFNaJpaE09IQMn9yExluigWMJcj0WC7bq+Og==", - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-module-imports": "^7.12.1", - "@babel/types": "^7.12.1" + "@babel/helper-explode-assignable-expression": "^7.12.13", + "@babel/types": "^7.12.13" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-compilation-targets": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz", - "integrity": "sha512-+qH6NrscMolUlzOYngSBMIOQpKUGPPsc61Bu5W10mg84LxZ7cmvnBHzARKbDoFxVvqqAbj6Tg6N7bSrWSPXMyw==", + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz", + "integrity": "sha512-q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ==", "requires": { - "@babel/compat-data": "^7.12.5", - "@babel/helper-validator-option": "^7.12.1", + "@babel/compat-data": "^7.13.12", + "@babel/helper-validator-option": "^7.12.17", "browserslist": "^4.14.5", - "semver": "^5.5.0" + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, "@babel/helper-create-class-features-plugin": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.12.1.tgz", - "integrity": "sha512-hkL++rWeta/OVOBTRJc9a5Azh5mt5WgZUGAKMD8JM141YsE08K//bp1unBBieO6rUKkIPyUE0USQ30jAy3Sk1w==", + "version": "7.13.11", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz", + "integrity": "sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw==", "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-member-expression-to-functions": "^7.12.1", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4" + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13" } }, "@babel/helper-create-regexp-features-plugin": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz", - "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==", + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz", + "integrity": "sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==", "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-annotate-as-pure": "^7.12.13", "regexpu-core": "^4.7.1" } }, - "@babel/helper-define-map": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", - "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", + "@babel/helper-define-polyfill-provider": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.0.tgz", + "integrity": "sha512-JT8tHuFjKBo8NnaUbblz7mIu1nnvUDiHVjXXkulZULyidvo/7P6TY7+YqpV37IfF+KUFxmlK04elKtGKXaiVgw==", "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/types": "^7.10.5", - "lodash": "^4.17.19" + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, "@babel/helper-explode-assignable-expression": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", - "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz", + "integrity": "sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==", "requires": { - "@babel/types": "^7.12.1" + "@babel/types": "^7.13.0" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-function-name": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz", - "integrity": "sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", "requires": { - "@babel/helper-get-function-arity": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-get-function-arity": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz", - "integrity": "sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", "requires": { - "@babel/types": "^7.10.4" + "@babel/types": "^7.12.13" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-hoist-variables": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", - "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz", + "integrity": "sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==", "requires": { - "@babel/types": "^7.10.4" + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-member-expression-to-functions": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", - "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", + "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", "requires": { - "@babel/types": "^7.12.7" + "@babel/types": "^7.13.12" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-module-imports": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", - "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", + "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", "requires": { - "@babel/types": "^7.12.5" + "@babel/types": "^7.13.12" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-module-transforms": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", - "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz", + "integrity": "sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==", "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-simple-access": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/helper-validator-identifier": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "lodash": "^4.17.19" + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-replace-supers": "^7.13.12", + "@babel/helper-simple-access": "^7.13.12", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.13", + "@babel/types": "^7.13.14" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-optimise-call-expression": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.7.tgz", - "integrity": "sha512-I5xc9oSJ2h59OwyUqjv95HRyzxj53DAubUERgQMrpcCEYQyToeHA+NEcUEsVWB4j53RDeskeBJ0SgRAYHDBckw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", "requires": { - "@babel/types": "^7.12.7" + "@babel/types": "^7.12.13" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==" + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==" }, "@babel/helper-remap-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", - "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz", + "integrity": "sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==", "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-wrap-function": "^7.10.4", - "@babel/types": "^7.12.1" + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-wrap-function": "^7.13.0", + "@babel/types": "^7.13.0" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-replace-supers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.5.tgz", - "integrity": "sha512-5YILoed0ZyIpF4gKcpZitEnXEJ9UoDRki1Ey6xz46rxOzfNMAhVIJMoune1hmPVxh40LRv1+oafz7UsWX+vyWA==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz", + "integrity": "sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw==", "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.1", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" + "@babel/helper-member-expression-to-functions": "^7.13.12", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.12" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-simple-access": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", - "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", + "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", "requires": { - "@babel/types": "^7.12.1" + "@babel/types": "^7.13.12" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-skip-transparent-expression-wrappers": { @@ -267,11 +527,28 @@ } }, "@babel/helper-split-export-declaration": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz", - "integrity": "sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", "requires": { - "@babel/types": "^7.11.0" + "@babel/types": "^7.12.13" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helper-validator-identifier": { @@ -280,39 +557,80 @@ "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" }, "@babel/helper-validator-option": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.1.tgz", - "integrity": "sha512-YpJabsXlJVWP0USHjnC/AQDTLlZERbON577YUVO/wLpqyj6HAtVYnWaQaN0iUN+1/tWn3c+uKKXjRut5115Y2A==" + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", + "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==" }, "@babel/helper-wrap-function": { - "version": "7.12.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", - "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz", + "integrity": "sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==", "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" + "@babel/helper-function-name": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/helpers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", - "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz", + "integrity": "sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==", "requires": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", + "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", "requires": { - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-validator-identifier": "^7.12.11", "chalk": "^2.0.0", "js-tokens": "^4.0.0" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + } } }, "@babel/parser": { @@ -320,124 +638,136 @@ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.7.tgz", "integrity": "sha512-oWR02Ubp4xTLCAqPRiNIuMVgNO5Aif/xpXtabhzW2HWUD47XJsAB4Zd/Rg30+XeQA3juXigV7hlquOTmwqLiwg==" }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz", - "integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz", + "integrity": "sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1", - "@babel/plugin-syntax-async-generators": "^7.8.0" + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-proposal-optional-chaining": "^7.13.12" + } + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz", + "integrity": "sha512-VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0", + "@babel/plugin-syntax-async-generators": "^7.8.4" } }, "@babel/plugin-proposal-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.12.1.tgz", - "integrity": "sha512-cKp3dlQsFsEs5CWKnN7BnSHOd0EOW8EKpEjkoz1pO2E5KzIDNV9Ros1b0CnmbVgAGXJubOYVBOGCT1OmJwOI7w==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz", + "integrity": "sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-proposal-dynamic-import": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", - "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz", + "integrity": "sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, "@babel/plugin-proposal-export-namespace-from": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.1.tgz", - "integrity": "sha512-6CThGf0irEkzujYS5LQcjBx8j/4aQGiVv7J9+2f7pGfxqyKh3WnmVJYW3hdrQjyksErMGBPQrCnHfOtna+WLbw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz", + "integrity": "sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, "@babel/plugin-proposal-json-strings": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", - "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz", + "integrity": "sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.0" + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" } }, "@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.12.1.tgz", - "integrity": "sha512-k8ZmVv0JU+4gcUGeCDZOGd0lCIamU/sMtIiX3UWnUc5yzgq6YUGyEolNYD+MLYKfSzgECPcqetVcJP9Afe/aCA==", + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz", + "integrity": "sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.13.0", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.12.1.tgz", - "integrity": "sha512-nZY0ESiaQDI1y96+jk6VxMOaL4LPo/QDHBqL+SF3/vl6dHkTwHlOI8L4ZwuRBHgakRBw5zsVylel7QPbbGuYgg==", + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz", + "integrity": "sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, "@babel/plugin-proposal-numeric-separator": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.7.tgz", - "integrity": "sha512-8c+uy0qmnRTeukiGsjLGy6uVs/TFjJchGXUeBqlG4VWYOdJWkhhVPdQ3uHwbmalfJwv2JsV0qffXP4asRfL2SQ==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz", + "integrity": "sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.12.13", "@babel/plugin-syntax-numeric-separator": "^7.10.4" } }, "@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz", + "integrity": "sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" + "@babel/compat-data": "^7.13.8", + "@babel/helper-compilation-targets": "^7.13.8", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.13.0" } }, "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", - "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz", + "integrity": "sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" } }, "@babel/plugin-proposal-optional-chaining": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.12.7.tgz", - "integrity": "sha512-4ovylXZ0PWmwoOvhU2vhnzVNnm88/Sm9nx7V8BPgMvAzn5zDou3/Awy0EjglyubVHasJj+XCEkr/r1X3P5elCA==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz", + "integrity": "sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", - "@babel/plugin-syntax-optional-chaining": "^7.8.0" + "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, "@babel/plugin-proposal-private-methods": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.12.1.tgz", - "integrity": "sha512-mwZ1phvH7/NHK6Kf8LP7MYDogGV+DKB1mryFOEwx5EBNQrosvIczzZFTUmWaeujd5xT6G1ELYWUz3CutMhjE1w==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz", + "integrity": "sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==", "requires": { - "@babel/helper-create-class-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", - "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", + "integrity": "sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-syntax-async-generators": { @@ -449,11 +779,11 @@ } }, "@babel/plugin-syntax-class-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.1.tgz", - "integrity": "sha512-U40A76x5gTwmESz+qiqssqmeEsKvcSyvtgktrm0uzcARAmM9I1jR221f6Oq+GmHrcD+LvZDag1UTOTe2fL3TeA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-syntax-dynamic-import": { @@ -473,11 +803,11 @@ } }, "@babel/plugin-syntax-flow": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.1.tgz", - "integrity": "sha512-1lBLLmtxrwpm4VKmtVFselI/P3pX+G63fAtUUt6b2Nzgao77KNDwyuRt90Mj2/9pKobtt68FdvjfqohZjg/FCA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.13.tgz", + "integrity": "sha512-J/RYxnlSLXZLVR7wTRsozxKT8qbsx1mNKJzXEEjQ0Kjx1ZACcyHgbanNWNCFtc36IzuWhYWPpvJFFoexoOWFmA==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-syntax-json-strings": { @@ -489,11 +819,11 @@ } }, "@babel/plugin-syntax-jsx": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz", - "integrity": "sha512-1yRi7yAtB0ETgxdY9ti/p2TivUxJkTdhu/ZbF9MshVGqOx1TdB3b7xCXs49Fupgg50N45KcAsRP/ZqWjs9SRjg==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz", + "integrity": "sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-syntax-logical-assignment-operators": { @@ -545,385 +875,434 @@ } }, "@babel/plugin-syntax-top-level-await": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", - "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", + "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-arrow-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", - "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz", + "integrity": "sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", - "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz", + "integrity": "sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==", "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1" + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0" } }, "@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", - "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz", + "integrity": "sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-block-scoping": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.1.tgz", - "integrity": "sha512-zJyAC9sZdE60r1nVQHblcfCj29Dh2Y0DOvlMkcqSo0ckqjiCwNiUezUKw+RjOCwGfpLRwnAeQ2XlLpsnGkvv9w==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz", + "integrity": "sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-classes": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", - "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz", + "integrity": "sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==", "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-define-map": "^7.10.4", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13", "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", - "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz", + "integrity": "sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-destructuring": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", - "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz", + "integrity": "sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-dotall-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", - "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz", + "integrity": "sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-duplicate-keys": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", - "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz", + "integrity": "sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", - "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz", + "integrity": "sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==", "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-flow-strip-types": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.12.1.tgz", - "integrity": "sha512-8hAtkmsQb36yMmEtk2JZ9JnVyDSnDOdlB+0nEGzIDLuK4yR3JcEjfuFPYkdEPSh8Id+rAMeBEn+X0iVEyho6Hg==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.13.0.tgz", + "integrity": "sha512-EXAGFMJgSX8gxWD7PZtW/P6M+z74jpx3wm/+9pn+c2dOawPpBkUX7BrfyPvo6ZpXbgRIEuwgwDb/MGlKvu2pOg==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-flow": "^7.12.1" + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-flow": "^7.12.13" } }, "@babel/plugin-transform-for-of": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", - "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz", + "integrity": "sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-function-name": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", - "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz", + "integrity": "sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==", "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", - "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz", + "integrity": "sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-member-expression-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", - "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz", + "integrity": "sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-modules-amd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", - "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz", + "integrity": "sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==", "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-commonjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", - "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz", + "integrity": "sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==", "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.12.1", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", "babel-plugin-dynamic-import-node": "^2.3.3" } }, "@babel/plugin-transform-modules-systemjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", - "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz", + "integrity": "sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==", "requires": { - "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-identifier": "^7.10.4", + "@babel/helper-hoist-variables": "^7.13.0", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-identifier": "^7.12.11", "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + } } }, "@babel/plugin-transform-modules-umd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", - "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz", + "integrity": "sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==", "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", - "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz", + "integrity": "sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1" + "@babel/helper-create-regexp-features-plugin": "^7.12.13" } }, "@babel/plugin-transform-new-target": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", - "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz", + "integrity": "sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-object-super": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", - "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz", + "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1" + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13" } }, "@babel/plugin-transform-parameters": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", - "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz", + "integrity": "sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-property-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", - "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz", + "integrity": "sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-react-jsx": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.7.tgz", - "integrity": "sha512-YFlTi6MEsclFAPIDNZYiCRbneg1MFGao9pPG9uD5htwE0vDbPaMUMeYd6itWjw7K4kro4UbdQf3ljmFl9y48dQ==", + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.13.12.tgz", + "integrity": "sha512-jcEI2UqIcpCqB5U5DRxIl0tQEProI2gcu+g8VTIqxLO5Iidojb4d77q+fwGseCvd8af/lJ9masp4QWzBXFE2xA==", "requires": { - "@babel/helper-builder-react-jsx": "^7.10.4", - "@babel/helper-builder-react-jsx-experimental": "^7.12.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-jsx": "^7.12.1" + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/types": "^7.13.12" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/plugin-transform-regenerator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", - "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz", + "integrity": "sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ==", "requires": { "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", - "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz", + "integrity": "sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-shorthand-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", - "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz", + "integrity": "sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", - "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz", + "integrity": "sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-plugin-utils": "^7.13.0", "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" } }, "@babel/plugin-transform-sticky-regex": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", - "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz", + "integrity": "sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-template-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", - "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz", + "integrity": "sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.13.0" } }, "@babel/plugin-transform-typeof-symbol": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.1.tgz", - "integrity": "sha512-EPGgpGy+O5Kg5pJFNDKuxt9RdmTgj5sgrus2XVeMp/ZIbOESadgILUbm50SNpghOh3/6yrbsH+NB5+WJTmsA7Q==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz", + "integrity": "sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-unicode-escapes": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.1.tgz", - "integrity": "sha512-I8gNHJLIc7GdApm7wkVnStWssPNbSRMPtgHdmH3sRM1zopz09UWPS4x5V4n1yz/MIWTVnJ9sp6IkuXdWM4w+2Q==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz", + "integrity": "sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==", "requires": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/plugin-transform-unicode-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", - "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz", + "integrity": "sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==", "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" } }, "@babel/preset-env": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.12.7.tgz", - "integrity": "sha512-OnNdfAr1FUQg7ksb7bmbKoby4qFOHw6DKWWUNB9KqnnCldxhxJlP+21dpyaWFmf2h0rTbOkXJtAGevY3XW1eew==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.15.tgz", + "integrity": "sha512-D4JAPMXcxk69PKe81jRJ21/fP/uYdcTZ3hJDF5QX2HSI9bBxxYw/dumdR6dGumhjxlprHPE4XWoPaqzZUVy2MA==", "requires": { - "@babel/compat-data": "^7.12.7", - "@babel/helper-compilation-targets": "^7.12.5", - "@babel/helper-module-imports": "^7.12.5", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-option": "^7.12.1", - "@babel/plugin-proposal-async-generator-functions": "^7.12.1", - "@babel/plugin-proposal-class-properties": "^7.12.1", - "@babel/plugin-proposal-dynamic-import": "^7.12.1", - "@babel/plugin-proposal-export-namespace-from": "^7.12.1", - "@babel/plugin-proposal-json-strings": "^7.12.1", - "@babel/plugin-proposal-logical-assignment-operators": "^7.12.1", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1", - "@babel/plugin-proposal-numeric-separator": "^7.12.7", - "@babel/plugin-proposal-object-rest-spread": "^7.12.1", - "@babel/plugin-proposal-optional-catch-binding": "^7.12.1", - "@babel/plugin-proposal-optional-chaining": "^7.12.7", - "@babel/plugin-proposal-private-methods": "^7.12.1", - "@babel/plugin-proposal-unicode-property-regex": "^7.12.1", - "@babel/plugin-syntax-async-generators": "^7.8.0", - "@babel/plugin-syntax-class-properties": "^7.12.1", - "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/compat-data": "^7.13.15", + "@babel/helper-compilation-targets": "^7.13.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-option": "^7.12.17", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.13.12", + "@babel/plugin-proposal-async-generator-functions": "^7.13.15", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-dynamic-import": "^7.13.8", + "@babel/plugin-proposal-export-namespace-from": "^7.12.13", + "@babel/plugin-proposal-json-strings": "^7.13.8", + "@babel/plugin-proposal-logical-assignment-operators": "^7.13.8", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", + "@babel/plugin-proposal-numeric-separator": "^7.12.13", + "@babel/plugin-proposal-object-rest-spread": "^7.13.8", + "@babel/plugin-proposal-optional-catch-binding": "^7.13.8", + "@babel/plugin-proposal-optional-chaining": "^7.13.12", + "@babel/plugin-proposal-private-methods": "^7.13.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", - "@babel/plugin-syntax-optional-chaining": "^7.8.0", - "@babel/plugin-syntax-top-level-await": "^7.12.1", - "@babel/plugin-transform-arrow-functions": "^7.12.1", - "@babel/plugin-transform-async-to-generator": "^7.12.1", - "@babel/plugin-transform-block-scoped-functions": "^7.12.1", - "@babel/plugin-transform-block-scoping": "^7.12.1", - "@babel/plugin-transform-classes": "^7.12.1", - "@babel/plugin-transform-computed-properties": "^7.12.1", - "@babel/plugin-transform-destructuring": "^7.12.1", - "@babel/plugin-transform-dotall-regex": "^7.12.1", - "@babel/plugin-transform-duplicate-keys": "^7.12.1", - "@babel/plugin-transform-exponentiation-operator": "^7.12.1", - "@babel/plugin-transform-for-of": "^7.12.1", - "@babel/plugin-transform-function-name": "^7.12.1", - "@babel/plugin-transform-literals": "^7.12.1", - "@babel/plugin-transform-member-expression-literals": "^7.12.1", - "@babel/plugin-transform-modules-amd": "^7.12.1", - "@babel/plugin-transform-modules-commonjs": "^7.12.1", - "@babel/plugin-transform-modules-systemjs": "^7.12.1", - "@babel/plugin-transform-modules-umd": "^7.12.1", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.1", - "@babel/plugin-transform-new-target": "^7.12.1", - "@babel/plugin-transform-object-super": "^7.12.1", - "@babel/plugin-transform-parameters": "^7.12.1", - "@babel/plugin-transform-property-literals": "^7.12.1", - "@babel/plugin-transform-regenerator": "^7.12.1", - "@babel/plugin-transform-reserved-words": "^7.12.1", - "@babel/plugin-transform-shorthand-properties": "^7.12.1", - "@babel/plugin-transform-spread": "^7.12.1", - "@babel/plugin-transform-sticky-regex": "^7.12.7", - "@babel/plugin-transform-template-literals": "^7.12.1", - "@babel/plugin-transform-typeof-symbol": "^7.12.1", - "@babel/plugin-transform-unicode-escapes": "^7.12.1", - "@babel/plugin-transform-unicode-regex": "^7.12.1", - "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.12.7", - "core-js-compat": "^3.7.0", - "semver": "^5.5.0" + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.12.13", + "@babel/plugin-transform-arrow-functions": "^7.13.0", + "@babel/plugin-transform-async-to-generator": "^7.13.0", + "@babel/plugin-transform-block-scoped-functions": "^7.12.13", + "@babel/plugin-transform-block-scoping": "^7.12.13", + "@babel/plugin-transform-classes": "^7.13.0", + "@babel/plugin-transform-computed-properties": "^7.13.0", + "@babel/plugin-transform-destructuring": "^7.13.0", + "@babel/plugin-transform-dotall-regex": "^7.12.13", + "@babel/plugin-transform-duplicate-keys": "^7.12.13", + "@babel/plugin-transform-exponentiation-operator": "^7.12.13", + "@babel/plugin-transform-for-of": "^7.13.0", + "@babel/plugin-transform-function-name": "^7.12.13", + "@babel/plugin-transform-literals": "^7.12.13", + "@babel/plugin-transform-member-expression-literals": "^7.12.13", + "@babel/plugin-transform-modules-amd": "^7.13.0", + "@babel/plugin-transform-modules-commonjs": "^7.13.8", + "@babel/plugin-transform-modules-systemjs": "^7.13.8", + "@babel/plugin-transform-modules-umd": "^7.13.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", + "@babel/plugin-transform-new-target": "^7.12.13", + "@babel/plugin-transform-object-super": "^7.12.13", + "@babel/plugin-transform-parameters": "^7.13.0", + "@babel/plugin-transform-property-literals": "^7.12.13", + "@babel/plugin-transform-regenerator": "^7.13.15", + "@babel/plugin-transform-reserved-words": "^7.12.13", + "@babel/plugin-transform-shorthand-properties": "^7.12.13", + "@babel/plugin-transform-spread": "^7.13.0", + "@babel/plugin-transform-sticky-regex": "^7.12.13", + "@babel/plugin-transform-template-literals": "^7.13.0", + "@babel/plugin-transform-typeof-symbol": "^7.12.13", + "@babel/plugin-transform-unicode-escapes": "^7.12.13", + "@babel/plugin-transform-unicode-regex": "^7.12.13", + "@babel/preset-modules": "^0.1.4", + "@babel/types": "^7.13.14", + "babel-plugin-polyfill-corejs2": "^0.2.0", + "babel-plugin-polyfill-corejs3": "^0.2.0", + "babel-plugin-polyfill-regenerator": "^0.2.0", + "core-js-compat": "^3.9.0", + "semver": "^6.3.0" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } } }, "@babel/preset-modules": { @@ -939,37 +1318,80 @@ } }, "@babel/runtime": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", - "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", "requires": { "regenerator-runtime": "^0.13.4" } }, "@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", - "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/parser": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz", + "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==" + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/traverse": { - "version": "7.12.9", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.9.tgz", - "integrity": "sha512-iX9ajqnLdoU1s1nHt36JDI9KG4k+vmI8WgjK5d+aDTwQbL2fUnzedNedssA645Ede3PM2ma1n8Q4h2ohwXgMXw==", + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.15.tgz", + "integrity": "sha512-/mpZMNvj6bce59Qzl09fHEs8Bt8NnpEDQYleHUPZQ3wXUMvXi+HJPLars68oAbmp839fGoOkv2pSL2z9ajCIaQ==", "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/generator": "^7.12.5", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7", + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.9", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.15", + "@babel/types": "^7.13.14", "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/parser": { + "version": "7.13.15", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz", + "integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==" + }, + "@babel/types": { + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + } } }, "@babel/types": { @@ -1343,9 +1765,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -1437,6 +1859,40 @@ "object.assign": "^4.1.0" } }, + "babel-plugin-polyfill-corejs2": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.0.tgz", + "integrity": "sha512-9bNwiR0dS881c5SHnzCmmGlMkJLl0OUZvxrxHo9w/iNoRuqaPjqlvBf4HrovXtQs/au5yKkpcdgfT1cC5PAZwg==", + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.2.0", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.0.tgz", + "integrity": "sha512-zZyi7p3BCUyzNxLx8KV61zTINkkV65zVkDAFNZmrTCRVhjo1jAS+YLvDJ9Jgd/w2tsAviCwFHReYfxO3Iql8Yg==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.2.0", + "core-js-compat": "^3.9.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.0.tgz", + "integrity": "sha512-J7vKbCuD2Xi/eEHxquHN14bXAW9CXtecwuLrOIDJtcZzTaPzV1VdEfoUf9AzcRBMolKUQKM9/GVojeh0hFiqMg==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.2.0" + } + }, "babel-runtime": { "version": "6.26.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", @@ -1557,9 +2013,9 @@ "dev": true }, "bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==" + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" }, "boolbase": { "version": "1.0.0", @@ -1690,18 +2146,25 @@ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "requires": { "pako": "~1.0.5" + }, + "dependencies": { + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + } } }, "browserslist": { - "version": "4.14.7", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.7.tgz", - "integrity": "sha512-BSVRLCeG3Xt/j/1cCGj1019Wbty0H+Yvu2AOuZSuoaUWn3RatbL33Cxk+Q4jRMRAbOm0p7SLravLjpnT6s0vzQ==", + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", "requires": { - "caniuse-lite": "^1.0.30001157", + "caniuse-lite": "^1.0.30001181", "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.591", + "electron-to-chromium": "^1.3.649", "escalade": "^3.1.1", - "node-releases": "^1.1.66" + "node-releases": "^1.1.70" } }, "buffer": { @@ -1763,12 +2226,12 @@ "dev": true }, "call-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", - "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "requires": { "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.0" + "get-intrinsic": "^1.0.2" } }, "call-me-maybe": { @@ -1809,9 +2272,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001161", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001161.tgz", - "integrity": "sha512-JharrCDxOqPLBULF9/SPa6yMcBRTjZARJ6sc3cuKrPfyIk64JN6kuMINWqA99Xc8uElMFcROliwtz0n9pYej+g==" + "version": "1.0.30001208", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001208.tgz", + "integrity": "sha512-OE5UE4+nBOro8Dyvv0lfx+SRtfVIOM9uhKqFmJeUbGriqhhStgp1A0OyBpgy3OUF8AhYCT+PVwPC1gMl2ZcQMA==" }, "caseless": { "version": "0.12.0", @@ -2089,18 +2552,18 @@ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "color-string": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", - "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", + "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", "requires": { "color-name": "^1.0.0", "simple-swizzle": "^0.2.2" } }, "colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==" + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" }, "colors": { "version": "1.4.0", @@ -2199,11 +2662,11 @@ "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" }, "core-js-compat": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.0.tgz", - "integrity": "sha512-o9QKelQSxQMYWHXc/Gc4L8bx/4F7TTraE5rhuN8I7mKBt5dBIUpXpIR3omv70ebr8ST5R3PqbDQr+ZI3+Tt1FQ==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.10.1.tgz", + "integrity": "sha512-ZHQTdTPkqvw2CeHiZC970NNJcnwzT6YIueDMASKt+p3WbZsLXOcoD392SkcWhkC0wBBHhlfhqGKKsNCQUozYtg==", "requires": { - "browserslist": "^4.14.7", + "browserslist": "^4.16.3", "semver": "7.0.0" }, "dependencies": { @@ -2240,9 +2703,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -2456,20 +2919,20 @@ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" }, "cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.11.tgz", + "integrity": "sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g==", "requires": { "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", + "cssnano-preset-default": "^4.0.8", "is-resolvable": "^1.0.0", "postcss": "^7.0.0" } }, "cssnano-preset-default": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", - "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz", + "integrity": "sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ==", "requires": { "css-declaration-sorter": "^4.0.1", "cssnano-util-raw-cache": "^4.0.1", @@ -2499,7 +2962,7 @@ "postcss-ordered-values": "^4.1.2", "postcss-reduce-initial": "^4.0.3", "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.2", + "postcss-svgo": "^4.0.3", "postcss-unique-selectors": "^4.0.1" } }, @@ -2527,17 +2990,17 @@ "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==" }, "csso": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.1.1.tgz", - "integrity": "sha512-Rvq+e1e0TFB8E8X+8MQjHSY6vtol45s5gxtLI/018UsAn2IBMmwNEZRM/h+HVnAJRHjasLIKKUO3uvoMM28LvA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", "requires": { - "css-tree": "^1.0.0" + "css-tree": "^1.1.2" }, "dependencies": { "css-tree": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", - "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", + "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", "requires": { "mdn-data": "2.0.14", "source-map": "^0.6.1" @@ -2769,9 +3232,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -2790,14 +3253,14 @@ }, "dependencies": { "domelementtype": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.2.tgz", - "integrity": "sha512-wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.2.0.tgz", + "integrity": "sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A==" }, "entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" } } }, @@ -2877,9 +3340,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { - "version": "1.3.607", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.607.tgz", - "integrity": "sha512-h2SYNaBnlplGS0YyXl8oJWokfcNxVjJANQfMCsQefG6OSuAuNIeW+A8yGT/ci+xRoBb3k2zq1FrOvkgoKBol8g==" + "version": "1.3.710", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.710.tgz", + "integrity": "sha512-b3r0E2o4yc7mNmBeJviejF1rEx49PUBi+2NPa7jHEX3arkAXnVgLhR0YmV8oi6/Qf3HH2a8xzQmCjHNH0IpXWQ==" }, "elegant-spinner": { "version": "1.0.1", @@ -2888,23 +3351,23 @@ "dev": true }, "elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", + "bn.js": "^4.11.9", + "brorand": "^1.1.0", "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -2934,9 +3397,9 @@ "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" }, "envinfo": { - "version": "7.7.3", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.7.3.tgz", - "integrity": "sha512-46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA==" + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz", + "integrity": "sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw==" }, "error-ex": { "version": "1.3.2", @@ -2947,27 +3410,46 @@ } }, "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", "requires": { + "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", + "object-inspect": "^1.9.0", "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" }, "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "is-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.1" + } + }, "object-inspect": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", - "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==" } } }, @@ -3006,19 +3488,12 @@ "esutils": "^2.0.2", "optionator": "^0.8.1", "source-map": "~0.6.1" - }, - "dependencies": { - "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" - } } }, "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=" }, "estraverse": { "version": "4.3.0", @@ -3042,9 +3517,9 @@ "dev": true }, "events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==" + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" }, "evp_bytestokey": { "version": "1.0.3", @@ -3418,9 +3893,9 @@ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" }, "get-intrinsic": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", - "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -3558,6 +4033,11 @@ "ansi-regex": "^2.0.0" } }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -3654,11 +4134,6 @@ "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=" }, - "html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==" - }, "html-encoding-sniffer": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", @@ -3864,6 +4339,11 @@ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" }, + "is-bigint": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", + "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==" + }, "is-binary-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", @@ -3872,15 +4352,23 @@ "binary-extensions": "^1.0.0" } }, + "is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "requires": { + "call-bind": "^1.0.0" + } + }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==" + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==" }, "is-ci": { "version": "2.0.0", @@ -4005,6 +4493,11 @@ "is-path-inside": "^3.0.1" } }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", @@ -4013,6 +4506,11 @@ "kind-of": "^3.0.2" } }, + "is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==" + }, "is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", @@ -4065,13 +4563,10 @@ "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, - "is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", - "requires": { - "html-comment-regex": "^1.1.0" - } + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" }, "is-symbol": { "version": "1.0.3", @@ -4132,12 +4627,19 @@ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" + }, + "dependencies": { + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + } } }, "jsbn": { @@ -4195,6 +4697,11 @@ "source-map": "~0.6.1" } }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, "ws": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", @@ -4433,6 +4940,11 @@ "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz", "integrity": "sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=" }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -4656,9 +5168,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -4805,9 +5317,9 @@ "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==" }, "node-forge": { - "version": "0.7.6", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.6.tgz", - "integrity": "sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==" + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" }, "node-libs-browser": { "version": "2.2.1", @@ -4837,12 +5349,19 @@ "url": "^0.11.0", "util": "^0.11.0", "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + } } }, "node-releases": { - "version": "1.1.67", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.67.tgz", - "integrity": "sha512-V5QF9noGFl3EymEwUYzO+3NTDpGfQB4ve6Qfnzf3UNydMhjQRVPR1DZTuvWiLzaFJYw2fmDwAfnRNEVb64hSIg==" + "version": "1.1.71", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", + "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==" }, "normalize-path": { "version": "3.0.0", @@ -4980,12 +5499,13 @@ } }, "object.getownpropertydescriptors": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", - "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", + "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1" + "es-abstract": "^1.18.0-next.2" } }, "object.pick": { @@ -4997,13 +5517,13 @@ } }, "object.values": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", - "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", + "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", "requires": { + "call-bind": "^1.0.2", "define-properties": "^1.1.3", - "es-abstract": "^1.17.0-next.1", - "function-bind": "^1.1.1", + "es-abstract": "^1.18.0-next.2", "has": "^1.0.3" } }, @@ -5129,14 +5649,14 @@ "dev": true }, "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" }, "parcel-bundler": { - "version": "1.12.4", - "resolved": "https://registry.npmjs.org/parcel-bundler/-/parcel-bundler-1.12.4.tgz", - "integrity": "sha512-G+iZGGiPEXcRzw0fiRxWYCKxdt/F7l9a0xkiU4XbcVRJCSlBnioWEwJMutOCCpoQmaQtjB4RBHDGIHN85AIhLQ==", + "version": "1.12.5", + "resolved": "https://registry.npmjs.org/parcel-bundler/-/parcel-bundler-1.12.5.tgz", + "integrity": "sha512-hpku8mW67U6PXQIenW6NBbphBOMb8XzW6B9r093DUhYj5GN2FUB/CXCiz5hKoPYUsusZ35BpProH8AUF9bh5IQ==", "requires": { "@babel/code-frame": "^7.0.0", "@babel/core": "^7.4.4", @@ -5181,7 +5701,7 @@ "json5": "^1.0.1", "micromatch": "^3.0.4", "mkdirp": "^0.5.1", - "node-forge": "^0.7.1", + "node-forge": "^0.10.0", "node-libs-browser": "^2.0.0", "opn": "^5.1.0", "postcss": "^7.0.11", @@ -5784,11 +6304,10 @@ } }, "postcss-svgo": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.3.tgz", + "integrity": "sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==", "requires": { - "is-svg": "^3.0.0", "postcss": "^7.0.0", "postcss-value-parser": "^3.0.0", "svgo": "^1.0.0" @@ -5827,9 +6346,9 @@ } }, "posthtml-render": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.4.0.tgz", - "integrity": "sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==" + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.3.1.tgz", + "integrity": "sha512-eSToKjNLu0FiF76SSGMHjOFXYzAc/CJqi677Sq6hYvcvFCBtD6de/W5l+0IYPf7ypscqAfjCttxvTdMJt5Gj8Q==" }, "prelude-ls": { "version": "1.1.2", @@ -5879,9 +6398,9 @@ }, "dependencies": { "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==" + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" } } }, @@ -6008,9 +6527,9 @@ } }, "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "purgecss": { "version": "2.3.0", @@ -6218,9 +6737,9 @@ "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" }, "regjsparser": { - "version": "0.6.4", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", - "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", + "version": "0.6.9", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.9.tgz", + "integrity": "sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ==", "requires": { "jsesc": "~0.5.0" }, @@ -6764,6 +7283,11 @@ "optionator": "^0.8.1", "source-map": "~0.6.1" } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" } } }, @@ -6899,20 +7423,20 @@ } }, "string.prototype.trimend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", - "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3" } }, "string.prototype.trimstart": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", - "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", "requires": { - "call-bind": "^1.0.0", + "call-bind": "^1.0.2", "define-properties": "^1.1.3" } }, @@ -7159,13 +7683,6 @@ "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", "requires": { "punycode": "^2.1.0" - }, - "dependencies": { - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" - } } }, "tslib": { @@ -7205,6 +7722,24 @@ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + }, + "dependencies": { + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + } + } + }, "uncss": { "version": "0.17.3", "resolved": "https://registry.npmjs.org/uncss/-/uncss-0.17.3.tgz", @@ -7274,13 +7809,6 @@ "requires": { "pako": "^0.2.5", "tiny-inflate": "^1.0.0" - }, - "dependencies": { - "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=" - } } }, "union-value": { @@ -7439,9 +7967,9 @@ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" }, "v8-compile-cache": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz", - "integrity": "sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==" + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==" }, "vendors": { "version": "1.0.4", @@ -7535,6 +8063,18 @@ "isexe": "^2.0.0" } }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, "with": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", diff --git a/package.json b/package.json index eb6b566..ac8398b 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,9 @@ "cypress:info": "cypress info", "test": "cypress run" }, + "browserslist": [ + "last 2 Chrome versions" + ], "release": { "branches": [ "master" @@ -49,7 +52,7 @@ "cross-env": "^7.0.3", "fs-extra": "^9.0.1", "normalize.css": "^8.0.1", - "parcel-bundler": "^1.12.4", + "parcel-bundler": "^1.12.5", "pug": "^3.0.0", "rimraf": "^2.7.1", "sass": "^1.29.0" diff --git a/src/locales/en.json b/src/locales/en.json index 24709a9..6322f1d 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -32,13 +32,7 @@ "circlesBrowse": "Browse circles", "circleCreate": "Create circle", "messages": "Messages", - "search": "Search", - "republiqueESS": { - "home": "Home", - "contribute": "Contribute", - "thematics": "Thematics", - "community": "Community" - } + "search": "Search" }, "about": { "title": "About", @@ -131,10 +125,7 @@ "subTitle": "Members :" }, "extensions": { - "associated": "Associated circle", - "republiqueESS": { - "associatedThematic": "Associated thematic" - } + "associated": "Associated circle" } }, "communities": { diff --git a/src/locales/es.json b/src/locales/es.json index 747d704..e2002fe 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -32,13 +32,7 @@ "circlesBrowse": "Examinar los círculos", "circleCreate": "Crea un círculo.", "messages": "Mensajes", - "search": "Buscar", - "republiqueESS": { - "home": "Hogar", - "contribute": "Contribuir", - "thematics": "Temáticas", - "community": "Comunidad" - } + "search": "Buscar" }, "about": { "title": "Acerca de", @@ -131,10 +125,7 @@ "subTitle": "Miembrxs: " }, "extensions": { - "associated": "Círculo asociado", - "republiqueESS": { - "associatedThematic": "Temática asociada" - } + "associated": "Círculo asociado" } }, "communities": { diff --git a/src/locales/fr.json b/src/locales/fr.json index bf01c5c..aaf7e3d 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -9,9 +9,7 @@ }, "menuLeft": { "emptyCircleProjectContact": { - "empty": "Il n'y a aucun résultat dans cette section.", - "project": "projet", - "circle": "cercle" + "empty": "Il n'y a aucun résultat dans cette section." }, "contact": { "create": "Retrouve tes contacts sur", @@ -32,13 +30,7 @@ "circlesBrowse": "Parcourir les cercles", "circleCreate": "Créer un cercle", "messages": "Messages", - "search": "Rechercher", - "republiqueESS": { - "home": "Accueil", - "contribute": "Contribuer", - "thematics": "Thématiques", - "community": "Communauté" - } + "search": "Rechercher" }, "about": { "title": "A propos", @@ -131,10 +123,7 @@ "subTitle": "Membres :" }, "extensions": { - "associated": "Cercle associé", - "republiqueESS": { - "associatedThematic": "Thématique associée" - } + "associated": "Cercle associé" } }, "communities": { diff --git a/src/scripts/intl.js b/src/scripts/intl.js index 1f3e976..04bbe02 100644 --- a/src/scripts/intl.js +++ b/src/scripts/intl.js @@ -6,27 +6,27 @@ class JsI18n { constructor() { this.locale = ""; //Current locale this.locales = new Array(); //Available locales + this.overwrites = new Array(); this.defaultLocale = "fr"; } /* Method for automatically detecting the language, does not work in every browser. */ - detectLanguage() { + async detectLanguage() { const customLangs = document.querySelectorAll('hubl-lang'); - if(customLangs) { - for(let lang of customLangs) { - let name = lang.getAttribute('lang'), - file = lang.getAttribute('file'); - if(window.hubl.intl.locales[name.toString()] == undefined) { - return fetch(file).then((result) => { - if (result.ok) { - result.json().then(e => { - window.hubl.intl.addLocale(name, e); - }); - } - window.hubl.intl.resumeDetection(); - }); + if (customLangs) { + for (let lang of customLangs) { + let name = lang.getAttribute('lang'), + file = lang.getAttribute('file'); + let result = await fetch(file); + if (result.ok) { + let json = await result.json(); + if(this.overwrites[name.toString()] != undefined) { + this.mergeDeep(this.overwrites[name.toString()], json); + } else { + this.overwrites[name.toString()] = json; + } } } } @@ -35,10 +35,10 @@ class JsI18n { resumeDetection() { const langComponent = document.querySelector('hubl-fallback-lang'); - if(langComponent) { - if(langComponent.hasAttribute('lang')) { + if (langComponent) { + if (langComponent.hasAttribute('lang')) { this.defaultLocale = langComponent.getAttribute('lang'); - if(langComponent.hasAttribute('force')) { + if (langComponent.hasAttribute('force')) { localStorage.setItem('language', this.defaultLocale); } } @@ -52,6 +52,30 @@ class JsI18n { } }; + isObject(item) { + return (item && typeof item === 'object' && !Array.isArray(item)); + } + + mergeDeep(target, ...sources) { + if (!sources.length) return target; + const source = sources.shift(); + if (this.isObject(target) && this.isObject(source)) { + for (const key in source) { + if (this.isObject(source[key])) { + if (!target[key]) Object.assign(target, { + [key]: {} + }); + this.mergeDeep(target[key], source[key]); + } else { + Object.assign(target, { + [key]: source[key] + }); + } + } + } + return this.mergeDeep(target, ...sources); + } + /* Translates tag contents and attributes depending on the @@ -84,7 +108,7 @@ class JsI18n { if (placeholder != null) { this.translateNodeContent(placeholder.attributes['placeholder'], k); let input = node.querySelector('[name="' + attr.replace("placeholder-", "") + '"] > input'); - if(input != null) { + if (input != null) { this.translateNodeContent(input.attributes['placeholder'], k); } } @@ -145,21 +169,20 @@ class JsI18n { if the locale is already defined. */ addLocale(locale, translations) { + if (this.overwrites[locale.toString()] != undefined) { + this.mergeDeep(translations, this.overwrites[locale.toString()]); + } this.locales[locale.toString()] = translations; } fetchLocale(locale) { - if(this.locales[locale.toString()] == undefined) { - return fetch(`/locales/${locale}.json`).then((result) => { - if (result.ok) { - result.json().then(e => { - this.addLocale(locale, e); - }); - } - }); - } else { - return (new Promise()).resolve(); - } + return fetch(`/locales/${locale}.json`).then((result) => { + if (result.ok) { + result.json().then(e => { + this.addLocale(locale, e); + }); + } + }); } /* @@ -168,7 +191,7 @@ class JsI18n { setLocale(locale) { try { this.fetchLocale(locale).then(() => { - if(this.locale) { + if (this.locale) { localStorage.setItem('language', this.locale); } this.processPage(); @@ -190,11 +213,11 @@ class JsI18n { t(key) { var translations = this.locales[this.locale]; if (translations == undefined) { - if(this.locales.length > 1) { + if (this.locales.length > 1) { translations = this.locales[this.defaultLocale]; } } - if(translations != undefined) { + if (translations != undefined) { let translation = key.toString().split('.').reduce((o, i) => (o ? o[i] : undefined), translations); if (typeof translation == "string") { return translation; diff --git a/src/styles/left-nav/_index.scss b/src/styles/left-nav/_index.scss index 0288baf..4dacaf1 100644 --- a/src/styles/left-nav/_index.scss +++ b/src/styles/left-nav/_index.scss @@ -131,10 +131,10 @@ nav#main__menu { .menu-admin { position: absolute; z-index: 3016; - left: 78px; + left: 15%; top: 36px; text-align: end; - width: 64%; + width: 80%; @media (max-width: 768px) { width: 100%; From af55c86225ffd2f94e1d73cedf24434aec531d86 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Thu, 8 Apr 2021 20:45:46 +0200 Subject: [PATCH 11/47] fix: button background on sw update --- src/styles/content/_index.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/styles/content/_index.scss b/src/styles/content/_index.scss index 894169c..40aed50 100644 --- a/src/styles/content/_index.scss +++ b/src/styles/content/_index.scss @@ -3,7 +3,7 @@ main { } .no-background-image { - background-image: none; + background-image: none !important; } /* Styles of the right-hand menu + pages with that menu */ From ba25ac93a5b559f56b01f45f760c5d6e2fe9dbe4 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Thu, 8 Apr 2021 21:25:14 +0200 Subject: [PATCH 12/47] fix: undefined on strings --- src/components/sw-toolbox.js | 48 +++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/src/components/sw-toolbox.js b/src/components/sw-toolbox.js index 4012aa0..4b11fd0 100644 --- a/src/components/sw-toolbox.js +++ b/src/components/sw-toolbox.js @@ -10,31 +10,33 @@ if ('serviceWorker' in navigator) { let registration; const showSkipWaitingPrompt = (event) => { - Swal.fire({ - position: 'bottom-end', - backdrop: false, - title: "", - text: hubl.intl.t('serviceWorker.newUpdate') + ". " + hubl.intl.t('serviceWorker.wantToUpdate'), - imageUrl: hubl.client.logo || 'https://cdn.startinblox.com/logos/webp/hubl.webp', - imageAlt: hubl.client.name, - showCancelButton: true, - confirmButtonClass: 'button text-xsmall text-bold text-center reversed color-secondary bordered icon icon-check no-background-image', - cancelButtonClass: 'button text-xsmall text-bold text-center reversed color-primary bordered icon icon-exclamation no-background-image', - confirmButtonText: hubl.intl.t('serviceWorker.yes'), - cancelButtonText: hubl.intl.t('serviceWorker.no') - }).then((result) => { - if (result.isConfirmed) { - wb.addEventListener('controlling', (event) => { - window.location.reload(); - }); - - if (registration && registration.waiting) { - messageSW(registration.waiting, { - type: 'SKIP_WAITING' + if(hubl.intl.t('serviceWorker.newUpdate') != undefined) { + Swal.fire({ + position: 'bottom-end', + backdrop: false, + title: "", + text: hubl.intl.t('serviceWorker.newUpdate') + ". " + hubl.intl.t('serviceWorker.wantToUpdate'), + imageUrl: hubl.client.logo || 'https://cdn.startinblox.com/logos/webp/hubl.webp', + imageAlt: hubl.client.name, + showCancelButton: true, + confirmButtonClass: 'button text-xsmall text-bold text-center reversed color-secondary bordered icon icon-check no-background-image', + cancelButtonClass: 'button text-xsmall text-bold text-center reversed color-primary bordered icon icon-exclamation no-background-image', + confirmButtonText: hubl.intl.t('serviceWorker.yes'), + cancelButtonText: hubl.intl.t('serviceWorker.no') + }).then((result) => { + if (result.isConfirmed) { + wb.addEventListener('controlling', (event) => { + window.location.reload(); }); + + if (registration && registration.waiting) { + messageSW(registration.waiting, { + type: 'SKIP_WAITING' + }); + } } - } - }); + }); + } }; wb.addEventListener('waiting', showSkipWaitingPrompt); From 6ac303cd8a4f466bbcc885967c21a21590902fe3 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Fri, 9 Apr 2021 10:47:31 +0200 Subject: [PATCH 13/47] fix: width on menu --- src/styles/left-nav/_index.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/src/styles/left-nav/_index.scss b/src/styles/left-nav/_index.scss index 4dacaf1..8b1e70a 100644 --- a/src/styles/left-nav/_index.scss +++ b/src/styles/left-nav/_index.scss @@ -242,6 +242,7 @@ nav#main__menu { solid-set-default[name="message"] { margin-right: 9px; + width: 74%; } hubl-menu-contact-removed { From 42205d90cd571a09afb1fe6b0cf7c9823d476afa Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Fri, 9 Apr 2021 13:28:39 +0200 Subject: [PATCH 14/47] fix: various fixes on community directory --- README.md | 18 ++ src/locales/en.json | 3 +- src/locales/es.json | 3 +- src/locales/fr.json | 3 +- src/styles/admin-circles/_index.scss | 30 ++- .../communities/page-community-directory.pug | 2 +- .../communities/page-community-edit.pug | 184 ++++++++++-------- .../communities/page-community-map.pug | 14 +- .../communities/page-community-profile.pug | 16 +- src/views/partials/widgets.pug | 1 + .../widgets/hubl-communities-edit-button.pug | 13 ++ .../widgets/hubl-communities-edit-email.pug | 2 +- .../widgets/hubl-communities-edit-website.pug | 2 +- .../widgets/hubl-communities-logo.pug | 2 +- .../hubl-communities-profile-address.pug | 4 +- .../hubl-communities-profile-email.pug | 4 +- .../hubl-communities-profile-facebook.pug | 4 +- .../hubl-communities-profile-instagram.pug | 4 +- .../hubl-communities-profile-linkedin.pug | 4 +- .../widgets/hubl-communities-profile-logo.pug | 4 +- ...bl-communities-profile-members-counter.pug | 2 +- .../hubl-communities-profile-phone.pug | 4 +- .../hubl-communities-profile-picture.pug | 2 +- .../hubl-communities-profile-twitter.pug | 4 +- .../hubl-communities-profile-website.pug | 4 +- 25 files changed, 200 insertions(+), 133 deletions(-) create mode 100644 src/views/partials/widgets/hubl-communities-edit-button.pug diff --git a/README.md b/README.md index 5ab7d75..5d2b182 100644 --- a/README.md +++ b/README.md @@ -295,6 +295,24 @@ To activate community on Hubl, add this module declaration your `config.json`: } ``` +#### Activate the community directory + +When you work with a federated application, you may want a directory for communities. + +You can activate it by changing the route to anything else than false. Some endpoints will also get needed: + +```json + { + "type": "communities", + "endpoints": { + "get": "http://server/communities/", + "addresses": "http://server/community-addresses/", + "uploads": "http://server/upload/" + }, + "route": "communities" + } +``` + ### Dashboard Dashboard includes card generation from HTML. To activate them, you need: diff --git a/src/locales/en.json b/src/locales/en.json index 287d396..c5bcfda 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -179,7 +179,8 @@ "labelLogo": "Community Logo", "subTitle": "Pictures", "subTitle1": "Address", - "buttonSubmit": "Save" + "buttonSubmit": "Save", + "noPermission": "You don't have access to this page" } }, "project": { diff --git a/src/locales/es.json b/src/locales/es.json index 8671867..514088f 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -179,7 +179,8 @@ "labelLogo": "", "subTitle": "", "subTitle1": "", - "buttonSubmit": "Guardar" + "buttonSubmit": "Guardar", + "noPermission": "" } }, "project": { diff --git a/src/locales/fr.json b/src/locales/fr.json index 6f1eab1..83c5dfa 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -177,7 +177,8 @@ "labelLogo": "Logo de la communauté", "subTitle": "Photos", "subTitle1": "Adresse", - "buttonSubmit": "Enregistrer" + "buttonSubmit": "Enregistrer", + "noPermission": "Vous n'avez pas la permission" } }, "project": { diff --git a/src/styles/admin-circles/_index.scss b/src/styles/admin-circles/_index.scss index 84ad1df..3644506 100644 --- a/src/styles/admin-circles/_index.scss +++ b/src/styles/admin-circles/_index.scss @@ -7,7 +7,7 @@ /* And no I can't add that stupid icon because it'a an input. */ /* But now, with 0.16, it's a button and you can :D */ .join-button { - + input, button { padding: 9px 20px; @@ -19,7 +19,7 @@ background-color: var(--color-secondary); color: white; border: 1px solid var(--color-secondary); - + &:before { font-size: 15px; margin-right: 6px; @@ -38,17 +38,17 @@ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } - + &:hover { background: white; color: var(--color-secondary); } } - + @media (max-width: 768px) { - + &.sm-full { - + input, button { width: 100%; @@ -58,10 +58,15 @@ } .form.search-button :not(.add-member)+button[type=submit] { - background-color: #E9F2FF; - border: none; + background-color: transparent; + border: 1px solid var(--color-secondary); color: var(--color-secondary); + &:hover { + background-color: var(--color-secondary); + color: #fff; + } + &:before { font-size: 15px; margin-right: 6px; @@ -76,11 +81,11 @@ text-align: center; font-variant: normal; text-transform: none; - line-height: 1em; + line-height: 13px; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } - } + } .masonry>div:nth-child(1) { /* change from directory (nth-child(2))*/ @@ -96,6 +101,7 @@ .segment.hover:hover { box-shadow: 0 0 16px 0 rgba(46, 63, 88, 0.34); bottom: 2px; + cursor: pointer; } hubl-admin-circle-name:hover { @@ -106,6 +112,7 @@ height: 76px; width: 100%; display: block; + div { display: block; width: 100%; @@ -242,4 +249,7 @@ } } } + .flex { + display: flex; + } } \ No newline at end of file diff --git a/src/views/partials/communities/page-community-directory.pug b/src/views/partials/communities/page-community-directory.pug index e615b49..bc323e6 100644 --- a/src/views/partials/communities/page-community-directory.pug +++ b/src/views/partials/communities/page-community-directory.pug @@ -24,7 +24,7 @@ div div solid-display( - class='segment full children children-quarter sm-children-full children-margin-bottom-medium sm-children-margin-bottom-xsmall children-padding-right-xsmall children-padding-left-xsmall sm-children-padding-none sm-whitespace-normal masonry pagination' + class='segment full children children-quarter sm-children-full children-margin-bottom-medium sm-children-margin-bottom-xsmall children-padding-right-xsmall children-padding-left-xsmall sm-children-padding-none sm-whitespace-normal masonry pagination text-disable-selection' data-src=`${component.endpoints.get}` loader-id=`loader-${component.route}-directory` fields='segment1(segment2(logo), segment3(name, profile.shortDescription, counter))' diff --git a/src/views/partials/communities/page-community-edit.pug b/src/views/partials/communities/page-community-edit.pug index 2aee307..fcc9aac 100644 --- a/src/views/partials/communities/page-community-edit.pug +++ b/src/views/partials/communities/page-community-edit.pug @@ -1,114 +1,138 @@ div.bg-color-white - solid-ac-checker(permission='acl:Read', bind-resources) + solid-ac-checker(permission="acl:Read", bind-resources) div.segment.full.padding-large.border-bottom.border-color-grey div.segment.half.sm-full solid-display.text-color-heading.text-bold.text-xxlarge.text-letter-spacing-large( bind-resources - fields='name' + fields="name" ) div.segment.half.sm-hidden.text-right solid-link(class="backlink", bind-resources, next=`${component.route}-profile` data-trans="communities.back") div.segment.full.padding-large.whitespace-normal - solid-ac-checker(permission='acl:Write', bind-resources) - div.loader.loader-top(id=`loader-${component.route}-edit`) - div - div - div - div - - solid-form.form( - bind-resources + //- solid-ac-checker(permission="acl:Write", bind-resources) + div.loader.loader-top(id=`loader-${component.route}-edit`) + div + div + div + div - fields='profile.shortDescription, profile.description, segment(logo), profile.website, profile.email, profile.phone, profile.tweeter, profile.facebook, profile.linkedin, segment1(profile.instagram)' + solid-form.form( + bind-resources + loader-id=`loader-${component.route}-edit` - label-profile.shortDescription='' - label-profile.description='' - label-logo='' - label-profile.website='' - label-profile.email='' - label-profile.phone='' - label-profile.tweeter='' - label-profile.facebook='' - label-profile.linkedin='' - label-profile.instagram='' + fields="profile.shortDescription, profile.description, segment(logo), profile.website, profile.email, profile.phone, profile.tweeter, profile.facebook, profile.linkedin, segment1(profile.instagram)" - class-profile.shortDescription='segment margin-bottom-medium half sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' - class-profile.description='segment margin-bottom-medium full text-small text-semibold text-uppercase text-color-heading' + label-profile.shortDescription="" + label-profile.description="" + label-logo="" + label-profile.website="" + label-profile.email="" + label-profile.phone="" + label-profile.tweeter="" + label-profile.facebook="" + label-profile.linkedin="" + label-profile.instagram="" - class-segment='segment full' - class-logo='segment margin-bottom-medium half sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' - class-profile.website='segment margin-bottom-medium third sm-full padding-right-small sm-padding-none' - class-profile.email='segment margin-bottom-medium third sm-full padding-right-small padding-left-small sm-padding-none' - class-profile.phone='segment margin-bottom-medium third sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' + class-profile.shortDescription="segment margin-bottom-medium full sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-profile.description="segment margin-bottom-medium full text-small text-semibold text-uppercase text-color-heading" - class-profile.tweeter='segment margin-bottom-medium third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' - class-profile.facebook='segment margin-bottom-medium third sm-full padding-right-small padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' - class-profile.linkedin='segment margin-bottom-medium third sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' - class-segment1='segment full' - class-profile.instagram='segment margin-bottom-medium third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' - - widget-profile.description='solid-form-richtext-label' - widget-profile.email='hubl-communities-edit-email' - widget-profile.website='hubl-communities-edit-website' - upload-url-logo + class-segment="segment full" + class-logo="segment margin-bottom-medium full sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-profile.website="segment margin-bottom-medium third sm-full padding-right-small sm-padding-none" + class-profile.email="segment margin-bottom-medium third sm-full padding-right-small padding-left-small sm-padding-none" + class-profile.phone="segment margin-bottom-medium third sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" - submit-button='' - submit-widget="button" - next=`${component.route}-profile` + class-profile.tweeter="segment margin-bottom-medium third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-profile.facebook="segment margin-bottom-medium third sm-full padding-right-small padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-profile.linkedin="segment margin-bottom-medium third sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-segment1="segment full" + class-profile.instagram="segment margin-bottom-medium third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" - data-trans='label-logo=communities.edit.labelLogo;label-profile.shortDescription=communities.edit.labelShortDescription;label-profile.description=communities.edit.labelDescription;label-profile.phone=communities.edit.labelPhone;label-profile.tweeter=communities.edit.labelTwitter;label-profile.facebook=communities.edit.labelFacebook;label-profile.linkedin=communities.edit.labelLinkedin;label-profile.instagram=communities.edit.labelInstagram;submit-button=communities.edit.buttonSubmit' - ) + widget-profile.description="solid-form-richtext-label" + widget-profile.email="hubl-communities-edit-email" + widget-profile.website="hubl-communities-edit-website" + upload-url-logo=component.endpoints.uploads + widget-logo="solid-form-image-label" - h3.segment.full.padding-bottom-small.border-bottom.border-color-grey.text-color-heading.text-bold.text-letter-spacing-large(data-trans='communities.edit.subTitle') + submit-button="" + submit-widget="button" - solid-form.form( - bind-resources + data-trans="label-logo=communities.edit.labelLogo;label-profile.shortDescription=communities.edit.labelShortDescription;label-profile.description=communities.edit.labelDescription;label-profile.phone=communities.edit.labelPhone;label-profile.tweeter=communities.edit.labelTwitter;label-profile.facebook=communities.edit.labelFacebook;label-profile.linkedin=communities.edit.labelLinkedin;label-profile.instagram=communities.edit.labelInstagram;submit-button=communities.edit.buttonSubmit" + ) - fields='profile.picture1, profile.picture2, profile.picture3' + h3.segment.full.padding-bottom-small.border-bottom.border-color-grey.text-color-heading.text-bold.text-letter-spacing-large(data-trans="communities.edit.subTitle") - upload-url-profile.picture1 - upload-url-profile.picture2 - upload-url-profile.picture3 + solid-form.form( + bind-resources - label-profile.picture1='' - label-profile.picture2='' - label-profile.picture3='' + fields="profile.picture1, profile.picture2, profile.picture3" - class-profile.picture1='segment margin-bottom-medium third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' - class-profile.picture2='segment margin-bottom-medium third sm-full padding-right-small padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' - class-profile.picture3='segment margin-bottom-medium third sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' + upload-url-profile.picture1=component.endpoints.uploads + upload-url-profile.picture2=component.endpoints.uploads + upload-url-profile.picture3=component.endpoints.uploads - submit-button='' - submit-widget="button" - next=`${component.route}-profile` + widget-profile.picture1="solid-form-image-label" + widget-profile.picture2="solid-form-image-label" + widget-profile.picture3="solid-form-image-label" - data-trans='label-profile.picture1=communities.edit.labelPicture1;label-profile.picture2=communities.edit.labelPicture2;label-profile.picture3=communities.edit.labelPicture3;submit-button=communities.edit.buttonSubmit' - ) + label-profile.picture1="" + label-profile.picture2="" + label-profile.picture3="" - h3.segment.full.padding-bottom-small.border-bottom.border-color-grey.text-color-heading.text-bold.text-letter-spacing-large(data-trans='communities.edit.subTitle1') + class-profile.picture1="segment margin-bottom-medium third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-profile.picture2="segment margin-bottom-medium third sm-full padding-right-small padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-profile.picture3="segment margin-bottom-medium third sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" - solid-table.form( - bind-resources - nested-fields='addresses' - fields='address_line1, address_line2' + submit-button="" + submit-widget="button" - editable-address_line1 - editable-address_line2 + data-trans="label-profile.picture1=communities.edit.labelPicture1;label-profile.picture2=communities.edit.labelPicture2;label-profile.picture3=communities.edit.labelPicture3;submit-button=communities.edit.buttonSubmit" + ) - label-address_line1='' - label-address_line2='' + h3.segment.full.padding-bottom-small.border-bottom.border-color-grey.text-color-heading.text-bold.text-letter-spacing-large(data-trans="communities.edit.subTitle1") - widget-address_line1='solid-form-label-text' - widget-address_line2='solid-form-label-text' + solid-form.form( + bind-resources + nested-field="addresses" + fields="address_line1, address_line2" - class-address_line1='segment margin-bottom-medium half sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' - class-address_line2='segment margin-bottom-medium half sm-full padding-right-small padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' + label-address_line1="" + label-address_line2="" - submit-button='' - submit-widget="button" - next=`${component.route}-profile` + widget-community="solid-form-hidden" + widget-address_line1="solid-form-label-text" + widget-address_line2="solid-form-label-text" - data-trans='label-addresses.address_line1=communities.edit.labelAddressLine1;label-addresses.address_line2=communities.edit.labelAddressLine2' - ) + submit-button="" + submit-widget="button" + + data-trans="label-addresses.address_line1=communities.edit.labelAddressLine1;label-addresses.address_line2=communities.edit.labelAddressLine2" + ) + + solid-table.form( + selectable + header + bind-resources + nested-fields='addresses' + fields='address_line1, address_line2' + + editable-address_line1 + editable-address_line2 + + label-address_line1='' + label-address_line2='' + + widget-address_line1='solid-form-label-text' + widget-address_line2='solid-form-label-text' + + submit-button='' + submit-widget="button" + next=`${component.route}-profile` + + data-trans='label-addresses.address_line1=communities.edit.labelAddressLine1;label-addresses.address_line2=communities.edit.labelAddressLine2' + ) + + //- solid-ac-checker(no-permission="acl:Write", bind-resources) + //- span(data-trans="communities.edit.noPermission") diff --git a/src/views/partials/communities/page-community-map.pug b/src/views/partials/communities/page-community-map.pug index bdaa8de..da0ccb0 100644 --- a/src/views/partials/communities/page-community-map.pug +++ b/src/views/partials/communities/page-community-map.pug @@ -5,11 +5,11 @@ div.segment.half.sm-full solid-form-search.form.search-form.search-button( id=`communities-filter-map` - fields='name' - search-name='community.name' - placeholder-name='' - widget-name='solid-form-placeholder-text' - class-name="segment margin-bottom-medium sm-margin-bottom-none three-quarter sm-full padding-right-small sm-padding-none text-small input-bg-white children-shadow" + fields='filter' + search-filter='community.name, address_line1, address_line2' + placeholder-filter='' + widget-filter='solid-form-placeholder-text' + class-filter="segment margin-bottom-medium sm-margin-bottom-none three-quarter sm-full padding-right-small sm-padding-none text-small input-bg-white children-shadow" submit-button="" submit-widget="button" @@ -20,10 +20,10 @@ span solid-map.communities-map.margin-right-xsmall.margin-left-xsmall.sm-margin-none.shadow( - data-src=`${component.endpoints.get}` + data-src=`${component.endpoints.addresses}` loader-id=`loader-${component.route}-map` - nested-field="addresses" fields="position(community.name, community.profile.shortDescription, address_line1, address_line2)" + class-position="segment" clustering="" filtered-by=`communities-filter-map` style="display:block;height:698px;" diff --git a/src/views/partials/communities/page-community-profile.pug b/src/views/partials/communities/page-community-profile.pug index 62cc4bc..af313fa 100644 --- a/src/views/partials/communities/page-community-profile.pug +++ b/src/views/partials/communities/page-community-profile.pug @@ -15,11 +15,11 @@ div.community-profile.padding-medium.sm-padding-none loader-id=`loader-${component.route}-profile` class-segment0="segment full padding-xlarge sm-padding-none whitespace-normal" - class-segment1="community-profile-logo segment third sm-full margin-top-medium padding-top-medium padding-right-medium sm-margin-top-xsmall sm-padding-medium text-center" + class-segment1="community-profile-logo segment quarter sm-full margin-top-medium padding-top-medium padding-right-medium sm-margin-top-xsmall sm-padding-medium text-center" - class-segment2="segment two-third sm-full sm-padding-top-medium sm-padding-right-xsmall sm-padding-bottom-medium sm-padding-left-xsmall text-top sm-text-center whitespace-normal" + class-segment2="segment three-quarter sm-full sm-padding-top-medium sm-padding-right-xsmall sm-padding-bottom-medium sm-padding-left-xsmall text-top sm-text-center whitespace-normal" - class-segment3="segment full sm-two-third text-center" + class-segment3="segment full sm-two-third" class-segment4="segment half sm-two-third padding-top-xsmall" class-name="segment block text-color-heading text-xxlarge text-bold sm-text-center margin-bottom-xxsmall whitespace-normal" class-segment5="segment half text-right sm-hidden" @@ -35,18 +35,14 @@ div.community-profile.padding-medium.sm-padding-none class-profile.description="segment full whitespace-normal" class-segment10="segment full text-right margin-top-xxlarge" - action-edit=`${component.route}-edit` - class-edit="segment sm-full button text-xsmall text-bold text-uppercase text-center reversed color-secondary bordered icon icon-pencil" - value-edit="" - data-trans='value-edit=communities.profile.edit' - class-segment11="segment full whitespace-normal" + class-segment11="segment full whitespace-normal flex" class-profile.picture1="communities-profile-picture segment third" class-profile.picture2="communities-profile-picture segment third" class-profile.picture3="communities-profile-picture segment third" widget-logo="hubl-communities-profile-logo" - widget-profile.description="solid-display-richtext-label" + widget-profile.description="solid-display-value-markdown" widget-profile.tweeter="hubl-communities-profile-twitter" widget-profile.facebook="hubl-communities-profile-facebook" widget-profile.linkedin="hubl-communities-profile-linkedin" @@ -59,6 +55,8 @@ div.community-profile.padding-medium.sm-padding-none widget-profile.picture1="hubl-communities-profile-picture" widget-profile.picture2="hubl-communities-profile-picture" widget-profile.picture3="hubl-communities-profile-picture" + action-edit="edit" + widget-edit="hubl-communities-edit-button" bind-resources ) diff --git a/src/views/partials/widgets.pug b/src/views/partials/widgets.pug index 9ae42b0..e1d488b 100644 --- a/src/views/partials/widgets.pug +++ b/src/views/partials/widgets.pug @@ -21,6 +21,7 @@ include widgets/hubl-circle-owner.pug include widgets/hubl-circle-team-contact.pug include widgets/hubl-circle-user-admin.pug include widgets/hubl-communities-counter-alternate.pug +include widgets/hubl-communities-edit-button.pug include widgets/hubl-communities-edit-email.pug include widgets/hubl-communities-edit-website.pug include widgets/hubl-communities-logo.pug diff --git a/src/views/partials/widgets/hubl-communities-edit-button.pug b/src/views/partials/widgets/hubl-communities-edit-button.pug new file mode 100644 index 0000000..f05dc5a --- /dev/null +++ b/src/views/partials/widgets/hubl-communities-edit-button.pug @@ -0,0 +1,13 @@ +if componentSet.has('communities') && getRoute('communities') + solid-widget(name='hubl-communities-edit-button') + template + solid-ac-checker( + no-permission='acl:Control' + data-src="${src}" + ) + solid-link( + class="segment sm-full button text-xsmall text-bold text-uppercase text-center reversed color-secondary bordered icon icon-pencil" + data-trans="communities.profile.edit" + data-src="${src}" + next=`${getRoute('communities', true)}-edit` + ) \ No newline at end of file diff --git a/src/views/partials/widgets/hubl-communities-edit-email.pug b/src/views/partials/widgets/hubl-communities-edit-email.pug index 529157a..bb778c4 100644 --- a/src/views/partials/widgets/hubl-communities-edit-email.pug +++ b/src/views/partials/widgets/hubl-communities-edit-email.pug @@ -1,4 +1,4 @@ -if componentSet.has('communities') +if componentSet.has('communities') && getRoute('communities') solid-widget(name='hubl-communities-edit-email') template label(class="text-small text-semibold text-uppercase text-color-heading" data-trans="communities.edit.labelEmail") diff --git a/src/views/partials/widgets/hubl-communities-edit-website.pug b/src/views/partials/widgets/hubl-communities-edit-website.pug index f7edbc1..c38c68f 100644 --- a/src/views/partials/widgets/hubl-communities-edit-website.pug +++ b/src/views/partials/widgets/hubl-communities-edit-website.pug @@ -1,4 +1,4 @@ -if componentSet.has('communities') +if componentSet.has('communities') && getRoute('communities') solid-widget(name='hubl-communities-edit-website') template label(class="text-small text-semibold text-uppercase text-color-heading" data-trans='communities.edit.labelWebsite') diff --git a/src/views/partials/widgets/hubl-communities-logo.pug b/src/views/partials/widgets/hubl-communities-logo.pug index 17cea6c..c1735f6 100644 --- a/src/views/partials/widgets/hubl-communities-logo.pug +++ b/src/views/partials/widgets/hubl-communities-logo.pug @@ -1,3 +1,3 @@ -if componentSet.has('communities') +if componentSet.has('communities') && getRoute('communities') solid-widget(name='hubl-communities-logo') template ${value != "" ? `
` : `
`} diff --git a/src/views/partials/widgets/hubl-communities-profile-address.pug b/src/views/partials/widgets/hubl-communities-profile-address.pug index b59b961..fc237e3 100644 --- a/src/views/partials/widgets/hubl-communities-profile-address.pug +++ b/src/views/partials/widgets/hubl-communities-profile-address.pug @@ -1,4 +1,4 @@ -if componentSet.has('communities') +if componentSet.has('communities') && getRoute('communities') solid-widget(name='hubl-communities-profile-address') template - | ${await value != "" ? `\${await value.adress_line1}
\${await value.adress_line2}
` : ``} + | ${await value.adress_line1 != "" ? `\${await value.adress_line1}
\${await value.adress_line2 || ""}
` : ""} diff --git a/src/views/partials/widgets/hubl-communities-profile-email.pug b/src/views/partials/widgets/hubl-communities-profile-email.pug index c9b0876..c8cb2c6 100644 --- a/src/views/partials/widgets/hubl-communities-profile-email.pug +++ b/src/views/partials/widgets/hubl-communities-profile-email.pug @@ -1,3 +1,3 @@ -if componentSet.has('communities') +if componentSet.has('communities') && getRoute('communities') solid-widget(name='hubl-communities-profile-email') - template ${value != "" ? `\$value` : ``} + template ${value != "" ? `${value}` : ""} diff --git a/src/views/partials/widgets/hubl-communities-profile-facebook.pug b/src/views/partials/widgets/hubl-communities-profile-facebook.pug index 11716b0..917fbc9 100644 --- a/src/views/partials/widgets/hubl-communities-profile-facebook.pug +++ b/src/views/partials/widgets/hubl-communities-profile-facebook.pug @@ -1,3 +1,3 @@ -if componentSet.has('communities') +if componentSet.has('communities') && getRoute('communities') solid-widget(name='hubl-communities-profile-facebook') - template ${value != "" ? `` : ``} + template ${value != "" ? `` : ""} diff --git a/src/views/partials/widgets/hubl-communities-profile-instagram.pug b/src/views/partials/widgets/hubl-communities-profile-instagram.pug index 34d5c6f..5bf7b15 100644 --- a/src/views/partials/widgets/hubl-communities-profile-instagram.pug +++ b/src/views/partials/widgets/hubl-communities-profile-instagram.pug @@ -1,3 +1,3 @@ -if componentSet.has('communities') +if componentSet.has('communities') && getRoute('communities') solid-widget(name='hubl-communities-profile-instagram') - template ${value != "" ? `` : ``} + template ${value != "" ? `` : ""} diff --git a/src/views/partials/widgets/hubl-communities-profile-linkedin.pug b/src/views/partials/widgets/hubl-communities-profile-linkedin.pug index c3801f8..64a2b7b 100644 --- a/src/views/partials/widgets/hubl-communities-profile-linkedin.pug +++ b/src/views/partials/widgets/hubl-communities-profile-linkedin.pug @@ -1,3 +1,3 @@ -if componentSet.has('communities') +if componentSet.has('communities') && getRoute('communities') solid-widget(name='hubl-communities-profile-linkedin') - template ${value != "" ? `` : ``} + template ${value != "" ? `` : ""} diff --git a/src/views/partials/widgets/hubl-communities-profile-logo.pug b/src/views/partials/widgets/hubl-communities-profile-logo.pug index a58adb6..8231316 100644 --- a/src/views/partials/widgets/hubl-communities-profile-logo.pug +++ b/src/views/partials/widgets/hubl-communities-profile-logo.pug @@ -1,3 +1,3 @@ -if componentSet.has('communities') +if componentSet.has('communities') && getRoute('communities') solid-widget(name='hubl-communities-profile-logo') - template ${value != "" ? `
` : `
`} \ No newline at end of file + template ${value != "" ? `
` : ""} \ No newline at end of file diff --git a/src/views/partials/widgets/hubl-communities-profile-members-counter.pug b/src/views/partials/widgets/hubl-communities-profile-members-counter.pug index 0ce0538..4e78753 100644 --- a/src/views/partials/widgets/hubl-communities-profile-members-counter.pug +++ b/src/views/partials/widgets/hubl-communities-profile-members-counter.pug @@ -1,4 +1,4 @@ -if componentSet.has('communities') +if componentSet.has('communities') && getRoute('communities') solid-widget(name='hubl-communities-profile-members-counter') template p diff --git a/src/views/partials/widgets/hubl-communities-profile-phone.pug b/src/views/partials/widgets/hubl-communities-profile-phone.pug index 183befb..3b6f0ea 100644 --- a/src/views/partials/widgets/hubl-communities-profile-phone.pug +++ b/src/views/partials/widgets/hubl-communities-profile-phone.pug @@ -1,3 +1,3 @@ -if componentSet.has('communities') +if componentSet.has('communities') && getRoute('communities') solid-widget(name='hubl-communities-profile-phone') - template ${value != "" ? `\$value` : ``} + template ${value != "" ? `${value}` : ""} diff --git a/src/views/partials/widgets/hubl-communities-profile-picture.pug b/src/views/partials/widgets/hubl-communities-profile-picture.pug index 37caa95..a120663 100644 --- a/src/views/partials/widgets/hubl-communities-profile-picture.pug +++ b/src/views/partials/widgets/hubl-communities-profile-picture.pug @@ -1,3 +1,3 @@ -if componentSet.has('communities') +if componentSet.has('communities') && getRoute('communities') solid-widget(name='hubl-communities-profile-picture') template ${value != "" ? `
` : `
`} diff --git a/src/views/partials/widgets/hubl-communities-profile-twitter.pug b/src/views/partials/widgets/hubl-communities-profile-twitter.pug index 364c07e..5861742 100644 --- a/src/views/partials/widgets/hubl-communities-profile-twitter.pug +++ b/src/views/partials/widgets/hubl-communities-profile-twitter.pug @@ -1,3 +1,3 @@ -if componentSet.has('communities') +if componentSet.has('communities') && getRoute('communities') solid-widget(name='hubl-communities-profile-twitter') - template ${value != "" ? `` : ``} + template ${value != "" ? `` : ""} diff --git a/src/views/partials/widgets/hubl-communities-profile-website.pug b/src/views/partials/widgets/hubl-communities-profile-website.pug index 41eaf9c..ea5c8b2 100644 --- a/src/views/partials/widgets/hubl-communities-profile-website.pug +++ b/src/views/partials/widgets/hubl-communities-profile-website.pug @@ -1,3 +1,3 @@ -if componentSet.has('communities') +if componentSet.has('communities') && getRoute('communities') solid-widget(name='hubl-communities-profile-website') - template ${value != "" ? `$value` : ``} + template ${value != "" ? `${value}` : ""} From a9c10fb196f0e952febe65c93e635473473f6a18 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Fri, 9 Apr 2021 13:32:58 +0200 Subject: [PATCH 15/47] fix: addresses on community --- src/views/partials/communities/page-community-profile.pug | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/views/partials/communities/page-community-profile.pug b/src/views/partials/communities/page-community-profile.pug index af313fa..7f55ac8 100644 --- a/src/views/partials/communities/page-community-profile.pug +++ b/src/views/partials/communities/page-community-profile.pug @@ -11,7 +11,7 @@ div.community-profile.padding-medium.sm-padding-none div solid-display.segment.block.whitespace-normal( - fields="segment0(segment1(community-picture(logo)), segment2(segment3(segment4(name),segment5(profile.tweeter, profile.facebook, profile.linkedin, profile.instagram)), segment6(profile.shortDescription), segment7(profile.tweeter, profile.facebook, profile.linkedin, profile.instagram), segment8(addresses.adress_line1, addresses.address_line2, members, profile.website, profile.email, profile.phone), segment9(profile.description), segment10(edit))), segment11(profile.picture1, profile.picture2, profile.picture3)" + fields="segment0(segment1(community-picture(logo)), segment2(segment3(segment4(name),segment5(profile.tweeter, profile.facebook, profile.linkedin, profile.instagram)), segment6(profile.shortDescription), segment7(profile.tweeter, profile.facebook, profile.linkedin, profile.instagram), segment8(addresses, members, profile.website, profile.email, profile.phone), segment9(profile.description), segment10(edit))), segment11(profile.picture1, profile.picture2, profile.picture3)" loader-id=`loader-${component.route}-profile` class-segment0="segment full padding-xlarge sm-padding-none whitespace-normal" @@ -57,6 +57,8 @@ div.community-profile.padding-medium.sm-padding-none widget-profile.picture3="hubl-communities-profile-picture" action-edit="edit" widget-edit="hubl-communities-edit-button" + multiple-addresses + multiple-addresses-fields="adress_line1, address_line2" bind-resources ) From 5dca85b9432dc848548a67cc07a293c549435dfd Mon Sep 17 00:00:00 2001 From: Fabien Quatravaux Date: Thu, 18 Mar 2021 09:29:03 +0100 Subject: [PATCH 16/47] bugfix #1031: Use the correct icons for circle right menu --- src/views/page-circle.pug | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/views/page-circle.pug b/src/views/page-circle.pug index 1fc3060..6ebcfb1 100644 --- a/src/views/page-circle.pug +++ b/src/views/page-circle.pug @@ -78,15 +78,15 @@ nav.jsRightMenu.text-disable-selection.sidebar.whitespace-normal(role='navigatio if extensions.has('resources') solid-route.segment.full(name=`${component.route}-resources` use-id) li.segment.full.padding-medium - span.icon.ci-networking.icon-xlarge.margin-right-medium + span.icon.ci-file.icon-xlarge.margin-right-medium a(data-trans='circle.menuRight.resources') if extensions.has('events') solid-route.segment.full(name=`${component.route}-events` use-id) li.segment.full.padding-medium - span.icon.ci-networking.icon-xlarge.margin-right-medium + span.icon.ci-appointment.icon-xlarge.margin-right-medium a(data-trans='circle.menuRight.events') if extensions.has('polls') solid-route.segment.full(name=`${component.route}-polls` use-id) li.segment.full.padding-medium - span.icon.ci-networking.icon-xlarge.margin-right-medium + span.icon.ci-list.icon-xlarge.margin-right-medium a(data-trans='circle.menuRight.polls') From 8e8af581e29c1ca8c8673b9764d3d7eaf2c5aabd Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Fri, 9 Apr 2021 14:39:09 +0200 Subject: [PATCH 17/47] fix: solid-ac-checker --- .../communities/page-community-edit.pug | 178 ++++++++---------- .../widgets/hubl-communities-edit-button.pug | 3 +- .../widgets/hubl-communities-edit-email.pug | 2 +- 3 files changed, 81 insertions(+), 102 deletions(-) diff --git a/src/views/partials/communities/page-community-edit.pug b/src/views/partials/communities/page-community-edit.pug index fcc9aac..81dfa52 100644 --- a/src/views/partials/communities/page-community-edit.pug +++ b/src/views/partials/communities/page-community-edit.pug @@ -11,128 +11,106 @@ div.bg-color-white div.segment.full.padding-large.whitespace-normal - //- solid-ac-checker(permission="acl:Write", bind-resources) - div.loader.loader-top(id=`loader-${component.route}-edit`) - div - div - div - div + solid-ac-checker(permission="acl:Write", bind-resources) + div.loader.loader-top(id=`loader-${component.route}-edit`) + div + div + div + div - solid-form.form( - bind-resources - loader-id=`loader-${component.route}-edit` + solid-form.form( + bind-resources + loader-id=`loader-${component.route}-edit` - fields="profile.shortDescription, profile.description, segment(logo), profile.website, profile.email, profile.phone, profile.tweeter, profile.facebook, profile.linkedin, segment1(profile.instagram)" + fields="profile.shortDescription, profile.description, segment(logo), profile.website, profile.email, profile.phone, profile.tweeter, profile.facebook, profile.linkedin, segment1(profile.instagram)" - label-profile.shortDescription="" - label-profile.description="" - label-logo="" - label-profile.website="" - label-profile.email="" - label-profile.phone="" - label-profile.tweeter="" - label-profile.facebook="" - label-profile.linkedin="" - label-profile.instagram="" + label-profile.shortDescription="" + label-profile.description="" + label-logo="" + label-profile.website="" + label-profile.email="" + label-profile.phone="" + label-profile.tweeter="" + label-profile.facebook="" + label-profile.linkedin="" + label-profile.instagram="" - class-profile.shortDescription="segment margin-bottom-medium full sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" - class-profile.description="segment margin-bottom-medium full text-small text-semibold text-uppercase text-color-heading" + class-profile.shortDescription="segment margin-bottom-medium full sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-profile.description="segment margin-bottom-medium full text-small text-semibold text-uppercase text-color-heading" - class-segment="segment full" - class-logo="segment margin-bottom-medium full sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" - class-profile.website="segment margin-bottom-medium third sm-full padding-right-small sm-padding-none" - class-profile.email="segment margin-bottom-medium third sm-full padding-right-small padding-left-small sm-padding-none" - class-profile.phone="segment margin-bottom-medium third sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-segment="segment full" + class-logo="segment margin-bottom-medium full sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-profile.website="segment margin-bottom-medium third sm-full padding-right-small sm-padding-none" + class-profile.email="segment margin-bottom-medium third sm-full padding-right-small padding-left-small sm-padding-none" + class-profile.phone="segment margin-bottom-medium third sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" - class-profile.tweeter="segment margin-bottom-medium third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" - class-profile.facebook="segment margin-bottom-medium third sm-full padding-right-small padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" - class-profile.linkedin="segment margin-bottom-medium third sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" - class-segment1="segment full" - class-profile.instagram="segment margin-bottom-medium third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-profile.tweeter="segment margin-bottom-medium third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-profile.facebook="segment margin-bottom-medium third sm-full padding-right-small padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-profile.linkedin="segment margin-bottom-medium third sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-segment1="segment full" + class-profile.instagram="segment margin-bottom-medium third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" - widget-profile.description="solid-form-richtext-label" - widget-profile.email="hubl-communities-edit-email" - widget-profile.website="hubl-communities-edit-website" - upload-url-logo=component.endpoints.uploads - widget-logo="solid-form-image-label" + widget-profile.description="solid-form-richtext-label" + widget-profile.email="hubl-communities-edit-email" + widget-profile.website="hubl-communities-edit-website" + upload-url-logo=component.endpoints.uploads + widget-logo="solid-form-image-label" - submit-button="" - submit-widget="button" + submit-button="" + submit-widget="button" - data-trans="label-logo=communities.edit.labelLogo;label-profile.shortDescription=communities.edit.labelShortDescription;label-profile.description=communities.edit.labelDescription;label-profile.phone=communities.edit.labelPhone;label-profile.tweeter=communities.edit.labelTwitter;label-profile.facebook=communities.edit.labelFacebook;label-profile.linkedin=communities.edit.labelLinkedin;label-profile.instagram=communities.edit.labelInstagram;submit-button=communities.edit.buttonSubmit" - ) + data-trans="label-logo=communities.edit.labelLogo;label-profile.shortDescription=communities.edit.labelShortDescription;label-profile.description=communities.edit.labelDescription;label-profile.phone=communities.edit.labelPhone;label-profile.tweeter=communities.edit.labelTwitter;label-profile.facebook=communities.edit.labelFacebook;label-profile.linkedin=communities.edit.labelLinkedin;label-profile.instagram=communities.edit.labelInstagram;submit-button=communities.edit.buttonSubmit" + ) - h3.segment.full.padding-bottom-small.border-bottom.border-color-grey.text-color-heading.text-bold.text-letter-spacing-large(data-trans="communities.edit.subTitle") + h3.segment.full.padding-bottom-small.border-bottom.border-color-grey.text-color-heading.text-bold.text-letter-spacing-large(data-trans="communities.edit.subTitle") - solid-form.form( - bind-resources + solid-form.form( + bind-resources - fields="profile.picture1, profile.picture2, profile.picture3" + fields="profile.picture1, profile.picture2, profile.picture3" - upload-url-profile.picture1=component.endpoints.uploads - upload-url-profile.picture2=component.endpoints.uploads - upload-url-profile.picture3=component.endpoints.uploads + upload-url-profile.picture1=component.endpoints.uploads + upload-url-profile.picture2=component.endpoints.uploads + upload-url-profile.picture3=component.endpoints.uploads - widget-profile.picture1="solid-form-image-label" - widget-profile.picture2="solid-form-image-label" - widget-profile.picture3="solid-form-image-label" + widget-profile.picture1="solid-form-image-label" + widget-profile.picture2="solid-form-image-label" + widget-profile.picture3="solid-form-image-label" - label-profile.picture1="" - label-profile.picture2="" - label-profile.picture3="" + label-profile.picture1="" + label-profile.picture2="" + label-profile.picture3="" - class-profile.picture1="segment margin-bottom-medium third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" - class-profile.picture2="segment margin-bottom-medium third sm-full padding-right-small padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" - class-profile.picture3="segment margin-bottom-medium third sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-profile.picture1="segment margin-bottom-medium third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-profile.picture2="segment margin-bottom-medium third sm-full padding-right-small padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-profile.picture3="segment margin-bottom-medium third sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" - submit-button="" - submit-widget="button" + submit-button="" + submit-widget="button" - data-trans="label-profile.picture1=communities.edit.labelPicture1;label-profile.picture2=communities.edit.labelPicture2;label-profile.picture3=communities.edit.labelPicture3;submit-button=communities.edit.buttonSubmit" - ) + data-trans="label-profile.picture1=communities.edit.labelPicture1;label-profile.picture2=communities.edit.labelPicture2;label-profile.picture3=communities.edit.labelPicture3;submit-button=communities.edit.buttonSubmit" + ) - h3.segment.full.padding-bottom-small.border-bottom.border-color-grey.text-color-heading.text-bold.text-letter-spacing-large(data-trans="communities.edit.subTitle1") + h3.segment.full.padding-bottom-small.border-bottom.border-color-grey.text-color-heading.text-bold.text-letter-spacing-large(data-trans="communities.edit.subTitle1") - solid-form.form( - bind-resources - nested-field="addresses" - fields="address_line1, address_line2" + solid-form.form( + bind-resources + nested-field="addresses" + fields="address_line1, address_line2" - label-address_line1="" - label-address_line2="" + label-address_line1="" + label-address_line2="" - widget-community="solid-form-hidden" - widget-address_line1="solid-form-label-text" - widget-address_line2="solid-form-label-text" + widget-community="solid-form-hidden" + widget-address_line1="solid-form-label-text" + widget-address_line2="solid-form-label-text" + value-address_line1="store://container.@id" - submit-button="" - submit-widget="button" + submit-button="" + submit-widget="button" - data-trans="label-addresses.address_line1=communities.edit.labelAddressLine1;label-addresses.address_line2=communities.edit.labelAddressLine2" - ) + data-trans="label-addresses.address_line1=communities.edit.labelAddressLine1;label-addresses.address_line2=communities.edit.labelAddressLine2" + ) - solid-table.form( - selectable - header - bind-resources - nested-fields='addresses' - fields='address_line1, address_line2' - - editable-address_line1 - editable-address_line2 - - label-address_line1='' - label-address_line2='' - - widget-address_line1='solid-form-label-text' - widget-address_line2='solid-form-label-text' - - submit-button='' - submit-widget="button" - next=`${component.route}-profile` - - data-trans='label-addresses.address_line1=communities.edit.labelAddressLine1;label-addresses.address_line2=communities.edit.labelAddressLine2' - ) - - //- solid-ac-checker(no-permission="acl:Write", bind-resources) - //- span(data-trans="communities.edit.noPermission") + solid-ac-checker(no-permission="acl:Write", bind-resources) + span(data-trans="communities.edit.noPermission") diff --git a/src/views/partials/widgets/hubl-communities-edit-button.pug b/src/views/partials/widgets/hubl-communities-edit-button.pug index f05dc5a..f82b3a9 100644 --- a/src/views/partials/widgets/hubl-communities-edit-button.pug +++ b/src/views/partials/widgets/hubl-communities-edit-button.pug @@ -2,8 +2,9 @@ if componentSet.has('communities') && getRoute('communities') solid-widget(name='hubl-communities-edit-button') template solid-ac-checker( - no-permission='acl:Control' + permission='acl:Write' data-src="${src}" + nested-field="profile" ) solid-link( class="segment sm-full button text-xsmall text-bold text-uppercase text-center reversed color-secondary bordered icon icon-pencil" diff --git a/src/views/partials/widgets/hubl-communities-edit-email.pug b/src/views/partials/widgets/hubl-communities-edit-email.pug index bb778c4..8ef4268 100644 --- a/src/views/partials/widgets/hubl-communities-edit-email.pug +++ b/src/views/partials/widgets/hubl-communities-edit-email.pug @@ -2,4 +2,4 @@ if componentSet.has('communities') && getRoute('communities') solid-widget(name='hubl-communities-edit-email') template label(class="text-small text-semibold text-uppercase text-color-heading" data-trans="communities.edit.labelEmail") - input(type="email" label="communities.edit.labelEmail" name="profile.email" required value="\${value}" data-holder) + input(type="email" label="communities.edit.labelEmail" name="profile.email" value="\${value}" data-holder) From 94bb27f102c4a66bd5f0976228563791c81c3f40 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Fri, 9 Apr 2021 14:40:17 +0200 Subject: [PATCH 18/47] fix: remove store:// on address --- src/views/partials/communities/page-community-edit.pug | 1 - 1 file changed, 1 deletion(-) diff --git a/src/views/partials/communities/page-community-edit.pug b/src/views/partials/communities/page-community-edit.pug index 81dfa52..04f9846 100644 --- a/src/views/partials/communities/page-community-edit.pug +++ b/src/views/partials/communities/page-community-edit.pug @@ -104,7 +104,6 @@ div.bg-color-white widget-community="solid-form-hidden" widget-address_line1="solid-form-label-text" widget-address_line2="solid-form-label-text" - value-address_line1="store://container.@id" submit-button="" submit-widget="button" From ef2d17f1dff6bc1f7a241c9e326824d2a0416e21 Mon Sep 17 00:00:00 2001 From: gaelle morin Date: Fri, 9 Apr 2021 15:13:09 +0200 Subject: [PATCH 19/47] patch: spanish translation added --- src/locales/es.json | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/src/locales/es.json b/src/locales/es.json index 514088f..c40eea5 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -130,7 +130,7 @@ } }, "communities": { - "back": "", + "back": "Volver", "title": "Administración", "menuMobile": "MENÚ", "linkInvite": "Invita a un/a nuevx usuarix", @@ -151,36 +151,36 @@ "formCreateAccount": "Crear una cuenta" }, "list": { - "title": "", - "searchBy": "", - "searchButton": "", - "members": "" + "title": "Comunidades", + "searchBy": "Buscar por nombre", + "searchButton": "Buscar", + "members": "miembros" }, "profile": { - "back": "", - "members": "", - "edit": "" + "back": "Volver", + "members": "miembros", + "edit": "Editar la página" }, "edit": { - "labelShortDescription": "", - "labelDescription": "", - "labelPhone": "", - "labelEmail": "", - "labelWebsite": "", + "labelShortDescription": "Subtítulo del comunidad", + "labelDescription": "Descripción de la comunidad", + "labelPhone": "Teléfono", + "labelEmail": "Email", + "labelWebsite": "Página web", "labelTwitter": "Twitter", "labelFacebook": "Facebook", "labelLinkedin": "Linkedin", "labelInstagram": "Instagram", - "labelPicture1": "", - "labelPicture2": "", - "labelPicture3": "", - "labelAddressLine1": "", - "labelAddressLine2": "", - "labelLogo": "", - "subTitle": "", - "subTitle1": "", + "labelPicture1": "Foto 1", + "labelPicture2": "Foto 2", + "labelPicture3": "Foto 3", + "labelAddressLine1": "Línea de dirección 1", + "labelAddressLine2": "Línea de dirección 2", + "labelLogo": "Logotipo comunitario", + "subTitle": "Foto", + "subTitle1": "Dirección", "buttonSubmit": "Guardar", - "noPermission": "" + "noPermission": "No tiene permiso" } }, "project": { From 54c60f7a593c95b2d2303a1d48699c646135ceeb Mon Sep 17 00:00:00 2001 From: gaelle morin Date: Fri, 9 Apr 2021 18:52:35 +0200 Subject: [PATCH 20/47] patch: comminities-map - styles added --- src/styles/admin-circles/_index.scss | 35 +++++++++++++++++-- .../communities/page-community-directory.pug | 4 +-- .../communities/page-community-map.pug | 18 +++++++--- src/views/partials/widgets.pug | 1 + .../hubl-communities-map-fix-url-name.pug | 19 ++++++++++ 5 files changed, 69 insertions(+), 8 deletions(-) create mode 100644 src/views/partials/widgets/hubl-communities-map-fix-url-name.pug diff --git a/src/styles/admin-circles/_index.scss b/src/styles/admin-circles/_index.scss index 3644506..f152015 100644 --- a/src/styles/admin-circles/_index.scss +++ b/src/styles/admin-circles/_index.scss @@ -187,10 +187,31 @@ } .communities-profile-map .leaflet-pane.leaflet-popup-pane { - /*display: none;*/ + display: none; + } + + .communities-map { .leaflet-popup-content-wrapper { - white-space: normal; + border-radius: 5px; + + .leaflet-popup-content { + width: 340px !important; + margin: 0; + + .description { + height: 32px; + } + + .title:hover { + cursor: pointer; + text-decoration: underline; + } + } + } + + .leaflet-popup-close-button { + display: none; } } @@ -239,6 +260,16 @@ top: 70px; z-index: 1000; width: 97%; + + button[type='submit'] { + background: var(--color-secondary) !important; + color: white !important; + + &:hover { + background: white !important; + color: var(--color-secondary) !important; + } + } } .communities-map { diff --git a/src/views/partials/communities/page-community-directory.pug b/src/views/partials/communities/page-community-directory.pug index bc323e6..79549f0 100644 --- a/src/views/partials/communities/page-community-directory.pug +++ b/src/views/partials/communities/page-community-directory.pug @@ -2,7 +2,7 @@ h2.margin-top-xxsmall.margin-left-xsmall.margin-bottom-medium.sm-margin-none.sm-margin-right-xsmall.sm-margin-bottom-small.sm-margin-left-xsmall.text-xlarge.text-bold.text-color-heading.text-uppercase(data-trans='communities.list.title') div.padding-top-xxsmall.margin-left-xsmall.margin-right-xsmall.sm-padding-none.sm-margin-none.sm-margin-right-xsmall.sm-margin-left-xsmall - div.segment.half.sm-full + div.segment.three-quarter.sm-full solid-form-search.form.search-form.search-button( id=`communities-filter` fields='name' @@ -13,7 +13,7 @@ submit-widget="button" data-trans='placeholder-name=communities.list.searchBy;submit-button=communities.list.searchButton' ) - div.segment.half.sm-full.text-right + div.segment.quarter.sm-full.text-right solid-link.segment.children-link-rounded.children-icon-map.children-link-reversed.color-secondary.bordered(next=`${component.route}-map`) span diff --git a/src/views/partials/communities/page-community-map.pug b/src/views/partials/communities/page-community-map.pug index da0ccb0..36d9f62 100644 --- a/src/views/partials/communities/page-community-map.pug +++ b/src/views/partials/communities/page-community-map.pug @@ -2,7 +2,7 @@ h2.segment.sm-hidden.margin-top-xxsmall.margin-left-xsmall.margin-bottom-medium.sm-margin-none.sm-margin-right-xsmall.sm-margin-bottom-large.sm-margin-left-xsmall.text-xlarge.text-bold.text-color-heading.text-uppercase(data-trans='communities.list.title') div.mobile-map-search-field.padding-top-xxsmall.margin-left-xsmall.margin-right-xsmall.sm-padding-none.sm-margin-none.sm-margin-right-xsmall.sm-margin-left-xsmall - div.segment.half.sm-full + div.segment.three-quarter.sm-full solid-form-search.form.search-form.search-button( id=`communities-filter-map` fields='filter' @@ -15,15 +15,25 @@ submit-widget="button" data-trans='placeholder-name=communities.list.searchBy;submit-button=communities.list.searchButton' ) - div.segment.half.sm-full.text-right + div.segment.quarter.sm-full.text-right solid-link.segment.children-link-rounded.children-icon-grid.children-link-reversed.color-secondary.bordered(next=`${component.route}-directory`) span solid-map.communities-map.margin-right-xsmall.margin-left-xsmall.sm-margin-none.shadow( data-src=`${component.endpoints.addresses}` loader-id=`loader-${component.route}-map` - fields="position(community.name, community.profile.shortDescription, address_line1, address_line2)" - class-position="segment" + fields="position(segment1(community.logo), segment2(community.name, community.profile.shortDescription, community.members))" + + class-segment1="segment block margin-medium" + class-segment2="segment full padding-top-xlarge padding-right-large padding-left-large sm-padding-medium border-top border-color-grey text-center whitespace-normal" + class-community.name="title segment block margin-bottom-xsmall text-color-heading text-xlarge text-bold" + class-community.profile.shortDescription="segment block description text-medium whitespace-normal two-lines-ellipsis" + + action-circle.name=`${getRoute(`community`, true)}-profile` + widget-circle.name='hubl-communities-map-fix-url-name' + widget-community.logo='hubl-admin-community-logo' + widget-community.members="hubl-communities-profile-members-counter" + clustering="" filtered-by=`communities-filter-map` style="display:block;height:698px;" diff --git a/src/views/partials/widgets.pug b/src/views/partials/widgets.pug index e1d488b..1205987 100644 --- a/src/views/partials/widgets.pug +++ b/src/views/partials/widgets.pug @@ -25,6 +25,7 @@ include widgets/hubl-communities-edit-button.pug include widgets/hubl-communities-edit-email.pug include widgets/hubl-communities-edit-website.pug include widgets/hubl-communities-logo.pug +include widgets/hubl-communities-map-fix-url-name.pug include widgets/hubl-communities-profile-address.pug include widgets/hubl-communities-profile-email.pug include widgets/hubl-communities-profile-facebook.pug diff --git a/src/views/partials/widgets/hubl-communities-map-fix-url-name.pug b/src/views/partials/widgets/hubl-communities-map-fix-url-name.pug new file mode 100644 index 0000000..d5a41ab --- /dev/null +++ b/src/views/partials/widgets/hubl-communities-map-fix-url-name.pug @@ -0,0 +1,19 @@ +if componentSet.has('communities') + solid-widget(name='hubl-communities-name') + template + solid-link( + data-src="${src || value}" + next=`${getRoute(`communities`, true)}-profile` + ) + solid-display( + data-src="${src || value}" + fields="name" + ) + + solid-widget(name='hubl-communities-map-fix-url-name') + template + solid-display( + data-src="${src}" + fields="community" + widget-community='hubl-communities-name' + ) \ No newline at end of file From ecf8ad81d2592eceb8e1f163a7f7bac0fda90876 Mon Sep 17 00:00:00 2001 From: Sylvain Lehmann Date: Fri, 9 Apr 2021 17:02:13 +0000 Subject: [PATCH 21/47] update : migrate solid polls to V2 --- README.md | 5 ++++- src/dependencies.pug | 11 +++++------ src/index.pug | 8 ++++---- src/views/page-polls.pug | 16 ++++++++-------- 4 files changed, 21 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 5ab7d75..7e690ce 100644 --- a/README.md +++ b/README.md @@ -478,7 +478,10 @@ On `config.json`: "type": "polls", "endpoints": { "get": "http://server.url/polls/", - "post": "http://server.url/polls/" + "post": "http://server.url/polls/", + "pollRangeTags": "http://server.url/tags/", + "pollRangeCircles": "http://server.url/circles/", + "uploads": "http://server.url/upload/" } } ``` diff --git a/src/dependencies.pug b/src/dependencies.pug index d530a0f..8c4b512 100644 --- a/src/dependencies.pug +++ b/src/dependencies.pug @@ -23,8 +23,8 @@ if componentSet.has("events") //- script(type="module", src="/lib/solid-event/solid-event.js", defer) //- Disabled - Not in core@0.16 -//- if componentSet.has("events") || componentSet.has("polls") || componentSet.has("resources") - script(type="module" src="https://cdn.skypack.dev/@startinblox/component-conversation@0.9" defer) +if componentSet.has("events") || componentSet.has("polls") || componentSet.has("resources") + script(type="module" src="https://cdn.skypack.dev/@startinblox/component-conversation@0.10" defer) if componentSet.has("jobBoard") script(type="module" src="https://cdn.skypack.dev/@startinblox/component-job-board@5.0" defer) @@ -34,10 +34,9 @@ if componentSet.has("notification") script(type="module" src="https://cdn.skypack.dev/@startinblox/component-notifications@0.12" defer) //- script(type="module" src="/lib/sib-notifications/index.js" defer) -//- Disabled - Not in core@0.16 -//- if componentSet.has("polls") -//- script(type="module" src="https://cdn.skypack.dev/@startinblox/component-poll@1.2" defer) -//- //- script(type="module" src="/lib/sib-polls-component/index.js" defer) +if componentSet.has("polls") + script(type="module" src="https://cdn.skypack.dev/@startinblox/component-poll@2.1" defer) + //script(type="module" src="/lib/solid-poll/index.js" defer) if componentSet.has("profileDirectory") script(type="module" src="https://cdn.skypack.dev/@startinblox/component-directory@5.1" defer) diff --git a/src/index.pug b/src/index.pug index 33a02d5..cf814ba 100644 --- a/src/index.pug +++ b/src/index.pug @@ -133,7 +133,7 @@ html(lang="en") include views/page-job-board.pug if component.type == "polls" - .with-sidebar + .scrollbar-content include views/page-polls.pug if component.type == "projects" @@ -178,7 +178,7 @@ html(lang="en") if component.type == "lang" hubl-lang( - hidden + hidden lang=component.parameters.name file=component.parameters.file ) @@ -217,12 +217,12 @@ html(lang="en") div div div - div#something-goes-wrong(hidden) + div#something-goes-wrong(hidden) br span(data-trans="errors.somethingGoesWrong") span   a(data-trans='errors.reload' href='/') - + if client.i18n hubl-fallback-lang( hidden diff --git a/src/views/page-polls.pug b/src/views/page-polls.pug index 6f36cec..1a4ef23 100644 --- a/src/views/page-polls.pug +++ b/src/views/page-polls.pug @@ -1,8 +1,8 @@ -.views-container - solid-poll( - data-src=`${component.endpoints.get}` - range-base-polls=`${component.endpoints.pollRangeBase}` - upload-dir=`${component.endpoints.uploads}` - id-prefix='default' - uniq=component.uniq - ) \ No newline at end of file +solid-poll( + data-src=component.endpoints.get + data-dest=component.endpoints.post + range-tags=component.endpoints.pollRangeTags + range-circles=component.endpoints.pollRangeCircles + upload-dir=component.endpoints.uploads + uniq=component.uniq +) From 542a13f1f5ee6bd7184f4bdfd475397065d3b708 Mon Sep 17 00:00:00 2001 From: gaelle morin Date: Sat, 10 Apr 2021 15:35:14 +0200 Subject: [PATCH 22/47] patch: comminities-profile - additional styles added --- src/images/photos.svg | 1 - src/styles/admin-circles/_index.scss | 61 ++++++------------- .../communities/page-community-profile.pug | 7 ++- src/views/partials/widgets.pug | 1 - .../widgets/hubl-communities-edit-button.pug | 2 +- .../hubl-communities-profile-address.pug | 4 -- .../hubl-communities-profile-email.pug | 2 +- ...bl-communities-profile-members-counter.pug | 2 +- .../hubl-communities-profile-phone.pug | 2 +- .../hubl-communities-profile-picture.pug | 2 +- .../hubl-communities-profile-website.pug | 2 +- 11 files changed, 32 insertions(+), 54 deletions(-) delete mode 100644 src/images/photos.svg delete mode 100644 src/views/partials/widgets/hubl-communities-profile-address.pug diff --git a/src/images/photos.svg b/src/images/photos.svg deleted file mode 100644 index c01bb22..0000000 --- a/src/images/photos.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/styles/admin-circles/_index.scss b/src/styles/admin-circles/_index.scss index f152015..8cb4920 100644 --- a/src/styles/admin-circles/_index.scss +++ b/src/styles/admin-circles/_index.scss @@ -145,43 +145,17 @@ } .communities-profile-picture { - height: 200px; + + >div:not(:empty) { + height: 200px; - div { - display: block; - width: 100%; - height: 100%; - background-position: center; - background-repeat: no-repeat; - background-size: contain; - } - - .picture-empty { - display: flex; - justify-content: center; - align-items: center; - - object { - height: 100px; - width: 100px; - object-fit: cover; - object-position: center; - } - } - - &:nth-child(2)>.picture-empty { - background: #E4E9F1; - - svg { - fill: #D0D4DA; - } - } - - &:nth-child(3)>.picture-empty { - background: #E9F2FF; - - svg { - fill: #D7E2F3; + div:first-child { + display: block; + width: 100%; + height: 100%; + background-position: center; + background-repeat: no-repeat; + background-size: contain; } } } @@ -247,11 +221,9 @@ } .communities-profile-picture { - height: 180px; - - object { - height: 80px; - width: 80px; + + >div:not(:empty) { + height: 180px; } } @@ -278,6 +250,13 @@ .leaflet-top.leaflet-left { display: none; } + + .leaflet-popup-close-button { + display: block; + font-size: 20px; + margin-top: 5px; + margin-right: 5px; + } } } .flex { diff --git a/src/views/partials/communities/page-community-profile.pug b/src/views/partials/communities/page-community-profile.pug index 7f55ac8..e4d5d46 100644 --- a/src/views/partials/communities/page-community-profile.pug +++ b/src/views/partials/communities/page-community-profile.pug @@ -30,11 +30,16 @@ div.community-profile.padding-medium.sm-padding-none class-segment7="segment lg-hidden sm-full" class-segment8="segment two-third sm-full padding-bottom-large padding-bottom-xxsmall sm-text-left" + class-addresses="segment block margin-bottom-xsmall icon mdi-map-marker icon-third icon-large icon-margin-right-xsmall" + class-members="segment block margin-bottom-xsmall" + class-profile.website="segment block" + class-profile.email="segment block" + class-profile.phone="segment block" class-segment9="segment full" class-profile.description="segment full whitespace-normal" - class-segment10="segment full text-right margin-top-xxlarge" + class-segment10="segment full text-right" class-segment11="segment full whitespace-normal flex" class-profile.picture1="communities-profile-picture segment third" diff --git a/src/views/partials/widgets.pug b/src/views/partials/widgets.pug index 1205987..7a47928 100644 --- a/src/views/partials/widgets.pug +++ b/src/views/partials/widgets.pug @@ -26,7 +26,6 @@ include widgets/hubl-communities-edit-email.pug include widgets/hubl-communities-edit-website.pug include widgets/hubl-communities-logo.pug include widgets/hubl-communities-map-fix-url-name.pug -include widgets/hubl-communities-profile-address.pug include widgets/hubl-communities-profile-email.pug include widgets/hubl-communities-profile-facebook.pug include widgets/hubl-communities-profile-instagram.pug diff --git a/src/views/partials/widgets/hubl-communities-edit-button.pug b/src/views/partials/widgets/hubl-communities-edit-button.pug index f82b3a9..5f8b9fa 100644 --- a/src/views/partials/widgets/hubl-communities-edit-button.pug +++ b/src/views/partials/widgets/hubl-communities-edit-button.pug @@ -7,7 +7,7 @@ if componentSet.has('communities') && getRoute('communities') nested-field="profile" ) solid-link( - class="segment sm-full button text-xsmall text-bold text-uppercase text-center reversed color-secondary bordered icon icon-pencil" + class="segment margin-top-xxlarge sm-full button text-xsmall text-bold text-uppercase text-center reversed color-secondary bordered icon icon-pencil" data-trans="communities.profile.edit" data-src="${src}" next=`${getRoute('communities', true)}-edit` diff --git a/src/views/partials/widgets/hubl-communities-profile-address.pug b/src/views/partials/widgets/hubl-communities-profile-address.pug deleted file mode 100644 index fc237e3..0000000 --- a/src/views/partials/widgets/hubl-communities-profile-address.pug +++ /dev/null @@ -1,4 +0,0 @@ -if componentSet.has('communities') && getRoute('communities') - solid-widget(name='hubl-communities-profile-address') - template - | ${await value.adress_line1 != "" ? `\${await value.adress_line1}
\${await value.adress_line2 || ""}
` : ""} diff --git a/src/views/partials/widgets/hubl-communities-profile-email.pug b/src/views/partials/widgets/hubl-communities-profile-email.pug index c8cb2c6..f5b762a 100644 --- a/src/views/partials/widgets/hubl-communities-profile-email.pug +++ b/src/views/partials/widgets/hubl-communities-profile-email.pug @@ -1,3 +1,3 @@ if componentSet.has('communities') && getRoute('communities') solid-widget(name='hubl-communities-profile-email') - template ${value != "" ? `${value}` : ""} + template ${value != "" ? `${value}` : ""} diff --git a/src/views/partials/widgets/hubl-communities-profile-members-counter.pug b/src/views/partials/widgets/hubl-communities-profile-members-counter.pug index 4e78753..f910aab 100644 --- a/src/views/partials/widgets/hubl-communities-profile-members-counter.pug +++ b/src/views/partials/widgets/hubl-communities-profile-members-counter.pug @@ -1,7 +1,7 @@ if componentSet.has('communities') && getRoute('communities') solid-widget(name='hubl-communities-profile-members-counter') template - p + span span.icon.icon-people.icon-third.icon-large.margin-right-xsmall solid-display( data-src="${src || value}" diff --git a/src/views/partials/widgets/hubl-communities-profile-phone.pug b/src/views/partials/widgets/hubl-communities-profile-phone.pug index 3b6f0ea..67b5ded 100644 --- a/src/views/partials/widgets/hubl-communities-profile-phone.pug +++ b/src/views/partials/widgets/hubl-communities-profile-phone.pug @@ -1,3 +1,3 @@ if componentSet.has('communities') && getRoute('communities') solid-widget(name='hubl-communities-profile-phone') - template ${value != "" ? `${value}` : ""} + template ${value != "" ? `${value}` : ""} diff --git a/src/views/partials/widgets/hubl-communities-profile-picture.pug b/src/views/partials/widgets/hubl-communities-profile-picture.pug index a120663..c470f50 100644 --- a/src/views/partials/widgets/hubl-communities-profile-picture.pug +++ b/src/views/partials/widgets/hubl-communities-profile-picture.pug @@ -1,3 +1,3 @@ if componentSet.has('communities') && getRoute('communities') solid-widget(name='hubl-communities-profile-picture') - template ${value != "" ? `
` : `
`} + template ${value != "" ? `
` : `
`} diff --git a/src/views/partials/widgets/hubl-communities-profile-website.pug b/src/views/partials/widgets/hubl-communities-profile-website.pug index ea5c8b2..4b481d1 100644 --- a/src/views/partials/widgets/hubl-communities-profile-website.pug +++ b/src/views/partials/widgets/hubl-communities-profile-website.pug @@ -1,3 +1,3 @@ if componentSet.has('communities') && getRoute('communities') solid-widget(name='hubl-communities-profile-website') - template ${value != "" ? `${value}` : ""} + template ${value != "" ? `${value}` : ""} From 65a523578c2d64fad14420c13e0c2bd2e21d29dd Mon Sep 17 00:00:00 2001 From: gaelle morin Date: Sat, 10 Apr 2021 18:21:55 +0200 Subject: [PATCH 23/47] patch: comminity-edit : styles on pictures and logo + community-profile : sm-full on pictures --- src/styles/admin-circles/_index.scss | 37 +++++++++++++++++++ .../communities/page-community-edit.pug | 10 ++--- .../communities/page-community-profile.pug | 6 +-- 3 files changed, 45 insertions(+), 8 deletions(-) diff --git a/src/styles/admin-circles/_index.scss b/src/styles/admin-circles/_index.scss index 8cb4920..186ff5b 100644 --- a/src/styles/admin-circles/_index.scss +++ b/src/styles/admin-circles/_index.scss @@ -189,6 +189,33 @@ } } + .edit-img { + + input[type="file"] { + display: block; + margin-top: 10px; + } + + img { + display: block; + margin-top: 15px; + } + + &.edit-logo { + + img{ + width: 280px; + } + } + + &.edit-picture { + + img { + width: 100%; + } + } + } + @media (max-width: 768px) { .tabs { @@ -258,7 +285,17 @@ margin-right: 5px; } } + .edit-img { + + &.edit-logo { + + img { + width: 100%; + } + } + } } + .flex { display: flex; } diff --git a/src/views/partials/communities/page-community-edit.pug b/src/views/partials/communities/page-community-edit.pug index 04f9846..8aa9e59 100644 --- a/src/views/partials/communities/page-community-edit.pug +++ b/src/views/partials/communities/page-community-edit.pug @@ -36,10 +36,10 @@ div.bg-color-white label-profile.instagram="" class-profile.shortDescription="segment margin-bottom-medium full sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" - class-profile.description="segment margin-bottom-medium full text-small text-semibold text-uppercase text-color-heading" + class-profile.description="segment margin-bottom-medium full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" class-segment="segment full" - class-logo="segment margin-bottom-medium full sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-logo="edit-img edit-logo segment margin-bottom-medium full sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" class-profile.website="segment margin-bottom-medium third sm-full padding-right-small sm-padding-none" class-profile.email="segment margin-bottom-medium third sm-full padding-right-small padding-left-small sm-padding-none" class-profile.phone="segment margin-bottom-medium third sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" @@ -81,9 +81,9 @@ div.bg-color-white label-profile.picture2="" label-profile.picture3="" - class-profile.picture1="segment margin-bottom-medium third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" - class-profile.picture2="segment margin-bottom-medium third sm-full padding-right-small padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" - class-profile.picture3="segment margin-bottom-medium third sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-profile.picture1="edit-img edit-picture segment margin-bottom-medium third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-profile.picture2="edit-img edit-picture segment margin-bottom-medium third sm-full padding-right-small padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-profile.picture3="edit-img edit-picture segment margin-bottom-medium third sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" submit-button="" submit-widget="button" diff --git a/src/views/partials/communities/page-community-profile.pug b/src/views/partials/communities/page-community-profile.pug index e4d5d46..6944bb7 100644 --- a/src/views/partials/communities/page-community-profile.pug +++ b/src/views/partials/communities/page-community-profile.pug @@ -42,9 +42,9 @@ div.community-profile.padding-medium.sm-padding-none class-segment10="segment full text-right" class-segment11="segment full whitespace-normal flex" - class-profile.picture1="communities-profile-picture segment third" - class-profile.picture2="communities-profile-picture segment third" - class-profile.picture3="communities-profile-picture segment third" + class-profile.picture1="communities-profile-picture segment third sm-full" + class-profile.picture2="communities-profile-picture segment third sm-full" + class-profile.picture3="communities-profile-picture segment third sm-full" widget-logo="hubl-communities-profile-logo" widget-profile.description="solid-display-value-markdown" From 9371f5d46fb9119df895e881493d02b36044e272 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Tue, 13 Apr 2021 12:11:49 +0200 Subject: [PATCH 24/47] fix: solid-event#36 --- README.md | 6 ++++-- src/dependencies.pug | 8 +++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7e690ce..0a13f8f 100644 --- a/README.md +++ b/README.md @@ -267,7 +267,8 @@ Eg.: "get": "http://server.url/events/", "post": "http://server.url/events/", "typeevents": "http://server.url/typeevents/", - "postTypeevents": "http://server.url/typeevents/" + "postTypeevents": "http://server.url/typeevents/", + "uploads": "http://server.url/upload/" } } ] @@ -335,7 +336,8 @@ Module declaration, on `config.json`: "get": "http://server.url/events/", "post": "http://server.url/events/", "typeevents": "http://server.url/typeevents/", - "postTypeevents": "http://server.url/typeevents/" + "postTypeevents": "http://server.url/typeevents/", + "uploads": "http://server.url/upload/" } } ``` diff --git a/src/dependencies.pug b/src/dependencies.pug index 8c4b512..99b97a2 100644 --- a/src/dependencies.pug +++ b/src/dependencies.pug @@ -4,7 +4,13 @@ script(type="module" src="https://cdn.skypack.dev/@startinblox/core@0.16" defer) script(type="module" src="https://cdn.skypack.dev/@startinblox/router@0.11" defer) //- script(type="module" src="/lib/sib-router/src/index.js" defer) -- const componentSet = new Set(components.map(c=>c.type)); +- + const componentSet = new Set(components.map(c=>c.type)); + components.map(c => { + if(c.extensions) { + c.extensions.forEach(e => componentSet.add(e.type)); + } + }); if componentSet.has("autoLogin") || componentSet.has("registering") script(type="module" src="https://cdn.skypack.dev/@startinblox/oidc@0.14" defer) From 8b6ae44abd9a64766d44f0aadf962cd8b437e0ce Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Tue, 13 Apr 2021 13:31:07 +0200 Subject: [PATCH 25/47] fix: community directory --- README.md | 23 +++++++++++++++++++ .../communities/page-community-edit.pug | 2 +- .../communities/page-community-map.pug | 8 +++---- .../communities/page-community-profile.pug | 2 +- src/views/partials/menu-left.pug | 2 +- .../hubl-communities-map-fix-url-name.pug | 8 ++----- 6 files changed, 32 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 5d2b182..1b59afc 100644 --- a/README.md +++ b/README.md @@ -650,6 +650,29 @@ Some module don't need any route to be active, set `route` to `false` so. Components can get the route of a module with `window.hubl.getRoute('componentName')`. +#### Change the default route + +By default, Hubl will take a Dashboard as a default route. + +You can enforce a component to be the default one by adding `defaultRoute` to its parameters. + +Eg.: + +```json + { + "type": "profileDirectory", + "endpoints": { + "get": "http://server.url/users/", + "skills": "http://server.url/skills/", + "uploads": "http://server.url/upload/" + }, + "route": "directory", + "defaultRoute": true + } +``` + +If there is more than one component with this parameter, it'll be ignored. + ## Troubleshooting ### Circles or Projects are missing the @user list diff --git a/src/views/partials/communities/page-community-edit.pug b/src/views/partials/communities/page-community-edit.pug index 8aa9e59..01337ed 100644 --- a/src/views/partials/communities/page-community-edit.pug +++ b/src/views/partials/communities/page-community-edit.pug @@ -108,7 +108,7 @@ div.bg-color-white submit-button="" submit-widget="button" - data-trans="label-addresses.address_line1=communities.edit.labelAddressLine1;label-addresses.address_line2=communities.edit.labelAddressLine2" + data-trans="label-address_line1=communities.edit.labelAddressLine1;label-address_line2=communities.edit.labelAddressLine2" ) solid-ac-checker(no-permission="acl:Write", bind-resources) diff --git a/src/views/partials/communities/page-community-map.pug b/src/views/partials/communities/page-community-map.pug index 36d9f62..e931c69 100644 --- a/src/views/partials/communities/page-community-map.pug +++ b/src/views/partials/communities/page-community-map.pug @@ -13,7 +13,7 @@ submit-button="" submit-widget="button" - data-trans='placeholder-name=communities.list.searchBy;submit-button=communities.list.searchButton' + data-trans='placeholder-filter=communities.list.searchBy;submit-button=communities.list.searchButton' ) div.segment.quarter.sm-full.text-right solid-link.segment.children-link-rounded.children-icon-grid.children-link-reversed.color-secondary.bordered(next=`${component.route}-directory`) @@ -26,11 +26,11 @@ class-segment1="segment block margin-medium" class-segment2="segment full padding-top-xlarge padding-right-large padding-left-large sm-padding-medium border-top border-color-grey text-center whitespace-normal" - class-community.name="title segment block margin-bottom-xsmall text-color-heading text-xlarge text-bold" + class-community.name="segment block margin-bottom-xsmall text-color-heading text-xlarge text-bold" class-community.profile.shortDescription="segment block description text-medium whitespace-normal two-lines-ellipsis" - action-circle.name=`${getRoute(`community`, true)}-profile` - widget-circle.name='hubl-communities-map-fix-url-name' + action-community.name=`${component.route}-profile` + widget-community.name='hubl-communities-map-fix-url-name' widget-community.logo='hubl-admin-community-logo' widget-community.members="hubl-communities-profile-members-counter" diff --git a/src/views/partials/communities/page-community-profile.pug b/src/views/partials/communities/page-community-profile.pug index 6944bb7..6ff9400 100644 --- a/src/views/partials/communities/page-community-profile.pug +++ b/src/views/partials/communities/page-community-profile.pug @@ -63,7 +63,7 @@ div.community-profile.padding-medium.sm-padding-none action-edit="edit" widget-edit="hubl-communities-edit-button" multiple-addresses - multiple-addresses-fields="adress_line1, address_line2" + multiple-addresses-fields="address_line1, address_line2" bind-resources ) diff --git a/src/views/partials/menu-left.pug b/src/views/partials/menu-left.pug index 862bc3e..b16a1d8 100644 --- a/src/views/partials/menu-left.pug +++ b/src/views/partials/menu-left.pug @@ -13,7 +13,7 @@ solid-form-search.icon.children-icon-magnifier( submit-widget="button" ) div.divider -solid-router#navbar-router(default-route='dashboard') +solid-router#navbar-router(default-route=defaultRoute) for component of components if component.route if component.type == "about" diff --git a/src/views/partials/widgets/hubl-communities-map-fix-url-name.pug b/src/views/partials/widgets/hubl-communities-map-fix-url-name.pug index d5a41ab..f46b938 100644 --- a/src/views/partials/widgets/hubl-communities-map-fix-url-name.pug +++ b/src/views/partials/widgets/hubl-communities-map-fix-url-name.pug @@ -2,13 +2,9 @@ if componentSet.has('communities') solid-widget(name='hubl-communities-name') template solid-link( - data-src="${src || value}" + data-src="${value}" next=`${getRoute(`communities`, true)}-profile` - ) - solid-display( - data-src="${src || value}" - fields="name" - ) + ) ${await value.name} solid-widget(name='hubl-communities-map-fix-url-name') template From b06bc907188d6fb44aa3ebbda9834fbbbd64deb1 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Tue, 13 Apr 2021 13:37:23 +0200 Subject: [PATCH 26/47] fix: input size on community directory --- src/views/partials/communities/page-community-directory.pug | 4 ++-- src/views/partials/communities/page-community-map.pug | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/views/partials/communities/page-community-directory.pug b/src/views/partials/communities/page-community-directory.pug index 79549f0..1076af9 100644 --- a/src/views/partials/communities/page-community-directory.pug +++ b/src/views/partials/communities/page-community-directory.pug @@ -2,7 +2,7 @@ h2.margin-top-xxsmall.margin-left-xsmall.margin-bottom-medium.sm-margin-none.sm-margin-right-xsmall.sm-margin-bottom-small.sm-margin-left-xsmall.text-xlarge.text-bold.text-color-heading.text-uppercase(data-trans='communities.list.title') div.padding-top-xxsmall.margin-left-xsmall.margin-right-xsmall.sm-padding-none.sm-margin-none.sm-margin-right-xsmall.sm-margin-left-xsmall - div.segment.three-quarter.sm-full + div.segment.quarter.sm-full solid-form-search.form.search-form.search-button( id=`communities-filter` fields='name' @@ -13,7 +13,7 @@ submit-widget="button" data-trans='placeholder-name=communities.list.searchBy;submit-button=communities.list.searchButton' ) - div.segment.quarter.sm-full.text-right + div.segment.three-quarter.sm-full.text-right solid-link.segment.children-link-rounded.children-icon-map.children-link-reversed.color-secondary.bordered(next=`${component.route}-map`) span diff --git a/src/views/partials/communities/page-community-map.pug b/src/views/partials/communities/page-community-map.pug index e931c69..9901f21 100644 --- a/src/views/partials/communities/page-community-map.pug +++ b/src/views/partials/communities/page-community-map.pug @@ -2,7 +2,7 @@ h2.segment.sm-hidden.margin-top-xxsmall.margin-left-xsmall.margin-bottom-medium.sm-margin-none.sm-margin-right-xsmall.sm-margin-bottom-large.sm-margin-left-xsmall.text-xlarge.text-bold.text-color-heading.text-uppercase(data-trans='communities.list.title') div.mobile-map-search-field.padding-top-xxsmall.margin-left-xsmall.margin-right-xsmall.sm-padding-none.sm-margin-none.sm-margin-right-xsmall.sm-margin-left-xsmall - div.segment.three-quarter.sm-full + div.segment.quarter.sm-full solid-form-search.form.search-form.search-button( id=`communities-filter-map` fields='filter' @@ -15,7 +15,7 @@ submit-widget="button" data-trans='placeholder-filter=communities.list.searchBy;submit-button=communities.list.searchButton' ) - div.segment.quarter.sm-full.text-right + div.segment.three-quarter.sm-full.text-right solid-link.segment.children-link-rounded.children-icon-grid.children-link-reversed.color-secondary.bordered(next=`${component.route}-directory`) span From 1b4b42b2b33f9cce5f969b5303d34526947a7734 Mon Sep 17 00:00:00 2001 From: plup Date: Tue, 13 Apr 2021 18:41:29 +0200 Subject: [PATCH 27/47] cicd: updated ansible inventory paths --- .gitlab-ci.yml | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 343be79..44304c5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -33,6 +33,7 @@ build: - dist/ except: - tags + - feature/ansible tags: - test @@ -53,6 +54,7 @@ test:e2e: - cypress run -e CYPRESS_baseUrl=http://localhost:3000 except: - tags + - feature/ansible tags: - test @@ -67,8 +69,10 @@ test1: extends: .ansible stage: integration environment: - name: test1 + name: dev/test1 url: https://test1.startinblox.com + variables: + ANSIBLE_INVENTORY: inventory/dev/ only: - /^feature\/.*/ when: manual @@ -77,8 +81,10 @@ test2: extends: .ansible stage: integration environment: - name: test2 + name: dev/test2 url: https://test2.startinblox.com + variables: + ANSIBLE_INVENTORY: inventory/dev only: - /^feature\/.*/ when: manual @@ -87,8 +93,10 @@ test3: extends: .ansible stage: integration environment: - name: test3 + name: dev/test3 url: https://test3.startinblox.com + variables: + ANSIBLE_INVENTORY: inventory/dev only: - /^feature\/.*/ when: manual @@ -97,8 +105,10 @@ stg1: extends: .ansible stage: acceptance environment: - name: stg1 + name: review/stg1 url: https://stg1.startinblox.com + variables: + ANSIBLE_INVENTORY: inventory/stg only: - /^release\/.*/ when: manual @@ -107,8 +117,10 @@ stg2: extends: .ansible stage: acceptance environment: - name: stg2 + name: review/stg2 url: https://stg2.startinblox.com + variables: + ANSIBLE_INVENTORY: inventory/stg only: - /^release\/.*/ when: manual @@ -129,6 +141,9 @@ publish: hublworld: extends: .ansible + stage: deployment + variables: + ANSIBLE_INVENTORY: inventory/prd only: - master when: manual From a9366cd49fd281f0a03b8d9e926657c4175864cf Mon Sep 17 00:00:00 2001 From: plup Date: Tue, 13 Apr 2021 18:52:27 +0200 Subject: [PATCH 28/47] cicd: added hublunderworld federation --- .gitlab-ci.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 44304c5..bd57ae6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,7 +5,7 @@ stages: - integration - acceptance - release - - deployment + - deploy # default image for jobs default: @@ -141,7 +141,14 @@ publish: hublworld: extends: .ansible - stage: deployment + variables: + ANSIBLE_INVENTORY: inventory/prd + only: + - master + when: manual + +hublunderworld: + extends: .ansible variables: ANSIBLE_INVENTORY: inventory/prd only: From 6b88e799655e8fc06485bd2c76e6cdfddd00337e Mon Sep 17 00:00:00 2001 From: gaelle morin Date: Tue, 13 Apr 2021 21:30:25 +0200 Subject: [PATCH 29/47] patch: fix some styles + profile-edit - I broke it all --- src/locales/en.json | 5 +- src/locales/es.json | 5 +- src/locales/fr.json | 5 +- src/styles/admin-circles/_index.scss | 34 +++++++-- .../communities/page-community-edit.pug | 71 ++++++++++++++----- .../communities/page-community-map.pug | 6 +- .../communities/page-community-profile.pug | 4 +- .../hubl-communities-edit-address-delete.pug | 10 +++ ...bl-communities-profile-members-counter.pug | 4 +- 9 files changed, 114 insertions(+), 30 deletions(-) create mode 100644 src/views/partials/widgets/hubl-communities-edit-address-delete.pug diff --git a/src/locales/en.json b/src/locales/en.json index c5bcfda..2476aa4 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -180,7 +180,10 @@ "subTitle": "Pictures", "subTitle1": "Address", "buttonSubmit": "Save", - "noPermission": "You don't have access to this page" + "noPermission": "You don't have access to this page", + "tableHeader1": "Address line 1", + "tableHeader2": "Address line 2", + "buttonDelete": "Delete" } }, "project": { diff --git a/src/locales/es.json b/src/locales/es.json index c40eea5..bdd5020 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -180,7 +180,10 @@ "subTitle": "Foto", "subTitle1": "Dirección", "buttonSubmit": "Guardar", - "noPermission": "No tiene permiso" + "noPermission": "No tiene permiso", + "tableHeader1": "Dirección línea 1", + "tableHeader2": "Dirección línea 2", + "buttonDelete": "Eliminar" } }, "project": { diff --git a/src/locales/fr.json b/src/locales/fr.json index 83c5dfa..22571ba 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -178,7 +178,10 @@ "subTitle": "Photos", "subTitle1": "Adresse", "buttonSubmit": "Enregistrer", - "noPermission": "Vous n'avez pas la permission" + "noPermission": "Vous n'avez pas la permission", + "tableHeader1": "Adresse ligne 1", + "tableHeader2": "Adresse ligne 2", + "buttonDelete": "Effacer" } }, "project": { diff --git a/src/styles/admin-circles/_index.scss b/src/styles/admin-circles/_index.scss index 186ff5b..695e3dc 100644 --- a/src/styles/admin-circles/_index.scss +++ b/src/styles/admin-circles/_index.scss @@ -123,6 +123,21 @@ } } + .community-profile solid-multiple { + + &::before { + font-family: 'material-design-icons'; + content: "\F34E"; + position: relative; + top: 2px; + } + + [name="address_line2"] { + display: block; + margin-left: 33px; + } + } + hubl-communities-profile-logo { height: 155px; width: 100%; @@ -160,10 +175,6 @@ } } - .communities-profile-map .leaflet-pane.leaflet-popup-pane { - display: none; - } - .communities-map { .leaflet-popup-content-wrapper { @@ -209,6 +220,20 @@ } &.edit-picture { + + &>div { + position: relative; + + button { + position: absolute; + top: 86px; + right: 0; + color: #636363; + font-weight: bold; + line-height: 19px; + font-size: 22px; + } + } img { width: 100%; @@ -285,6 +310,7 @@ margin-right: 5px; } } + .edit-img { &.edit-logo { diff --git a/src/views/partials/communities/page-community-edit.pug b/src/views/partials/communities/page-community-edit.pug index 01337ed..0d91959 100644 --- a/src/views/partials/communities/page-community-edit.pug +++ b/src/views/partials/communities/page-community-edit.pug @@ -81,9 +81,9 @@ div.bg-color-white label-profile.picture2="" label-profile.picture3="" - class-profile.picture1="edit-img edit-picture segment margin-bottom-medium third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" - class-profile.picture2="edit-img edit-picture segment margin-bottom-medium third sm-full padding-right-small padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" - class-profile.picture3="edit-img edit-picture segment margin-bottom-medium third sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-profile.picture1="edit-img edit-picture segment margin-bottom-medium third sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading text-top" + class-profile.picture2="edit-img edit-picture segment margin-bottom-medium third sm-full padding-right-small padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading text-top" + class-profile.picture3="edit-img edit-picture segment margin-bottom-medium third sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading text-top" submit-button="" submit-widget="button" @@ -93,23 +93,62 @@ div.bg-color-white h3.segment.full.padding-bottom-small.border-bottom.border-color-grey.text-color-heading.text-bold.text-letter-spacing-large(data-trans="communities.edit.subTitle1") - solid-form.form( - bind-resources - nested-field="addresses" - fields="address_line1, address_line2" + solid-ac-checker(permission='acl:Append', bind-resources, nested-field='members') + solid-form.segment.half.sm-full.margin-bottom-xlarge.form( + bind-resources + nested-field='addresses' + fields='address_line1' - label-address_line1="" - label-address_line2="" + label-address_line1="" + class-address_line1='add-member' + widget-address_line1="solid-form-label-text" - widget-community="solid-form-hidden" - widget-address_line1="solid-form-label-text" - widget-address_line2="solid-form-label-text" + submit-button='' + submit-widget="button" + data-trans="label-address_line1=communities.edit.labelAddressLine1" + ) - submit-button="" - submit-widget="button" + solid-form.segment.half-sm-full.margin-bottom-xlarge.form( + bind-resources + nested-field='addresses' + fields='address_line2' - data-trans="label-address_line1=communities.edit.labelAddressLine1;label-address_line2=communities.edit.labelAddressLine2" - ) + label-address_line2="" + class-address_line2='add-member' + widget-address_line2="solid-form-label-text" + + submit-button='' + submit-widget="button" + data-trans="label-address_line1=communities.edit.labelAddressLine2" + ) + + .segment.table-wrapper.margin-top-medium + .table + div.table-header.bg-color-third.text-color-heading + div.segment.table-cell.third(data-trans='communities.edit.tableHeader1') + div.segment.table-cell.third(data-trans='communities.edit.tableHeader2') + div.segment.table-cell.third + + solid-display( + class='table-body' + bind-resources + nested-field='addresses' + fields='segment1(address_line1), segment2(address_line2), remove' + loader-id=`loader-${component.route}-edit` + + class-segment1='segment table-cell third' + class-segment2='segment table-cell third' + class-remove='segment table-cell third text-center' + + class-address_line1='text-small text-semibold' + class-address_line2='text-small text-semibold' + + multiple-addresses + multiple-addresses-fields="address_line1, address_line2" + + action-remove='self' + widget-remove='hubl-circle-edit-members-delete' + ) solid-ac-checker(no-permission="acl:Write", bind-resources) span(data-trans="communities.edit.noPermission") diff --git a/src/views/partials/communities/page-community-map.pug b/src/views/partials/communities/page-community-map.pug index 9901f21..daf0ac7 100644 --- a/src/views/partials/communities/page-community-map.pug +++ b/src/views/partials/communities/page-community-map.pug @@ -25,9 +25,9 @@ fields="position(segment1(community.logo), segment2(community.name, community.profile.shortDescription, community.members))" class-segment1="segment block margin-medium" - class-segment2="segment full padding-top-xlarge padding-right-large padding-left-large sm-padding-medium border-top border-color-grey text-center whitespace-normal" - class-community.name="segment block margin-bottom-xsmall text-color-heading text-xlarge text-bold" - class-community.profile.shortDescription="segment block description text-medium whitespace-normal two-lines-ellipsis" + class-segment2="segment full padding-top-xlarge padding-right-large padding-bottom-xlarge padding-left-large sm-padding-medium border-top border-color-grey text-center whitespace-normal" + class-community.name="title segment block margin-bottom-xsmall text-color-heading text-xlarge text-bold" + class-community.profile.shortDescription="segment block description text-medium margin-bottom-xsmall whitespace-normal two-lines-ellipsis" action-community.name=`${component.route}-profile` widget-community.name='hubl-communities-map-fix-url-name' diff --git a/src/views/partials/communities/page-community-profile.pug b/src/views/partials/communities/page-community-profile.pug index 6ff9400..66399d4 100644 --- a/src/views/partials/communities/page-community-profile.pug +++ b/src/views/partials/communities/page-community-profile.pug @@ -30,7 +30,7 @@ div.community-profile.padding-medium.sm-padding-none class-segment7="segment lg-hidden sm-full" class-segment8="segment two-third sm-full padding-bottom-large padding-bottom-xxsmall sm-text-left" - class-addresses="segment block margin-bottom-xsmall icon mdi-map-marker icon-third icon-large icon-margin-right-xsmall" + class-addresses="segment block margin-bottom-xsmall icon icon-third icon-large icon-margin-right-xsmall" class-members="segment block margin-bottom-xsmall" class-profile.website="segment block" class-profile.email="segment block" @@ -72,7 +72,7 @@ div.community-profile.padding-medium.sm-padding-none bind-resources nested-field="addresses" fields="position(community.name, address_line1, address_line2)" - class-community-name="segment block margin bottom-xsmall text-color-heading text-xlarge text-bold" + class-community.name="segment block margin-bottom-xsmall text-color-heading text-xlarge text-bold text-center" class-address_line1="segment block" class-address_line2="segment block" clustering="" diff --git a/src/views/partials/widgets/hubl-communities-edit-address-delete.pug b/src/views/partials/widgets/hubl-communities-edit-address-delete.pug new file mode 100644 index 0000000..fa1937a --- /dev/null +++ b/src/views/partials/widgets/hubl-communities-edit-address-delete.pug @@ -0,0 +1,10 @@ +if componentSet.has('communities') + solid-widget(name="hubl-communities-edit-address-delete") + template + solid-ac-checker(permission="acl:Delete", data-src="${src}") + solid-delete( + class='segment text-xsmall children-link-button children-link-text-bold children-link-text-uppercase children-link-color-secondary bordered' + data-src="${src}" + data-label='' + data-trans='data-label=communities.edit.buttonDelete' + ) \ No newline at end of file diff --git a/src/views/partials/widgets/hubl-communities-profile-members-counter.pug b/src/views/partials/widgets/hubl-communities-profile-members-counter.pug index f910aab..7bf2e5e 100644 --- a/src/views/partials/widgets/hubl-communities-profile-members-counter.pug +++ b/src/views/partials/widgets/hubl-communities-profile-members-counter.pug @@ -3,9 +3,9 @@ if componentSet.has('communities') && getRoute('communities') template span span.icon.icon-people.icon-third.icon-large.margin-right-xsmall - solid-display( + solid-display.text-medium( data-src="${src || value}" fields='' counter-template="\\\${counter}" ) - span(data-trans="communities.profile.members") \ No newline at end of file + span.text-medium(data-trans="communities.profile.members") \ No newline at end of file From 011085ab6c3bc3a90aa9b7465e66d42004120f14 Mon Sep 17 00:00:00 2001 From: gaelle morin Date: Tue, 13 Apr 2021 22:18:24 +0200 Subject: [PATCH 30/47] patch: profile-edit - last commit to post + styles --- .../communities/page-community-edit.pug | 40 ++++++++----------- 1 file changed, 16 insertions(+), 24 deletions(-) diff --git a/src/views/partials/communities/page-community-edit.pug b/src/views/partials/communities/page-community-edit.pug index 0d91959..57cca4a 100644 --- a/src/views/partials/communities/page-community-edit.pug +++ b/src/views/partials/communities/page-community-edit.pug @@ -93,34 +93,26 @@ div.bg-color-white h3.segment.full.padding-bottom-small.border-bottom.border-color-grey.text-color-heading.text-bold.text-letter-spacing-large(data-trans="communities.edit.subTitle1") - solid-ac-checker(permission='acl:Append', bind-resources, nested-field='members') - solid-form.segment.half.sm-full.margin-bottom-xlarge.form( - bind-resources - nested-field='addresses' - fields='address_line1' + solid-form.form( + bind-resources + nested-field="addresses" + fields="address_line1, address_line2" - label-address_line1="" - class-address_line1='add-member' - widget-address_line1="solid-form-label-text" + label-address_line1="" + label-address_line2="" - submit-button='' - submit-widget="button" - data-trans="label-address_line1=communities.edit.labelAddressLine1" - ) + class-address_line1="segment half sm-full sm-margin-bottom-xsmall padding-right-small text-small text-semibold text-uppercase text-color-heading" + class-address_line2="segment half sm-full sm-margin-bottom-xsmall padding-left-small text-small text-semibold text-uppercase text-color-heading" - solid-form.segment.half-sm-full.margin-bottom-xlarge.form( - bind-resources - nested-field='addresses' - fields='address_line2' + widget-community="solid-form-hidden" + widget-address_line1="solid-form-label-text" + widget-address_line2="solid-form-label-text" - label-address_line2="" - class-address_line2='add-member' - widget-address_line2="solid-form-label-text" + submit-button="" + submit-widget="button" - submit-button='' - submit-widget="button" - data-trans="label-address_line1=communities.edit.labelAddressLine2" - ) + data-trans="label-address_line1=communities.edit.labelAddressLine1;label-address_line2=communities.edit.labelAddressLine2" + ) .segment.table-wrapper.margin-top-medium .table @@ -146,7 +138,7 @@ div.bg-color-white multiple-addresses multiple-addresses-fields="address_line1, address_line2" - action-remove='self' + action-remove='remove' widget-remove='hubl-circle-edit-members-delete' ) From f5e7be99c15030b78be9da7a39d3512e769c9179 Mon Sep 17 00:00:00 2001 From: gaelle morin Date: Tue, 13 Apr 2021 23:48:28 +0200 Subject: [PATCH 31/47] patch: profile-edit + profile - rework on addresses --- src/locales/en.json | 4 +- src/locales/es.json | 4 +- src/locales/fr.json | 4 +- src/styles/admin-circles/_index.scss | 32 ++++++++-- .../communities/page-community-edit.pug | 61 +++++++++++-------- .../communities/page-community-profile.pug | 2 +- 6 files changed, 71 insertions(+), 36 deletions(-) diff --git a/src/locales/en.json b/src/locales/en.json index 2476aa4..f5a5e7c 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -174,8 +174,8 @@ "labelPicture1": "Picture 1", "labelPicture2": "Picture 2", "labelPicture3": "Picture 3", - "labelAddressLine1": "Address Line 1", - "labelAddressLine2": "Address Line 2", + "labelAddressLine1": "New address line 1", + "labelAddressLine2": "New address line 2", "labelLogo": "Community Logo", "subTitle": "Pictures", "subTitle1": "Address", diff --git a/src/locales/es.json b/src/locales/es.json index bdd5020..c61ea85 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -174,8 +174,8 @@ "labelPicture1": "Foto 1", "labelPicture2": "Foto 2", "labelPicture3": "Foto 3", - "labelAddressLine1": "Línea de dirección 1", - "labelAddressLine2": "Línea de dirección 2", + "labelAddressLine1": "Nueva línea de dirección 1", + "labelAddressLine2": "Nueva línea de dirección 2", "labelLogo": "Logotipo comunitario", "subTitle": "Foto", "subTitle1": "Dirección", diff --git a/src/locales/fr.json b/src/locales/fr.json index 22571ba..433cbf3 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -172,8 +172,8 @@ "labelPicture1": "Photo 1", "labelPicture2": "Photo 2", "labelPicture3": "Photo 3", - "labelAddressLine1": "Adresse ligne 1", - "labelAddressLine2": "Adresse ligne 2", + "labelAddressLine1": "Nouvelle adresse ligne 1", + "labelAddressLine2": "Nouvelle adresse ligne 2", "labelLogo": "Logo de la communauté", "subTitle": "Photos", "subTitle1": "Adresse", diff --git a/src/styles/admin-circles/_index.scss b/src/styles/admin-circles/_index.scss index 695e3dc..7ac883d 100644 --- a/src/styles/admin-circles/_index.scss +++ b/src/styles/admin-circles/_index.scss @@ -125,16 +125,19 @@ .community-profile solid-multiple { - &::before { + [name="address_line1"]::before { font-family: 'material-design-icons'; content: "\F34E"; position: relative; top: 2px; + color: var(--color-third); + font-size: 20px; + margin-right: 10px; } [name="address_line2"] { display: block; - margin-left: 33px; + margin-left: 30px; } } @@ -225,9 +228,7 @@ position: relative; button { - position: absolute; - top: 86px; - right: 0; + margin-top: 10px; color: #636363; font-weight: bold; line-height: 19px; @@ -241,6 +242,27 @@ } } + .edit-address { + + form { + display: table-row; + } + + .segment.table-cell { + display: table-cell; + border-bottom: 1px solid #C9C8C8; + border-right: 1px solid #C9C8C8; + height: 60px; + padding: 10px; + vertical-align: middle; + width: 250px; + } + + input[type='submit'] { + display: none; + } + } + @media (max-width: 768px) { .tabs { diff --git a/src/views/partials/communities/page-community-edit.pug b/src/views/partials/communities/page-community-edit.pug index 57cca4a..3ac610b 100644 --- a/src/views/partials/communities/page-community-edit.pug +++ b/src/views/partials/communities/page-community-edit.pug @@ -35,11 +35,11 @@ div.bg-color-white label-profile.linkedin="" label-profile.instagram="" - class-profile.shortDescription="segment margin-bottom-medium full sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" - class-profile.description="segment margin-bottom-medium full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-profile.shortDescription="segment margin-bottom-medium full text-small text-semibold text-uppercase text-color-heading" + class-profile.description="segment margin-bottom-medium full text-small text-semibold text-uppercase text-color-heading" class-segment="segment full" - class-logo="edit-img edit-logo segment margin-bottom-medium full sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" + class-logo="edit-img edit-logo segment margin-bottom-medium full sm-padding-none text-small text-semibold text-uppercase text-color-heading" class-profile.website="segment margin-bottom-medium third sm-full padding-right-small sm-padding-none" class-profile.email="segment margin-bottom-medium third sm-full padding-right-small padding-left-small sm-padding-none" class-profile.phone="segment margin-bottom-medium third sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading" @@ -93,27 +93,15 @@ div.bg-color-white h3.segment.full.padding-bottom-small.border-bottom.border-color-grey.text-color-heading.text-bold.text-letter-spacing-large(data-trans="communities.edit.subTitle1") - solid-form.form( - bind-resources - nested-field="addresses" - fields="address_line1, address_line2" - - label-address_line1="" - label-address_line2="" - - class-address_line1="segment half sm-full sm-margin-bottom-xsmall padding-right-small text-small text-semibold text-uppercase text-color-heading" - class-address_line2="segment half sm-full sm-margin-bottom-xsmall padding-left-small text-small text-semibold text-uppercase text-color-heading" - - widget-community="solid-form-hidden" - widget-address_line1="solid-form-label-text" - widget-address_line2="solid-form-label-text" - - submit-button="" - submit-widget="button" - - data-trans="label-address_line1=communities.edit.labelAddressLine1;label-address_line2=communities.edit.labelAddressLine2" - ) - + solid-widget(name=`hubl-communities-edit-delete-button`) + template + solid-delete( + class='segment text-xsmall children-link-button children-link-text-bold children-link-text-uppercase children-link-color-secondary bordered' + data-src="${src}" + data-label='' + data-trans='' + ) + .segment.table-wrapper.margin-top-medium .table div.table-header.bg-color-third.text-color-heading @@ -142,5 +130,30 @@ div.bg-color-white widget-remove='hubl-circle-edit-members-delete' ) + solid-form.form.table-body.edit-address( + bind-resources + nested-field="addresses" + fields="segment1(address_line1), segment2(address_line2), segment3(deleteButton)" + + placeholder-address_line1="" + placeholder-address_line2="" + + class-segment1='segment table-cell third' + class-segment2='segment table-cell third' + class-segment3='segment table-cell third text-center' + + class-address_line1="segment full text-small" + class-address_line2="segment full text-small" + + widget-community="solid-form-hidden" + widget-address_line1="solid-form-placeholder-text" + widget-address_line2="solid-form-placeholder-text" + + action-deleteButton="" + widget-deleteButton=`hubl-communities-edit-delete-button` + + data-trans="placeholder-address_line1=communities.edit.labelAddressLine1;placeholder-address_line2=communities.edit.labelAddressLine2" + ) + solid-ac-checker(no-permission="acl:Write", bind-resources) span(data-trans="communities.edit.noPermission") diff --git a/src/views/partials/communities/page-community-profile.pug b/src/views/partials/communities/page-community-profile.pug index 66399d4..59dcc9b 100644 --- a/src/views/partials/communities/page-community-profile.pug +++ b/src/views/partials/communities/page-community-profile.pug @@ -30,7 +30,7 @@ div.community-profile.padding-medium.sm-padding-none class-segment7="segment lg-hidden sm-full" class-segment8="segment two-third sm-full padding-bottom-large padding-bottom-xxsmall sm-text-left" - class-addresses="segment block margin-bottom-xsmall icon icon-third icon-large icon-margin-right-xsmall" + class-addresses="segment block margin-bottom-xsmall" class-members="segment block margin-bottom-xsmall" class-profile.website="segment block" class-profile.email="segment block" From 1bb70effa5122984aa22ad386a21b4ba8e847e17 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Wed, 14 Apr 2021 00:17:03 +0200 Subject: [PATCH 32/47] minor: community addresses implementation with Nominatim --- src/locales/en.json | 3 +- src/locales/es.json | 3 +- src/locales/fr.json | 3 +- src/scripts/hubl-geocoord.js | 33 +++++++++++++++++++ .../communities/page-community-edit.pug | 11 ++++--- src/views/partials/widgets.pug | 1 + .../hubl-communities-edit-add-button.pug | 11 +++++++ 7 files changed, 58 insertions(+), 7 deletions(-) create mode 100644 src/scripts/hubl-geocoord.js create mode 100644 src/views/partials/widgets/hubl-communities-edit-add-button.pug diff --git a/src/locales/en.json b/src/locales/en.json index f5a5e7c..955cc4f 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -183,7 +183,8 @@ "noPermission": "You don't have access to this page", "tableHeader1": "Address line 1", "tableHeader2": "Address line 2", - "buttonDelete": "Delete" + "buttonDelete": "Delete", + "buttonAdd": "Add" } }, "project": { diff --git a/src/locales/es.json b/src/locales/es.json index c61ea85..9ad1628 100644 --- a/src/locales/es.json +++ b/src/locales/es.json @@ -183,7 +183,8 @@ "noPermission": "No tiene permiso", "tableHeader1": "Dirección línea 1", "tableHeader2": "Dirección línea 2", - "buttonDelete": "Eliminar" + "buttonDelete": "Eliminar", + "buttonAdd": "Añadir" } }, "project": { diff --git a/src/locales/fr.json b/src/locales/fr.json index 433cbf3..3cb4ba4 100644 --- a/src/locales/fr.json +++ b/src/locales/fr.json @@ -181,7 +181,8 @@ "noPermission": "Vous n'avez pas la permission", "tableHeader1": "Adresse ligne 1", "tableHeader2": "Adresse ligne 2", - "buttonDelete": "Effacer" + "buttonDelete": "Effacer", + "buttonAdd": "Ajouter" } }, "project": { diff --git a/src/scripts/hubl-geocoord.js b/src/scripts/hubl-geocoord.js new file mode 100644 index 0000000..1f4d3de --- /dev/null +++ b/src/scripts/hubl-geocoord.js @@ -0,0 +1,33 @@ +/* + Geocoord helper using Nominatim + Usage: + const madrid = await hubl.geocoord('Madrid'); + madrid == ["-3.7035825", "40.4167047"] +*/ +window.hubl.geocoord = async (address = false) => { + if (address) { + const nominatim = await fetch('https://nominatim.openstreetmap.org/?format=geocodejson&limit=1&q=' + encodeURI(address)); + const response = await nominatim.json(); + if (response.features[0]) { + const coords = response.features[0].geometry.coordinates; + if (coords[0] && coords[1]) { + return [String(coords[0]), String(coords[1])]; + } + } else { + console.error("Address not found"); + } + } else { + console.error("Missing address"); + } + return ["-47.15", "-123.716667"]; +} + +window.hubl.geocalc = (element) => { + const editionForm = element.parentElement.parentElement.parentElement.parentElement; + window.hubl.geocoord(editionForm.querySelector('input[name="address_line1"]').value + " " + editionForm.querySelector('input[name="address_line2"]').value).then(coords => { + editionForm.querySelector('input[name="lat"]').value = coords[0]; + editionForm.querySelector('input[name="lng"]').value = coords[1]; + editionForm.querySelector('input[type="submit"]').click(); + }); + return false; +} \ No newline at end of file diff --git a/src/views/partials/communities/page-community-edit.pug b/src/views/partials/communities/page-community-edit.pug index 3ac610b..d89dc66 100644 --- a/src/views/partials/communities/page-community-edit.pug +++ b/src/views/partials/communities/page-community-edit.pug @@ -133,7 +133,7 @@ div.bg-color-white solid-form.form.table-body.edit-address( bind-resources nested-field="addresses" - fields="segment1(address_line1), segment2(address_line2), segment3(deleteButton)" + fields="segment1(address_line1), segment2(address_line2), lat, lng, segment3(addButton)" placeholder-address_line1="" placeholder-address_line2="" @@ -145,12 +145,15 @@ div.bg-color-white class-address_line1="segment full text-small" class-address_line2="segment full text-small" + class-lat="hidden" + class-lng="hidden" + widget-community="solid-form-hidden" widget-address_line1="solid-form-placeholder-text" widget-address_line2="solid-form-placeholder-text" - - action-deleteButton="" - widget-deleteButton=`hubl-communities-edit-delete-button` + widget-lat="solid-form-hidden" + widget-lng="solid-form-hidden" + widget-addButton=`hubl-communities-edit-add-button` data-trans="placeholder-address_line1=communities.edit.labelAddressLine1;placeholder-address_line2=communities.edit.labelAddressLine2" ) diff --git a/src/views/partials/widgets.pug b/src/views/partials/widgets.pug index 7a47928..ee38e84 100644 --- a/src/views/partials/widgets.pug +++ b/src/views/partials/widgets.pug @@ -22,6 +22,7 @@ include widgets/hubl-circle-team-contact.pug include widgets/hubl-circle-user-admin.pug include widgets/hubl-communities-counter-alternate.pug include widgets/hubl-communities-edit-button.pug +include widgets/hubl-communities-edit-add-button.pug include widgets/hubl-communities-edit-email.pug include widgets/hubl-communities-edit-website.pug include widgets/hubl-communities-logo.pug diff --git a/src/views/partials/widgets/hubl-communities-edit-add-button.pug b/src/views/partials/widgets/hubl-communities-edit-add-button.pug new file mode 100644 index 0000000..85b7858 --- /dev/null +++ b/src/views/partials/widgets/hubl-communities-edit-add-button.pug @@ -0,0 +1,11 @@ +if componentSet.has('communities') && getRoute('communities') + solid-widget(name='hubl-communities-edit-add-button') + template + div( + class="segment text-xsmall children-link-button children-link-text-bold children-link-text-uppercase children-link-color-secondary bordered" + ) + button.form-sub( + data-trans="communities.edit.buttonAdd" + type="button" + onclick="window.hubl.geocalc(this);" + ) \ No newline at end of file From 994bf92723c300268a9fe346897eb732b914db36 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Wed, 14 Apr 2021 00:18:42 +0200 Subject: [PATCH 33/47] fix: inverse lat lng --- src/scripts/hubl-geocoord.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/scripts/hubl-geocoord.js b/src/scripts/hubl-geocoord.js index 1f4d3de..7d9551f 100644 --- a/src/scripts/hubl-geocoord.js +++ b/src/scripts/hubl-geocoord.js @@ -25,8 +25,8 @@ window.hubl.geocoord = async (address = false) => { window.hubl.geocalc = (element) => { const editionForm = element.parentElement.parentElement.parentElement.parentElement; window.hubl.geocoord(editionForm.querySelector('input[name="address_line1"]').value + " " + editionForm.querySelector('input[name="address_line2"]').value).then(coords => { - editionForm.querySelector('input[name="lat"]').value = coords[0]; - editionForm.querySelector('input[name="lng"]').value = coords[1]; + editionForm.querySelector('input[name="lat"]').value = coords[1]; + editionForm.querySelector('input[name="lng"]').value = coords[0]; editionForm.querySelector('input[type="submit"]').click(); }); return false; From e6ae9d036cb88223865546526a6f92764d0686dd Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Thu, 15 Apr 2021 13:29:03 +0200 Subject: [PATCH 34/47] fix: circle extensions loading --- src/hubl-router.pug | 16 +++ src/views/page-circle.pug | 100 +++++++----------- .../partials/circle/page-circle-events.pug | 11 +- .../partials/circle/page-circle-polls.pug | 12 +-- .../partials/circle/page-circle-resources.pug | 17 +-- 5 files changed, 79 insertions(+), 77 deletions(-) diff --git a/src/hubl-router.pug b/src/hubl-router.pug index 7dc7768..844c353 100644 --- a/src/hubl-router.pug +++ b/src/hubl-router.pug @@ -53,6 +53,22 @@ for component of components routes.add(route); component.route = route; } + if(component.extensions) + for extension of component.extensions + - + if(typeof extension.route === 'undefined') { + extension.route = extension.type; + } + if(extension.route) { + extension.uniq = Math.random().toString(16).slice(2); + let route = extension.route; + if (routes.has(extension.route)) { + route += "-" + extension.uniq; + } + routes.add(route); + extension.route = route; + } + - const defaultComponent = components.filter(e=>e.defaultRoute != undefined); let defaultRoute = "dashboard"; diff --git a/src/views/page-circle.pug b/src/views/page-circle.pug index 6ebcfb1..c2b6c44 100644 --- a/src/views/page-circle.pug +++ b/src/views/page-circle.pug @@ -14,50 +14,31 @@ no-render ) include partials/circle/page-circle-profile.pug - //- Note: - Instead of using flat events/resources or polls components, you - may you to expend the way circle work to handle events & cie. - Like: - { - "type": "circles", - ... - "extensions": [ - { - "type": "events", - "endpoints": {...}, - ... - } - ] - } - - - let extensions = new Set(); - if(component.extensions) { - extensions = new Set(component.extensions.map(c=>c.type)); - } - if extensions.has('events') - div( - id=`${component.route}-events` - hidden - data-view=`${component.route}-events` - no-render - ) - include partials/circle/page-circle-events.pug - if extensions.has('resources') - div( - id=`${component.route}-resources` - hidden - data-view=`${component.route}-resources` - no-render - ) - include partials/circle/page-circle-resources.pug - if extensions.has('polls') - div( - id=`${component.route}-polls` - hidden - data-view=`${component.route}-polls` - no-render - ) - include partials/circle/page-circle-polls.pug + for extension of component.extensions + if extension.type == 'events' + div( + id=`${component.route}-events` + hidden + data-view=`${component.route}-events` + no-render + ) + include partials/circle/page-circle-events.pug + if extension.type == 'resources' + div( + id=`${component.route}-resources` + hidden + data-view=`${component.route}-resources` + no-render + ) + include partials/circle/page-circle-resources.pug + if extension.type == 'polls' + div( + id=`${component.route}-polls` + hidden + data-view=`${component.route}-polls` + no-render + ) + include partials/circle/page-circle-polls.pug nav.jsRightMenu.text-disable-selection.sidebar.whitespace-normal(role='navigation') solid-router.segment.whitespace-normal.text-color-heading.text-bold(default-route=`${component.route}-chat`) @@ -75,18 +56,19 @@ nav.jsRightMenu.text-disable-selection.sidebar.whitespace-normal(role='navigatio li.segment.full.padding-medium span.icon.ci-information.icon-xlarge.margin-right-medium a(data-trans='circle.menuRight.information') - if extensions.has('resources') - solid-route.segment.full(name=`${component.route}-resources` use-id) - li.segment.full.padding-medium - span.icon.ci-file.icon-xlarge.margin-right-medium - a(data-trans='circle.menuRight.resources') - if extensions.has('events') - solid-route.segment.full(name=`${component.route}-events` use-id) - li.segment.full.padding-medium - span.icon.ci-appointment.icon-xlarge.margin-right-medium - a(data-trans='circle.menuRight.events') - if extensions.has('polls') - solid-route.segment.full(name=`${component.route}-polls` use-id) - li.segment.full.padding-medium - span.icon.ci-list.icon-xlarge.margin-right-medium - a(data-trans='circle.menuRight.polls') + for extension of component.extensions + if extension.type == 'resources' + solid-route.segment.full(name=`${component.route}-resources` use-id) + li.segment.full.padding-medium + span.icon.ci-file.icon-xlarge.margin-right-medium + a(data-trans='circle.menuRight.resources') + if extension.type == 'events' + solid-route.segment.full(name=`${component.route}-events` use-id) + li.segment.full.padding-medium + span.icon.ci-appointment.icon-xlarge.margin-right-medium + a(data-trans='circle.menuRight.events') + if extension.type == 'polls' + solid-route.segment.full(name=`${component.route}-polls` use-id) + li.segment.full.padding-medium + span.icon.ci-list.icon-xlarge.margin-right-medium + a(data-trans='circle.menuRight.polls') diff --git a/src/views/partials/circle/page-circle-events.pug b/src/views/partials/circle/page-circle-events.pug index a17294d..d9a88c3 100644 --- a/src/views/partials/circle/page-circle-events.pug +++ b/src/views/partials/circle/page-circle-events.pug @@ -1,10 +1,9 @@ solid-event( - class='w700' bind-resources nested-field="events" - range-event-type=`${component.extensions.find(c => c.type=='events').endpoints.typeevents}` - range-event-circle=`${component.endpoints.get}/` - upload-dir=`${component.extensions.find(c => c.type=='events').endpoints.uploads}` - id-prefix=`${component.route}` - uniq=component.uniq + range-event-type=`${extension.endpoints.typeevents}` + range-event-circle=`${getComponent('circles').endpoints.get}/` + upload-dir=`${extension.endpoints.uploads}` + id-prefix='default' + uniq=extension.uniq ) diff --git a/src/views/partials/circle/page-circle-polls.pug b/src/views/partials/circle/page-circle-polls.pug index 2a51451..e73dedc 100644 --- a/src/views/partials/circle/page-circle-polls.pug +++ b/src/views/partials/circle/page-circle-polls.pug @@ -1,9 +1,9 @@ solid-poll( - class='w700' - id-prefix='circles' bind-resources nested-field="polls" - range-base-polls=`${component.get('polls').endpoints.pollRangeBase}` - upload-dir=`${component.get('polls').endpoints.uploads}` - uniq=component.uniq -) \ No newline at end of file + data-dest=extension.endpoints.post + range-tags=extension.endpoints.pollRangeTags + range-circles=extension.endpoints.pollRangeCircles + upload-dir=extension.endpoints.uploads + uniq=extension.uniq +) diff --git a/src/views/partials/circle/page-circle-resources.pug b/src/views/partials/circle/page-circle-resources.pug index db44f8f..cd46f6b 100644 --- a/src/views/partials/circle/page-circle-resources.pug +++ b/src/views/partials/circle/page-circle-resources.pug @@ -1,10 +1,15 @@ solid-resource( - class='w700' bind-resources nested-field="resources" - range-resource-type=`${component.extensions.find(c => c.type=='resources').endpoints.resourcestypes}` - range-resource-keyword=`${component.extensions.find(c => c.type=='resources').endpoints.resourceskeywords}` - range-resource-circle=`${component.endpoints.get}/` - upload-dir=`${component.extensions.find(c => c.type=='resources').endpoints.uploads}` - id-prefix='circles' + post-data-src=`${extension.endpoints.post}` + range-resource-type=`${extension.endpoints.types}` + post-data-type-src=`${extension.endpoints.postTypes}` + range-resource-keyword=`${extension.endpoints.keywords}` + post-data-keyword-src=`${extension.endpoints.postKeywords}` + range-resource-circle=`${getComponent('circles').endpoints.get}/` + associated-circle-label="" + data-trans=`associated-circle-label=${extension.parameters && extension.parameters.associatedName ? extension.parameters.associatedName : 'circle.extensions.associated'}` + upload-dir=`${extension.endpoints.uploads}` + id-prefix='default' + uniq=extension.uniq ) From b6ca0c85ed40b237a651e094dba3d589f28abaa4 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Thu, 15 Apr 2021 13:35:48 +0200 Subject: [PATCH 35/47] fix: circles without extensions --- src/views/page-circle.pug | 84 ++++++++++++++++++++------------------- 1 file changed, 43 insertions(+), 41 deletions(-) diff --git a/src/views/page-circle.pug b/src/views/page-circle.pug index c2b6c44..f2ecede 100644 --- a/src/views/page-circle.pug +++ b/src/views/page-circle.pug @@ -14,31 +14,32 @@ no-render ) include partials/circle/page-circle-profile.pug - for extension of component.extensions - if extension.type == 'events' - div( - id=`${component.route}-events` - hidden - data-view=`${component.route}-events` - no-render - ) - include partials/circle/page-circle-events.pug - if extension.type == 'resources' - div( - id=`${component.route}-resources` - hidden - data-view=`${component.route}-resources` - no-render - ) - include partials/circle/page-circle-resources.pug - if extension.type == 'polls' - div( - id=`${component.route}-polls` - hidden - data-view=`${component.route}-polls` - no-render - ) - include partials/circle/page-circle-polls.pug + if component.extensions + for extension of component.extensions + if extension.type == 'events' + div( + id=`${component.route}-events` + hidden + data-view=`${component.route}-events` + no-render + ) + include partials/circle/page-circle-events.pug + if extension.type == 'resources' + div( + id=`${component.route}-resources` + hidden + data-view=`${component.route}-resources` + no-render + ) + include partials/circle/page-circle-resources.pug + if extension.type == 'polls' + div( + id=`${component.route}-polls` + hidden + data-view=`${component.route}-polls` + no-render + ) + include partials/circle/page-circle-polls.pug nav.jsRightMenu.text-disable-selection.sidebar.whitespace-normal(role='navigation') solid-router.segment.whitespace-normal.text-color-heading.text-bold(default-route=`${component.route}-chat`) @@ -56,19 +57,20 @@ nav.jsRightMenu.text-disable-selection.sidebar.whitespace-normal(role='navigatio li.segment.full.padding-medium span.icon.ci-information.icon-xlarge.margin-right-medium a(data-trans='circle.menuRight.information') - for extension of component.extensions - if extension.type == 'resources' - solid-route.segment.full(name=`${component.route}-resources` use-id) - li.segment.full.padding-medium - span.icon.ci-file.icon-xlarge.margin-right-medium - a(data-trans='circle.menuRight.resources') - if extension.type == 'events' - solid-route.segment.full(name=`${component.route}-events` use-id) - li.segment.full.padding-medium - span.icon.ci-appointment.icon-xlarge.margin-right-medium - a(data-trans='circle.menuRight.events') - if extension.type == 'polls' - solid-route.segment.full(name=`${component.route}-polls` use-id) - li.segment.full.padding-medium - span.icon.ci-list.icon-xlarge.margin-right-medium - a(data-trans='circle.menuRight.polls') + if component.extensions + for extension of component.extensions + if extension.type == 'resources' + solid-route.segment.full(name=`${component.route}-resources` use-id) + li.segment.full.padding-medium + span.icon.ci-file.icon-xlarge.margin-right-medium + a(data-trans='circle.menuRight.resources') + if extension.type == 'events' + solid-route.segment.full(name=`${component.route}-events` use-id) + li.segment.full.padding-medium + span.icon.ci-appointment.icon-xlarge.margin-right-medium + a(data-trans='circle.menuRight.events') + if extension.type == 'polls' + solid-route.segment.full(name=`${component.route}-polls` use-id) + li.segment.full.padding-medium + span.icon.ci-list.icon-xlarge.margin-right-medium + a(data-trans='circle.menuRight.polls') From 5e345427627142acd11be6275c510adb6f58c579 Mon Sep 17 00:00:00 2001 From: gaelle morin Date: Tue, 13 Apr 2021 12:26:35 +0200 Subject: [PATCH 36/47] feature: New right menu on mobile - styles added --- src/styles/content/_index.scss | 32 ++++++++++++++++++++++---------- src/views/page-admin.pug | 2 +- src/views/page-circle.pug | 2 +- src/views/page-project.pug | 2 +- 4 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/styles/content/_index.scss b/src/styles/content/_index.scss index 40aed50..0a38228 100644 --- a/src/styles/content/_index.scss +++ b/src/styles/content/_index.scss @@ -55,7 +55,7 @@ main { vertical-align: middle; } - >solid-route { + /*>solid-route { &[active]>li { background-color: var(--color-heading); @@ -64,16 +64,30 @@ main { &:hover:not([active])>li { background: #E4E4E4; } - } + }*/ } /* Styles use with JS to open/close the sidebar */ &.jsRightMenu { display: block; + + @media (max-width: 768px) { + position: fixed; + top: 101px; + right: 3px; + height: auto; + box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.14); + } + solid-link[active] { color: white; background: var(--color-heading); + + >li { + border-bottom: 1px solid var(--color-heading); + } } + solid-link:not([active]):hover { background: #e4e4e4; } @@ -85,12 +99,12 @@ main { } /* Quick fix. When you got time, use animation on the span instead */ - @media (max-width: 768px) { + /*@media (max-width: 768px) { ul>li:first-child>span, ul>li:first-child>a { visibility: hidden; } - } + }*/ } &.jsRightMenu[open] { @@ -98,13 +112,13 @@ main { bottom: 0; right: 0; - @media(max-width: 768px) { + /*@media(max-width: 768px) { box-shadow: 0 2px 9px 0 rgba(0, 0, 0, 0.12); min-width: 60%; position: fixed; top: 50px; z-index: 3000; - } + }*/ } } } @@ -122,7 +136,7 @@ main { height: 100vh; } -/* Custom scrollbar of the left-menu*/ +/* Custom scrollbar of the right-menu */ /* Works on Firefox*/ .scrollbar-nav { scrollbar-width: thin; @@ -146,9 +160,6 @@ main { } } - - - /* Custom scrollbar of the content */ /* Works on Firefox */ .scrollbar-content { @@ -172,6 +183,7 @@ main { border: 3px solid white; /* creates padding around scroll thumb */ } } +/* End scrollbar*/ solid-display-value-markdown { diff --git a/src/views/page-admin.pug b/src/views/page-admin.pug index a715eee..04198be 100644 --- a/src/views/page-admin.pug +++ b/src/views/page-admin.pug @@ -60,7 +60,7 @@ nav.jsRightMenu.text-disable-selection.sidebar.whitespace-normal(role='navigation') .segment.whitespace-normal.text-color-heading.text-bold ul - li.segment.full.padding-small.text-normal.jsOffsiteToggle + li.segment.full.sm-hidden.padding-small.text-normal.jsOffsiteToggle span.icon.icon-arrow-left.icon-xsmall.margin-left-xxsmall.text-left span.segment.full.text-right(hidden) span.icon.icon-arrow-right.icon-xsmall.margin-right-xxsmall diff --git a/src/views/page-circle.pug b/src/views/page-circle.pug index f2ecede..a3a0868 100644 --- a/src/views/page-circle.pug +++ b/src/views/page-circle.pug @@ -44,7 +44,7 @@ nav.jsRightMenu.text-disable-selection.sidebar.whitespace-normal(role='navigation') solid-router.segment.whitespace-normal.text-color-heading.text-bold(default-route=`${component.route}-chat`) ul - li.segment.full.padding-small.text-normal.jsOffsiteToggle + li.segment.full.sm-hidden.padding-small.text-normal.jsOffsiteToggle span.icon.icon-arrow-left.icon-xsmall.margin-left-xxsmall.text-left span.segment.full.text-right(hidden) span.icon.icon-arrow-right.icon-xsmall.margin-right-xxsmall diff --git a/src/views/page-project.pug b/src/views/page-project.pug index b79b4e9..834c13f 100644 --- a/src/views/page-project.pug +++ b/src/views/page-project.pug @@ -25,7 +25,7 @@ nav.jsRightMenu.text-disable-selection.sidebar.whitespace-normal(role='navigation') solid-router.segment.whitespace-normal.text-color-heading.text-bold(default-route=`${component.route}-chat`) ul - li.segment.full.padding-small.text-normal.jsOffsiteToggle + li.segment.full.sm-hidden.padding-small.text-normal.jsOffsiteToggle span.icon.icon-arrow-left.icon-xsmall.margin-left-xxsmall.text-left span.segment.full.text-right(hidden) span.icon.icon-arrow-right.icon-xsmall.margin-right-xxsmall From 50f7d49810c72508036c9dabee4fd016b9656ce4 Mon Sep 17 00:00:00 2001 From: gaelle morin Date: Tue, 13 Apr 2021 16:11:28 +0200 Subject: [PATCH 37/47] patch: New right menu on mobile - JS added --- src/scripts/navigate-event.js | 37 +++++++++++++++++++ src/views/page-admin.pug | 2 +- .../partials/admin/page-admin-projects.pug | 5 ++- 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/src/scripts/navigate-event.js b/src/scripts/navigate-event.js index d2fc2e7..d7b8212 100644 --- a/src/scripts/navigate-event.js +++ b/src/scripts/navigate-event.js @@ -35,6 +35,43 @@ function openRightMenu() { ); } +const controls = document.querySelectorAll('.jsMobileSidebarControl'); +Array.from(controls).forEach(control => { + const button = control.querySelector('.jsMobileRightMenuButton'); + const rightMenu = control.querySelector('.jsRightMenu'); + + button.addEventListener("click", () => { + if (button.classList.contains('icon-close')) { + button.classList.remove('icon-close'); + button.classList.add('icon-options-vertical'); + console.log(rightMenu); + rightMenu.setAttribute('hidden', ''); + } + else { + button.classList.remove('icon-options-vertical'); + button.classList.add('icon-close'); + rightMenu.removeAttribute('hidden'); + } + }); +}); + + +/*const buttons = document.querySelectorAll(".jsMobileToggleRightMenu"); +Array.from(buttons).forEach(el => el.addEventListener("click", () => { + if (el.classList.contains('icon-close')) { + el.classList.remove('icon-close'); + el.classList.add('icon-options-vertical'); + const rightMenu = document.querySelectorAll(".jsRightMenu"); + rightMenu.classList.add("block"); + } + else { + el.classList.remove('icon-options-vertical'); + el.classList.add('icon-close'); + const rightMenu = document.querySelectorAll(".jsRightMenu"); + rightMenu.classList.add("sm-hidden"); + }; +}));*/ + document.addEventListener("DOMContentLoaded", function () { const componentSet = new Set(window.hubl.components.map(c => c.type)); diff --git a/src/views/page-admin.pug b/src/views/page-admin.pug index 04198be..8e06f40 100644 --- a/src/views/page-admin.pug +++ b/src/views/page-admin.pug @@ -1,4 +1,4 @@ -.with-sidebar.whitespace-normal.bg-color-white.only-on-admin(hidden) +.with-sidebar.jsMobileSidebarControl.whitespace-normal.bg-color-white.only-on-admin(hidden) .scrollbar-content.views-container.sidebar-is-closed for component of components if component.route diff --git a/src/views/partials/admin/page-admin-projects.pug b/src/views/partials/admin/page-admin-projects.pug index e7bdc26..6953b7c 100644 --- a/src/views/partials/admin/page-admin-projects.pug +++ b/src/views/partials/admin/page-admin-projects.pug @@ -1,5 +1,8 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal - h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='project.list.title') + div.segment.full.sm-three-quarter + h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='project.list.title') + div.segment.lg-hidden.sm-quarter.text-right + div.jsMobileRightMenuButton.icon.icon-close.icon-heading div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespace-normal From 38e9ab1d7be361b8180c2bc0bc7bff6a613a4932 Mon Sep 17 00:00:00 2001 From: gaelle morin Date: Wed, 14 Apr 2021 13:56:34 +0200 Subject: [PATCH 38/47] patch: New right menu on mobile - JS fixed + extended through admin --- src/scripts/navigate-event.js | 28 +++++++++++++++++-- .../partials/admin/page-admin-chat-create.pug | 6 ++-- src/views/partials/admin/page-admin-chat.pug | 5 +++- .../admin/page-admin-circles-create.pug | 6 ++-- .../partials/admin/page-admin-circles.pug | 5 +++- .../admin/page-admin-projects-create.pug | 6 ++-- 6 files changed, 42 insertions(+), 14 deletions(-) diff --git a/src/scripts/navigate-event.js b/src/scripts/navigate-event.js index d7b8212..0e9f171 100644 --- a/src/scripts/navigate-event.js +++ b/src/scripts/navigate-event.js @@ -35,8 +35,30 @@ function openRightMenu() { ); } -const controls = document.querySelectorAll('.jsMobileSidebarControl'); -Array.from(controls).forEach(control => { +const control = document.querySelector('.jsMobileSidebarControl'); +const buttons = control.querySelectorAll('.jsMobileRightMenuButton'); +const rightMenu = control.querySelector('.jsRightMenu'); + +Array.from(buttons).forEach(button => + button.addEventListener("click", () => { + if (button.classList.contains('icon-close')) { + button.classList.remove('icon-close'); + button.classList.add('icon-options-vertical'); + rightMenu.setAttribute('hidden', ''); + } + else { + button.classList.remove('icon-options-vertical'); + button.classList.add('icon-close'); + rightMenu.removeAttribute('hidden'); + }; + }) +) + + + + + +/*Array.from(controls).forEach(control => { const button = control.querySelector('.jsMobileRightMenuButton'); const rightMenu = control.querySelector('.jsRightMenu'); @@ -53,7 +75,7 @@ Array.from(controls).forEach(control => { rightMenu.removeAttribute('hidden'); } }); -}); +});*/ /*const buttons = document.querySelectorAll(".jsMobileToggleRightMenu"); diff --git a/src/views/partials/admin/page-admin-chat-create.pug b/src/views/partials/admin/page-admin-chat-create.pug index 85ce2ff..ce0335c 100644 --- a/src/views/partials/admin/page-admin-chat-create.pug +++ b/src/views/partials/admin/page-admin-chat-create.pug @@ -1,8 +1,8 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.padding-large.border-bottom.border-color-grey - div.segment.half.sm-full + div.segment.full.sm-three-quarter h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='communities.title') - div.segment.half.sm-hidden.text-right - solid-link(class="backlink", next=`admin-${getRoute('chat', true)}` data-trans='circle.create.backlink') + div.segment.lg-hidden.sm-quarter.text-right + div.jsMobileRightMenuButton.icon.icon-close.icon-heading div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespace-normal div#loader-users-title.loader.loader diff --git a/src/views/partials/admin/page-admin-chat.pug b/src/views/partials/admin/page-admin-chat.pug index 0d7fdf0..32a3a93 100644 --- a/src/views/partials/admin/page-admin-chat.pug +++ b/src/views/partials/admin/page-admin-chat.pug @@ -1,5 +1,8 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal - h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='communities.title') + div.segment.full.sm-three-quarter + h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='communities.title') + div.segment.lg-hidden.sm-quarter.text-right + div.jsMobileRightMenuButton.icon.icon-close.icon-heading div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespace-normal diff --git a/src/views/partials/admin/page-admin-circles-create.pug b/src/views/partials/admin/page-admin-circles-create.pug index ad90c8f..17f4f2f 100644 --- a/src/views/partials/admin/page-admin-circles-create.pug +++ b/src/views/partials/admin/page-admin-circles-create.pug @@ -1,8 +1,8 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey - div.segment.half.sm-full + div.segment.full.sm-three-quarter h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='circle.create.title') - div.segment.half.sm-hidden.text-right - solid-link(class="backlink", next=`admin-${getRoute('circles', true)}` data-trans='circle.create.backlink') + div.segment.lg-hidden.sm-quarter.text-right + div.jsMobileRightMenuButton.icon.icon-close.icon-heading div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespace-normal div.loader.loader-top(id=`loader-admin-${getComponent('circles').uniq}`) diff --git a/src/views/partials/admin/page-admin-circles.pug b/src/views/partials/admin/page-admin-circles.pug index 9aae27b..788532f 100644 --- a/src/views/partials/admin/page-admin-circles.pug +++ b/src/views/partials/admin/page-admin-circles.pug @@ -1,5 +1,8 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal - h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='circle.list.title') + div.segment.full.sm-three-quarter + h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='circle.list.title') + div.segment.lg-hidden.sm-quarter.text-right + div.jsMobileRightMenuButton.icon.icon-close.icon-heading div.segment.full.padding-large.padding-top-medium.padding-bottom-xsmall.sm-padding-xsmall.sm-padding-top-xxsmall.whitespace-normal diff --git a/src/views/partials/admin/page-admin-projects-create.pug b/src/views/partials/admin/page-admin-projects-create.pug index 662b5e0..89e76cb 100644 --- a/src/views/partials/admin/page-admin-projects-create.pug +++ b/src/views/partials/admin/page-admin-projects-create.pug @@ -1,8 +1,8 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey - div.segment.half.sm-full + div.segment.full.sm-three-quarter h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='project.create.title') - div.segment.half.sm-hidden.text-right - solid-link(class="backlink", next=`admin-${getRoute('projects', true)}` data-trans='project.create.backlink') + div.segment.lg-hidden.sm-quarter.text-right + div.jsMobileRightMenuButton.icon.icon-close.icon-heading div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespace-normal div.loader.loader-top(id=`loader-admin-${getComponent('projects').uniq}`) From 5084e21d1f24e98136845a39a142dd9c46c061f0 Mon Sep 17 00:00:00 2001 From: gaelle morin Date: Wed, 14 Apr 2021 18:33:54 +0200 Subject: [PATCH 39/47] patch: New right menu on mobile - JS fixed + extended through circle and project pages --- src/index.pug | 4 +-- src/scripts/navigate-event.js | 30 +++++++++++++++++-- src/styles/content/_index.scss | 5 ++-- src/views/page-admin.pug | 2 +- .../partials/circle/page-circle-chat.pug | 17 ++++++----- .../partials/circle/page-circle-edit.pug | 4 ++- .../partials/circle/page-circle-profile.pug | 17 ++++++----- .../partials/project/page-project-chat.pug | 25 +++++++++------- .../partials/project/page-project-edit.pug | 4 ++- .../partials/project/page-project-profile.pug | 25 +++++++++------- 10 files changed, 87 insertions(+), 46 deletions(-) diff --git a/src/index.pug b/src/index.pug index bbcaf98..fd4c073 100644 --- a/src/index.pug +++ b/src/index.pug @@ -99,7 +99,7 @@ html(lang="en") include views/page-messages.pug if component.type == "circles" - .with-sidebar.whitespace-normal + .with-sidebar.whitespace-normal.jsMobileContentSidebarControl hubl-reactivity(bind-user nested-field='inbox' target-src="store://user.circles") hubl-reactivity(bind-user nested-field="circles" target-src="store://user") hubl-reactivity(data-src=`${component.endpoints.get}joinable/` target-src=`${component.endpoints.get}`) @@ -141,7 +141,7 @@ html(lang="en") include views/page-polls.pug if component.type == "projects" - .with-sidebar.whitespace-normal + .with-sidebar.whitespace-normal.jsMobileContentSidebarControl hubl-reactivity(bind-user nested-field='inbox' target-src="store://user.projects") hubl-reactivity(bind-user nested-field="projects" target-src="store://user") hubl-reactivity(data-src=`${component.endpoints.post}joinable/` target-src=`${component.endpoints.get}`) diff --git a/src/scripts/navigate-event.js b/src/scripts/navigate-event.js index 0e9f171..7aa43d9 100644 --- a/src/scripts/navigate-event.js +++ b/src/scripts/navigate-event.js @@ -35,9 +35,9 @@ function openRightMenu() { ); } -const control = document.querySelector('.jsMobileSidebarControl'); -const buttons = control.querySelectorAll('.jsMobileRightMenuButton'); -const rightMenu = control.querySelector('.jsRightMenu'); +const adminControl = document.querySelector('.jsMobileSidebarAdminControl'); +const buttons = adminControl.querySelectorAll('.jsMobileRightMenuButton'); +const rightMenu = adminControl.querySelector('.jsRightMenu'); Array.from(buttons).forEach(button => button.addEventListener("click", () => { @@ -54,6 +54,30 @@ Array.from(buttons).forEach(button => }) ) +const contentControls = Array.from(document.querySelectorAll('.jsMobileContentSidebarControl')); + +contentControls.forEach( + contentControl => { + const contentSidebar = contentControl.querySelector('.jsRightMenu'); + const contentButtons = contentControl.querySelectorAll('.jsMobileRightMenuButton'); + + Array.from(contentButtons).forEach(contentButton => + contentButton.addEventListener('click', () => { + if (contentButton.classList.contains('icon-close')) { + contentButton.classList.remove('icon-close'); + contentButton.classList.add('icon-options-vertical'); + totosidebar.setAttribute('hidden', ''); + } + else { + contentButton.classList.remove('icon-options-vertical'); + contentButton.classList.add('icon-close'); + totosidebar.removeAttribute('hidden'); + }; + }) + ) + } +); + diff --git a/src/styles/content/_index.scss b/src/styles/content/_index.scss index 0a38228..a65f419 100644 --- a/src/styles/content/_index.scss +++ b/src/styles/content/_index.scss @@ -55,7 +55,7 @@ main { vertical-align: middle; } - /*>solid-route { + >solid-route { &[active]>li { background-color: var(--color-heading); @@ -64,7 +64,7 @@ main { &:hover:not([active])>li { background: #E4E4E4; } - }*/ + } } /* Styles use with JS to open/close the sidebar */ @@ -76,6 +76,7 @@ main { top: 101px; right: 3px; height: auto; + z-index: 2999; box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.14); } diff --git a/src/views/page-admin.pug b/src/views/page-admin.pug index 8e06f40..81fb335 100644 --- a/src/views/page-admin.pug +++ b/src/views/page-admin.pug @@ -1,4 +1,4 @@ -.with-sidebar.jsMobileSidebarControl.whitespace-normal.bg-color-white.only-on-admin(hidden) +.with-sidebar.jsMobileSidebarAdminControl.whitespace-normal.bg-color-white.only-on-admin(hidden) .scrollbar-content.views-container.sidebar-is-closed for component of components if component.route diff --git a/src/views/partials/circle/page-circle-chat.pug b/src/views/partials/circle/page-circle-chat.pug index 16a1ebf..8d55b39 100644 --- a/src/views/partials/circle/page-circle-chat.pug +++ b/src/views/partials/circle/page-circle-chat.pug @@ -1,13 +1,16 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal - solid-display.text-xxlarge.text-letter-spacing-large( - bind-resources - fields='name, dash, subtitle' + div.segment.full.sm-three-quarter + solid-display.text-xxlarge.text-letter-spacing-large( + bind-resources + fields='name, dash, subtitle' - value-dash=' - ' + value-dash=' - ' - class-name='text-color-heading text-bold' - class-dash='text-color-heading text-bold' - ) + class-name='text-color-heading text-bold' + class-dash='text-color-heading text-bold' + ) + div.segment.lg-hidden.sm-quarter.text-right + div.jsMobileRightMenuButton.icon.icon-close.icon-heading .chat-view.segment.full.whitespace-normal solid-xmpp-chat( diff --git a/src/views/partials/circle/page-circle-edit.pug b/src/views/partials/circle/page-circle-edit.pug index 7249a40..8e4bbd7 100644 --- a/src/views/partials/circle/page-circle-edit.pug +++ b/src/views/partials/circle/page-circle-edit.pug @@ -1,6 +1,6 @@ solid-ac-checker(permission='acl:Read', bind-resources) div.segment.full.padding-large.border-bottom.border-color-grey - div.segment.half.sm-full + div.segment.half.sm-three-quarter solid-display.text-xxlarge.text-letter-spacing-large( bind-resources fields='name, dash, subtitle' @@ -12,6 +12,8 @@ solid-ac-checker(permission='acl:Read', bind-resources) ) div.segment.half.sm-hidden.text-right solid-link(class="backlink", bind-resources, next=`${component.route}-profile` data-trans='circle.edit.backlink') + div.segment.lg-hidden.sm-quarter.text-right + div.jsMobileRightMenuButton.icon.icon-close.icon-heading div.segment.full.padding-large.whitespace-normal diff --git a/src/views/partials/circle/page-circle-profile.pug b/src/views/partials/circle/page-circle-profile.pug index 30a5b43..4a35005 100644 --- a/src/views/partials/circle/page-circle-profile.pug +++ b/src/views/partials/circle/page-circle-profile.pug @@ -9,15 +9,18 @@ div( ) solid-ac-checker.segment.block(permission='acl:Read', bind-resources) div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal - solid-display.text-xxlarge.text-letter-spacing-large( - bind-resources - fields='name, dash, subtitle' + div.segment.full.sm-three-quarter + solid-display.text-xxlarge.text-letter-spacing-large( + bind-resources + fields='name, dash, subtitle' - value-dash=' - ' + value-dash=' - ' - class-name='text-color-heading text-bold' - class-dash='text-color-heading text-bold' - ) + class-name='text-color-heading text-bold' + class-dash='text-color-heading text-bold' + ) + div.segment.lg-hidden.sm-quarter.text-right + div.jsMobileRightMenuButton.icon.icon-close.icon-heading div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-xlarge div.loader(id=`loader-${component.route}-profile-1`) diff --git a/src/views/partials/project/page-project-chat.pug b/src/views/partials/project/page-project-chat.pug index 6130ed1..e458583 100644 --- a/src/views/partials/project/page-project-chat.pug +++ b/src/views/partials/project/page-project-chat.pug @@ -1,17 +1,20 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal - solid-display.text-xxlarge.text-letter-spacing-large( - bind-resources - fields='const-title1, number, customer.name, dash, name' + div.segment.full.sm-three-quarter + solid-display.text-xxlarge.text-letter-spacing-large( + bind-resources + fields='const-title1, number, customer.name, dash, name' - class-const-title1='text-color-heading text-bold text-uppercase' - class-number='text-color-heading text-bold text-uppercase word-spacing-right' - class-customer.name='text-color-heading text-bold text-uppercase' - class-dash='text-color-heading text-bold text-xlarge' - class-name='' + class-const-title1='text-color-heading text-bold text-uppercase' + class-number='text-color-heading text-bold text-uppercase word-spacing-right' + class-customer.name='text-color-heading text-bold text-uppercase' + class-dash='text-color-heading text-bold text-xlarge' + class-name='' - value-const-title1='N°' - value-dash=' - ' - ) + value-const-title1='N°' + value-dash=' - ' + ) + div.segment.lg-hidden.sm-quarter.text-right + div.jsMobileRightMenuButton.icon.icon-close.icon-heading .chat-view.segment.full.whitespace-normal solid-xmpp-chat( diff --git a/src/views/partials/project/page-project-edit.pug b/src/views/partials/project/page-project-edit.pug index 325ff6b..b70343b 100644 --- a/src/views/partials/project/page-project-edit.pug +++ b/src/views/partials/project/page-project-edit.pug @@ -1,6 +1,6 @@ solid-ac-checker(permission='acl:Read', bind-resources) div.segment.full.padding-large.border-bottom.border-color-grey - div.segment.half.sm-full + div.segment.half.sm-three-quarter solid-display.text-xxlarge.text-letter-spacing-large( bind-resources fields='const-title1, number, customer.name, dash, name' @@ -16,6 +16,8 @@ solid-ac-checker(permission='acl:Read', bind-resources) ) div.segment.half.sm-hidden.text-right solid-link(class='backlink', bind-resources, next=`${component.route}-profile` data-trans='project.edit.backlink') + div.segment.lg-hidden.sm-quarter.text-right + div.jsMobileRightMenuButton.icon.icon-close.icon-heading div.segment.full.padding-large.whitespace-normal diff --git a/src/views/partials/project/page-project-profile.pug b/src/views/partials/project/page-project-profile.pug index 9620c6d..0a9f023 100644 --- a/src/views/partials/project/page-project-profile.pug +++ b/src/views/partials/project/page-project-profile.pug @@ -9,19 +9,22 @@ div( ) solid-ac-checker.segment.block(permission='acl:Read', bind-resources) div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal - solid-display.text-xxlarge.text-letter-spacing-large( - bind-resources - fields='const-title1, number, customer.name, dash, name' + div.segment.full.sm-three-quarter + solid-display.text-xxlarge.text-letter-spacing-large( + bind-resources + fields='const-title1, number, customer.name, dash, name' - class-const-title1='text-color-heading text-bold text-uppercase' - class-number='text-color-heading text-bold text-uppercase word-spacing-right' - class-customer.name='text-color-heading text-bold text-uppercase' - class-dash='text-color-heading text-bold text-xlarge' - class-name='' + class-const-title1='text-color-heading text-bold text-uppercase' + class-number='text-color-heading text-bold text-uppercase word-spacing-right' + class-customer.name='text-color-heading text-bold text-uppercase' + class-dash='text-color-heading text-bold text-xlarge' + class-name='' - value-const-title1='N°' - value-dash=' - ' - ) + value-const-title1='N°' + value-dash=' - ' + ) + div.segment.lg-hidden.sm-quarter.text-right + div.jsMobileRightMenuButton.icon.icon-close.icon-heading div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-xlarge div.loader(id=`loader-${component.route}-profile`) From 2c048943a6eb67ba6ca0e3f0bc5499268cbb8b79 Mon Sep 17 00:00:00 2001 From: gaelle morin Date: Thu, 15 Apr 2021 09:00:21 +0200 Subject: [PATCH 40/47] patch: New right menu on mobile - clean up --- src/scripts/navigate-event.js | 44 ++--------------------------------- 1 file changed, 2 insertions(+), 42 deletions(-) diff --git a/src/scripts/navigate-event.js b/src/scripts/navigate-event.js index 7aa43d9..c847392 100644 --- a/src/scripts/navigate-event.js +++ b/src/scripts/navigate-event.js @@ -66,58 +66,18 @@ contentControls.forEach( if (contentButton.classList.contains('icon-close')) { contentButton.classList.remove('icon-close'); contentButton.classList.add('icon-options-vertical'); - totosidebar.setAttribute('hidden', ''); + contentSidebar.setAttribute('hidden', ''); } else { contentButton.classList.remove('icon-options-vertical'); contentButton.classList.add('icon-close'); - totosidebar.removeAttribute('hidden'); + contentSidebar.removeAttribute('hidden'); }; }) ) } ); - - - - -/*Array.from(controls).forEach(control => { - const button = control.querySelector('.jsMobileRightMenuButton'); - const rightMenu = control.querySelector('.jsRightMenu'); - - button.addEventListener("click", () => { - if (button.classList.contains('icon-close')) { - button.classList.remove('icon-close'); - button.classList.add('icon-options-vertical'); - console.log(rightMenu); - rightMenu.setAttribute('hidden', ''); - } - else { - button.classList.remove('icon-options-vertical'); - button.classList.add('icon-close'); - rightMenu.removeAttribute('hidden'); - } - }); -});*/ - - -/*const buttons = document.querySelectorAll(".jsMobileToggleRightMenu"); -Array.from(buttons).forEach(el => el.addEventListener("click", () => { - if (el.classList.contains('icon-close')) { - el.classList.remove('icon-close'); - el.classList.add('icon-options-vertical'); - const rightMenu = document.querySelectorAll(".jsRightMenu"); - rightMenu.classList.add("block"); - } - else { - el.classList.remove('icon-options-vertical'); - el.classList.add('icon-close'); - const rightMenu = document.querySelectorAll(".jsRightMenu"); - rightMenu.classList.add("sm-hidden"); - }; -}));*/ - document.addEventListener("DOMContentLoaded", function () { const componentSet = new Set(window.hubl.components.map(c => c.type)); From 4399ed4a42068890696fdc501e781863829d27fb Mon Sep 17 00:00:00 2001 From: gaelle morin Date: Thu, 15 Apr 2021 10:06:06 +0200 Subject: [PATCH 41/47] patch: New right menu on mobile - paddings and font sizes realigned --- src/styles/content/_index.scss | 4 ++-- src/views/partials/circle/page-circle-chat.pug | 2 +- src/views/partials/circle/page-circle-edit.pug | 2 +- src/views/partials/circle/page-circle-profile.pug | 2 +- src/views/partials/project/page-project-chat.pug | 2 +- src/views/partials/project/page-project-edit.pug | 4 ++-- src/views/partials/project/page-project-profile.pug | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/styles/content/_index.scss b/src/styles/content/_index.scss index a65f419..c3509ce 100644 --- a/src/styles/content/_index.scss +++ b/src/styles/content/_index.scss @@ -73,8 +73,8 @@ main { @media (max-width: 768px) { position: fixed; - top: 101px; - right: 3px; + top: 99px; + right: 0; height: auto; z-index: 2999; box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.14); diff --git a/src/views/partials/circle/page-circle-chat.pug b/src/views/partials/circle/page-circle-chat.pug index 8d55b39..4bff338 100644 --- a/src/views/partials/circle/page-circle-chat.pug +++ b/src/views/partials/circle/page-circle-chat.pug @@ -1,6 +1,6 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal div.segment.full.sm-three-quarter - solid-display.text-xxlarge.text-letter-spacing-large( + solid-display.text-xlarge.text-letter-spacing-large( bind-resources fields='name, dash, subtitle' diff --git a/src/views/partials/circle/page-circle-edit.pug b/src/views/partials/circle/page-circle-edit.pug index 8e4bbd7..80e9842 100644 --- a/src/views/partials/circle/page-circle-edit.pug +++ b/src/views/partials/circle/page-circle-edit.pug @@ -1,7 +1,7 @@ solid-ac-checker(permission='acl:Read', bind-resources) div.segment.full.padding-large.border-bottom.border-color-grey div.segment.half.sm-three-quarter - solid-display.text-xxlarge.text-letter-spacing-large( + solid-display.text-xlarge.text-letter-spacing-large( bind-resources fields='name, dash, subtitle' diff --git a/src/views/partials/circle/page-circle-profile.pug b/src/views/partials/circle/page-circle-profile.pug index 4a35005..2e612a1 100644 --- a/src/views/partials/circle/page-circle-profile.pug +++ b/src/views/partials/circle/page-circle-profile.pug @@ -10,7 +10,7 @@ div( solid-ac-checker.segment.block(permission='acl:Read', bind-resources) div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal div.segment.full.sm-three-quarter - solid-display.text-xxlarge.text-letter-spacing-large( + solid-display.text-xlarge.text-letter-spacing-large( bind-resources fields='name, dash, subtitle' diff --git a/src/views/partials/project/page-project-chat.pug b/src/views/partials/project/page-project-chat.pug index e458583..8007660 100644 --- a/src/views/partials/project/page-project-chat.pug +++ b/src/views/partials/project/page-project-chat.pug @@ -1,6 +1,6 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal div.segment.full.sm-three-quarter - solid-display.text-xxlarge.text-letter-spacing-large( + solid-display.text-xlarge.text-letter-spacing-large( bind-resources fields='const-title1, number, customer.name, dash, name' diff --git a/src/views/partials/project/page-project-edit.pug b/src/views/partials/project/page-project-edit.pug index b70343b..ec72b5e 100644 --- a/src/views/partials/project/page-project-edit.pug +++ b/src/views/partials/project/page-project-edit.pug @@ -1,7 +1,7 @@ solid-ac-checker(permission='acl:Read', bind-resources) - div.segment.full.padding-large.border-bottom.border-color-grey + div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal div.segment.half.sm-three-quarter - solid-display.text-xxlarge.text-letter-spacing-large( + solid-display.text-xlarge.text-letter-spacing-large( bind-resources fields='const-title1, number, customer.name, dash, name' diff --git a/src/views/partials/project/page-project-profile.pug b/src/views/partials/project/page-project-profile.pug index 0a9f023..28c1372 100644 --- a/src/views/partials/project/page-project-profile.pug +++ b/src/views/partials/project/page-project-profile.pug @@ -10,7 +10,7 @@ div( solid-ac-checker.segment.block(permission='acl:Read', bind-resources) div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal div.segment.full.sm-three-quarter - solid-display.text-xxlarge.text-letter-spacing-large( + solid-display.text-xlarge.text-letter-spacing-large( bind-resources fields='const-title1, number, customer.name, dash, name' From c4e3e6a2ce8230c13f30f75fe6493ac080e65a07 Mon Sep 17 00:00:00 2001 From: gaelle morin Date: Thu, 15 Apr 2021 10:39:05 +0200 Subject: [PATCH 42/47] patch: New right menu on mobile - whitespace added --- src/styles/content/_index.scss | 16 ---------------- .../partials/admin/page-admin-chat-create.pug | 2 ++ .../partials/admin/page-admin-circles-create.pug | 2 ++ .../admin/page-admin-projects-create.pug | 2 ++ src/views/partials/circle/page-circle-chat.pug | 2 +- src/views/partials/circle/page-circle-edit.pug | 2 +- .../partials/circle/page-circle-profile.pug | 2 +- src/views/partials/project/page-project-chat.pug | 2 +- src/views/partials/project/page-project-edit.pug | 2 +- .../partials/project/page-project-profile.pug | 2 +- 10 files changed, 12 insertions(+), 22 deletions(-) diff --git a/src/styles/content/_index.scss b/src/styles/content/_index.scss index c3509ce..71b14af 100644 --- a/src/styles/content/_index.scss +++ b/src/styles/content/_index.scss @@ -98,28 +98,12 @@ main { @media (min-width: 768.01px) { transform: translate(152px); } - - /* Quick fix. When you got time, use animation on the span instead */ - /*@media (max-width: 768px) { - ul>li:first-child>span, - ul>li:first-child>a { - visibility: hidden; - } - }*/ } &.jsRightMenu[open] { display: block; bottom: 0; right: 0; - - /*@media(max-width: 768px) { - box-shadow: 0 2px 9px 0 rgba(0, 0, 0, 0.12); - min-width: 60%; - position: fixed; - top: 50px; - z-index: 3000; - }*/ } } } diff --git a/src/views/partials/admin/page-admin-chat-create.pug b/src/views/partials/admin/page-admin-chat-create.pug index ce0335c..e6b4207 100644 --- a/src/views/partials/admin/page-admin-chat-create.pug +++ b/src/views/partials/admin/page-admin-chat-create.pug @@ -1,6 +1,8 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.padding-large.border-bottom.border-color-grey div.segment.full.sm-three-quarter h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='communities.title') + div.segment.half.sm-hidden.text-right + solid-link(class="backlink", next=`admin-${getRoute('chat', true)}` data-trans='circle.create.backlink') div.segment.lg-hidden.sm-quarter.text-right div.jsMobileRightMenuButton.icon.icon-close.icon-heading diff --git a/src/views/partials/admin/page-admin-circles-create.pug b/src/views/partials/admin/page-admin-circles-create.pug index 17f4f2f..d5b7e6c 100644 --- a/src/views/partials/admin/page-admin-circles-create.pug +++ b/src/views/partials/admin/page-admin-circles-create.pug @@ -1,6 +1,8 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey div.segment.full.sm-three-quarter h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='circle.create.title') + div.segment.half.sm-hidden.text-right + solid-link(class="backlink", next=`admin-${getRoute('circles', true)}` data-trans='circle.create.backlink') div.segment.lg-hidden.sm-quarter.text-right div.jsMobileRightMenuButton.icon.icon-close.icon-heading diff --git a/src/views/partials/admin/page-admin-projects-create.pug b/src/views/partials/admin/page-admin-projects-create.pug index 89e76cb..8dd66fe 100644 --- a/src/views/partials/admin/page-admin-projects-create.pug +++ b/src/views/partials/admin/page-admin-projects-create.pug @@ -1,6 +1,8 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey div.segment.full.sm-three-quarter h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='project.create.title') + div.segment.half.sm-hidden.text-right + solid-link(class="backlink", next=`admin-${getRoute('projects', true)}` data-trans='project.create.backlink') div.segment.lg-hidden.sm-quarter.text-right div.jsMobileRightMenuButton.icon.icon-close.icon-heading diff --git a/src/views/partials/circle/page-circle-chat.pug b/src/views/partials/circle/page-circle-chat.pug index 4bff338..c2a5a48 100644 --- a/src/views/partials/circle/page-circle-chat.pug +++ b/src/views/partials/circle/page-circle-chat.pug @@ -1,5 +1,5 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal - div.segment.full.sm-three-quarter + div.segment.full.sm-three-quarter.whitespace-normal solid-display.text-xlarge.text-letter-spacing-large( bind-resources fields='name, dash, subtitle' diff --git a/src/views/partials/circle/page-circle-edit.pug b/src/views/partials/circle/page-circle-edit.pug index 80e9842..fbad418 100644 --- a/src/views/partials/circle/page-circle-edit.pug +++ b/src/views/partials/circle/page-circle-edit.pug @@ -1,6 +1,6 @@ solid-ac-checker(permission='acl:Read', bind-resources) div.segment.full.padding-large.border-bottom.border-color-grey - div.segment.half.sm-three-quarter + div.segment.half.sm-three-quarter.whitespace-normal solid-display.text-xlarge.text-letter-spacing-large( bind-resources fields='name, dash, subtitle' diff --git a/src/views/partials/circle/page-circle-profile.pug b/src/views/partials/circle/page-circle-profile.pug index 2e612a1..d4f92fd 100644 --- a/src/views/partials/circle/page-circle-profile.pug +++ b/src/views/partials/circle/page-circle-profile.pug @@ -9,7 +9,7 @@ div( ) solid-ac-checker.segment.block(permission='acl:Read', bind-resources) div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal - div.segment.full.sm-three-quarter + div.segment.full.sm-three-quarter.whitespace-normal solid-display.text-xlarge.text-letter-spacing-large( bind-resources fields='name, dash, subtitle' diff --git a/src/views/partials/project/page-project-chat.pug b/src/views/partials/project/page-project-chat.pug index 8007660..8357e17 100644 --- a/src/views/partials/project/page-project-chat.pug +++ b/src/views/partials/project/page-project-chat.pug @@ -1,5 +1,5 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal - div.segment.full.sm-three-quarter + div.segment.full.sm-three-quarter.whitespace-normal solid-display.text-xlarge.text-letter-spacing-large( bind-resources fields='const-title1, number, customer.name, dash, name' diff --git a/src/views/partials/project/page-project-edit.pug b/src/views/partials/project/page-project-edit.pug index ec72b5e..659f552 100644 --- a/src/views/partials/project/page-project-edit.pug +++ b/src/views/partials/project/page-project-edit.pug @@ -1,6 +1,6 @@ solid-ac-checker(permission='acl:Read', bind-resources) div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal - div.segment.half.sm-three-quarter + div.segment.half.sm-three-quarter.whitespace-normal solid-display.text-xlarge.text-letter-spacing-large( bind-resources fields='const-title1, number, customer.name, dash, name' diff --git a/src/views/partials/project/page-project-profile.pug b/src/views/partials/project/page-project-profile.pug index 28c1372..ceb5ffa 100644 --- a/src/views/partials/project/page-project-profile.pug +++ b/src/views/partials/project/page-project-profile.pug @@ -9,7 +9,7 @@ div( ) solid-ac-checker.segment.block(permission='acl:Read', bind-resources) div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-padding-bottom-small.sm-padding-left-xsmall.border-bottom.border-color-grey.whitespace-normal - div.segment.full.sm-three-quarter + div.segment.full.sm-three-quarter.whitespace-normal solid-display.text-xlarge.text-letter-spacing-large( bind-resources fields='const-title1, number, customer.name, dash, name' From db3d1581163b9bc37114854bbbc10d0c3ee44761 Mon Sep 17 00:00:00 2001 From: gaelle morin Date: Thu, 15 Apr 2021 13:13:48 +0200 Subject: [PATCH 43/47] patch: New right menu on mobile - default behavior fixed --- src/scripts/navigate-event.js | 8 ++++---- src/styles/content/_index.scss | 4 +++- src/views/page-admin.pug | 2 +- src/views/page-circle.pug | 2 +- src/views/page-project.pug | 2 +- src/views/partials/admin/page-admin-chat-create.pug | 2 +- src/views/partials/admin/page-admin-chat.pug | 2 +- src/views/partials/admin/page-admin-circles-create.pug | 2 +- src/views/partials/admin/page-admin-circles.pug | 2 +- src/views/partials/admin/page-admin-projects-create.pug | 2 +- src/views/partials/admin/page-admin-projects.pug | 2 +- src/views/partials/circle/page-circle-chat.pug | 2 +- src/views/partials/circle/page-circle-edit.pug | 2 +- src/views/partials/circle/page-circle-profile.pug | 2 +- src/views/partials/project/page-project-chat.pug | 2 +- src/views/partials/project/page-project-edit.pug | 2 +- src/views/partials/project/page-project-profile.pug | 2 +- 17 files changed, 22 insertions(+), 20 deletions(-) diff --git a/src/scripts/navigate-event.js b/src/scripts/navigate-event.js index c847392..739df7a 100644 --- a/src/scripts/navigate-event.js +++ b/src/scripts/navigate-event.js @@ -44,12 +44,12 @@ Array.from(buttons).forEach(button => if (button.classList.contains('icon-close')) { button.classList.remove('icon-close'); button.classList.add('icon-options-vertical'); - rightMenu.setAttribute('hidden', ''); + rightMenu.classList.add('sm-hidden'); } else { button.classList.remove('icon-options-vertical'); button.classList.add('icon-close'); - rightMenu.removeAttribute('hidden'); + rightMenu.classList.remove('sm-hidden'); }; }) ) @@ -66,12 +66,12 @@ contentControls.forEach( if (contentButton.classList.contains('icon-close')) { contentButton.classList.remove('icon-close'); contentButton.classList.add('icon-options-vertical'); - contentSidebar.setAttribute('hidden', ''); + contentSidebar.classList.add('sm-hidden'); } else { contentButton.classList.remove('icon-options-vertical'); contentButton.classList.add('icon-close'); - contentSidebar.removeAttribute('hidden'); + contentSidebar.classList.remove('sm-hidden'); }; }) ) diff --git a/src/styles/content/_index.scss b/src/styles/content/_index.scss index 71b14af..8ca009f 100644 --- a/src/styles/content/_index.scss +++ b/src/styles/content/_index.scss @@ -69,7 +69,9 @@ main { /* Styles use with JS to open/close the sidebar */ &.jsRightMenu { - display: block; + @media (min-width: 768,01px) { + display: block; + } @media (max-width: 768px) { position: fixed; diff --git a/src/views/page-admin.pug b/src/views/page-admin.pug index 81fb335..f7adb47 100644 --- a/src/views/page-admin.pug +++ b/src/views/page-admin.pug @@ -57,7 +57,7 @@ ) include partials/admin/page-admin-chat-create.pug - nav.jsRightMenu.text-disable-selection.sidebar.whitespace-normal(role='navigation') + nav.jsRightMenu.segment.sm-hidden.text-disable-selection.sidebar.whitespace-normal(role='navigation') .segment.whitespace-normal.text-color-heading.text-bold ul li.segment.full.sm-hidden.padding-small.text-normal.jsOffsiteToggle diff --git a/src/views/page-circle.pug b/src/views/page-circle.pug index a3a0868..dbb98ef 100644 --- a/src/views/page-circle.pug +++ b/src/views/page-circle.pug @@ -41,7 +41,7 @@ ) include partials/circle/page-circle-polls.pug -nav.jsRightMenu.text-disable-selection.sidebar.whitespace-normal(role='navigation') +nav.jsRightMenu.segment.sm-hidden.text-disable-selection.sidebar.whitespace-normal(role='navigation') solid-router.segment.whitespace-normal.text-color-heading.text-bold(default-route=`${component.route}-chat`) ul li.segment.full.sm-hidden.padding-small.text-normal.jsOffsiteToggle diff --git a/src/views/page-project.pug b/src/views/page-project.pug index 834c13f..43e415a 100644 --- a/src/views/page-project.pug +++ b/src/views/page-project.pug @@ -22,7 +22,7 @@ ) include partials/project/page-project-picture.pug -nav.jsRightMenu.text-disable-selection.sidebar.whitespace-normal(role='navigation') +nav.jsRightMenu.segment.sm-hidden.text-disable-selection.sidebar.whitespace-normal(role='navigation') solid-router.segment.whitespace-normal.text-color-heading.text-bold(default-route=`${component.route}-chat`) ul li.segment.full.sm-hidden.padding-small.text-normal.jsOffsiteToggle diff --git a/src/views/partials/admin/page-admin-chat-create.pug b/src/views/partials/admin/page-admin-chat-create.pug index e6b4207..b59d8a1 100644 --- a/src/views/partials/admin/page-admin-chat-create.pug +++ b/src/views/partials/admin/page-admin-chat-create.pug @@ -4,7 +4,7 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-p div.segment.half.sm-hidden.text-right solid-link(class="backlink", next=`admin-${getRoute('chat', true)}` data-trans='circle.create.backlink') div.segment.lg-hidden.sm-quarter.text-right - div.jsMobileRightMenuButton.icon.icon-close.icon-heading + div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespace-normal div#loader-users-title.loader.loader diff --git a/src/views/partials/admin/page-admin-chat.pug b/src/views/partials/admin/page-admin-chat.pug index 32a3a93..8af7019 100644 --- a/src/views/partials/admin/page-admin-chat.pug +++ b/src/views/partials/admin/page-admin-chat.pug @@ -2,7 +2,7 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-p div.segment.full.sm-three-quarter h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='communities.title') div.segment.lg-hidden.sm-quarter.text-right - div.jsMobileRightMenuButton.icon.icon-close.icon-heading + div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespace-normal diff --git a/src/views/partials/admin/page-admin-circles-create.pug b/src/views/partials/admin/page-admin-circles-create.pug index d5b7e6c..696e627 100644 --- a/src/views/partials/admin/page-admin-circles-create.pug +++ b/src/views/partials/admin/page-admin-circles-create.pug @@ -4,7 +4,7 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-p div.segment.half.sm-hidden.text-right solid-link(class="backlink", next=`admin-${getRoute('circles', true)}` data-trans='circle.create.backlink') div.segment.lg-hidden.sm-quarter.text-right - div.jsMobileRightMenuButton.icon.icon-close.icon-heading + div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespace-normal div.loader.loader-top(id=`loader-admin-${getComponent('circles').uniq}`) diff --git a/src/views/partials/admin/page-admin-circles.pug b/src/views/partials/admin/page-admin-circles.pug index 788532f..e9c9843 100644 --- a/src/views/partials/admin/page-admin-circles.pug +++ b/src/views/partials/admin/page-admin-circles.pug @@ -2,7 +2,7 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-p div.segment.full.sm-three-quarter h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='circle.list.title') div.segment.lg-hidden.sm-quarter.text-right - div.jsMobileRightMenuButton.icon.icon-close.icon-heading + div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading div.segment.full.padding-large.padding-top-medium.padding-bottom-xsmall.sm-padding-xsmall.sm-padding-top-xxsmall.whitespace-normal diff --git a/src/views/partials/admin/page-admin-projects-create.pug b/src/views/partials/admin/page-admin-projects-create.pug index 8dd66fe..467b7ae 100644 --- a/src/views/partials/admin/page-admin-projects-create.pug +++ b/src/views/partials/admin/page-admin-projects-create.pug @@ -4,7 +4,7 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-p div.segment.half.sm-hidden.text-right solid-link(class="backlink", next=`admin-${getRoute('projects', true)}` data-trans='project.create.backlink') div.segment.lg-hidden.sm-quarter.text-right - div.jsMobileRightMenuButton.icon.icon-close.icon-heading + div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespace-normal div.loader.loader-top(id=`loader-admin-${getComponent('projects').uniq}`) diff --git a/src/views/partials/admin/page-admin-projects.pug b/src/views/partials/admin/page-admin-projects.pug index 6953b7c..1258c55 100644 --- a/src/views/partials/admin/page-admin-projects.pug +++ b/src/views/partials/admin/page-admin-projects.pug @@ -2,7 +2,7 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-p div.segment.full.sm-three-quarter h2.margin-none.text-color-heading.text-uppercase.text-xlarge.text-letter-spacing-large(data-trans='project.list.title') div.segment.lg-hidden.sm-quarter.text-right - div.jsMobileRightMenuButton.icon.icon-close.icon-heading + div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespace-normal diff --git a/src/views/partials/circle/page-circle-chat.pug b/src/views/partials/circle/page-circle-chat.pug index c2a5a48..80ad844 100644 --- a/src/views/partials/circle/page-circle-chat.pug +++ b/src/views/partials/circle/page-circle-chat.pug @@ -10,7 +10,7 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-p class-dash='text-color-heading text-bold' ) div.segment.lg-hidden.sm-quarter.text-right - div.jsMobileRightMenuButton.icon.icon-close.icon-heading + div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading .chat-view.segment.full.whitespace-normal solid-xmpp-chat( diff --git a/src/views/partials/circle/page-circle-edit.pug b/src/views/partials/circle/page-circle-edit.pug index fbad418..a7154f0 100644 --- a/src/views/partials/circle/page-circle-edit.pug +++ b/src/views/partials/circle/page-circle-edit.pug @@ -13,7 +13,7 @@ solid-ac-checker(permission='acl:Read', bind-resources) div.segment.half.sm-hidden.text-right solid-link(class="backlink", bind-resources, next=`${component.route}-profile` data-trans='circle.edit.backlink') div.segment.lg-hidden.sm-quarter.text-right - div.jsMobileRightMenuButton.icon.icon-close.icon-heading + div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading div.segment.full.padding-large.whitespace-normal diff --git a/src/views/partials/circle/page-circle-profile.pug b/src/views/partials/circle/page-circle-profile.pug index d4f92fd..cf29c68 100644 --- a/src/views/partials/circle/page-circle-profile.pug +++ b/src/views/partials/circle/page-circle-profile.pug @@ -20,7 +20,7 @@ div( class-dash='text-color-heading text-bold' ) div.segment.lg-hidden.sm-quarter.text-right - div.jsMobileRightMenuButton.icon.icon-close.icon-heading + div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-xlarge div.loader(id=`loader-${component.route}-profile-1`) diff --git a/src/views/partials/project/page-project-chat.pug b/src/views/partials/project/page-project-chat.pug index 8357e17..0af8628 100644 --- a/src/views/partials/project/page-project-chat.pug +++ b/src/views/partials/project/page-project-chat.pug @@ -14,7 +14,7 @@ div.segment.full.padding-large.sm-padding-top-small.sm-padding-right-xsmall.sm-p value-dash=' - ' ) div.segment.lg-hidden.sm-quarter.text-right - div.jsMobileRightMenuButton.icon.icon-close.icon-heading + div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading .chat-view.segment.full.whitespace-normal solid-xmpp-chat( diff --git a/src/views/partials/project/page-project-edit.pug b/src/views/partials/project/page-project-edit.pug index 659f552..08ff1a7 100644 --- a/src/views/partials/project/page-project-edit.pug +++ b/src/views/partials/project/page-project-edit.pug @@ -17,7 +17,7 @@ solid-ac-checker(permission='acl:Read', bind-resources) div.segment.half.sm-hidden.text-right solid-link(class='backlink', bind-resources, next=`${component.route}-profile` data-trans='project.edit.backlink') div.segment.lg-hidden.sm-quarter.text-right - div.jsMobileRightMenuButton.icon.icon-close.icon-heading + div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading div.segment.full.padding-large.whitespace-normal diff --git a/src/views/partials/project/page-project-profile.pug b/src/views/partials/project/page-project-profile.pug index ceb5ffa..ca86e47 100644 --- a/src/views/partials/project/page-project-profile.pug +++ b/src/views/partials/project/page-project-profile.pug @@ -24,7 +24,7 @@ div( value-dash=' - ' ) div.segment.lg-hidden.sm-quarter.text-right - div.jsMobileRightMenuButton.icon.icon-close.icon-heading + div.jsMobileRightMenuButton.icon.icon-options-vertical.icon-heading div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-xlarge div.loader(id=`loader-${component.route}-profile`) From f1cf8b41fdef52c24047be2b549e93d26d9af2ed Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Thu, 15 Apr 2021 15:57:17 +0200 Subject: [PATCH 44/47] minor: integrate invoices --- README.md | 30 +++++++++++++++++++ src/views/page-circle.pug | 18 +++++------ src/views/page-project.pug | 17 +++++++++++ .../project/page-project-invoices.pug | 5 ++++ 4 files changed, 61 insertions(+), 9 deletions(-) create mode 100644 src/views/partials/project/page-project-invoices.pug diff --git a/README.md b/README.md index 2d707d1..8e5861c 100644 --- a/README.md +++ b/README.md @@ -424,6 +424,36 @@ Where: Setting custom langs will not allow user to choose their own lang. +### Invoices + +Invoices allow your Projects to manage invoices + +Project is mandatory. + +You'll need: + +On Server: `djangoldp_invoice` packages + +Module declaration, on `config.json`: + +```json + { + "type": "projects", + "extensions": [ + { + "type": "invoices", + "endpoints": { + "uploads": "http://server.url/upload/" + } + } + ] + } +``` + +Where: + +* `xmpp` is your [Prosody](https://prosody.im/) with [appropriate modules](https://git.startinblox.com/infra/prosody-modules/) configured on. + ### Job Offers Job Offers includes a job board with conversation. To activate them diff --git a/src/views/page-circle.pug b/src/views/page-circle.pug index f2ecede..f52c76c 100644 --- a/src/views/page-circle.pug +++ b/src/views/page-circle.pug @@ -18,25 +18,25 @@ for extension of component.extensions if extension.type == 'events' div( - id=`${component.route}-events` + id=`${extension.route}-events` hidden - data-view=`${component.route}-events` + data-view=`${extension.route}-events` no-render ) include partials/circle/page-circle-events.pug if extension.type == 'resources' div( - id=`${component.route}-resources` + id=`${extension.route}-resources` hidden - data-view=`${component.route}-resources` + data-view=`${extension.route}-resources` no-render ) include partials/circle/page-circle-resources.pug if extension.type == 'polls' div( - id=`${component.route}-polls` + id=`${extension.route}-polls` hidden - data-view=`${component.route}-polls` + data-view=`${extension.route}-polls` no-render ) include partials/circle/page-circle-polls.pug @@ -60,17 +60,17 @@ nav.jsRightMenu.text-disable-selection.sidebar.whitespace-normal(role='navigatio if component.extensions for extension of component.extensions if extension.type == 'resources' - solid-route.segment.full(name=`${component.route}-resources` use-id) + solid-route.segment.full(name=`${extension.route}-resources` use-id) li.segment.full.padding-medium span.icon.ci-file.icon-xlarge.margin-right-medium a(data-trans='circle.menuRight.resources') if extension.type == 'events' - solid-route.segment.full(name=`${component.route}-events` use-id) + solid-route.segment.full(name=`${extension.route}-events` use-id) li.segment.full.padding-medium span.icon.ci-appointment.icon-xlarge.margin-right-medium a(data-trans='circle.menuRight.events') if extension.type == 'polls' - solid-route.segment.full(name=`${component.route}-polls` use-id) + solid-route.segment.full(name=`${extension.route}-polls` use-id) li.segment.full.padding-medium span.icon.ci-list.icon-xlarge.margin-right-medium a(data-trans='circle.menuRight.polls') diff --git a/src/views/page-project.pug b/src/views/page-project.pug index b79b4e9..eacb578 100644 --- a/src/views/page-project.pug +++ b/src/views/page-project.pug @@ -21,6 +21,16 @@ no-render ) include partials/project/page-project-picture.pug + if component.extensions + for extension of component.extensions + if extension.type == 'invoices' + div( + id=`${extension.route}-invoices` + hidden + data-view=`${extension.route}-invoices` + no-render + ) + include partials/project/page-project-invoices.pug nav.jsRightMenu.text-disable-selection.sidebar.whitespace-normal(role='navigation') solid-router.segment.whitespace-normal.text-color-heading.text-bold(default-route=`${component.route}-chat`) @@ -39,3 +49,10 @@ nav.jsRightMenu.text-disable-selection.sidebar.whitespace-normal(role='navigatio span.icon.ci-information.icon-xlarge.margin-right-medium a(data-trans='project.menuRight.information') solid-route(name=`${component.route}-picture` use-id) + if component.extensions + for extension of component.extensions + if extension.type == 'invoices' + solid-route.segment.full(name=`${extension.route}-invoices` use-id) + li.segment.full.padding-medium + span.icon.ci-list.icon-xlarge.margin-right-medium + a(data-trans='circle.menuRight.invoices') diff --git a/src/views/partials/project/page-project-invoices.pug b/src/views/partials/project/page-project-invoices.pug new file mode 100644 index 0000000..63eb05e --- /dev/null +++ b/src/views/partials/project/page-project-invoices.pug @@ -0,0 +1,5 @@ +solid-invoicing( + bind-resources + upload-dir=`${extension.endpoints.uploads}` + uniq=extension.uniq +) \ No newline at end of file From a752e44e066c5df9fb9b2a0522589155af3be914 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Thu, 15 Apr 2021 21:49:06 +0200 Subject: [PATCH 45/47] fix: js right menu handler --- src/scripts/navigate-event.js | 97 ++++++++++--------- src/styles/content/_index.scss | 4 + src/views/page-admin.pug | 2 +- .../partials/admin/page-admin-chat-create.pug | 12 +-- 4 files changed, 62 insertions(+), 53 deletions(-) diff --git a/src/scripts/navigate-event.js b/src/scripts/navigate-event.js index 739df7a..9fb041a 100644 --- a/src/scripts/navigate-event.js +++ b/src/scripts/navigate-event.js @@ -19,13 +19,27 @@ function closeRightMenu() { el.querySelector('.text-right').setAttribute('hidden', ''); el.querySelector('.text-left').removeAttribute('hidden'); }); - Array.from(rightMenu).forEach(el => el.removeAttribute("open")); + Array.from(rightMenu).forEach(el => { + el.removeAttribute("open"); + el.classList.add('sm-hidden'); + Array.from(el.parentElement.querySelectorAll('.jsMobileRightMenuButton')).forEach(ac => { + ac.classList.remove('icon-close'); + ac.classList.add('icon-options-vertical'); + }); + }); } } function openRightMenu() { let rightMenu = document.querySelectorAll(".jsRightMenu"); - Array.from(rightMenu).forEach(el => el.setAttribute("open", "")); + Array.from(rightMenu).forEach(el => { + el.setAttribute("open", ""); + el.classList.remove('sm-hidden'); + Array.from(el.parentElement.querySelectorAll('.jsMobileRightMenuButton')).forEach(ac => { + ac.classList.remove('icon-options-vertical'); + ac.classList.add('icon-close'); + }); + }); Array.from(document.querySelectorAll(".jsOffsiteToggle")).forEach(el => { el.querySelector('.text-left').setAttribute('hidden', ''); el.querySelector('.text-right').removeAttribute('hidden'); @@ -35,48 +49,31 @@ function openRightMenu() { ); } -const adminControl = document.querySelector('.jsMobileSidebarAdminControl'); -const buttons = adminControl.querySelectorAll('.jsMobileRightMenuButton'); -const rightMenu = adminControl.querySelector('.jsRightMenu'); - -Array.from(buttons).forEach(button => - button.addEventListener("click", () => { - if (button.classList.contains('icon-close')) { - button.classList.remove('icon-close'); - button.classList.add('icon-options-vertical'); - rightMenu.classList.add('sm-hidden'); - } - else { - button.classList.remove('icon-options-vertical'); - button.classList.add('icon-close'); - rightMenu.classList.remove('sm-hidden'); - }; - }) -) - -const contentControls = Array.from(document.querySelectorAll('.jsMobileContentSidebarControl')); - -contentControls.forEach( - contentControl => { - const contentSidebar = contentControl.querySelector('.jsRightMenu'); - const contentButtons = contentControl.querySelectorAll('.jsMobileRightMenuButton'); - - Array.from(contentButtons).forEach(contentButton => - contentButton.addEventListener('click', () => { - if (contentButton.classList.contains('icon-close')) { - contentButton.classList.remove('icon-close'); - contentButton.classList.add('icon-options-vertical'); - contentSidebar.classList.add('sm-hidden'); - } - else { - contentButton.classList.remove('icon-options-vertical'); - contentButton.classList.add('icon-close'); - contentSidebar.classList.remove('sm-hidden'); - }; - }) - ) +function closeRightMobileMenu() { + let rightMenu = document.querySelectorAll(".jsRightMenu"); + if (Array.from(rightMenu).filter(el => el.hasAttribute("mobile-open")).length > 0) { + Array.from(rightMenu).forEach(el => { + el.removeAttribute("mobile-open"); + el.classList.add('sm-hidden'); + Array.from(el.parentElement.querySelectorAll('.jsMobileRightMenuButton')).forEach(ac => { + ac.classList.remove('icon-close'); + ac.classList.add('icon-options-vertical'); + }); + }); } -); +} + +function openRightMobileMenu() { + let rightMenu = document.querySelectorAll(".jsRightMenu"); + Array.from(rightMenu).forEach(el => { + el.setAttribute("mobile-open", ""); + el.classList.remove('sm-hidden'); + Array.from(el.parentElement.querySelectorAll('.jsMobileRightMenuButton')).forEach(ac => { + ac.classList.remove('icon-options-vertical'); + ac.classList.add('icon-close'); + }); + }); +} document.addEventListener("DOMContentLoaded", function () { const componentSet = new Set(window.hubl.components.map(c => c.type)); @@ -155,9 +152,11 @@ document.addEventListener("DOMContentLoaded", function () { closeLeftMenu(); } if ( - !event.target.closest(".jsOffsiteToggle") + !event.target.closest(".jsOffsiteToggle") && + !event.target.classList.contains('jsMobileRightMenuButton') ) { closeRightMenu(); + closeRightMobileMenu(); } }); @@ -168,6 +167,7 @@ document.addEventListener("DOMContentLoaded", function () { closeUserControls(); closeLeftMenu(); closeRightMenu(); + closeRightMobileMenu(); } }; @@ -195,10 +195,15 @@ document.addEventListener("DOMContentLoaded", function () { }); }); - Array.from(document.querySelectorAll(".jsMobileSidebarOpenButton")).forEach( + + Array.from(document.querySelectorAll(".jsMobileRightMenuButton")).forEach( el => { el.addEventListener("click", () => { - openRightMenu(); + if (el.closest('.jsMobileContentSidebarControl').querySelector('nav.jsRightMenu').hasAttribute("mobile-open")) { + closeRightMobileMenu(); + } else { + openRightMobileMenu(); + } }); } ); diff --git a/src/styles/content/_index.scss b/src/styles/content/_index.scss index 8ca009f..782105b 100644 --- a/src/styles/content/_index.scss +++ b/src/styles/content/_index.scss @@ -108,6 +108,10 @@ main { right: 0; } } + + .jsMobileRightMenuButton { + float: right; + } } /* Add scrollbar to the left menu and to the content */ diff --git a/src/views/page-admin.pug b/src/views/page-admin.pug index f7adb47..6e715bf 100644 --- a/src/views/page-admin.pug +++ b/src/views/page-admin.pug @@ -1,4 +1,4 @@ -.with-sidebar.jsMobileSidebarAdminControl.whitespace-normal.bg-color-white.only-on-admin(hidden) +.with-sidebar.jsMobileContentSidebarControl.whitespace-normal.bg-color-white.only-on-admin(hidden) .scrollbar-content.views-container.sidebar-is-closed for component of components if component.route diff --git a/src/views/partials/admin/page-admin-chat-create.pug b/src/views/partials/admin/page-admin-chat-create.pug index b59d8a1..a2a70bb 100644 --- a/src/views/partials/admin/page-admin-chat-create.pug +++ b/src/views/partials/admin/page-admin-chat-create.pug @@ -13,12 +13,6 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac div div - div#loader-users-create.loader.loader-top - div - div - div - div - div.segment.margin-bottom-medium div.segment solid-display.text-color-heading.text-semibold.text-xlarge.text-letter-spacing-large( @@ -29,6 +23,12 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac loader-id='loader-users-title' ) + div#loader-users-create.loader.loader-top + div + div + div + div + solid-form.form#selected-community( bind-resources nested-field='members' From 781930e59d579654e7a56dad8d8bf6670abdc418 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Thu, 15 Apr 2021 21:58:19 +0200 Subject: [PATCH 46/47] feature: implement ctrl+k --- src/scripts/keyboard-shortcuts.js | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 src/scripts/keyboard-shortcuts.js diff --git a/src/scripts/keyboard-shortcuts.js b/src/scripts/keyboard-shortcuts.js new file mode 100644 index 0000000..561c41d --- /dev/null +++ b/src/scripts/keyboard-shortcuts.js @@ -0,0 +1,9 @@ +document.addEventListener("keydown", function (e) { + /* + CTRL + K : Focus on the user search + */ + if(e.ctrlKey && e.key == "k") { + document.querySelector('#general-search input[type="text"]').focus(); + e.preventDefault(); + } +}); From 311bffcc1b8c8ec506038c75bd945ece926ec521 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Pasquier Date: Fri, 16 Apr 2021 17:23:00 +0200 Subject: [PATCH 47/47] fix: circle creation and edition --- .../admin/page-admin-circles-create.pug | 17 +++++++++-------- src/views/partials/circle/page-circle-edit.pug | 17 +++++++++-------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/src/views/partials/admin/page-admin-circles-create.pug b/src/views/partials/admin/page-admin-circles-create.pug index 696e627..c5e5f70 100644 --- a/src/views/partials/admin/page-admin-circles-create.pug +++ b/src/views/partials/admin/page-admin-circles-create.pug @@ -16,33 +16,34 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac solid-form.form( data-src=`${getComponent('circles').endpoints.post}` - fields='status, community, name, subtitle, description, help' + fields='status, community.community, name, subtitle, description, help' required-status - required-community + required-community.community required-name required-subtitle loader-id=`loader-admin-${getComponent('circles').uniq}` class-status='segment margin-bottom-medium half sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading whitespace-normal' - class-community='segment margin-bottom-medium half sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading whitespace-normal' + class-community.community='segment margin-bottom-medium half sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading whitespace-normal' class-name='segment margin-bottom-medium half sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' class-subtitle='segment margin-bottom-medium half sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' class-description='segment margin-bottom-xxsmall full text-small text-semibold text-uppercase text-color-heading' class-help='segment full text-small margin-bottom-medium padding-left-small' label-status='' - label-community='' + label-community.community='' label-name='' label-subtitle='' label-description='' label-help='' - range-community='store://user.communities' - option-label-community="community.name" + range-community.community='store://user.communities' + option-label-community.community="community.name" + option-value-community.community="community" widget-status='solid-form-dropdown-autocompletion-label' enum-status="" - widget-community='solid-form-dropdown-autocompletion-label' + widget-community.community='solid-form-dropdown-autocompletion-label' widget-linebreak='solid-form-hidden' widget-description='solid-form-richtext-label' @@ -53,5 +54,5 @@ div.segment.full.padding-large.sm-padding-xsmall.sm-padding-top-medium.whitespac submit-button='' submit-widget="button" - data-trans='enum-status=hublStatus;label-status=circle.create.labelStatus;label-community=circle.create.labelCommunity;label-name=circle.create.labelName;label-description=circle.create.labelDescription;submit-button=circle.create.buttonSubmit;label-subtitle=circle.create.labelSubtitle;label-help=circle.create.descriptionHelp' + data-trans='enum-status=hublStatus;label-status=circle.create.labelStatus;label-community.community=circle.create.labelCommunity;label-name=circle.create.labelName;label-description=circle.create.labelDescription;submit-button=circle.create.buttonSubmit;label-subtitle=circle.create.labelSubtitle;label-help=circle.create.descriptionHelp' ) diff --git a/src/views/partials/circle/page-circle-edit.pug b/src/views/partials/circle/page-circle-edit.pug index a7154f0..1e0bfcd 100644 --- a/src/views/partials/circle/page-circle-edit.pug +++ b/src/views/partials/circle/page-circle-edit.pug @@ -27,12 +27,12 @@ div.segment.full.padding-large.whitespace-normal solid-form.form( bind-resources - fields='name, subtitle, description, status, community, owner' + fields='name, subtitle, description, status, community.community, owner' required-status required-name required-owner required-subtitle - required-community + required-community.community range-owner=`${component.endpoints.owners}` label-name='' @@ -40,14 +40,14 @@ div.segment.full.padding-large.whitespace-normal label-description='' label-subtitle='' label-status='' - label-community='' + label-community.community='' label-help='' class-name='segment margin-bottom-medium half sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' class-subtitle='segment margin-bottom-medium half sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading' class-description='segment margin-bottom-medium full text-small text-semibold text-uppercase text-color-heading' class-status='segment margin-bottom-medium half sm-full padding-right-small sm-padding-none text-small text-semibold text-uppercase text-color-heading whitespace-normal' - class-community='segment margin-bottom-medium half sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading whitespace-normal' + class-community.community='segment margin-bottom-medium half sm-full padding-left-small sm-padding-none text-small text-semibold text-uppercase text-color-heading whitespace-normal' class-owner='hidden' class-help='segment full text-small margin-bottom-medium padding-left-small' @@ -55,11 +55,12 @@ div.segment.full.padding-large.whitespace-normal enum-status="" widget-description='solid-form-richtext-label' widget-help='solid-form-hidden-label' - widget-community='solid-form-dropdown-autocompletion-label' + widget-community.community='solid-form-dropdown-autocompletion-label' widget-owner='solid-form-dropdown-autocompletion-label' - range-community='store://user.communities' - option-label-community="community.name" + range-community.community='store://user.communities' + option-label-community.community="community.name" + option-value-community.community="community" partial='' @@ -67,7 +68,7 @@ div.segment.full.padding-large.whitespace-normal submit-widget="button" next=`${component.route}-information` - data-trans='enum-status=hublStatus;label-status=circle.edit.labelStatus;label-community=circle.edit.labelCommunity;label-name=circle.edit.labelName;label-owner=circle.edit.labelOwner;label-description=circle.edit.labelDescription;submit-button=circle.edit.buttonSubmit;label-subtitle=circle.edit.labelSubtitle;label-help=circle.edit.descriptionHelp' + data-trans='enum-status=hublStatus;label-status=circle.edit.labelStatus;label-community.community=circle.edit.labelCommunity;label-name=circle.edit.labelName;label-owner=circle.edit.labelOwner;label-description=circle.edit.labelDescription;submit-button=circle.edit.buttonSubmit;label-subtitle=circle.edit.labelSubtitle;label-help=circle.edit.descriptionHelp' ) h3.segment.full.padding-bottom-small.border-bottom.border-color-grey.text-color-heading.text-bold.text-letter-spacing-large(data-trans='circle.edit.subTitle')