From eff95dd5c2dd691615ba3fab4444a1c082fbaf09 Mon Sep 17 00:00:00 2001 From: Unai Abrisketa Date: Tue, 14 Sep 2021 11:06:17 +0200 Subject: [PATCH 01/76] Minor fixes --- CHANGELOG.md | 12 +++ Gemfile.lock | 10 +-- .../beyond_canvas/components/_collapse.scss | 4 +- .../beyond_canvas/components/_links.scss | 77 +++++-------------- .../beyond_canvas/utilities/_mixins.scss | 27 ------- .../beyond_canvas/application_helper.rb | 14 ---- lib/beyond_canvas/version.rb | 2 +- lib/models/concerns/authentication.rb | 4 +- 8 files changed, 41 insertions(+), 109 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 514b5bfd..ec4697f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +### v0.23.1.pre + +* deprecations + * Remove `link_to_with_icon` + * `external_link` icon will no longer be automatically added on `target="_blank"` anchors + +* bug-fixes + * Minor style fixes + +* enhancements + * Allow to retrieve `client_credentials` token on any environment but `production` + ### v0.23.0.pre * deprecations diff --git a/Gemfile.lock b/Gemfile.lock index b0066642..91e5cfeb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ PATH remote: . specs: - beyond_canvas (0.23.0.pre) + beyond_canvas (0.23.1.pre) attr_encrypted (~> 3.1) beyond_api (>= 0.18.0.pre) bourbon (~> 7.0) @@ -97,7 +97,7 @@ GEM erubi (1.10.0) faraday (0.17.4) multipart-post (>= 1.2, < 3) - ffi (1.15.3) + ffi (1.15.4) globalid (0.5.2) activesupport (>= 5.0) htmlentities (4.3.4) @@ -125,9 +125,9 @@ GEM minitest (5.14.4) multipart-post (2.1.1) nio4r (2.5.8) - nokogiri (1.12.3-x86_64-darwin) + nokogiri (1.12.4-x86_64-darwin) racc (~> 1.4) - nokogiri (1.12.3-x86_64-linux) + nokogiri (1.12.4-x86_64-linux) racc (~> 1.4) parallel (1.20.1) parser (3.0.2.0) @@ -162,7 +162,7 @@ GEM rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.4.1) + rails-html-sanitizer (1.4.2) loofah (~> 2.3) railties (6.1.4.1) actionpack (= 6.1.4.1) diff --git a/app/assets/stylesheets/beyond_canvas/components/_collapse.scss b/app/assets/stylesheets/beyond_canvas/components/_collapse.scss index 04b24fae..b27f172b 100644 --- a/app/assets/stylesheets/beyond_canvas/components/_collapse.scss +++ b/app/assets/stylesheets/beyond_canvas/components/_collapse.scss @@ -9,7 +9,7 @@ } &__button { - color: var(--primary-color); + color: var(--primaryLink-color); font-weight: 700; cursor: pointer; display: block; @@ -23,7 +23,7 @@ &__icon { @include size(10px); - fill: var(--primary-color); + fill: var(--primaryLink-color); margin-right: 2px; &--open { diff --git a/app/assets/stylesheets/beyond_canvas/components/_links.scss b/app/assets/stylesheets/beyond_canvas/components/_links.scss index 1f51fff5..5b077c9b 100644 --- a/app/assets/stylesheets/beyond_canvas/components/_links.scss +++ b/app/assets/stylesheets/beyond_canvas/components/_links.scss @@ -5,81 +5,42 @@ pointer-events: none; } -%link { +@mixin link($color, $color-hover) { + color: var(#{$color}); line-height: 1.2; -} - -@mixin external($color) { - background-image: url('data:image/svg+xml;utf8,\ - \ - \ - '); - - background-position-x: right; - background-position-y: center; - background-repeat: no-repeat; - background-size: 12px; - padding-right: 18px; - - @include recolor($color, 1); &:hover { - @include recolor(darken($color, 10%), 1); + color: var(#{$color-hover}); - transition: $main-transition; + svg { + fill: var(#{$color-hover}); + } } -} -.link { - &__icon--left, - &__icon--right { - @include size(14px); - } + svg { + fill: var(#{$color}); - &__icon--left { - margin-right: 6px; - } + &:first-child { + margin-right: 4px; + } - &__icon--right { - margin-left: 6px; + &:last-child { + margin-left: 6px; + } } +} +.link { &--primary { - color: var(--primaryLink-color); - - @extend %link; - - &:hover { - color: var(--primaryLink-hover-color); - } - - &[target="_blank"] { - @include external($link-primary-color) - } + @include link(--primaryLink-color, --primaryLink-hover-color); } &--secondary { - color: var(--defaultLink-color); - - @extend %link; - - &:hover { - color: var(--defaultLink-hover-color); - } - - &[target="_blank"] { - @include external($link-secondary-color) - } + @include link(--defaultLink-color, --defaultLink-hover-color); } &--danger { - @include color-darken($link-danger-color, 10%); - - @extend %link; - - &[target="_blank"] { - @include external($link-secondary-color) - } + @include link(--button-danger-background, --button-danger-background-hover); } &--primary, diff --git a/app/assets/stylesheets/beyond_canvas/utilities/_mixins.scss b/app/assets/stylesheets/beyond_canvas/utilities/_mixins.scss index 221735c5..21ad93f7 100644 --- a/app/assets/stylesheets/beyond_canvas/utilities/_mixins.scss +++ b/app/assets/stylesheets/beyond_canvas/utilities/_mixins.scss @@ -31,30 +31,3 @@ background-color: lighten($color, $percent); transition: $main-transition; } - -// SEE: https://stackoverflow.com/questions/42966641/how-to-transform-black-into-any-given-color-using-only-css-filters/62880368#62880368 -@mixin recolor($color: #000, $opacity: 1) { - $r: red($color) / 255; - $g: green($color) / 255; - $b: blue($color) / 255; - $a: $opacity; - - // grayscale fallback if SVG from data url is not supported - $lightness: lightness($color); - filter: saturate(0%) brightness(0%) invert($lightness) opacity($opacity); - - // color filter - $svg-filter-id: "recolor"; - filter: url('data:image/svg+xml;utf8,\ - \ - \ - \ - \ - \ - ##{$svg-filter-id}'); -} diff --git a/app/helpers/beyond_canvas/application_helper.rb b/app/helpers/beyond_canvas/application_helper.rb index 9f8957df..4bdf2aa1 100644 --- a/app/helpers/beyond_canvas/application_helper.rb +++ b/app/helpers/beyond_canvas/application_helper.rb @@ -8,20 +8,6 @@ def full_title(page_title = '') page_title.empty? ? base_title : page_title + ' | ' + base_title end - def link_to_with_icon(name = nil, options = nil, fa_class = nil, html_options = nil) - options ||= {} - - html_options = convert_options_to_data_attributes(options, html_options) - - url = url_for(options) - html_options['href'] ||= url - - content_tag('a', name || url, html_options) do - (fa_class.nil? ? '' : content_tag('i', nil, class: ['link__icon ' + fa_class])) + - name - end - end - %i[success info warning error].each do |method| define_method :"notice_#{method}" do |name = nil, html_options = nil, &block| notice_render(method, name, html_options, &block) diff --git a/lib/beyond_canvas/version.rb b/lib/beyond_canvas/version.rb index 0f50da45..4586bbfa 100644 --- a/lib/beyond_canvas/version.rb +++ b/lib/beyond_canvas/version.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true module BeyondCanvas - VERSION = '0.23.0.pre' + VERSION = '0.23.1.pre' end diff --git a/lib/models/concerns/authentication.rb b/lib/models/concerns/authentication.rb index 29e25a12..2034bedc 100644 --- a/lib/models/concerns/authentication.rb +++ b/lib/models/concerns/authentication.rb @@ -43,7 +43,7 @@ module Authentication # :nodoc: def authenticate(code) session = BeyondApi::Session.new(api_url: beyond_api_url) - if Rails.env.development? && BeyondCanvas.configuration.client_credentials + if !Rails.env.production? && BeyondCanvas.configuration.client_credentials session.token.client_credentials else session.token.authorization_code(code) @@ -55,7 +55,7 @@ def authenticate(code) def authenticated? beyond_access_token.present? && - (Rails.env.development? && BeyondCanvas.configuration.client_credentials || beyond_refresh_token.present?) + (!Rails.env.production? && BeyondCanvas.configuration.client_credentials || beyond_refresh_token.present?) end end end From 80f285aebff599e80aa944b502e00ade369fb2bd Mon Sep 17 00:00:00 2001 From: German Date: Wed, 15 Sep 2021 14:17:35 +0200 Subject: [PATCH 02/76] Call-to-main-routes (#62) * Replace input file by number * Use main_app to call engine routes --- app/views/beyond_canvas/authentications/new.html.erb | 2 +- app/views/beyond_canvas/shared/_locales.html.erb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/beyond_canvas/authentications/new.html.erb b/app/views/beyond_canvas/authentications/new.html.erb index abf8b953..96aca7f2 100644 --- a/app/views/beyond_canvas/authentications/new.html.erb +++ b/app/views/beyond_canvas/authentications/new.html.erb @@ -3,7 +3,7 @@
- <%= form_with(url: callback_path, method: :post, scope: :shop, model: @shop, local: true, builder: BeyondCanvas::FormBuilder) do |f| %> + <%= form_with(url: main_app.callback_path, method: :post, scope: :shop, model: @shop, local: true, builder: BeyondCanvas::FormBuilder) do |f| %>

<%= I18n.t('headline', app_name: app_name, scope: i18n_scope) %>

diff --git a/app/views/beyond_canvas/shared/_locales.html.erb b/app/views/beyond_canvas/shared/_locales.html.erb index 29bbeb56..4c62cef1 100644 --- a/app/views/beyond_canvas/shared/_locales.html.erb +++ b/app/views/beyond_canvas/shared/_locales.html.erb @@ -1,5 +1,5 @@ <% if show_locale_switch? && !is_cockpit_app? %> - <%= form_for :system, url: update_locale_path, method: :put do |f| %> + <%= form_for :system, url: main_app.update_locale_path, method: :put do |f| %> <%= f.select :locale, I18n.available_locales.collect { |l| [translate_locale(l), l] }, { selected: cookies[:locale] }, class: 'select--locale', From 23ffe7b6620d30196ec432a79456ec72050a4323 Mon Sep 17 00:00:00 2001 From: Unai Abrisketa Date: Tue, 21 Sep 2021 14:29:40 +0200 Subject: [PATCH 03/76] Add missing variables (#63) * Remove jquery ujs dependency * Add eslint * Decrease bourbon version * Add invalid bindidng for enabling buttons * Update versions * Build javascripts * Update changelog * Remove eslint-plugin-promise dependency * Add styles for disabled inputs and buttons * Add support for rails default alert flashes * Update gem version * Close flashes only when clicking flash__close * Add styles to support select2 * Update changelog * Move to variables * Move colors to variables * Update variables * Add missing variables --- .../beyond_canvas/components/_buttons.scss | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/assets/stylesheets/beyond_canvas/components/_buttons.scss b/app/assets/stylesheets/beyond_canvas/components/_buttons.scss index b4f36d4d..821eb5e1 100644 --- a/app/assets/stylesheets/beyond_canvas/components/_buttons.scss +++ b/app/assets/stylesheets/beyond_canvas/components/_buttons.scss @@ -19,11 +19,11 @@ pointer-events: none; color: var(--button-disabled-text); text-shadow: var(--button-disabled-textShadow); - border-bottom-color: #aaaaaa; + border-bottom-color: var(--button-disabled-borderBottom-color); } -@mixin button-border-bottom($border-bottom-color) { - border-bottom: var(--button-borderBottom-width) solid var(#{$border-bottom-color}); +@mixin button-border-bottom($border-bottom-width, $border-bottom-color) { + border-bottom: var(#{$border-bottom-width}) solid var(#{$border-bottom-color}); } @mixin button-solid($background, $background-hover, $color) { @@ -77,21 +77,21 @@ input[type=file][disabled] ~ .button__transparent--primary { @extend %button; @include button-solid(--button-primary-background, --button-primary-background-hover, --button-text); - @include button-border-bottom(--button-primary-borderBottom-color); + @include button-border-bottom(--button-borderBottom-width, --button-primary-borderBottom-color); } &--secondary { @extend %button; @include button-solid(--button-default-background, --button-default-background-hover, --button-text); - @include button-border-bottom(--button-default-borderBottom-color); + @include button-border-bottom(--button-borderBottom-width, --button-default-borderBottom-color); } &--danger { @extend %button; @include button-solid(--button-danger-background, --button-danger-background-hover, --button-text); - @include button-border-bottom(--button-danger-borderBottom-color); + @include button-border-bottom(--button-borderBottom-width, --button-danger-borderBottom-color); } } @@ -100,7 +100,7 @@ input[type=file][disabled] ~ .button__transparent--primary { @extend %button; @include button-transparent(--button-outline-background, --button-outline-background-hover, --button-outline-text); - @include button-border-bottom(--button-primary-borderBottom-color); + @include button-border-bottom(--button-outline-borderBottom-width, --button-outline-border-color); } } } From bbfcddf705fc32d460f3af1907df01b962a0741f Mon Sep 17 00:00:00 2001 From: Borja de la Fuente Date: Thu, 14 Oct 2021 10:19:36 +0200 Subject: [PATCH 04/76] Fix product import error in button --- .../settings/_base_variables.scss | 56 +++++++++++++------ 1 file changed, 40 insertions(+), 16 deletions(-) diff --git a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss index 62a79e37..ca99ea20 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss @@ -1,12 +1,14 @@ :root { - /* + /* + /* --------------------------------------------------- /* Brand /* --------------------------------------------------- */ --primary-color: Orange; --secondary-color: #383838; --tertiary-color: DeepSkyBlue; - /* + /* + /* --------------------------------------------------- /* Global layout /* --------------------------------------------------- */ @@ -17,7 +19,8 @@ --padding: 40px; --borderRadius: 3px; --surfaceHover-color: #b3ecff; - /* + /* + /* --------------------------------------------------- /* Card /* --------------------------------------------------- */ @@ -27,7 +30,8 @@ --card-divider-border: 1px solid #e6e6e6; --card-borderRadius: 3px; --card-padding: 40px; - /* + /* + /* --------------------------------------------------- /* Breadcrumb /* --------------------------------------------------- */ @@ -35,14 +39,16 @@ --breadcrumb-link: #787878; --breadcrumb-link-hover: #525252; --breadcrumb-icon: #787878; - /* + /* + /* --------------------------------------------------- /* Action bar /* --------------------------------------------------- */ --workspace-toolbar-background: white; --workspace-toolbar-border: 1px solid rgba(0, 0, 0, 0.2); --header-bar-height: 73px; - /* + /* + /* --------------------------------------------------- /* Notification and Toast messages /* --------------------------------------------------- */ @@ -54,7 +60,8 @@ --notification-info: #999999; --notification-warning: #f3b547; --notification-danger: #da3c3c; - /* + /* + /* --------------------------------------------------- /* Modal /* --------------------------------------------------- */ @@ -64,7 +71,8 @@ --modal-closeButton-icon: #8b8b8b; --modal-closeButton-icon-hover: #717171; --modal-container-padding: 40px; - /* + /* + /* --------------------------------------------------- /* Empty states /* --------------------------------------------------- */ @@ -74,12 +82,14 @@ --emptyState-headline: #676767; --emptyState-help-text: gray; /* + /* --------------------------------------------------- /* Loading spinner /* --------------------------------------------------- */ --spinner-border: #c0c0c0; --spinner-border-highlighting: #676767; - /* + /* + /* --------------------------------------------------- /* States /* --------------------------------------------------- */ @@ -89,6 +99,7 @@ --disabled-color: #d0d0d0; --default-color: #999999; /* + /* --------------------------------------------------- /* Status bubbles /* --------------------------------------------------- */ @@ -101,7 +112,8 @@ --outline-status-background: transparent; --outline-status-border: #b3b3b3; --outline-status-text: #808080; - /* + /* + /* --------------------------------------------------- /* Link /* --------------------------------------------------- */ @@ -109,7 +121,8 @@ --primaryLink-hover-color: #0099cc; --defaultLink-color: #787878; --defaultLink-hover-color: #5e5e5e; - /* + /* + /* --------------------------------------------------- /* Buttons /* --------------------------------------------------- */ @@ -127,16 +140,19 @@ --button-danger-background-hover: #ae3535; --button-danger-borderBottom-color: #ae3535; --button-disabled-background: #d0d0d0; + --button-disabled-borderBottom-color: #aaaaaa; --button-disabled-text: #909090; --button-disabled-textShadow: 1px 1px 0 #ffffff; --button-outline-border-color: Orange; --button-outline-border-width: 1px; + --button-outline-borderBottom-width: 2px; --button-outline-background: transparent; --button-outline-background-hover: #ffedcc; --button-outline-text: #eb9800; --button-link-default-text: #787878; --button-link-primary-text: DeepSkyBlue; - /* + /* + /* --------------------------------------------------- /* RichTextEditor /* --------------------------------------------------- */ @@ -151,7 +167,8 @@ --textEditor-button-active-background: #d4d4d4; --textEditor-button-icon: #676767; --textEditor-button-icon-disabled: #b3b3b3; - /* + /* + /* --------------------------------------------------- /* Table /* --------------------------------------------------- */ @@ -163,7 +180,8 @@ --table-header-link-hover: #252525; --table-header-sort-icon-default: #b3b3b3; --table-header-sort-icon: currentColor; - /* + /* + /* --------------------------------------------------- /* Media queries /* --------------------------------------------------- */ @@ -175,7 +193,8 @@ --screen-lg: 75em; --screen-lg-max: 112.4375em; --screen-xl: 112.5em; - /* + /* + /* --------------------------------------------------- /* Form elements /* --------------------------------------------------- */ @@ -200,6 +219,7 @@ --smartInputField-value-icon-hover: #4d4d4d; --smartInputField-value-borderRadius: 3px; /* + /* --------------------------------------------------- /* Checkboxes and Radio buttons /* --------------------------------------------------- */ @@ -208,6 +228,7 @@ --check-disabled-text: #c5c5c5; --check-disabled-icon: #d9d9d9; /* + /* --------------------------------------------------- /* FlipSwitch /* --------------------------------------------------- */ @@ -217,6 +238,7 @@ --flipSwitch-label: gray; --flipSwitch-text: silver; /* + /* --------------------------------------------------- /* Step list /* --------------------------------------------------- */ @@ -226,16 +248,18 @@ --stepList-bubble-background: #808080; --stepList-bubble-text: white; /* + /* --------------------------------------------------- /* Reseller logo /* --------------------------------------------------- */ --logo-width: 238px; --logo-height: 76px; /* + /* --------------------------------------------------- /* Gray scale colors /* --------------------------------------------------- */ --white: white; --gray: gray; --silver: silver; -} +} \ No newline at end of file From c95d48574e2e71a4be1eeba243ff60ffb7f1ac15 Mon Sep 17 00:00:00 2001 From: Borja de la Fuente Date: Thu, 14 Oct 2021 10:21:48 +0200 Subject: [PATCH 05/76] Add final empty line --- .../stylesheets/beyond_canvas/settings/_base_variables.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss index ca99ea20..c8ba07be 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss @@ -262,4 +262,4 @@ --white: white; --gray: gray; --silver: silver; -} \ No newline at end of file +} From 4d3704a45c5fb87fb6e8f61acebc40f476de1d4e Mon Sep 17 00:00:00 2001 From: Borja de la Fuente Date: Thu, 14 Oct 2021 10:45:44 +0200 Subject: [PATCH 06/76] Delete extra space --- .../settings/_base_variables.scss | 39 +++++++------------ 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss index c8ba07be..cf079a56 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss @@ -1,14 +1,12 @@ :root { - /* - + /* /* --------------------------------------------------- /* Brand /* --------------------------------------------------- */ --primary-color: Orange; --secondary-color: #383838; --tertiary-color: DeepSkyBlue; - /* - + /* /* --------------------------------------------------- /* Global layout /* --------------------------------------------------- */ @@ -19,8 +17,7 @@ --padding: 40px; --borderRadius: 3px; --surfaceHover-color: #b3ecff; - /* - + /* /* --------------------------------------------------- /* Card /* --------------------------------------------------- */ @@ -30,8 +27,7 @@ --card-divider-border: 1px solid #e6e6e6; --card-borderRadius: 3px; --card-padding: 40px; - /* - + /* /* --------------------------------------------------- /* Breadcrumb /* --------------------------------------------------- */ @@ -39,16 +35,14 @@ --breadcrumb-link: #787878; --breadcrumb-link-hover: #525252; --breadcrumb-icon: #787878; - /* - + /* /* --------------------------------------------------- /* Action bar /* --------------------------------------------------- */ --workspace-toolbar-background: white; --workspace-toolbar-border: 1px solid rgba(0, 0, 0, 0.2); --header-bar-height: 73px; - /* - + /* /* --------------------------------------------------- /* Notification and Toast messages /* --------------------------------------------------- */ @@ -60,8 +54,7 @@ --notification-info: #999999; --notification-warning: #f3b547; --notification-danger: #da3c3c; - /* - + /* /* --------------------------------------------------- /* Modal /* --------------------------------------------------- */ @@ -81,15 +74,13 @@ --emptyState-outline: #575757; --emptyState-headline: #676767; --emptyState-help-text: gray; - /* - + /* /* --------------------------------------------------- /* Loading spinner /* --------------------------------------------------- */ --spinner-border: #c0c0c0; --spinner-border-highlighting: #676767; - /* - + /* /* --------------------------------------------------- /* States /* --------------------------------------------------- */ @@ -98,8 +89,7 @@ --warning-color: #f3b547; --disabled-color: #d0d0d0; --default-color: #999999; - /* - + /* /* --------------------------------------------------- /* Status bubbles /* --------------------------------------------------- */ @@ -112,8 +102,7 @@ --outline-status-background: transparent; --outline-status-border: #b3b3b3; --outline-status-text: #808080; - /* - + /* /* --------------------------------------------------- /* Link /* --------------------------------------------------- */ @@ -151,8 +140,7 @@ --button-outline-text: #eb9800; --button-link-default-text: #787878; --button-link-primary-text: DeepSkyBlue; - /* - + /* /* --------------------------------------------------- /* RichTextEditor /* --------------------------------------------------- */ @@ -167,8 +155,7 @@ --textEditor-button-active-background: #d4d4d4; --textEditor-button-icon: #676767; --textEditor-button-icon-disabled: #b3b3b3; - /* - + /* /* --------------------------------------------------- /* Table /* --------------------------------------------------- */ From 5c8946567f45d075573590ec1418b98e9c42384d Mon Sep 17 00:00:00 2001 From: Borja de la Fuente Date: Thu, 14 Oct 2021 11:05:39 +0200 Subject: [PATCH 07/76] Fix comments --- .../settings/_base_variables.scss | 43 ++++++++----------- 1 file changed, 17 insertions(+), 26 deletions(-) diff --git a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss index cf079a56..858eba79 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss @@ -1,12 +1,12 @@ :root { - /* + /* /* --------------------------------------------------- /* Brand /* --------------------------------------------------- */ --primary-color: Orange; --secondary-color: #383838; --tertiary-color: DeepSkyBlue; - /* + /* /* --------------------------------------------------- /* Global layout /* --------------------------------------------------- */ @@ -17,7 +17,7 @@ --padding: 40px; --borderRadius: 3px; --surfaceHover-color: #b3ecff; - /* + /* /* --------------------------------------------------- /* Card /* --------------------------------------------------- */ @@ -27,7 +27,7 @@ --card-divider-border: 1px solid #e6e6e6; --card-borderRadius: 3px; --card-padding: 40px; - /* + /* /* --------------------------------------------------- /* Breadcrumb /* --------------------------------------------------- */ @@ -35,14 +35,14 @@ --breadcrumb-link: #787878; --breadcrumb-link-hover: #525252; --breadcrumb-icon: #787878; - /* + /* /* --------------------------------------------------- /* Action bar /* --------------------------------------------------- */ --workspace-toolbar-background: white; --workspace-toolbar-border: 1px solid rgba(0, 0, 0, 0.2); --header-bar-height: 73px; - /* + /* /* --------------------------------------------------- /* Notification and Toast messages /* --------------------------------------------------- */ @@ -54,7 +54,7 @@ --notification-info: #999999; --notification-warning: #f3b547; --notification-danger: #da3c3c; - /* + /* /* --------------------------------------------------- /* Modal /* --------------------------------------------------- */ @@ -64,8 +64,7 @@ --modal-closeButton-icon: #8b8b8b; --modal-closeButton-icon-hover: #717171; --modal-container-padding: 40px; - /* - + /* /* --------------------------------------------------- /* Empty states /* --------------------------------------------------- */ @@ -74,13 +73,13 @@ --emptyState-outline: #575757; --emptyState-headline: #676767; --emptyState-help-text: gray; - /* + /* /* --------------------------------------------------- /* Loading spinner /* --------------------------------------------------- */ --spinner-border: #c0c0c0; --spinner-border-highlighting: #676767; - /* + /* /* --------------------------------------------------- /* States /* --------------------------------------------------- */ @@ -89,7 +88,7 @@ --warning-color: #f3b547; --disabled-color: #d0d0d0; --default-color: #999999; - /* + /* /* --------------------------------------------------- /* Status bubbles /* --------------------------------------------------- */ @@ -102,7 +101,7 @@ --outline-status-background: transparent; --outline-status-border: #b3b3b3; --outline-status-text: #808080; - /* + /* /* --------------------------------------------------- /* Link /* --------------------------------------------------- */ @@ -110,8 +109,7 @@ --primaryLink-hover-color: #0099cc; --defaultLink-color: #787878; --defaultLink-hover-color: #5e5e5e; - /* - + /* /* --------------------------------------------------- /* Buttons /* --------------------------------------------------- */ @@ -140,7 +138,7 @@ --button-outline-text: #eb9800; --button-link-default-text: #787878; --button-link-primary-text: DeepSkyBlue; - /* + /* /* --------------------------------------------------- /* RichTextEditor /* --------------------------------------------------- */ @@ -155,7 +153,7 @@ --textEditor-button-active-background: #d4d4d4; --textEditor-button-icon: #676767; --textEditor-button-icon-disabled: #b3b3b3; - /* + /* /* --------------------------------------------------- /* Table /* --------------------------------------------------- */ @@ -167,8 +165,7 @@ --table-header-link-hover: #252525; --table-header-sort-icon-default: #b3b3b3; --table-header-sort-icon: currentColor; - /* - + /* /* --------------------------------------------------- /* Media queries /* --------------------------------------------------- */ @@ -180,8 +177,7 @@ --screen-lg: 75em; --screen-lg-max: 112.4375em; --screen-xl: 112.5em; - /* - + /* /* --------------------------------------------------- /* Form elements /* --------------------------------------------------- */ @@ -206,7 +202,6 @@ --smartInputField-value-icon-hover: #4d4d4d; --smartInputField-value-borderRadius: 3px; /* - /* --------------------------------------------------- /* Checkboxes and Radio buttons /* --------------------------------------------------- */ @@ -215,7 +210,6 @@ --check-disabled-text: #c5c5c5; --check-disabled-icon: #d9d9d9; /* - /* --------------------------------------------------- /* FlipSwitch /* --------------------------------------------------- */ @@ -225,7 +219,6 @@ --flipSwitch-label: gray; --flipSwitch-text: silver; /* - /* --------------------------------------------------- /* Step list /* --------------------------------------------------- */ @@ -235,14 +228,12 @@ --stepList-bubble-background: #808080; --stepList-bubble-text: white; /* - /* --------------------------------------------------- /* Reseller logo /* --------------------------------------------------- */ --logo-width: 238px; --logo-height: 76px; /* - /* --------------------------------------------------- /* Gray scale colors /* --------------------------------------------------- */ From 5fe2c7a9f36b8daa4a147ee5e34597d28080bb29 Mon Sep 17 00:00:00 2001 From: Kenneth Gallego Date: Fri, 15 Oct 2021 11:39:35 +0200 Subject: [PATCH 08/76] Few fixes (#66) * Fix styles bug when changing reseller * use base styles when no reseller identified --- app/controllers/beyond_canvas/authentications_controller.rb | 2 ++ app/controllers/concerns/beyond_canvas/custom_styles.rb | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/app/controllers/beyond_canvas/authentications_controller.rb b/app/controllers/beyond_canvas/authentications_controller.rb index bef3e9b5..99a343b5 100644 --- a/app/controllers/beyond_canvas/authentications_controller.rb +++ b/app/controllers/beyond_canvas/authentications_controller.rb @@ -9,6 +9,8 @@ class AuthenticationsController < ApplicationController # :nodoc: include ::BeyondCanvas::Authentication include ::BeyondCanvas::CustomStyles + skip_before_action :check_custom_styles! + before_action :validate_app_installation_request!, only: :new, unless: -> { Rails.env.development? && BeyondCanvas.configuration.client_credentials } diff --git a/app/controllers/concerns/beyond_canvas/custom_styles.rb b/app/controllers/concerns/beyond_canvas/custom_styles.rb index 40ce9bdc..0bce267e 100644 --- a/app/controllers/concerns/beyond_canvas/custom_styles.rb +++ b/app/controllers/concerns/beyond_canvas/custom_styles.rb @@ -44,7 +44,11 @@ def set_custom_styles_url(shop = nil) return if shop.blank? + shop.refresh_token_if_needed + reseller = shop.to_session.shop.current[:reseller_name] + custom_styles_url = shop.url("cockpit/assets/reseller-styles/#{reseller}-variables.css") + reseller = 'base' unless existing_url?(custom_styles_url) cookies[:custom_styles_url] = { value: shop.url("cockpit/assets/reseller-styles/#{reseller}-variables.css") From cf299b3be57c16f53a579d182f0e02a7990a971d Mon Sep 17 00:00:00 2001 From: German Date: Tue, 19 Oct 2021 11:54:26 +0200 Subject: [PATCH 09/76] Iframe policy --- CHANGELOG.md | 9 +++++ Gemfile.lock | 12 +++--- .../stylesheets/beyond_canvas/base.scss | 35 ++++++++-------- .../beyond_canvas/components/_svgs.scss | 11 +++++ .../concerns/beyond_canvas/custom_styles.rb | 4 +- .../beyond_canvas/request_validation.rb | 3 +- app/views/beyond_canvas/shared/_head.html.erb | 2 +- lib/beyond_canvas.rb | 4 ++ lib/beyond_canvas/configuration.rb | 12 +++++- lib/beyond_canvas/engine.rb | 17 ++++++++ .../middleware/cockpit_app_header.rb | 28 +++++++++++++ lib/models/concerns/authentication.rb | 8 ++-- lib/models/concerns/utils.rb | 40 ++++++++++++++----- 13 files changed, 145 insertions(+), 40 deletions(-) create mode 100644 app/assets/stylesheets/beyond_canvas/components/_svgs.scss create mode 100644 lib/beyond_canvas/middleware/cockpit_app_header.rb diff --git a/CHANGELOG.md b/CHANGELOG.md index ec4697f9..5890b387 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,9 +6,18 @@ * bug-fixes * Minor style fixes + * Prevent checking custom styles when opening the app + * Remove unnecessary `URI.decode(signature)` call when validating open app request + * Remove unnecessary `terms` attribute from `Shop` + * Fix `#refresh_token` method when `client_credentials = true` is configured + +* features + * Add a middleware to automatically configure cockpit app headers + * Add styles for `.svg` images that include `.surface`, `.bubbles` and `.outline` classes * enhancements * Allow to retrieve `client_credentials` token on any environment but `production` + * Add convenient `custom_styles?` and `client_credentials?` methods ### v0.23.0.pre diff --git a/Gemfile.lock b/Gemfile.lock index 91e5cfeb..4e81b90e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -111,7 +111,7 @@ GEM rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) - jwt (2.2.3) + jwt (2.3.0) loaf (0.10.0) railties (>= 3.2) loofah (2.12.0) @@ -119,15 +119,15 @@ GEM nokogiri (>= 1.5.9) mail (2.7.1) mini_mime (>= 0.1.1) - marcel (1.0.1) + marcel (1.0.2) method_source (1.0.0) - mini_mime (1.1.1) + mini_mime (1.1.2) minitest (5.14.4) multipart-post (2.1.1) nio4r (2.5.8) - nokogiri (1.12.4-x86_64-darwin) + nokogiri (1.12.5-x86_64-darwin) racc (~> 1.4) - nokogiri (1.12.4-x86_64-linux) + nokogiri (1.12.5-x86_64-linux) racc (~> 1.4) parallel (1.20.1) parser (3.0.2.0) @@ -224,4 +224,4 @@ DEPENDENCIES rubocop-rails (~> 2.5) BUNDLED WITH - 2.2.26 + 2.2.28 diff --git a/app/assets/stylesheets/beyond_canvas/base.scss b/app/assets/stylesheets/beyond_canvas/base.scss index 6511158b..7b6a478e 100644 --- a/app/assets/stylesheets/beyond_canvas/base.scss +++ b/app/assets/stylesheets/beyond_canvas/base.scss @@ -9,32 +9,33 @@ @import "utilities/functions"; @import "utilities/mixins"; -@import "components/action_bar"; // Done -@import "components/actions"; // Done -@import "components/breadcrumbs"; // Done +@import "components/action_bar"; +@import "components/actions"; +@import "components/breadcrumbs"; @import "components/buttons"; @import "components/cards"; @import "components/collapse"; @import "components/debug"; -@import "components/flash"; // Done -@import "components/forms"; // Done +@import "components/flash"; +@import "components/forms"; @import "components/grids"; @import "components/inputs"; -@import "components/layouts"; // Done +@import "components/layouts"; @import "components/links"; @import "components/main"; -@import "components/margins"; // Done +@import "components/margins"; @import "components/markdown"; @import "components/menu"; -@import "components/modals"; // Done -@import "components/notices"; // Done -@import "components/relative"; // Done +@import "components/modals"; +@import "components/notices"; +@import "components/relative"; @import "components/scrollbox"; -@import "components/select2"; // Done +@import "components/select2"; @import "components/sidebar"; -@import "components/spinner"; // Done -@import "components/statuses"; // Done -@import "components/step_list"; // Done -@import "components/tables"; // Done -@import "components/texts"; // Done -@import "components/titles"; // Done +@import "components/spinner"; +@import "components/statuses"; +@import "components/step_list"; +@import "components/svgs"; +@import "components/tables"; +@import "components/texts"; +@import "components/titles"; diff --git a/app/assets/stylesheets/beyond_canvas/components/_svgs.scss b/app/assets/stylesheets/beyond_canvas/components/_svgs.scss new file mode 100644 index 00000000..e0a25610 --- /dev/null +++ b/app/assets/stylesheets/beyond_canvas/components/_svgs.scss @@ -0,0 +1,11 @@ +svg { + .surface { + fill: var(--emptyState-surface); + } + .bubbles { + fill: var(--emptyState-bubbles); + } + .outline { + fill: var(--emptyState-outline); + } +} diff --git a/app/controllers/concerns/beyond_canvas/custom_styles.rb b/app/controllers/concerns/beyond_canvas/custom_styles.rb index 0bce267e..386c0702 100644 --- a/app/controllers/concerns/beyond_canvas/custom_styles.rb +++ b/app/controllers/concerns/beyond_canvas/custom_styles.rb @@ -5,7 +5,7 @@ module CustomStyles extend ActiveSupport::Concern included do - before_action :check_custom_styles!, if: -> { BeyondCanvas.configuration.cockpit_app } # rubocop:disable Rails/LexicallyScopedActionFilter + before_action :check_custom_styles! end private @@ -15,6 +15,8 @@ module CustomStyles # styles url and stores it on `custom_styles_url` cookie. # def check_custom_styles! + cookies.delete(:custom_styles_url) and return unless BeyondCanvas.configuration.custom_styles? + return if valid_custom_styles_stylesheet?(cookies[:custom_styles_url]) set_custom_styles_url diff --git a/app/controllers/concerns/beyond_canvas/request_validation.rb b/app/controllers/concerns/beyond_canvas/request_validation.rb index cc7cfa25..b7077a91 100644 --- a/app/controllers/concerns/beyond_canvas/request_validation.rb +++ b/app/controllers/concerns/beyond_canvas/request_validation.rb @@ -31,7 +31,8 @@ def app_installation_data def valid_signature?(signature, data, secret) digest = OpenSSL::Digest.new('SHA1') hmac = OpenSSL::HMAC.digest(digest, secret, data) - URI.decode(signature) == Base64.encode64(hmac).chop + + signature == Base64.encode64(hmac).chop end def signature_params diff --git a/app/views/beyond_canvas/shared/_head.html.erb b/app/views/beyond_canvas/shared/_head.html.erb index f25489e0..7e831427 100644 --- a/app/views/beyond_canvas/shared/_head.html.erb +++ b/app/views/beyond_canvas/shared/_head.html.erb @@ -16,7 +16,7 @@ <% end %> <% end %> - <% if BeyondCanvas.configuration.cockpit_app %> + <% if BeyondCanvas.configuration.custom_styles? %> <%= stylesheet_link_tag cookies[:custom_styles_url] %> <% end %> diff --git a/lib/beyond_canvas.rb b/lib/beyond_canvas.rb index bb3bbe65..6c8e5527 100644 --- a/lib/beyond_canvas.rb +++ b/lib/beyond_canvas.rb @@ -22,6 +22,10 @@ module BeyondCanvas # :nodoc: autoload :ParameterSanitizer, 'beyond_canvas/parameter_sanitizer' autoload :WebhookEventRegistration, 'beyond_canvas/webhook_event_registration' + module Middleware + autoload :CockpitAppHeader, 'beyond_canvas/middleware/cockpit_app_header' + end + module Models # :nodoc: autoload :Shop, 'models/shop' diff --git a/lib/beyond_canvas/configuration.rb b/lib/beyond_canvas/configuration.rb index a0d9a4ba..f436d764 100644 --- a/lib/beyond_canvas/configuration.rb +++ b/lib/beyond_canvas/configuration.rb @@ -3,7 +3,8 @@ module BeyondCanvas class Configuration # :nodoc: attr_accessor :site_title, :site_logo, :favicon, :skip_webpacker, :encryption_key, :namespace, :cockpit_app, - :open_app_url, :preinstalled, :debug_mode, :webhook_site_url, :email_logo, :client_credentials + :open_app_url, :preinstalled, :debug_mode, :webhook_site_url, :email_logo, :client_credentials, + :custom_styles include AssetRegistration include MenuItemRegistration @@ -22,6 +23,15 @@ def initialize @email_logo = nil @site_title = ::Rails.application.class.name.split('::').first.humanize @skip_webpacker = false + @custom_styles = false + end + + def custom_styles? + @cockpit_app || @custom_styles + end + + def client_credentials? + @client_credentials && !::Rails.env.production? end def setup! diff --git a/lib/beyond_canvas/engine.rb b/lib/beyond_canvas/engine.rb index f89e8644..1ebc77f8 100644 --- a/lib/beyond_canvas/engine.rb +++ b/lib/beyond_canvas/engine.rb @@ -17,6 +17,23 @@ class Engine < ::Rails::Engine # :nodoc: app.config.assets.precompile << 'beyond_canvas_manifest.js' end + initializer 'beyond_canvas.session' do |app| + if BeyondCanvas.configuration.cockpit_app == true && !Rails.env.development? + app.config.session_store :cookie_store, { + secure: true, + same_site: :none, + } + end + end + + initializer "beyond_canvas.add_middleware" do |app| + if BeyondCanvas.configuration.cockpit_app == true + app.middleware.use BeyondCanvas::Middleware::CockpitAppHeader + end + end + + # SEE: https://guides.rubyonrails.org/engines.html#available-load-hooks + config.before_initialize do ActiveSupport.on_load :action_controller do include ::BeyondCanvas::LocaleManagement diff --git a/lib/beyond_canvas/middleware/cockpit_app_header.rb b/lib/beyond_canvas/middleware/cockpit_app_header.rb new file mode 100644 index 00000000..35b12c1b --- /dev/null +++ b/lib/beyond_canvas/middleware/cockpit_app_header.rb @@ -0,0 +1,28 @@ +module BeyondCanvas + module Middleware + class CockpitAppHeader + def initialize(app) + @app = app + end + + def call(env) + status, headers, response = @app.call(env) + request = ActionDispatch::Request.new env + + headers['X-Frame-Options'] = 'ALLOWALL' # Some browsers like Firefox needs this to display the page correctly in the iframe + + # Referer + # Sec-Fetch-Dest + + unless request.user_agent.match(/Chrome/) + headers['Access-Control-Allow-Origin'] = '*' + headers['Access-Control-Allow-Methods'] = 'POST, PUT, DELETE, GET, OPTIONS, PATCH, DELETE' + headers['Access-Control-Request-Method'] = '*' + headers['Access-Control-Allow-Headers'] = 'Origin, X-Requested-With, Content-Type, Accept, Authorization, X-Frame-Options, X-CSRF-Token' + end + + [status, headers, response] + end + end + end +end diff --git a/lib/models/concerns/authentication.rb b/lib/models/concerns/authentication.rb index 2034bedc..19c1680d 100644 --- a/lib/models/concerns/authentication.rb +++ b/lib/models/concerns/authentication.rb @@ -7,7 +7,7 @@ module Authentication # :nodoc: extend ActiveSupport::Concern included do - attr_accessor :code, :signature, :access_token_url, :api_url, :return_url, :terms + attr_accessor :code, :signature, :access_token_url, :api_url, :return_url ############################################################################## # Encrypted attribute configuration @@ -26,10 +26,10 @@ module Authentication # :nodoc: presence: true validates :beyond_access_token, presence: true, - unless: -> { encrypted_beyond_access_token_was.blank? } + if: -> { encrypted_beyond_access_token_was.present? } validates :beyond_refresh_token, presence: true, - unless: -> { encrypted_beyond_refresh_token_was.blank? } + if: -> { encrypted_beyond_refresh_token_was.present? } ############################################################################## # Instance methods @@ -43,7 +43,7 @@ module Authentication # :nodoc: def authenticate(code) session = BeyondApi::Session.new(api_url: beyond_api_url) - if !Rails.env.production? && BeyondCanvas.configuration.client_credentials + if BeyondCanvas.configuration.client_credentials? session.token.client_credentials else session.token.authorization_code(code) diff --git a/lib/models/concerns/utils.rb b/lib/models/concerns/utils.rb index 30fadb4d..dd2091ec 100644 --- a/lib/models/concerns/utils.rb +++ b/lib/models/concerns/utils.rb @@ -14,29 +14,37 @@ module Utils # :nodoc: ############################################################################## # - # Generates a new access_token and refresh_token + # Retrieves new access_token and refresh_token and stores them. # def refresh_token - beyond_session = BeyondApi::Session.new(api_url: beyond_api_url, refresh_token: beyond_refresh_token) - beyond_session.token.refresh + session = BeyondApi::Session.new(api_url: beyond_api_url, refresh_token: beyond_refresh_token) - update(beyond_access_token: beyond_session.access_token, - beyond_refresh_token: beyond_session.refresh_token) + if BeyondCanvas.configuration.client_credentials? + session.token.client_credentials + else + session.token.refresh_token + end + + update(beyond_access_token: session.access_token, + beyond_refresh_token: session.refresh_token) end # - # Generates a new access_token and refresh_token if they have expired + # Checks if the beyond_access_token has expired. If so, calls refresh_token in order to get a new + # access_token (and refresh_token if applies) and stores it. # def refresh_token_if_needed token_timestamp = decoded_jwt['exp'] current_timestamp = DateTime.now.to_i + return unless token_timestamp - current_timestamp <= 0 refresh_token end # - # Returns a BeyondApi::Session object with api_url, access_token and refresh_token attributes + # Returns a BeyondApi::Session object (with `api_url`, `access_token` and `refresh_token` + # attributes) from the instantiated Shop. # def to_session BeyondApi::Session.new(api_url: beyond_api_url, @@ -49,13 +57,18 @@ def to_session # def url(path = nil, params = nil) path = path[1..-1] if path&.chr == '/' + "https://#{URI.parse(beyond_api_url).host}/#{path}#{'?' +params&.to_query if params.present?}" end + # + # Checks if the decoded access token has the given scope. + # def has_scope?(scope) return unless scope.include?(':') base, scope = scope.split(':') + !!(decoded_jwt['scope'].find { |s| s.split(':').first == base } =~ /#{base}:.*#{scope}.*/) end @@ -63,13 +76,22 @@ def has_scope?(scope) # Class methods ############################################################################## + # + # Searches for a Shop based on its UUID and returns it's BeyondApi::Session object. + # def self.find_session(id) - shop = find(id) - shop.to_session + find(id)&.to_session end + ############################################################################## + # Private methods + ############################################################################## + private + # + # Returns the decoded version of the @beyond_access_token. + # def decoded_jwt JWT.decode(beyond_access_token, nil, false).first end From 88ca9cb15425015af2e0f3a1455d4ee6972c2714 Mon Sep 17 00:00:00 2001 From: German Date: Wed, 20 Oct 2021 10:04:11 +0200 Subject: [PATCH 10/76] Improve middleware (#69) * Configure security policy for frame-ancestors --- lib/beyond_canvas/middleware/cockpit_app_header.rb | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/lib/beyond_canvas/middleware/cockpit_app_header.rb b/lib/beyond_canvas/middleware/cockpit_app_header.rb index 35b12c1b..572dc0d6 100644 --- a/lib/beyond_canvas/middleware/cockpit_app_header.rb +++ b/lib/beyond_canvas/middleware/cockpit_app_header.rb @@ -9,16 +9,10 @@ def call(env) status, headers, response = @app.call(env) request = ActionDispatch::Request.new env - headers['X-Frame-Options'] = 'ALLOWALL' # Some browsers like Firefox needs this to display the page correctly in the iframe - - # Referer - # Sec-Fetch-Dest - - unless request.user_agent.match(/Chrome/) - headers['Access-Control-Allow-Origin'] = '*' - headers['Access-Control-Allow-Methods'] = 'POST, PUT, DELETE, GET, OPTIONS, PATCH, DELETE' - headers['Access-Control-Request-Method'] = '*' - headers['Access-Control-Allow-Headers'] = 'Origin, X-Requested-With, Content-Type, Accept, Authorization, X-Frame-Options, X-CSRF-Token' + if request.headers['Sec-Fetch-Dest'] == 'iframe' + headers['Content-Security-Policy'] = <<~POLICY.gsub "\n", ' ' + frame-ancestors #{request.referer}; + POLICY end [status, headers, response] From b5eb4e283eda4cbb0ed009c9997105abbaea47cb Mon Sep 17 00:00:00 2001 From: gersanco Date: Wed, 20 Oct 2021 15:39:09 +0200 Subject: [PATCH 11/76] Fix set custom styles --- app/controllers/beyond_canvas/authentications_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/beyond_canvas/authentications_controller.rb b/app/controllers/beyond_canvas/authentications_controller.rb index 99a343b5..d104a37a 100644 --- a/app/controllers/beyond_canvas/authentications_controller.rb +++ b/app/controllers/beyond_canvas/authentications_controller.rb @@ -75,7 +75,7 @@ def open_app(shop) log_in shop cookies.delete(:custom_styles_url) - set_custom_styles_url shop if BeyondCanvas.configuration.cockpit_app + set_custom_styles_url shop if BeyondCanvas.configuration.custom_styles? redirect_to after_sign_in_path end From c029655d6371bf4e721b34b57d01f466f24a017c Mon Sep 17 00:00:00 2001 From: German Date: Wed, 27 Oct 2021 11:21:25 +0200 Subject: [PATCH 12/76] Fix app installation and cookie settings --- Gemfile.lock | 4 ++-- .../concerns/beyond_canvas/request_validation.rb | 5 +++++ config/initializers/beyond_canvas/session_store.rb | 8 -------- {config/initializers => lib}/beyond_canvas/constants.rb | 0 lib/beyond_canvas/engine.rb | 4 +++- 5 files changed, 10 insertions(+), 11 deletions(-) delete mode 100644 config/initializers/beyond_canvas/session_store.rb rename {config/initializers => lib}/beyond_canvas/constants.rb (100%) diff --git a/Gemfile.lock b/Gemfile.lock index 4e81b90e..d679dce9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -140,7 +140,7 @@ GEM actionmailer (>= 3) premailer (~> 1.7, >= 1.7.9) public_suffix (4.0.6) - racc (1.5.2) + racc (1.6.0) rack (2.2.3) rack-test (1.1.0) rack (>= 1.0, < 3) @@ -213,7 +213,7 @@ GEM websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) - zeitwerk (2.4.2) + zeitwerk (2.5.1) PLATFORMS x86_64-darwin-20 diff --git a/app/controllers/concerns/beyond_canvas/request_validation.rb b/app/controllers/concerns/beyond_canvas/request_validation.rb index b7077a91..ee8b631d 100644 --- a/app/controllers/concerns/beyond_canvas/request_validation.rb +++ b/app/controllers/concerns/beyond_canvas/request_validation.rb @@ -29,6 +29,7 @@ def app_installation_data end def valid_signature?(signature, data, secret) + signature = CGI.unescape(signature) unless base64?(signature) digest = OpenSSL::Digest.new('SHA1') hmac = OpenSSL::HMAC.digest(digest, secret, data) @@ -40,5 +41,9 @@ def signature_params data << ":#{request.body.read}" if request.body.read.present? data end + + def base64?(value) + value.is_a?(String) && Base64.strict_encode64(Base64.decode64(value)) == value + end end end diff --git a/config/initializers/beyond_canvas/session_store.rb b/config/initializers/beyond_canvas/session_store.rb deleted file mode 100644 index 91ac59fe..00000000 --- a/config/initializers/beyond_canvas/session_store.rb +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -if BeyondCanvas.configuration.cockpit_app == true && !Rails.env.development? - Rails.application.config.session_store :cookie_store, { - secure: true, - same_site: :none - } -end diff --git a/config/initializers/beyond_canvas/constants.rb b/lib/beyond_canvas/constants.rb similarity index 100% rename from config/initializers/beyond_canvas/constants.rb rename to lib/beyond_canvas/constants.rb diff --git a/lib/beyond_canvas/engine.rb b/lib/beyond_canvas/engine.rb index 1ebc77f8..4dd3259a 100644 --- a/lib/beyond_canvas/engine.rb +++ b/lib/beyond_canvas/engine.rb @@ -18,7 +18,7 @@ class Engine < ::Rails::Engine # :nodoc: end initializer 'beyond_canvas.session' do |app| - if BeyondCanvas.configuration.cockpit_app == true && !Rails.env.development? + if BeyondCanvas.configuration.cockpit_app == true && Rails.env.production? app.config.session_store :cookie_store, { secure: true, same_site: :none, @@ -52,6 +52,8 @@ class Engine < ::Rails::Engine # :nodoc: ActiveSupport.on_load :action_controller do include ::BeyondCanvas::AddBlockerCheck end + + require_relative '../beyond_canvas/constants' end end end From 41f2f400885893a4e2d7d0186cdcd857726877d2 Mon Sep 17 00:00:00 2001 From: German Date: Thu, 28 Oct 2021 10:41:31 +0200 Subject: [PATCH 13/76] Fix redirect to iframe --- app/controllers/beyond_canvas/authentications_controller.rb | 6 ++++++ lib/beyond_canvas/middleware/cockpit_app_header.rb | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/controllers/beyond_canvas/authentications_controller.rb b/app/controllers/beyond_canvas/authentications_controller.rb index d104a37a..265ce07c 100644 --- a/app/controllers/beyond_canvas/authentications_controller.rb +++ b/app/controllers/beyond_canvas/authentications_controller.rb @@ -74,6 +74,8 @@ def open_app(shop) reset_session log_in shop + set_iframe_ancestor_url + cookies.delete(:custom_styles_url) set_custom_styles_url shop if BeyondCanvas.configuration.custom_styles? @@ -83,5 +85,9 @@ def open_app(shop) def clear_locale_cookie cookies.delete :locale if BeyondCanvas.configuration.cockpit_app end + + def set_iframe_ancestor_url + session[:iframe_ancestor_url] = request.referer + end end end diff --git a/lib/beyond_canvas/middleware/cockpit_app_header.rb b/lib/beyond_canvas/middleware/cockpit_app_header.rb index 572dc0d6..7e163a42 100644 --- a/lib/beyond_canvas/middleware/cockpit_app_header.rb +++ b/lib/beyond_canvas/middleware/cockpit_app_header.rb @@ -11,7 +11,7 @@ def call(env) if request.headers['Sec-Fetch-Dest'] == 'iframe' headers['Content-Security-Policy'] = <<~POLICY.gsub "\n", ' ' - frame-ancestors #{request.referer}; + frame-ancestors #{request.session[:iframe_ancestor_url]} #{request.referer}; POLICY end From 89f5447be4b7d37c23abe0e7b8278b7793f23ebf Mon Sep 17 00:00:00 2001 From: Unai Abrisketa Date: Thu, 4 Nov 2021 14:44:07 +0100 Subject: [PATCH 14/76] Add tooltip styles and helper --- .../stylesheets/beyond_canvas/base.scss | 1 + .../beyond_canvas/components/_tooltips.scss | 94 +++++++++++++++++++ .../beyond_canvas/application_helper.rb | 11 +++ 3 files changed, 106 insertions(+) create mode 100644 app/assets/stylesheets/beyond_canvas/components/_tooltips.scss diff --git a/app/assets/stylesheets/beyond_canvas/base.scss b/app/assets/stylesheets/beyond_canvas/base.scss index 7b6a478e..a4fe43a0 100644 --- a/app/assets/stylesheets/beyond_canvas/base.scss +++ b/app/assets/stylesheets/beyond_canvas/base.scss @@ -39,3 +39,4 @@ @import "components/tables"; @import "components/texts"; @import "components/titles"; +@import "components/tooltips"; diff --git a/app/assets/stylesheets/beyond_canvas/components/_tooltips.scss b/app/assets/stylesheets/beyond_canvas/components/_tooltips.scss new file mode 100644 index 00000000..de6649f6 --- /dev/null +++ b/app/assets/stylesheets/beyond_canvas/components/_tooltips.scss @@ -0,0 +1,94 @@ +$arrow-size: 8px; + +.tooltip { + position: relative; + padding: 5px; + + &__label { + color: var(--primary-color); + font-weight: 700; + cursor: default; + + &:hover ~ .tooltip__bubble { + opacity: 1; + visibility: visible; + } + + &[data-placement="top"] ~ .tooltip__bubble, + &[data-placement="bottom"] ~ .tooltip__bubble { + left: 50%; + transform: translateX(-50%); + } + + &[data-placement="right"] ~ .tooltip__bubble, + &[data-placement="left"] ~ .tooltip__bubble { + top: 50%; + transform: translateY(-50%); + + &::before { + top: 50%; + transform: translateY(-50%); + } + } + + &[data-placement="top"] ~ .tooltip__bubble { + bottom: calc(1em + 16px); + + &::before { + @include triangle('down', 16px, 8px, white); + @include position(absolute, null null -8px null); + + content: ''; + } + } + + &[data-placement="right"] ~ .tooltip__bubble { + left: 27px; + + &::before { + @include triangle('left', 8px, 16px, white); + @include position(absolute, null null null -8px); + + content: ''; + } + } + + &[data-placement="bottom"] ~ .tooltip__bubble { + top: calc(1em + 15px); + + &::before { + @include triangle('up', 16px, 8px, white); + @include position(absolute, -8px null null null); + + content: ''; + } + } + + &[data-placement="left"] ~ .tooltip__bubble { + right: 27px; + + &::before { + @include triangle('right', 8px, 16px, white); + @include position(absolute, null -8px null null); + + content: ''; + } + } + } + + &__bubble { + position: absolute; + padding: 1em; + z-index: 1; + opacity: 0; + visibility: hidden; + max-width: 350px; + transition: opacity cubic-bezier(0, 0, 0.57, 0.74) 0.2s, 0.2s visibility; + border-radius: 4px; + background: white; + box-shadow: 0 0 14px 0 rgba(0, 0, 0, 0.4); + line-height: 1; + font-weight: normal; + white-space: nowrap; + } +} diff --git a/app/helpers/beyond_canvas/application_helper.rb b/app/helpers/beyond_canvas/application_helper.rb index 4bdf2aa1..7e655676 100644 --- a/app/helpers/beyond_canvas/application_helper.rb +++ b/app/helpers/beyond_canvas/application_helper.rb @@ -62,6 +62,17 @@ def step_list(title, steps = []) end end + %i[top right bottom left].each do |method| + define_method :"tooltip_#{method}" do |name = nil, &block| + name = block if block_given? + + content_tag('span', class: 'tooltip') do + content_tag('span', '?', class: 'tooltip__label', data: { placement: method }) + + content_tag('div', name, class: 'tooltip__bubble', &block) + end + end + end + private def unique_id(attribute) From 1f09b5ed3b36a88c9a0e2e8a22ee7ab55c2dcb76 Mon Sep 17 00:00:00 2001 From: Unai Abrisketa Date: Thu, 4 Nov 2021 14:44:16 +0100 Subject: [PATCH 15/76] Add styles for fieldsets --- .../beyond_canvas/components/_inputs.scss | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/app/assets/stylesheets/beyond_canvas/components/_inputs.scss b/app/assets/stylesheets/beyond_canvas/components/_inputs.scss index a001cd3f..ef7f94d9 100644 --- a/app/assets/stylesheets/beyond_canvas/components/_inputs.scss +++ b/app/assets/stylesheets/beyond_canvas/components/_inputs.scss @@ -52,6 +52,19 @@ select { } } +fieldset { + legend { + color: var(--workspace-headline); + font-size: 16px; + font-weight: bold; + margin-bottom: 6px; + } + + .form__row { + margin-bottom: 8px !important; + } +} + .input { &__label { color: var(--formGroup-label); From cf242034c9f2fc6174d67c9092bb96b16f102985 Mon Sep 17 00:00:00 2001 From: Unai Abrisketa Date: Fri, 5 Nov 2021 09:06:41 +0100 Subject: [PATCH 16/76] Fix tooltip --- .../beyond_canvas/components/_tooltips.scss | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/app/assets/stylesheets/beyond_canvas/components/_tooltips.scss b/app/assets/stylesheets/beyond_canvas/components/_tooltips.scss index de6649f6..e6da1eb7 100644 --- a/app/assets/stylesheets/beyond_canvas/components/_tooltips.scss +++ b/app/assets/stylesheets/beyond_canvas/components/_tooltips.scss @@ -1,18 +1,18 @@ $arrow-size: 8px; .tooltip { + cursor: default; position: relative; padding: 5px; + &:hover .tooltip__bubble { + opacity: 1; + visibility: visible; + } + &__label { color: var(--primary-color); font-weight: 700; - cursor: default; - - &:hover ~ .tooltip__bubble { - opacity: 1; - visibility: visible; - } &[data-placement="top"] ~ .tooltip__bubble, &[data-placement="bottom"] ~ .tooltip__bubble { @@ -39,6 +39,8 @@ $arrow-size: 8px; @include position(absolute, null null -8px null); content: ''; + left: 50%; + transform: translateX(-50%); } } @@ -61,6 +63,8 @@ $arrow-size: 8px; @include position(absolute, -8px null null null); content: ''; + left: 50%; + transform: translateX(-50%); } } @@ -79,7 +83,7 @@ $arrow-size: 8px; &__bubble { position: absolute; padding: 1em; - z-index: 1; + z-index: 99; opacity: 0; visibility: hidden; max-width: 350px; @@ -89,6 +93,6 @@ $arrow-size: 8px; box-shadow: 0 0 14px 0 rgba(0, 0, 0, 0.4); line-height: 1; font-weight: normal; - white-space: nowrap; + width: max-content; } } From 23175de8b5322b82b29d23841f119c587848bb43 Mon Sep 17 00:00:00 2001 From: Unai Abrisketa Date: Fri, 19 Nov 2021 15:04:56 +0100 Subject: [PATCH 17/76] Add new way for collapse functions --- app/assets/javascripts/beyond_canvas/base.js | 28 +++++++++++++-- .../beyond_canvas/application_helper.rb | 2 +- .../beyond_canvas/initializers/collapse.js | 36 +++++++++++++++++-- 3 files changed, 59 insertions(+), 7 deletions(-) diff --git a/app/assets/javascripts/beyond_canvas/base.js b/app/assets/javascripts/beyond_canvas/base.js index 971fa915..1b601ad8 100644 --- a/app/assets/javascripts/beyond_canvas/base.js +++ b/app/assets/javascripts/beyond_canvas/base.js @@ -91,12 +91,34 @@ } }); (function($) { - $(document).on("click", "[data-toggle='collapse']", function(e) { + $(document).on("click", '[data-toggle="collapse"]', function(e) { e.preventDefault(); - $($(this).attr("data-target")).slideToggle(); - $(this).find(".collapse__icon").toggleClass("collapse__icon--open"); + var target = $(this).attr("data-target"); + if ($(target).is(":hidden")) { + $(this).openCollapse(); + } else { + $(this).closeCollapse(); + } }); })(jQuery); + $.fn.extend({ + openCollapse: function openCollapse() { + var target = $(this).attr("data-target"); + $(this).trigger("bc.collapse.open"); + $(this).attr("data-visible", true); + $(this).find(".collapse__icon").addClass("collapse__icon--open"); + $(target).slideDown(); + $(this).trigger("bc.collapse.opened"); + }, + closeCollapse: function closeCollapse() { + var target = $(this).attr("data-target"); + $(this).trigger("bc.collapse.close"); + $(this).attr("data-visible", false); + $(this).find(".collapse__icon").removeClass("collapse__icon--open"); + $(target).slideUp(); + $(this).trigger("bc.collapse.closed"); + } + }); (function($) { var onDOMReady = function onDOMReady() { $(".flash").each(function() { diff --git a/app/helpers/beyond_canvas/application_helper.rb b/app/helpers/beyond_canvas/application_helper.rb index 7e655676..84329fed 100644 --- a/app/helpers/beyond_canvas/application_helper.rb +++ b/app/helpers/beyond_canvas/application_helper.rb @@ -32,7 +32,7 @@ def collapse(name, html_options = nil, &block) html_options.merge!(id: id) content_tag('div', class: 'collapse') do - content_tag('a', class: 'collapse__button', title: name, data: { toggle: 'collapse', target: "##{id}" }) do + content_tag('a', class: 'collapse__button', title: name, data: { visible: false, toggle: 'collapse', target: "##{id}" }) do (inline_svg_tag('icons/arrow_right.svg', class: 'collapse__icon') + name).html_safe end + content_tag('div', html_options) do diff --git a/app/javascript/beyond_canvas/initializers/collapse.js b/app/javascript/beyond_canvas/initializers/collapse.js index 6cde4a4e..c80002a5 100644 --- a/app/javascript/beyond_canvas/initializers/collapse.js +++ b/app/javascript/beyond_canvas/initializers/collapse.js @@ -1,8 +1,38 @@ (function ($) { - $(document).on('click', "[data-toggle='collapse']", function (e) { + $(document).on('click', '[data-toggle="collapse"]', function (e) { e.preventDefault(); - $($(this).attr('data-target')).slideToggle(); - $(this).find('.collapse__icon').toggleClass('collapse__icon--open'); + const target = $(this).attr('data-target'); + + if ($(target).is(':hidden')) { + $(this).openCollapse(); + } else { + $(this).closeCollapse(); + } }); })(jQuery); + +$.fn.extend({ + openCollapse: function () { + const target = $(this).attr('data-target'); + + $(this).trigger('bc.collapse.open'); + + $(this).attr('data-visible', true); + $(this).find('.collapse__icon').addClass('collapse__icon--open'); + $(target).slideDown(); + + $(this).trigger('bc.collapse.opened'); + }, + closeCollapse: function () { + const target = $(this).attr('data-target'); + + $(this).trigger('bc.collapse.close'); + + $(this).attr('data-visible', false); + $(this).find('.collapse__icon').removeClass('collapse__icon--open'); + $(target).slideUp(); + + $(this).trigger('bc.collapse.closed'); + }, +}); From b395ea1e73d2e89815b08ad67cb8a6923d3c425b Mon Sep 17 00:00:00 2001 From: Unai Abrisketa Date: Fri, 19 Nov 2021 15:05:47 +0100 Subject: [PATCH 18/76] Add new way for collapse functions (#72) --- app/assets/javascripts/beyond_canvas/base.js | 28 +++++++++++++-- .../beyond_canvas/application_helper.rb | 2 +- .../beyond_canvas/initializers/collapse.js | 36 +++++++++++++++++-- 3 files changed, 59 insertions(+), 7 deletions(-) diff --git a/app/assets/javascripts/beyond_canvas/base.js b/app/assets/javascripts/beyond_canvas/base.js index 971fa915..1b601ad8 100644 --- a/app/assets/javascripts/beyond_canvas/base.js +++ b/app/assets/javascripts/beyond_canvas/base.js @@ -91,12 +91,34 @@ } }); (function($) { - $(document).on("click", "[data-toggle='collapse']", function(e) { + $(document).on("click", '[data-toggle="collapse"]', function(e) { e.preventDefault(); - $($(this).attr("data-target")).slideToggle(); - $(this).find(".collapse__icon").toggleClass("collapse__icon--open"); + var target = $(this).attr("data-target"); + if ($(target).is(":hidden")) { + $(this).openCollapse(); + } else { + $(this).closeCollapse(); + } }); })(jQuery); + $.fn.extend({ + openCollapse: function openCollapse() { + var target = $(this).attr("data-target"); + $(this).trigger("bc.collapse.open"); + $(this).attr("data-visible", true); + $(this).find(".collapse__icon").addClass("collapse__icon--open"); + $(target).slideDown(); + $(this).trigger("bc.collapse.opened"); + }, + closeCollapse: function closeCollapse() { + var target = $(this).attr("data-target"); + $(this).trigger("bc.collapse.close"); + $(this).attr("data-visible", false); + $(this).find(".collapse__icon").removeClass("collapse__icon--open"); + $(target).slideUp(); + $(this).trigger("bc.collapse.closed"); + } + }); (function($) { var onDOMReady = function onDOMReady() { $(".flash").each(function() { diff --git a/app/helpers/beyond_canvas/application_helper.rb b/app/helpers/beyond_canvas/application_helper.rb index 7e655676..84329fed 100644 --- a/app/helpers/beyond_canvas/application_helper.rb +++ b/app/helpers/beyond_canvas/application_helper.rb @@ -32,7 +32,7 @@ def collapse(name, html_options = nil, &block) html_options.merge!(id: id) content_tag('div', class: 'collapse') do - content_tag('a', class: 'collapse__button', title: name, data: { toggle: 'collapse', target: "##{id}" }) do + content_tag('a', class: 'collapse__button', title: name, data: { visible: false, toggle: 'collapse', target: "##{id}" }) do (inline_svg_tag('icons/arrow_right.svg', class: 'collapse__icon') + name).html_safe end + content_tag('div', html_options) do diff --git a/app/javascript/beyond_canvas/initializers/collapse.js b/app/javascript/beyond_canvas/initializers/collapse.js index 6cde4a4e..c80002a5 100644 --- a/app/javascript/beyond_canvas/initializers/collapse.js +++ b/app/javascript/beyond_canvas/initializers/collapse.js @@ -1,8 +1,38 @@ (function ($) { - $(document).on('click', "[data-toggle='collapse']", function (e) { + $(document).on('click', '[data-toggle="collapse"]', function (e) { e.preventDefault(); - $($(this).attr('data-target')).slideToggle(); - $(this).find('.collapse__icon').toggleClass('collapse__icon--open'); + const target = $(this).attr('data-target'); + + if ($(target).is(':hidden')) { + $(this).openCollapse(); + } else { + $(this).closeCollapse(); + } }); })(jQuery); + +$.fn.extend({ + openCollapse: function () { + const target = $(this).attr('data-target'); + + $(this).trigger('bc.collapse.open'); + + $(this).attr('data-visible', true); + $(this).find('.collapse__icon').addClass('collapse__icon--open'); + $(target).slideDown(); + + $(this).trigger('bc.collapse.opened'); + }, + closeCollapse: function () { + const target = $(this).attr('data-target'); + + $(this).trigger('bc.collapse.close'); + + $(this).attr('data-visible', false); + $(this).find('.collapse__icon').removeClass('collapse__icon--open'); + $(target).slideUp(); + + $(this).trigger('bc.collapse.closed'); + }, +}); From f5842bf314b6a0153a762aabbe9c450c625dba9a Mon Sep 17 00:00:00 2001 From: German Date: Tue, 23 Nov 2021 16:14:58 +0100 Subject: [PATCH 19/76] Make safari works with cockpit apps Due to this [feature](https://support.apple.com/en-gb/guide/safari/sfri40732/mac) Safari doesn't work as a cockpit app when **Prevent cross-site tracking** is enabled. For that reason, we updated the 500 error page to inform the user what have to do to make the app work. --- lib/beyond_canvas/engine.rb | 2 +- lib/beyond_canvas/middleware/cockpit_app_header.rb | 3 ++- public/500.html | 6 +++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/beyond_canvas/engine.rb b/lib/beyond_canvas/engine.rb index 4dd3259a..2c1b4a53 100644 --- a/lib/beyond_canvas/engine.rb +++ b/lib/beyond_canvas/engine.rb @@ -21,7 +21,7 @@ class Engine < ::Rails::Engine # :nodoc: if BeyondCanvas.configuration.cockpit_app == true && Rails.env.production? app.config.session_store :cookie_store, { secure: true, - same_site: :none, + same_site: :none } end end diff --git a/lib/beyond_canvas/middleware/cockpit_app_header.rb b/lib/beyond_canvas/middleware/cockpit_app_header.rb index 7e163a42..65520da7 100644 --- a/lib/beyond_canvas/middleware/cockpit_app_header.rb +++ b/lib/beyond_canvas/middleware/cockpit_app_header.rb @@ -8,8 +8,9 @@ def initialize(app) def call(env) status, headers, response = @app.call(env) request = ActionDispatch::Request.new env + sec_fetch_dest = request.headers['Sec-Fetch-Dest'] - if request.headers['Sec-Fetch-Dest'] == 'iframe' + if sec_fetch_dest == 'iframe' || (request.user_agent.match?(/Safari/) && sec_fetch_dest.blank?) headers['Content-Security-Policy'] = <<~POLICY.gsub "\n", ' ' frame-ancestors #{request.session[:iframe_ancestor_url]} #{request.referer}; POLICY diff --git a/public/500.html b/public/500.html index 617bb9a7..b9d5ce01 100644 --- a/public/500.html +++ b/public/500.html @@ -44,18 +44,18 @@

"en": { translation: { title: "Something went wrong", - message: "We're sorry, there's been an internal error. Try refreshing the page. If this error persists, try again later or contact Support." + message: "We're sorry, there was an internal error. Try refreshing the page. If this error persists, try again later or contact Support. If you are using the browser Safari, please make sure that you have disabled the \"Prevent cross-site tracking\" setting." } }, "de": { translation: { title: "Etwas ist schiefgelaufen", - message: "Es tut uns leid, ein interner Fehler ist aufgetreten. Versuche, die Seite neu zu laden. Wenn dieser Fehler weiterhin besteht, versuche es später noch einmal oder wende dich an den Support." + message: "Es tut uns leid, ein interner Fehler ist aufgetreten. Versuche, die Seite neu zu laden. Wenn dieser Fehler weiterhin besteht, versuche es später noch einmal oder wende dich an den Support. Wenn du den Browser \“Safari”\ verwendest, achte bitte darauf, dass du in den Einstellungen \“Websiteübergreifendes Tracking verhindern\“ deaktivierst." } }, "fr": { title: "Une erreur s'est produite", - message: "Nous sommes désolés, une erreur interne s'est produite. Essaye de rafraîchir la page. Si cette erreur persiste, réessaye plus tard ou contacte le support client." + message: "Nous sommes désolés, une erreur interne s’est produite. Essaye de rafraîchir la page. Si cette erreur persiste, réessaye plus tard ou contacte le support client. Si tu utilises Safari comme navigateur, assure-toi d’avoir désactivé la fonctionnalité « Empêcher le suivi sur plusieurs domaines »." } } }, function (err, t) { From f8d0ffa75b14c5dcfc58ba30d0c038bfbbf99049 Mon Sep 17 00:00:00 2001 From: kengallego Date: Tue, 7 Dec 2021 09:23:58 +0100 Subject: [PATCH 20/76] Use custom step list title --- .../beyond_canvas/application_helper.rb | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/app/helpers/beyond_canvas/application_helper.rb b/app/helpers/beyond_canvas/application_helper.rb index 84329fed..a559e5b3 100644 --- a/app/helpers/beyond_canvas/application_helper.rb +++ b/app/helpers/beyond_canvas/application_helper.rb @@ -41,24 +41,24 @@ def collapse(name, html_options = nil, &block) end end - def step_list(title, steps = []) + def step_list(title = nil, steps: []) content_tag('div', class: 'step-list__container') do - content_tag('h4', title, class: 'step-list__title') + - content_tag('table', class: 'step-list__items') do - content_tag('tbody') do - steps.each_with_index.collect do |step, index| - content_tag('tr') do - content_tag('td', class: 'step-list__bubble-column') do - content_tag('div', index + 1, class: 'step-list__bubble') - end + - content_tag('td') do - content_tag('strong', step.dig(:headline)&.html_safe, class: 'step-list__headline') + - content_tag('p', step.dig(:description)&.html_safe, class: 'step-list__description') + (title.nil? ? content_tag('div') : content_tag('h4', title, class: 'step-list__title')) + + content_tag('table', class: 'step-list__items') do + content_tag('tbody') do + safe_join(steps.each_with_index.collect do |step, index| + content_tag('tr') do + content_tag('td', class: 'step-list__bubble-column') do + content_tag('div', index + 1, class: 'step-list__bubble') + end + + content_tag('td') do + content_tag('strong', step[:headline]&.html_safe, class: 'step-list__headline') + + content_tag('p', step[:description]&.html_safe, class: 'step-list__description') + end end - end - end.join.html_safe + end) + end end - end end end From 599f0cb575e792922ac76be828eefc15505bd736 Mon Sep 17 00:00:00 2001 From: kengallego Date: Tue, 7 Dec 2021 09:24:35 +0100 Subject: [PATCH 21/76] Some cleaning of the code --- app/helpers/beyond_canvas/application_helper.rb | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/helpers/beyond_canvas/application_helper.rb b/app/helpers/beyond_canvas/application_helper.rb index a559e5b3..a9f099e1 100644 --- a/app/helpers/beyond_canvas/application_helper.rb +++ b/app/helpers/beyond_canvas/application_helper.rb @@ -5,7 +5,7 @@ module ApplicationHelper # :nodoc: def full_title(page_title = '') base_title = BeyondCanvas.configuration.site_title - page_title.empty? ? base_title : page_title + ' | ' + base_title + page_title.empty? ? base_title : "#{page_title} | #{base_title}" end %i[success info warning error].each do |method| @@ -33,11 +33,11 @@ def collapse(name, html_options = nil, &block) content_tag('div', class: 'collapse') do content_tag('a', class: 'collapse__button', title: name, data: { visible: false, toggle: 'collapse', target: "##{id}" }) do - (inline_svg_tag('icons/arrow_right.svg', class: 'collapse__icon') + name).html_safe + inline_svg_tag('icons/arrow_right.svg', class: 'collapse__icon') + name end + - content_tag('div', html_options) do - yield block if block_given? - end + content_tag('div', html_options) do + yield block if block_given? + end end end @@ -68,7 +68,7 @@ def step_list(title = nil, steps: []) content_tag('span', class: 'tooltip') do content_tag('span', '?', class: 'tooltip__label', data: { placement: method }) + - content_tag('div', name, class: 'tooltip__bubble', &block) + content_tag('div', name, class: 'tooltip__bubble', &block) end end end From 4ee46212a0391b57468755644eb2e8516a7a86f7 Mon Sep 17 00:00:00 2001 From: kengallego Date: Thu, 9 Dec 2021 15:02:03 +0100 Subject: [PATCH 22/76] Change safe_html to sanitize (security improve) --- app/form_builders/beyond_canvas/form_builder.rb | 9 +++++---- app/helpers/beyond_canvas/application_helper.rb | 4 ++-- app/helpers/beyond_canvas/form_tag_helper.rb | 8 ++++---- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/app/form_builders/beyond_canvas/form_builder.rb b/app/form_builders/beyond_canvas/form_builder.rb index b70de373..1b52d635 100644 --- a/app/form_builders/beyond_canvas/form_builder.rb +++ b/app/form_builders/beyond_canvas/form_builder.rb @@ -1,4 +1,5 @@ # frozen_string_literal: true +include ActionView::Helpers module BeyondCanvas class FormBuilder < ActionView::Helpers::FormBuilder # :nodoc: @@ -75,8 +76,8 @@ def file_field(attribute, args = {}) private def field_wrapper(attribute, args, &block) - label = args.delete(:label)&.html_safe - hint = args.delete(:hint)&.html_safe + label = sanitize(args.delete(:label)) + hint = sanitize(args.delete(:hint)) pre = args.delete(:pre) post = args.delete(:post) @@ -99,8 +100,8 @@ def field_wrapper(attribute, args, &block) end def inline_wrapper(attribute, args, filed_identifyer, &block) - label = args.delete(:label)&.html_safe - hint = args.delete(:hint)&.html_safe + label = sanitize(args.delete(:label)) + hint = sanitize(args.delete(:hint)) errors = object.errors[attribute].join(', ') if object.respond_to?(:errors) && object.errors.include?(attribute) @template.content_tag(:div, class: 'form__row') do diff --git a/app/helpers/beyond_canvas/application_helper.rb b/app/helpers/beyond_canvas/application_helper.rb index a9f099e1..7a3af444 100644 --- a/app/helpers/beyond_canvas/application_helper.rb +++ b/app/helpers/beyond_canvas/application_helper.rb @@ -52,8 +52,8 @@ def step_list(title = nil, steps: []) content_tag('div', index + 1, class: 'step-list__bubble') end + content_tag('td') do - content_tag('strong', step[:headline]&.html_safe, class: 'step-list__headline') + - content_tag('p', step[:description]&.html_safe, class: 'step-list__description') + content_tag('strong', sanitize(step[:headline]), class: 'step-list__headline') + + content_tag('p', sanitize(step[:description]), class: 'step-list__description') end end end) diff --git a/app/helpers/beyond_canvas/form_tag_helper.rb b/app/helpers/beyond_canvas/form_tag_helper.rb index 5fade095..894957b8 100644 --- a/app/helpers/beyond_canvas/form_tag_helper.rb +++ b/app/helpers/beyond_canvas/form_tag_helper.rb @@ -86,8 +86,8 @@ def number_field_tag(name, value = nil, options = {}) private def field_wrapper(attribute, args, &block) - label = args.delete(:label)&.html_safe - hint = args.delete(:hint)&.html_safe + label = sanitize(args.delete(:label)) + hint = sanitize(args.delete(:hint)) pre = args.delete(:pre) post = args.delete(:post) @@ -107,8 +107,8 @@ def field_wrapper(attribute, args, &block) end def inline_wrapper(attribute, args, filed_identifyer, &block) - label = args.delete(:label)&.html_safe - hint = args.delete(:hint)&.html_safe + label = sanitize(args.delete(:label)) + hint = sanitize(args.delete(:hint)) content_tag(:div, class: 'form__row') do content_tag(:div, class: 'relative', style: 'display: flex; align-items: center;') do From a63bd1b7827438a55fc92448cfdaa33ca7dfee08 Mon Sep 17 00:00:00 2001 From: kengallego Date: Thu, 9 Dec 2021 15:42:10 +0100 Subject: [PATCH 23/76] Sanitize also step list title --- app/helpers/beyond_canvas/application_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helpers/beyond_canvas/application_helper.rb b/app/helpers/beyond_canvas/application_helper.rb index 7a3af444..c6e67668 100644 --- a/app/helpers/beyond_canvas/application_helper.rb +++ b/app/helpers/beyond_canvas/application_helper.rb @@ -43,7 +43,7 @@ def collapse(name, html_options = nil, &block) def step_list(title = nil, steps: []) content_tag('div', class: 'step-list__container') do - (title.nil? ? content_tag('div') : content_tag('h4', title, class: 'step-list__title')) + + (title.nil? ? content_tag('div') : content_tag('h4', sanitize(title), class: 'step-list__title')) + content_tag('table', class: 'step-list__items') do content_tag('tbody') do safe_join(steps.each_with_index.collect do |step, index| From bef4517680d2f829cc38e1617f2d551f11b70308 Mon Sep 17 00:00:00 2001 From: kengallego Date: Thu, 9 Dec 2021 16:11:49 +0100 Subject: [PATCH 24/76] Code cleaning --- app/helpers/beyond_canvas/application_helper.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/helpers/beyond_canvas/application_helper.rb b/app/helpers/beyond_canvas/application_helper.rb index c6e67668..5d08edcb 100644 --- a/app/helpers/beyond_canvas/application_helper.rb +++ b/app/helpers/beyond_canvas/application_helper.rb @@ -43,7 +43,8 @@ def collapse(name, html_options = nil, &block) def step_list(title = nil, steps: []) content_tag('div', class: 'step-list__container') do - (title.nil? ? content_tag('div') : content_tag('h4', sanitize(title), class: 'step-list__title')) + + [ + (content_tag('h4', sanitize(title), class: 'step-list__title') if title.present?), content_tag('table', class: 'step-list__items') do content_tag('tbody') do safe_join(steps.each_with_index.collect do |step, index| @@ -59,6 +60,7 @@ def step_list(title = nil, steps: []) end) end end + ].compact.inject(:+) end end From 2a42b1a10ff13c624ecb0b610c83b039f84b61bd Mon Sep 17 00:00:00 2001 From: kengallego Date: Tue, 14 Dec 2021 13:24:39 +0100 Subject: [PATCH 25/76] Fix sanitize error --- app/form_builders/beyond_canvas/form_builder.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/form_builders/beyond_canvas/form_builder.rb b/app/form_builders/beyond_canvas/form_builder.rb index 1b52d635..274d31bc 100644 --- a/app/form_builders/beyond_canvas/form_builder.rb +++ b/app/form_builders/beyond_canvas/form_builder.rb @@ -1,8 +1,9 @@ # frozen_string_literal: true -include ActionView::Helpers module BeyondCanvas class FormBuilder < ActionView::Helpers::FormBuilder # :nodoc: + include ActionView::Helpers::SanitizeHelper + %i[email_field text_field number_field password_field text_area].each do |method| define_method method do |attribute, args = {}| field_wrapper(attribute, args) do From cce9310692f1a8d39b447ecb02f55c6841f91b02 Mon Sep 17 00:00:00 2001 From: Unai Abrisketa Date: Thu, 27 Jan 2022 12:29:42 +0100 Subject: [PATCH 26/76] Use raw --- app/helpers/beyond_canvas/application_helper.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/helpers/beyond_canvas/application_helper.rb b/app/helpers/beyond_canvas/application_helper.rb index 5d08edcb..1c7352bb 100644 --- a/app/helpers/beyond_canvas/application_helper.rb +++ b/app/helpers/beyond_canvas/application_helper.rb @@ -44,7 +44,7 @@ def collapse(name, html_options = nil, &block) def step_list(title = nil, steps: []) content_tag('div', class: 'step-list__container') do [ - (content_tag('h4', sanitize(title), class: 'step-list__title') if title.present?), + (content_tag('h4', raw(title), class: 'step-list__title') if title.present?), content_tag('table', class: 'step-list__items') do content_tag('tbody') do safe_join(steps.each_with_index.collect do |step, index| @@ -53,8 +53,8 @@ def step_list(title = nil, steps: []) content_tag('div', index + 1, class: 'step-list__bubble') end + content_tag('td') do - content_tag('strong', sanitize(step[:headline]), class: 'step-list__headline') + - content_tag('p', sanitize(step[:description]), class: 'step-list__description') + content_tag('strong', raw(step[:headline]), class: 'step-list__headline') + + content_tag('p', raw(step[:description]), class: 'step-list__description') end end end) From fff5077cf64065cad5b2f6eee09ec3ef8ebe1c3a Mon Sep 17 00:00:00 2001 From: German Date: Fri, 11 Feb 2022 09:48:22 +0100 Subject: [PATCH 27/76] Remove forgotten puts (#77) Co-authored-by: gersanco --- app/controllers/beyond_canvas/authentications_controller.rb | 6 ------ 1 file changed, 6 deletions(-) diff --git a/app/controllers/beyond_canvas/authentications_controller.rb b/app/controllers/beyond_canvas/authentications_controller.rb index 3f992c82..40c8a3d7 100644 --- a/app/controllers/beyond_canvas/authentications_controller.rb +++ b/app/controllers/beyond_canvas/authentications_controller.rb @@ -61,17 +61,11 @@ def after_sign_in_path def preinstall @shop = Shop.create_or_find_by(beyond_api_url: params[:api_url]) - puts '*' * 100 @shop.http_host = request.env['HTTP_HOST'] - puts "@shop.http_host -> #{@shop.http_host}" @shop.authenticate(params[:code]) - puts "@shop -> #{@shop.inspect}" - puts "@shop.id -> #{@shop.id}" @shop.valid? - puts @shop.errors.inspect @shop.save @shop.subscribe_to_beyond_webhooks - puts '*' * 100 redirect_to after_preinstallation_path end From 07d7da1b52e237e27746b3396b184e8a38e1d378 Mon Sep 17 00:00:00 2001 From: kengallego Date: Wed, 23 Feb 2022 14:20:48 +0100 Subject: [PATCH 28/76] Change scrollbox to scroll-shadow --- app/assets/javascripts/beyond_canvas/base.js | 134 ++++++++++++++++++ .../stylesheets/beyond_canvas/base.scss | 2 +- .../beyond_canvas/components/_forms.scss | 7 +- .../beyond_canvas/components/_modals.scss | 4 - .../components/_scroll_shadow.scss | 8 ++ .../beyond_canvas/components/_scrollbox.scss | 36 ----- app/javascript/beyond_canvas/base.js | 1 + package.json | 3 +- yarn.lock | 5 + 9 files changed, 157 insertions(+), 43 deletions(-) create mode 100644 app/assets/stylesheets/beyond_canvas/components/_scroll_shadow.scss delete mode 100644 app/assets/stylesheets/beyond_canvas/components/_scrollbox.scss diff --git a/app/assets/javascripts/beyond_canvas/base.js b/app/assets/javascripts/beyond_canvas/base.js index 1b601ad8..dafed79f 100644 --- a/app/assets/javascripts/beyond_canvas/base.js +++ b/app/assets/javascripts/beyond_canvas/base.js @@ -211,4 +211,138 @@ modal.trigger("bc.modal.hidden"); } }); + const template = ` + + + +`; + const updaters = new WeakMap(); + class ScrollShadowElement extends HTMLElement { + static get observedAttributes() { + return [ "el" ]; + } + get el() { + return this.getAttribute("el"); + } + set el(value) { + this.setAttribute("el", value); + } + constructor() { + super(); + this.attachShadow({ + mode: "open" + }).innerHTML = template; + updaters.set(this, new Updater(this.shadowRoot.lastElementChild)); + } + connectedCallback() { + this.shadowRoot.querySelector("slot").addEventListener("slotchange", () => this.start()); + this.start(); + } + disconnectedCallback() { + updaters.get(this).stop(); + } + attributeChangedCallback(_name, oldValue, newValue) { + if (oldValue !== newValue) { + this.scrollEl = newValue ? this.querySelector(newValue) : null; + this.start(); + } + } + start() { + const el = this.scrollEl || this.firstElementChild; + updaters.get(this).start(el, this.scrollEl ? this.firstElementChild : null); + } + } + class Updater { + constructor(targetElement) { + const update = this.update.bind(this, targetElement, getComputedStyle(targetElement)); + this.handleScroll = throttle(update); + this.resizeObserver = new ResizeObserver(update); + } + start(element, rootElement) { + if (this.el) this.stop(); + if (element) { + element.addEventListener("scroll", this.handleScroll); + this.resizeObserver.observe(element); + this.el = element; + } + if (rootElement) { + this.resizeObserver.observe(rootElement); + this.rootEl = rootElement; + } + } + stop() { + if (!this.el) return; + this.el.removeEventListener("scroll", this.handleScroll); + this.resizeObserver.disconnect(); + this.el = null; + this.rootEl = null; + } + update(targetElement, computedStyle) { + const { + el, + rootEl + } = this; + if (!el) return; + const maxSize = Number(computedStyle.getPropertyValue("--scroll-shadow-size") || 14); + const style = { + "--top": clamp(el.scrollTop, 0, maxSize), + "--bottom": clamp(el.scrollHeight - el.offsetHeight - el.scrollTop, 0, maxSize), + "--left": clamp(el.scrollLeft, 0, maxSize), + "--right": clamp(el.scrollWidth - el.offsetWidth - el.scrollLeft, 0, maxSize) + }; + if (rootEl) { + const clientRect = el.getBoundingClientRect(); + const rootClientRect = rootEl.getBoundingClientRect(); + Object.assign(style, { + top: clamp(clientRect.top - rootClientRect.top), + bottom: clamp(rootClientRect.bottom - clientRect.bottom), + left: clamp(clientRect.left - rootClientRect.left), + right: clamp(rootClientRect.right - clientRect.right) + }); + } + for (const key in style) { + targetElement.style.setProperty(key, `${style[key]}px`); + } + } + } + function clamp(num, min = 0, max) { + if (num < min) return min; + if (num > max) return max; + return num; + } + function throttle(callback) { + let id = null; + return () => { + if (id) return; + id = requestAnimationFrame(() => { + callback(); + id = null; + }); + }; + } + if ("customElements" in window && "ResizeObserver" in window) { + customElements.define("scroll-shadow", ScrollShadowElement); + } }); diff --git a/app/assets/stylesheets/beyond_canvas/base.scss b/app/assets/stylesheets/beyond_canvas/base.scss index a4fe43a0..75557111 100644 --- a/app/assets/stylesheets/beyond_canvas/base.scss +++ b/app/assets/stylesheets/beyond_canvas/base.scss @@ -29,7 +29,7 @@ @import "components/modals"; @import "components/notices"; @import "components/relative"; -@import "components/scrollbox"; +@import "components/scroll_shadow"; @import "components/select2"; @import "components/sidebar"; @import "components/spinner"; diff --git a/app/assets/stylesheets/beyond_canvas/components/_forms.scss b/app/assets/stylesheets/beyond_canvas/components/_forms.scss index c94d81e3..89ca4158 100644 --- a/app/assets/stylesheets/beyond_canvas/components/_forms.scss +++ b/app/assets/stylesheets/beyond_canvas/components/_forms.scss @@ -8,7 +8,7 @@ width: 100%; &:not(:last-of-type) { - margin-bottom: 30px; + margin-bottom: 20px; } } @@ -36,5 +36,10 @@ } } } + + &--space-between { + display: flex; + justify-content: space-between; + } } } diff --git a/app/assets/stylesheets/beyond_canvas/components/_modals.scss b/app/assets/stylesheets/beyond_canvas/components/_modals.scss index 3d299d4e..a1347605 100644 --- a/app/assets/stylesheets/beyond_canvas/components/_modals.scss +++ b/app/assets/stylesheets/beyond_canvas/components/_modals.scss @@ -55,10 +55,6 @@ } } - &__body { - @extend %scrollbox; - } - &__footer { margin-top: 35px; } diff --git a/app/assets/stylesheets/beyond_canvas/components/_scroll_shadow.scss b/app/assets/stylesheets/beyond_canvas/components/_scroll_shadow.scss new file mode 100644 index 00000000..1d68e7fd --- /dev/null +++ b/app/assets/stylesheets/beyond_canvas/components/_scroll_shadow.scss @@ -0,0 +1,8 @@ +scroll-shadow { + width: 100%; + .modal__body { + max-height: 65vh; + overflow-x: hidden; + padding-right: 20px; + } +} \ No newline at end of file diff --git a/app/assets/stylesheets/beyond_canvas/components/_scrollbox.scss b/app/assets/stylesheets/beyond_canvas/components/_scrollbox.scss deleted file mode 100644 index ac2f20d0..00000000 --- a/app/assets/stylesheets/beyond_canvas/components/_scrollbox.scss +++ /dev/null @@ -1,36 +0,0 @@ -%scrollbox { - max-height: 65vh; - overflow: auto; - padding-right: 20px; - width: 100%; - - -ms-overflow-style: none; - scrollbar-width: none; - - background: - /* Shadow covers */ - linear-gradient(white 30%, rgba(255,255,255,0)), - linear-gradient(rgba(255,255,255,0), white 70%) 0 100%, - - /* Shadows */ - radial-gradient(50% 0, farthest-side, rgba(0,0,0,.2), rgba(0,0,0,0)), - radial-gradient(50% 100%,farthest-side, rgba(0,0,0,.2), rgba(0,0,0,0)) 0 100%; - background: - /* Shadow covers */ - linear-gradient(white 30%, rgba(255,255,255,0)), - linear-gradient(rgba(255,255,255,0), white 70%) 0 100%, - - /* Shadows */ - radial-gradient(farthest-side at 50% 0, rgba(0,0,0,.2), rgba(0,0,0,0)), - radial-gradient(farthest-side at 50% 100%, rgba(0,0,0,.2), rgba(0,0,0,0)) 0 100%; - background-repeat: no-repeat; - background-color: white; - background-size: 100% 40px, 100% 40px, 100% 14px, 100% 14px; - - /* Opera doesn’t support this in the shorthand */ - background-attachment: local, local, scroll, scroll; -} - -.scrollbox { - @extend %scrollbox; -} diff --git a/app/javascript/beyond_canvas/base.js b/app/javascript/beyond_canvas/base.js index fa3ffcdd..e6419688 100644 --- a/app/javascript/beyond_canvas/base.js +++ b/app/javascript/beyond_canvas/base.js @@ -4,3 +4,4 @@ import './initializers/collapse'; import './initializers/flash'; import './initializers/inputs'; import './initializers/modals'; +import 'scroll-shadow-element/scroll-shadow-element'; diff --git a/package.json b/package.json index 09cdbf69..72f186e2 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,8 @@ }, "dependencies": { "bourbon": "^7.0.0", - "jquery": "^3.5.1" + "jquery": "^3.5.1", + "scroll-shadow-element": "^1.1.3" }, "devDependencies": { "@babel/core": "^7.6.2", diff --git a/yarn.lock b/yarn.lock index 3113234b..767d1ae4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2239,6 +2239,11 @@ safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +scroll-shadow-element@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/scroll-shadow-element/-/scroll-shadow-element-1.1.3.tgz#fa06c100fbd33b4592cf03d163be4bf8420ff960" + integrity sha512-dSYJYM9sD56xX8at/ey1CS5XQH4PGigdbMFtiFyr5kdDE/HTB+f2h7NMEqpMBtKfgx3uNvx0RGVr4/uDTC9XZg== + "semver@2 || 3 || 4 || 5": version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" From 7be9b42203059952f93356cfd4ddad3bade5b03d Mon Sep 17 00:00:00 2001 From: kengallego Date: Wed, 23 Feb 2022 14:36:30 +0100 Subject: [PATCH 29/76] Add missing line --- .../stylesheets/beyond_canvas/components/_scroll_shadow.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/stylesheets/beyond_canvas/components/_scroll_shadow.scss b/app/assets/stylesheets/beyond_canvas/components/_scroll_shadow.scss index 1d68e7fd..f4ef0c72 100644 --- a/app/assets/stylesheets/beyond_canvas/components/_scroll_shadow.scss +++ b/app/assets/stylesheets/beyond_canvas/components/_scroll_shadow.scss @@ -5,4 +5,4 @@ scroll-shadow { overflow-x: hidden; padding-right: 20px; } -} \ No newline at end of file +} From a146420e04a54fcf9d2132822e2b56ee3d63d3d4 Mon Sep 17 00:00:00 2001 From: kengallego Date: Thu, 24 Feb 2022 09:47:46 +0100 Subject: [PATCH 30/76] Improve css --- app/assets/stylesheets/beyond_canvas/base.scss | 1 - .../beyond_canvas/components/_modals.scss | 12 ++++++++++++ .../beyond_canvas/components/_scroll_shadow.scss | 8 -------- 3 files changed, 12 insertions(+), 9 deletions(-) delete mode 100644 app/assets/stylesheets/beyond_canvas/components/_scroll_shadow.scss diff --git a/app/assets/stylesheets/beyond_canvas/base.scss b/app/assets/stylesheets/beyond_canvas/base.scss index 75557111..28e717f5 100644 --- a/app/assets/stylesheets/beyond_canvas/base.scss +++ b/app/assets/stylesheets/beyond_canvas/base.scss @@ -29,7 +29,6 @@ @import "components/modals"; @import "components/notices"; @import "components/relative"; -@import "components/scroll_shadow"; @import "components/select2"; @import "components/sidebar"; @import "components/spinner"; diff --git a/app/assets/stylesheets/beyond_canvas/components/_modals.scss b/app/assets/stylesheets/beyond_canvas/components/_modals.scss index a1347605..7f93c6f3 100644 --- a/app/assets/stylesheets/beyond_canvas/components/_modals.scss +++ b/app/assets/stylesheets/beyond_canvas/components/_modals.scss @@ -11,6 +11,10 @@ z-index: 99999; visibility: hidden; + scroll-shadow { + width: 100%; + } + &__dialog { width: 100%; max-width: $modal-width; @@ -38,6 +42,14 @@ color: var(--notification-text); } + &__body { + scroll-shadow & { + max-height: 65vh; + overflow-x: hidden; + padding-right: 20px; + } + } + &__close { // SEE: https://newbedev.com/change-svg-fill-color-in-before-or-after-css @include position(absolute, 20px 20px null null); diff --git a/app/assets/stylesheets/beyond_canvas/components/_scroll_shadow.scss b/app/assets/stylesheets/beyond_canvas/components/_scroll_shadow.scss deleted file mode 100644 index f4ef0c72..00000000 --- a/app/assets/stylesheets/beyond_canvas/components/_scroll_shadow.scss +++ /dev/null @@ -1,8 +0,0 @@ -scroll-shadow { - width: 100%; - .modal__body { - max-height: 65vh; - overflow-x: hidden; - padding-right: 20px; - } -} From 690567478112db16cfc9aee4a3bf99f58a99c9ab Mon Sep 17 00:00:00 2001 From: kengallego Date: Thu, 24 Feb 2022 10:52:06 +0100 Subject: [PATCH 31/76] improve form actions css --- .../beyond_canvas/components/_forms.scss | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/app/assets/stylesheets/beyond_canvas/components/_forms.scss b/app/assets/stylesheets/beyond_canvas/components/_forms.scss index 89ca4158..f955729c 100644 --- a/app/assets/stylesheets/beyond_canvas/components/_forms.scss +++ b/app/assets/stylesheets/beyond_canvas/components/_forms.scss @@ -40,6 +40,22 @@ &--space-between { display: flex; justify-content: space-between; + + > *:not(:last-child) { + > * { + &:not(:first-child) { + margin-left: 30px; + } + } + } + + > *:last-child { + > * { + &:not(:last-child) { + margin-right: 30px; + } + } + } } } } From 776f9f4c2fd45c91a8c11d02894d1ae0dc9bb002 Mon Sep 17 00:00:00 2001 From: German Date: Mon, 28 Feb 2022 12:55:23 +0100 Subject: [PATCH 32/76] Add Image field component features * Add `image_file_field` component to upload images and render a `placeholder` if there is no image * Add `image_attachment_tag` component to render images --- CHANGELOG.md | 2 + app/assets/images/icons/delete.svg | 1 + app/assets/images/icons/placeholder.svg | 16 +++++ app/assets/javascripts/beyond_canvas/base.js | 1 + .../beyond_canvas/common_functions.js | 37 +++++++++++ .../stylesheets/beyond_canvas/base.scss | 1 + .../components/_attachments.scss | 60 +++++++++++++++++ .../settings/_constant_variables.scss | 8 +++ .../beyond_canvas/form_builder.rb | 64 +++++++++++++++++++ app/helpers/beyond_canvas/form_tag_helper.rb | 13 ++++ .../beyond_canvas/lib/common_functions.js | 29 +++++++++ .../layouts/beyond_canvas/blank.html.erb | 21 ++++++ rollup.config.js | 49 +++++++++----- 13 files changed, 285 insertions(+), 17 deletions(-) create mode 100644 app/assets/images/icons/delete.svg create mode 100644 app/assets/images/icons/placeholder.svg create mode 100644 app/assets/javascripts/beyond_canvas/common_functions.js create mode 100644 app/assets/stylesheets/beyond_canvas/components/_attachments.scss create mode 100644 app/javascript/beyond_canvas/lib/common_functions.js create mode 100644 app/views/layouts/beyond_canvas/blank.html.erb diff --git a/CHANGELOG.md b/CHANGELOG.md index 5890b387..0d824f44 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ * features * Add a middleware to automatically configure cockpit app headers + * Add `image_file_field` component to upload images and render a `placeholder` if there is no image + * Add `image_attachment_tag` component to render images * Add styles for `.svg` images that include `.surface`, `.bubbles` and `.outline` classes * enhancements diff --git a/app/assets/images/icons/delete.svg b/app/assets/images/icons/delete.svg new file mode 100644 index 00000000..cf3dbd6c --- /dev/null +++ b/app/assets/images/icons/delete.svg @@ -0,0 +1 @@ + diff --git a/app/assets/images/icons/placeholder.svg b/app/assets/images/icons/placeholder.svg new file mode 100644 index 00000000..0d2c6220 --- /dev/null +++ b/app/assets/images/icons/placeholder.svg @@ -0,0 +1,16 @@ + + + + + + diff --git a/app/assets/javascripts/beyond_canvas/base.js b/app/assets/javascripts/beyond_canvas/base.js index dafed79f..bd9e2b40 100644 --- a/app/assets/javascripts/beyond_canvas/base.js +++ b/app/assets/javascripts/beyond_canvas/base.js @@ -3,6 +3,7 @@ */ //= require jquery3 //= require rails-ujs +//= require beyond_canvas/common_functions //= require_self (function(factory) { diff --git a/app/assets/javascripts/beyond_canvas/common_functions.js b/app/assets/javascripts/beyond_canvas/common_functions.js new file mode 100644 index 00000000..a10b7a3d --- /dev/null +++ b/app/assets/javascripts/beyond_canvas/common_functions.js @@ -0,0 +1,37 @@ +var bc = (function (exports) { + 'use strict'; + + /* exported previewImage */ + function previewImage(e) { + var arr = Array.from(e.target.files); + var elementFather = $(e.target).parents('.relative').find('.js-images'); + + if ($(e.target).attr('multiple')) { + $(elementFather).children('attachment__placeholder, [preview]').each(function (_, img) { + return $(img).remove(); + }); + } else { + $(elementFather).find('figure').remove(); + } + + arr.forEach(function (file) { + var reader = new FileReader(); + reader.readAsDataURL(file); + + reader.onload = function () { + var figure = document.createElement('figure'); + var img = document.createElement('img'); + figure.classList.add('attachment', 'attachment--preview'); + figure.setAttribute('preview', true); + img.setAttribute('src', reader.result); + $(figure).append(img); + $(elementFather).append(figure); + }; + }); + } + + exports.previewImage = previewImage; + + return exports; + +}({})); diff --git a/app/assets/stylesheets/beyond_canvas/base.scss b/app/assets/stylesheets/beyond_canvas/base.scss index 28e717f5..777d0047 100644 --- a/app/assets/stylesheets/beyond_canvas/base.scss +++ b/app/assets/stylesheets/beyond_canvas/base.scss @@ -11,6 +11,7 @@ @import "components/action_bar"; @import "components/actions"; +@import "components/attachments"; @import "components/breadcrumbs"; @import "components/buttons"; @import "components/cards"; diff --git a/app/assets/stylesheets/beyond_canvas/components/_attachments.scss b/app/assets/stylesheets/beyond_canvas/components/_attachments.scss new file mode 100644 index 00000000..3ecd06e2 --- /dev/null +++ b/app/assets/stylesheets/beyond_canvas/components/_attachments.scss @@ -0,0 +1,60 @@ +.attachments { + margin-top: 10px; +} + +.attachment { + background-color: $white; + border: $attachment-border; + border-radius: 3px; + display: inline-flex; + margin-bottom: 16px; + padding: 10px; + position: relative; + + &__delete-icon { + position: absolute; + right: 12px; + top: 12px; + + &:hover { + svg { + path{ + fill: $attachment-delete-icon-hover-color; + } + } + } + + svg { + filter: drop-shadow(0 1px 0 $white); + + path { + fill: $attachment-delete-icon-color; + } + } + + &s { + &:not(:last-child) { + margin-bottom: 30px; + } + + .attachment { + &:not(:first-child) { + margin-top: 30px; + } + } + } + } + + &__placeholder { + align-items: center; + box-sizing: border-box; + display: flex; + justify-content: center; + max-width: 100%; + + svg { + height: 50%; + width: 50%; + } + } +} diff --git a/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss index c5b8705d..9896b9ef 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss @@ -231,3 +231,11 @@ $select2-option-hover-color: rgb(62, 62, 62) !default; // ************************************************************ $collapsible-color: $palette-primary !default; + +//************************************************************ +// Attachments +//************************************************************ + +$attachment-border: 1px solid #d9d8c3; +$attachment-delete-icon-color: #706e4d; +$attachment-delete-icon-hover-color: #525038; diff --git a/app/form_builders/beyond_canvas/form_builder.rb b/app/form_builders/beyond_canvas/form_builder.rb index 274d31bc..2fd1ad0b 100644 --- a/app/form_builders/beyond_canvas/form_builder.rb +++ b/app/form_builders/beyond_canvas/form_builder.rb @@ -74,6 +74,36 @@ def file_field(attribute, args = {}) end end + def image_file_field(attribute, args = {}, &block) # IMPORTANT: Using this method inside a form_for block will set the enclosing form's encoding to multipart/form-data. + self.multipart = true # SEE: https://api.rubyonrails.org/v6.1.0/classes/ActionView/Helpers/FormBuilder.html#method-i-file_field + + image_field_wrapper(attribute, args) do + filed_identifyer = filed_identifyer(attribute) + + args.merge!(id: filed_identifyer) + .merge!(style: 'visibility: hidden; position: absolute;') + + @template.content_tag(:div, class: 'attachments js-images', js_identifier: filed_identifyer) do + image = @object.send(attribute) + [ + (block.call if block_given?) + ].compact.inject(:+) + [ + (image_placeholder(args) if image.class == ActiveStorage::Attached::One && image.attachment.blank?), + (image_placeholder(args) if image.class == ActiveStorage::Attached::Many && image.attachments.blank?) + ].compact.inject(:+) + end + + @template.content_tag(:div, class: 'input__file') do + @template.file_field(@object_name, attribute, { onchange: 'bc.previewImage(event)' }.merge(args)) + + @template.content_tag(:label, + for: filed_identifyer, + class: 'input__file__control button__transparent--primary') do + args.dig(:data, :button_text) || 'Upload image' + end + end + end + end + private def field_wrapper(attribute, args, &block) @@ -100,6 +130,30 @@ def field_wrapper(attribute, args, &block) end end + def image_field_wrapper(attribute, args, &block) + label = sanitize(args.delete(:label)) + hint = sanitize(args.delete(:hint)) + pre = args.delete(:pre) + post = args.delete(:post) + + errors = object.errors[attribute].join(', ') if object.respond_to?(:errors) && object.errors.include?(attribute) + + @template.content_tag(:div, class: 'form__row') do + [ + (@template.content_tag(:label, label, class: 'input__label') if label.present?), + (@template.content_tag(:div, hint, class: 'input__hint', style: 'margin-bottom: 10x') if hint.present?), + (@template.content_tag(:div, class: 'relative', style: "#{'display: flex;' if pre || post}") do + [ + (@template.content_tag(:span, pre, class: 'input__pre') if pre.present?), + (@template.content_tag(:span, post, class: 'input__post') if post.present?), + block.call, + (@template.content_tag(:label, errors, class: 'input__error') if errors.present?) + ].compact.inject(:+) + end), + ].compact.inject(:+) + end + end + def inline_wrapper(attribute, args, filed_identifyer, &block) label = sanitize(args.delete(:label)) hint = sanitize(args.delete(:hint)) @@ -122,5 +176,15 @@ def inline_wrapper(attribute, args, filed_identifyer, &block) def filed_identifyer(attribute) "#{attribute}_#{DateTime.now.strftime('%Q') + rand(10_000).to_s}" end + + def image_placeholder(args) + placeholder_with = 300 + placeholder_height = 300 + placeholder_with, placeholder_height = args[:placeholder_size].split('x') if args[:placeholder_size].present? + + @template.content_tag(:figure, class: 'attachment attachment__placeholder', style: "width:#{placeholder_with}px;height:#{placeholder_height}px;") do + @template.inline_svg_tag('icons/placeholder.svg') + end + end end end diff --git a/app/helpers/beyond_canvas/form_tag_helper.rb b/app/helpers/beyond_canvas/form_tag_helper.rb index 894957b8..5f4dbe45 100644 --- a/app/helpers/beyond_canvas/form_tag_helper.rb +++ b/app/helpers/beyond_canvas/form_tag_helper.rb @@ -83,6 +83,19 @@ def number_field_tag(name, value = nil, options = {}) end end + def image_attachment_tag(blob, delete_url = nil, args = {}) + if blob + content_tag(:figure, class: "attachment attachment--#{blob.representable? ? 'preview' : 'file'} attachment--#{blob.filename.extension}") do + if blob.representable? + [ + (image_tag(args.present? && args[:transformations].present? ? blob.representation(args[:transformations]) : blob)), + (link_to(inline_svg_tag('icons/delete.svg'), delete_url, {class: 'attachment__delete-icon', method: :delete}.merge(args[:link_html_options].to_h)) unless delete_url.blank?) + ].compact.inject(:+) + end + end + end + end + private def field_wrapper(attribute, args, &block) diff --git a/app/javascript/beyond_canvas/lib/common_functions.js b/app/javascript/beyond_canvas/lib/common_functions.js new file mode 100644 index 00000000..de852a4d --- /dev/null +++ b/app/javascript/beyond_canvas/lib/common_functions.js @@ -0,0 +1,29 @@ +/* exported previewImage */ + +export function previewImage(e) { + const arr = Array.from(e.target.files); + const elementFather = $(e.target).parents('.relative').find('.js-images'); + + if($(e.target).attr('multiple')) { + $(elementFather).children('attachment__placeholder, [preview]').each((_, img) => $(img).remove()); + } else { + $(elementFather).find('figure').remove(); + } + + arr.forEach(file => { + const reader = new FileReader(); + + reader.readAsDataURL(file); + reader.onload = function () { + const figure = document.createElement('figure'); + const img = document.createElement('img'); + + figure.classList.add('attachment', 'attachment--preview'); + figure.setAttribute('preview', true); + img.setAttribute('src', reader.result); + + $(figure).append(img); + $(elementFather).append(figure); + }; + }); +} diff --git a/app/views/layouts/beyond_canvas/blank.html.erb b/app/views/layouts/beyond_canvas/blank.html.erb new file mode 100644 index 00000000..cfd06fe2 --- /dev/null +++ b/app/views/layouts/beyond_canvas/blank.html.erb @@ -0,0 +1,21 @@ + + + +<%= render 'beyond_canvas/shared/head' %> + + + +
--<%= params[:action] %>"> + +
style="max-width: <%= yield :max_width %>"<% end %>> + + <%= yield %> + +
+ + <%= debug(params) if debug_mode? %> + +
+ + + diff --git a/rollup.config.js b/rollup.config.js index e21460a1..f6527105 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -17,26 +17,41 @@ const uglifyOptions = { */ //= require jquery3 //= require rails-ujs + //= require beyond_canvas/common_functions //= require_self ` + '\n', }, }; -export default { - input: 'app/javascript/beyond_canvas/base.js', - output: { - file: 'app/assets/javascripts/beyond_canvas/base.js', - format: 'umd', - name: 'ActiveAdmin', +export default [ + { + input: 'app/javascript/beyond_canvas/base.js', + output: { + file: 'app/assets/javascripts/beyond_canvas/base.js', + format: 'umd', + name: 'BeyondCanvas', + }, + plugins: [ + resolve(), + commonjs(), + babel(), + uglify(uglifyOptions) + ], + // Use client's yarn dependencies instead of bundling everything + external: [ + 'jquery' + ] }, - plugins: [ - resolve(), - commonjs(), - babel(), - uglify(uglifyOptions) - ], - // Use client's yarn dependencies instead of bundling everything - external: [ - 'jquery' - ] -}; + { + input: 'app/javascript/beyond_canvas/lib/common_functions.js', + output: { + file: 'app/assets/javascripts/beyond_canvas/common_functions.js', + format: 'iife', + name: 'bc', + }, + plugins: [ + resolve(), + babel() + ], + } +]; From 8d8ada2231cdcd6341b3e2dd1ed10a695b3544f1 Mon Sep 17 00:00:00 2001 From: German Date: Tue, 1 Mar 2022 10:59:29 +0100 Subject: [PATCH 33/76] Add button data attributes for image input field (#82) * Add data attributes to upload images or change images --- app/form_builders/beyond_canvas/form_builder.rb | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/app/form_builders/beyond_canvas/form_builder.rb b/app/form_builders/beyond_canvas/form_builder.rb index 2fd1ad0b..adf21f6f 100644 --- a/app/form_builders/beyond_canvas/form_builder.rb +++ b/app/form_builders/beyond_canvas/form_builder.rb @@ -89,8 +89,7 @@ def image_file_field(attribute, args = {}, &block) # IMPORTANT: Using this metho (block.call if block_given?) ].compact.inject(:+) [ - (image_placeholder(args) if image.class == ActiveStorage::Attached::One && image.attachment.blank?), - (image_placeholder(args) if image.class == ActiveStorage::Attached::Many && image.attachments.blank?) + (image_placeholder(args) unless image_exist?(attribute)) ].compact.inject(:+) end + @template.content_tag(:div, class: 'input__file') do @@ -98,7 +97,7 @@ def image_file_field(attribute, args = {}, &block) # IMPORTANT: Using this metho @template.content_tag(:label, for: filed_identifyer, class: 'input__file__control button__transparent--primary') do - args.dig(:data, :button_text) || 'Upload image' + image_exist?(attribute) ? args.dig(:data, :button_change_text) || 'Change image' : args.dig(:data, :button_upload_text) || 'Upload image' end end end @@ -186,5 +185,12 @@ def image_placeholder(args) @template.inline_svg_tag('icons/placeholder.svg') end end + + def image_exist?(attribute) + image = @object.send(attribute) + + image.class == ActiveStorage::Attached::One && image.attachment.present? || + image.class == ActiveStorage::Attached::Many && image.attachments.present? + end end end From 4df75813e592c62ed9fe7934aa8b761c00579417 Mon Sep 17 00:00:00 2001 From: German Date: Wed, 23 Mar 2022 15:29:01 +0100 Subject: [PATCH 34/76] Refresh token when `to_session` is called (#83) Co-authored-by: gersanco --- lib/models/concerns/utils.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/models/concerns/utils.rb b/lib/models/concerns/utils.rb index dd2091ec..8e47b4bf 100644 --- a/lib/models/concerns/utils.rb +++ b/lib/models/concerns/utils.rb @@ -47,6 +47,8 @@ def refresh_token_if_needed # attributes) from the instantiated Shop. # def to_session + refresh_token_if_needed + BeyondApi::Session.new(api_url: beyond_api_url, access_token: beyond_access_token, refresh_token: beyond_refresh_token) From c90ca62ae1422241c59b9ae0f04961386f370498 Mon Sep 17 00:00:00 2001 From: German Date: Wed, 20 Apr 2022 13:41:22 +0200 Subject: [PATCH 35/76] Display-concatenated-errors (#86) * Add a new configuration to display concatenated errors --- app/form_builders/beyond_canvas/form_builder.rb | 6 +++--- lib/beyond_canvas/configuration.rb | 3 ++- .../beyond_canvas/install/templates/beyond_canvas.rb.erb | 3 +++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/form_builders/beyond_canvas/form_builder.rb b/app/form_builders/beyond_canvas/form_builder.rb index adf21f6f..758afd7c 100644 --- a/app/form_builders/beyond_canvas/form_builder.rb +++ b/app/form_builders/beyond_canvas/form_builder.rb @@ -111,7 +111,7 @@ def field_wrapper(attribute, args, &block) pre = args.delete(:pre) post = args.delete(:post) - errors = object.errors[attribute].join(', ') if object.respond_to?(:errors) && object.errors.include?(attribute) + errors = object.errors[attribute].join(BeyondCanvas.configuration.model_errors_joined_by) if object.respond_to?(:errors) && object.errors.include?(attribute) @template.content_tag(:div, class: 'form__row') do [ @@ -135,7 +135,7 @@ def image_field_wrapper(attribute, args, &block) pre = args.delete(:pre) post = args.delete(:post) - errors = object.errors[attribute].join(', ') if object.respond_to?(:errors) && object.errors.include?(attribute) + errors = object.errors[attribute].join(BeyondCanvas.configuration.model_errors_joined_by) if object.respond_to?(:errors) && object.errors.include?(attribute) @template.content_tag(:div, class: 'form__row') do [ @@ -156,7 +156,7 @@ def image_field_wrapper(attribute, args, &block) def inline_wrapper(attribute, args, filed_identifyer, &block) label = sanitize(args.delete(:label)) hint = sanitize(args.delete(:hint)) - errors = object.errors[attribute].join(', ') if object.respond_to?(:errors) && object.errors.include?(attribute) + errors = object.errors[attribute].join(BeyondCanvas.configuration.model_errors_joined_by) if object.respond_to?(:errors) && object.errors.include?(attribute) @template.content_tag(:div, class: 'form__row') do @template.content_tag(:div, class: 'relative', style: 'display: flex; align-items: center;') do diff --git a/lib/beyond_canvas/configuration.rb b/lib/beyond_canvas/configuration.rb index f436d764..68f082df 100644 --- a/lib/beyond_canvas/configuration.rb +++ b/lib/beyond_canvas/configuration.rb @@ -4,7 +4,7 @@ module BeyondCanvas class Configuration # :nodoc: attr_accessor :site_title, :site_logo, :favicon, :skip_webpacker, :encryption_key, :namespace, :cockpit_app, :open_app_url, :preinstalled, :debug_mode, :webhook_site_url, :email_logo, :client_credentials, - :custom_styles + :custom_styles, :model_errors_joined_by include AssetRegistration include MenuItemRegistration @@ -24,6 +24,7 @@ def initialize @site_title = ::Rails.application.class.name.split('::').first.humanize @skip_webpacker = false @custom_styles = false + @model_errors_joined_by = ', ' end def custom_styles? diff --git a/lib/generators/beyond_canvas/install/templates/beyond_canvas.rb.erb b/lib/generators/beyond_canvas/install/templates/beyond_canvas.rb.erb index 2c46f2b3..b949479a 100644 --- a/lib/generators/beyond_canvas/install/templates/beyond_canvas.rb.erb +++ b/lib/generators/beyond_canvas/install/templates/beyond_canvas.rb.erb @@ -27,6 +27,9 @@ BeyondCanvas.setup do |config| # # config.preinstalled = false + # Set how to display errors when are concatenated + # config.model_errors_joined_by = ', ' + # Set if you want to enable the available debug mode Beyond Canvas offers. # This options displays a parameter debug as well as some custom Beyond Canvas # logs. From cd6cfd5f86b7e8235fef4fc5afaf4661dd4b0437 Mon Sep 17 00:00:00 2001 From: Kathia Date: Tue, 26 Jul 2022 13:03:16 +0200 Subject: [PATCH 36/76] Fix image text in app creation (#91) --- app/assets/javascripts/beyond_canvas/common_functions.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/beyond_canvas/common_functions.js b/app/assets/javascripts/beyond_canvas/common_functions.js index a10b7a3d..64793069 100644 --- a/app/assets/javascripts/beyond_canvas/common_functions.js +++ b/app/assets/javascripts/beyond_canvas/common_functions.js @@ -7,7 +7,7 @@ var bc = (function (exports) { var elementFather = $(e.target).parents('.relative').find('.js-images'); if ($(e.target).attr('multiple')) { - $(elementFather).children('attachment__placeholder, [preview]').each(function (_, img) { + $(elementFather).children('.attachment__placeholder, [preview]').each(function (_, img) { return $(img).remove(); }); } else { @@ -28,6 +28,8 @@ var bc = (function (exports) { $(elementFather).append(figure); }; }); + + $(e.target).parent().find('label').text($(e.target).attr('data-button-change-text')); } exports.previewImage = previewImage; From 089a4978b966c28c29c6115406229fa5bf9fef75 Mon Sep 17 00:00:00 2001 From: German Date: Thu, 6 Oct 2022 14:04:34 +0200 Subject: [PATCH 37/76] Image-tag-arguments (#92) * Add styles for icons on attachments class * Keep attributes after preview images * figure and image html options * Add cursor pointer Co-authored-by: gersanco --- app/assets/javascripts/beyond_canvas/base.js | 136 +----------------- .../beyond_canvas/common_functions.js | 65 ++++++++- .../components/_attachments.scss | 29 ++++ app/helpers/beyond_canvas/form_tag_helper.rb | 8 +- .../beyond_canvas/lib/common_functions.js | 23 +++ 5 files changed, 121 insertions(+), 140 deletions(-) diff --git a/app/assets/javascripts/beyond_canvas/base.js b/app/assets/javascripts/beyond_canvas/base.js index bd9e2b40..518a2af0 100644 --- a/app/assets/javascripts/beyond_canvas/base.js +++ b/app/assets/javascripts/beyond_canvas/base.js @@ -7,7 +7,7 @@ //= require_self (function(factory) { - typeof define === "function" && define.amd ? define([ "jquery" ], factory) : factory(); + typeof define === "function" && define.amd ? define([ "jquery", "scroll-shadow-element/scroll-shadow-element" ], factory) : factory(); })(function() { "use strict"; var SPINNER_ANIMATION_TIMEOUT = 125; @@ -212,138 +212,4 @@ modal.trigger("bc.modal.hidden"); } }); - const template = ` - - - -`; - const updaters = new WeakMap(); - class ScrollShadowElement extends HTMLElement { - static get observedAttributes() { - return [ "el" ]; - } - get el() { - return this.getAttribute("el"); - } - set el(value) { - this.setAttribute("el", value); - } - constructor() { - super(); - this.attachShadow({ - mode: "open" - }).innerHTML = template; - updaters.set(this, new Updater(this.shadowRoot.lastElementChild)); - } - connectedCallback() { - this.shadowRoot.querySelector("slot").addEventListener("slotchange", () => this.start()); - this.start(); - } - disconnectedCallback() { - updaters.get(this).stop(); - } - attributeChangedCallback(_name, oldValue, newValue) { - if (oldValue !== newValue) { - this.scrollEl = newValue ? this.querySelector(newValue) : null; - this.start(); - } - } - start() { - const el = this.scrollEl || this.firstElementChild; - updaters.get(this).start(el, this.scrollEl ? this.firstElementChild : null); - } - } - class Updater { - constructor(targetElement) { - const update = this.update.bind(this, targetElement, getComputedStyle(targetElement)); - this.handleScroll = throttle(update); - this.resizeObserver = new ResizeObserver(update); - } - start(element, rootElement) { - if (this.el) this.stop(); - if (element) { - element.addEventListener("scroll", this.handleScroll); - this.resizeObserver.observe(element); - this.el = element; - } - if (rootElement) { - this.resizeObserver.observe(rootElement); - this.rootEl = rootElement; - } - } - stop() { - if (!this.el) return; - this.el.removeEventListener("scroll", this.handleScroll); - this.resizeObserver.disconnect(); - this.el = null; - this.rootEl = null; - } - update(targetElement, computedStyle) { - const { - el, - rootEl - } = this; - if (!el) return; - const maxSize = Number(computedStyle.getPropertyValue("--scroll-shadow-size") || 14); - const style = { - "--top": clamp(el.scrollTop, 0, maxSize), - "--bottom": clamp(el.scrollHeight - el.offsetHeight - el.scrollTop, 0, maxSize), - "--left": clamp(el.scrollLeft, 0, maxSize), - "--right": clamp(el.scrollWidth - el.offsetWidth - el.scrollLeft, 0, maxSize) - }; - if (rootEl) { - const clientRect = el.getBoundingClientRect(); - const rootClientRect = rootEl.getBoundingClientRect(); - Object.assign(style, { - top: clamp(clientRect.top - rootClientRect.top), - bottom: clamp(rootClientRect.bottom - clientRect.bottom), - left: clamp(clientRect.left - rootClientRect.left), - right: clamp(rootClientRect.right - clientRect.right) - }); - } - for (const key in style) { - targetElement.style.setProperty(key, `${style[key]}px`); - } - } - } - function clamp(num, min = 0, max) { - if (num < min) return min; - if (num > max) return max; - return num; - } - function throttle(callback) { - let id = null; - return () => { - if (id) return; - id = requestAnimationFrame(() => { - callback(); - id = null; - }); - }; - } - if ("customElements" in window && "ResizeObserver" in window) { - customElements.define("scroll-shadow", ScrollShadowElement); - } }); diff --git a/app/assets/javascripts/beyond_canvas/common_functions.js b/app/assets/javascripts/beyond_canvas/common_functions.js index 64793069..69f934ce 100644 --- a/app/assets/javascripts/beyond_canvas/common_functions.js +++ b/app/assets/javascripts/beyond_canvas/common_functions.js @@ -1,13 +1,55 @@ var bc = (function (exports) { 'use strict'; + function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); + } + + function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + + return arr2; + } + + function _createForOfIteratorHelperLoose(o, allowArrayLike) { + var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; + if (it) return (it = it.call(o)).next.bind(it); + + if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + return function () { + if (i >= o.length) return { + done: true + }; + return { + done: false, + value: o[i++] + }; + }; + } + + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); + } + /* exported previewImage */ function previewImage(e) { var arr = Array.from(e.target.files); var elementFather = $(e.target).parents('.relative').find('.js-images'); + var imgAttr = getAtrributesFromElement($(elementFather).find('figure').find('img')[0]); + var figureAttr = getAtrributesFromElement($(elementFather).find('figure')[0]); + delete imgAttr.src; + delete figureAttr["class"]; if ($(e.target).attr('multiple')) { - $(elementFather).children('.attachment__placeholder, [preview]').each(function (_, img) { + $(elementFather).children('attachment__placeholder, [preview]').each(function (_, img) { return $(img).remove(); }); } else { @@ -24,15 +66,32 @@ var bc = (function (exports) { figure.classList.add('attachment', 'attachment--preview'); figure.setAttribute('preview', true); img.setAttribute('src', reader.result); + setAttributesToElement(img, imgAttr); + setAttributesToElement(figure, figureAttr); $(figure).append(img); $(elementFather).append(figure); }; }); - - $(e.target).parent().find('label').text($(e.target).attr('data-button-change-text')); } + var getAtrributesFromElement = function getAtrributesFromElement(element) { + var attributes = {}; + + for (var _iterator = _createForOfIteratorHelperLoose(element.getAttributeNames()), _step; !(_step = _iterator()).done;) { + var attr = _step.value; + attributes[attr] = element.getAttribute(attr); + } + + return attributes; + }; + var setAttributesToElement = function setAttributesToElement(element, attributes) { + for (var attr in attributes) { + element.setAttribute(attr, attributes[attr]); + } + }; + exports.getAtrributesFromElement = getAtrributesFromElement; exports.previewImage = previewImage; + exports.setAttributesToElement = setAttributesToElement; return exports; diff --git a/app/assets/stylesheets/beyond_canvas/components/_attachments.scss b/app/assets/stylesheets/beyond_canvas/components/_attachments.scss index 3ecd06e2..1438351f 100644 --- a/app/assets/stylesheets/beyond_canvas/components/_attachments.scss +++ b/app/assets/stylesheets/beyond_canvas/components/_attachments.scss @@ -45,6 +45,35 @@ } } + &__icon { + cursor: pointer; + height: 24px; + position: absolute; + right: 12px; + top: 12px; + width: 24px; + + svg { + filter: drop-shadow(0 1px 0 $white); + + path { + fill: $attachment-delete-icon-color; + } + } + + &s { + &:not(:last-child) { + margin-bottom: 30px; + } + + .attachment { + &:not(:first-child) { + margin-top: 30px; + } + } + } + } + &__placeholder { align-items: center; box-sizing: border-box; diff --git a/app/helpers/beyond_canvas/form_tag_helper.rb b/app/helpers/beyond_canvas/form_tag_helper.rb index 5f4dbe45..f380d680 100644 --- a/app/helpers/beyond_canvas/form_tag_helper.rb +++ b/app/helpers/beyond_canvas/form_tag_helper.rb @@ -85,10 +85,14 @@ def number_field_tag(name, value = nil, options = {}) def image_attachment_tag(blob, delete_url = nil, args = {}) if blob - content_tag(:figure, class: "attachment attachment--#{blob.representable? ? 'preview' : 'file'} attachment--#{blob.filename.extension}") do + figure_options = { + class: ['attachment', "attachment--#{blob.representable? ? 'preview' : 'file'}", "attachment--#{blob.filename.extension}"] + }.merge args[:figure_html_options] || {} + + content_tag(:figure, figure_options) do if blob.representable? [ - (image_tag(args.present? && args[:transformations].present? ? blob.representation(args[:transformations]) : blob)), + (image_tag(args.present? && args[:transformations].present? ? blob.representation(args[:transformations]) : blob, args[:image_html_options])), (link_to(inline_svg_tag('icons/delete.svg'), delete_url, {class: 'attachment__delete-icon', method: :delete}.merge(args[:link_html_options].to_h)) unless delete_url.blank?) ].compact.inject(:+) end diff --git a/app/javascript/beyond_canvas/lib/common_functions.js b/app/javascript/beyond_canvas/lib/common_functions.js index de852a4d..6dd437ee 100644 --- a/app/javascript/beyond_canvas/lib/common_functions.js +++ b/app/javascript/beyond_canvas/lib/common_functions.js @@ -4,6 +4,11 @@ export function previewImage(e) { const arr = Array.from(e.target.files); const elementFather = $(e.target).parents('.relative').find('.js-images'); + const imgAttr = getAtrributesFromElement($(elementFather).find('figure').find('img')[0]); + const figureAttr = getAtrributesFromElement($(elementFather).find('figure')[0]); + delete imgAttr.src; + delete figureAttr.class; + if($(e.target).attr('multiple')) { $(elementFather).children('attachment__placeholder, [preview]').each((_, img) => $(img).remove()); } else { @@ -22,8 +27,26 @@ export function previewImage(e) { figure.setAttribute('preview', true); img.setAttribute('src', reader.result); + setAttributesToElement(img, imgAttr); + setAttributesToElement(figure, figureAttr); + $(figure).append(img); $(elementFather).append(figure); }; }); } + +export const getAtrributesFromElement = (element) => { + const attributes = {}; + for (const attr of element.getAttributeNames()) { + attributes[attr] = element.getAttribute(attr); + } + + return attributes; +}; + +export const setAttributesToElement = (element, attributes) => { + for (const attr in attributes) { + element.setAttribute(attr, attributes[attr]); + } +}; From 00c8368e2a6ae9630003283aa00df9a950306307 Mon Sep 17 00:00:00 2001 From: German Date: Fri, 4 Nov 2022 13:56:57 +0100 Subject: [PATCH 38/76] Allow to include html options in the placeholder (#93) Co-authored-by: gersanco --- .../beyond_canvas/common_functions.js | 33 ++++++++++++++++-- .../beyond_canvas/form_builder.rb | 9 +++-- .../beyond_canvas/lib/common_functions.js | 34 +++++++++++++++++-- 3 files changed, 70 insertions(+), 6 deletions(-) diff --git a/app/assets/javascripts/beyond_canvas/common_functions.js b/app/assets/javascripts/beyond_canvas/common_functions.js index 69f934ce..29ca1978 100644 --- a/app/assets/javascripts/beyond_canvas/common_functions.js +++ b/app/assets/javascripts/beyond_canvas/common_functions.js @@ -43,8 +43,9 @@ var bc = (function (exports) { function previewImage(e) { var arr = Array.from(e.target.files); var elementFather = $(e.target).parents('.relative').find('.js-images'); - var imgAttr = getAtrributesFromElement($(elementFather).find('figure').find('img')[0]); - var figureAttr = getAtrributesFromElement($(elementFather).find('figure')[0]); + var figureElement = $(elementFather).find('figure'); + var imgAttr = getImagesAttributes($(figureElement)); + var figureAttr = getAtrributesFromElement($(figureElement)[0]); delete imgAttr.src; delete figureAttr["class"]; @@ -73,8 +74,19 @@ var bc = (function (exports) { }; }); } + var getImagesAttributes = function getImagesAttributes(figureElement) { + var svgElement = $(figureElement).find('svg')[0]; + var imageElement = $(figureElement).find('img')[0]; + + if (imageElement) { + return getAtrributesFromElement(imageElement); + } + + return getAtrributesFromSVG(svgElement); + }; var getAtrributesFromElement = function getAtrributesFromElement(element) { var attributes = {}; + if (!element) return attributes; for (var _iterator = _createForOfIteratorHelperLoose(element.getAttributeNames()), _step; !(_step = _iterator()).done;) { var attr = _step.value; @@ -83,6 +95,21 @@ var bc = (function (exports) { return attributes; }; + var getAtrributesFromSVG = function getAtrributesFromSVG(element) { + var svgAttrToExclude = ['xmlns', 'xmlns:xlink', 'version', 'id', 'x', 'y', 'viewBox', 'style', 'xml:space']; + var attributes = {}; + if (!element) return attributes; + var svgAttr = element.getAttributeNames().filter(function (attr) { + return !svgAttrToExclude.includes(attr); + }); + + for (var _iterator2 = _createForOfIteratorHelperLoose(svgAttr), _step2; !(_step2 = _iterator2()).done;) { + var attr = _step2.value; + attributes[attr] = element.getAttribute(attr); + } + + return attributes; + }; var setAttributesToElement = function setAttributesToElement(element, attributes) { for (var attr in attributes) { element.setAttribute(attr, attributes[attr]); @@ -90,6 +117,8 @@ var bc = (function (exports) { }; exports.getAtrributesFromElement = getAtrributesFromElement; + exports.getAtrributesFromSVG = getAtrributesFromSVG; + exports.getImagesAttributes = getImagesAttributes; exports.previewImage = previewImage; exports.setAttributesToElement = setAttributesToElement; diff --git a/app/form_builders/beyond_canvas/form_builder.rb b/app/form_builders/beyond_canvas/form_builder.rb index 758afd7c..8193e877 100644 --- a/app/form_builders/beyond_canvas/form_builder.rb +++ b/app/form_builders/beyond_canvas/form_builder.rb @@ -181,8 +181,13 @@ def image_placeholder(args) placeholder_height = 300 placeholder_with, placeholder_height = args[:placeholder_size].split('x') if args[:placeholder_size].present? - @template.content_tag(:figure, class: 'attachment attachment__placeholder', style: "width:#{placeholder_with}px;height:#{placeholder_height}px;") do - @template.inline_svg_tag('icons/placeholder.svg') + options = { + class: 'attachment attachment__placeholder', + style: "width:#{placeholder_with}px;height:#{placeholder_height}px;" + }. merge args[:placeholder_figure_html_options] + + @template.content_tag(:figure, options) do + @template.inline_svg_tag('icons/placeholder.svg', args[:placeholder_image_html_options]) end end diff --git a/app/javascript/beyond_canvas/lib/common_functions.js b/app/javascript/beyond_canvas/lib/common_functions.js index 6dd437ee..1866fa54 100644 --- a/app/javascript/beyond_canvas/lib/common_functions.js +++ b/app/javascript/beyond_canvas/lib/common_functions.js @@ -3,9 +3,10 @@ export function previewImage(e) { const arr = Array.from(e.target.files); const elementFather = $(e.target).parents('.relative').find('.js-images'); + const figureElement = $(elementFather).find('figure'); - const imgAttr = getAtrributesFromElement($(elementFather).find('figure').find('img')[0]); - const figureAttr = getAtrributesFromElement($(elementFather).find('figure')[0]); + const imgAttr = getImagesAttributes($(figureElement)); + const figureAttr = getAtrributesFromElement($(figureElement)[0]); delete imgAttr.src; delete figureAttr.class; @@ -36,8 +37,22 @@ export function previewImage(e) { }); } +export const getImagesAttributes = (figureElement) => { + const svgElement = $(figureElement).find('svg')[0]; + const imageElement = $(figureElement).find('img')[0]; + + if(imageElement) { + return getAtrributesFromElement(imageElement); + } + + return getAtrributesFromSVG(svgElement); +} + export const getAtrributesFromElement = (element) => { const attributes = {}; + + if(!element) return attributes; + for (const attr of element.getAttributeNames()) { attributes[attr] = element.getAttribute(attr); } @@ -45,6 +60,21 @@ export const getAtrributesFromElement = (element) => { return attributes; }; +export const getAtrributesFromSVG = (element) => { + const svgAttrToExclude = ['xmlns', 'xmlns:xlink', 'version', 'id', 'x', 'y', 'viewBox', 'style', 'xml:space']; + const attributes = {}; + + if(!element) return attributes; + + const svgAttr = element.getAttributeNames().filter(attr=> !svgAttrToExclude.includes(attr)); + + for (const attr of svgAttr) { + attributes[attr] = element.getAttribute(attr); + } + + return attributes; +}; + export const setAttributesToElement = (element, attributes) => { for (const attr in attributes) { element.setAttribute(attr, attributes[attr]); From 1366c7a72293a2a6b23e313a59983a49a280c5da Mon Sep 17 00:00:00 2001 From: kengallego Date: Wed, 22 Feb 2023 12:50:19 +0100 Subject: [PATCH 39/76] Fix whiteline in toolbox --- app/assets/stylesheets/beyond_canvas/components/_tooltips.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/app/assets/stylesheets/beyond_canvas/components/_tooltips.scss b/app/assets/stylesheets/beyond_canvas/components/_tooltips.scss index e6da1eb7..4cf54b3e 100644 --- a/app/assets/stylesheets/beyond_canvas/components/_tooltips.scss +++ b/app/assets/stylesheets/beyond_canvas/components/_tooltips.scss @@ -3,6 +3,7 @@ $arrow-size: 8px; .tooltip { cursor: default; position: relative; + white-space: break-spaces; padding: 5px; &:hover .tooltip__bubble { From 381a4237eca29131e9bfa1c51d55641962d4c5f4 Mon Sep 17 00:00:00 2001 From: German Date: Fri, 3 Mar 2023 09:16:36 +0100 Subject: [PATCH 40/76] Keep Image placeholder when there are image (#97) * Render image placeholder ven if there is an image * Do not render placeholder if user won't * Image placeholder tag to allow user has more control * Render placeholder in a different div than images * Hide placeholder when there is an image * use placeholder arguments * Use placeholder_tag * Remove placeholder from size --------- Co-authored-by: German San Emeterio --- app/assets/javascripts/beyond_canvas/base.js | 140 +++++++++++++++++- .../beyond_canvas/common_functions.js | 3 +- .../beyond_canvas/form_builder.rb | 30 ++-- app/helpers/beyond_canvas/form_tag_helper.rb | 14 ++ .../beyond_canvas/initializers/inputs.js | 6 +- .../beyond_canvas/lib/common_functions.js | 4 +- 6 files changed, 171 insertions(+), 26 deletions(-) diff --git a/app/assets/javascripts/beyond_canvas/base.js b/app/assets/javascripts/beyond_canvas/base.js index 518a2af0..f05d4be0 100644 --- a/app/assets/javascripts/beyond_canvas/base.js +++ b/app/assets/javascripts/beyond_canvas/base.js @@ -7,7 +7,7 @@ //= require_self (function(factory) { - typeof define === "function" && define.amd ? define([ "jquery", "scroll-shadow-element/scroll-shadow-element" ], factory) : factory(); + typeof define === "function" && define.amd ? define([ "jquery" ], factory) : factory(); })(function() { "use strict"; var SPINNER_ANIMATION_TIMEOUT = 125; @@ -152,7 +152,9 @@ (function($) { var onDOMReady = function onDOMReady() { $('input[type="file"]').each(function() { - var $input = $(this), $label = $(".input__file__text." + $input.attr("id")), labelVal = $label.html(); + var $input = $(this); + var $label = $(".input__file__text." + $input.attr("id")); + var labelVal = $label.html(); $input.on("change", function(e) { var fileName = ""; if (this.files && this.files.length > 1) fileName = (this.getAttribute("data-multiple-caption") || "{count} files selected").replace("{count}", this.files.length); else if (e.target.value) fileName = e.target.value.split("\\").pop(); @@ -212,4 +214,138 @@ modal.trigger("bc.modal.hidden"); } }); + const template = ` + + + +`; + const updaters = new WeakMap(); + class ScrollShadowElement extends HTMLElement { + static get observedAttributes() { + return [ "el" ]; + } + get el() { + return this.getAttribute("el"); + } + set el(value) { + this.setAttribute("el", value); + } + constructor() { + super(); + this.attachShadow({ + mode: "open" + }).innerHTML = template; + updaters.set(this, new Updater(this.shadowRoot.lastElementChild)); + } + connectedCallback() { + this.shadowRoot.querySelector("slot").addEventListener("slotchange", () => this.start()); + this.start(); + } + disconnectedCallback() { + updaters.get(this).stop(); + } + attributeChangedCallback(_name, oldValue, newValue) { + if (oldValue !== newValue) { + this.scrollEl = newValue ? this.querySelector(newValue) : null; + this.start(); + } + } + start() { + const el = this.scrollEl || this.firstElementChild; + updaters.get(this).start(el, this.scrollEl ? this.firstElementChild : null); + } + } + class Updater { + constructor(targetElement) { + const update = this.update.bind(this, targetElement, getComputedStyle(targetElement)); + this.handleScroll = throttle(update); + this.resizeObserver = new ResizeObserver(update); + } + start(element, rootElement) { + if (this.el) this.stop(); + if (element) { + element.addEventListener("scroll", this.handleScroll); + this.resizeObserver.observe(element); + this.el = element; + } + if (rootElement) { + this.resizeObserver.observe(rootElement); + this.rootEl = rootElement; + } + } + stop() { + if (!this.el) return; + this.el.removeEventListener("scroll", this.handleScroll); + this.resizeObserver.disconnect(); + this.el = null; + this.rootEl = null; + } + update(targetElement, computedStyle) { + const { + el, + rootEl + } = this; + if (!el) return; + const maxSize = Number(computedStyle.getPropertyValue("--scroll-shadow-size") || 14); + const style = { + "--top": clamp(el.scrollTop, 0, maxSize), + "--bottom": clamp(el.scrollHeight - el.offsetHeight - el.scrollTop, 0, maxSize), + "--left": clamp(el.scrollLeft, 0, maxSize), + "--right": clamp(el.scrollWidth - el.offsetWidth - el.scrollLeft, 0, maxSize) + }; + if (rootEl) { + const clientRect = el.getBoundingClientRect(); + const rootClientRect = rootEl.getBoundingClientRect(); + Object.assign(style, { + top: clamp(clientRect.top - rootClientRect.top), + bottom: clamp(rootClientRect.bottom - clientRect.bottom), + left: clamp(clientRect.left - rootClientRect.left), + right: clamp(rootClientRect.right - clientRect.right) + }); + } + for (const key in style) { + targetElement.style.setProperty(key, `${style[key]}px`); + } + } + } + function clamp(num, min = 0, max) { + if (num < min) return min; + if (num > max) return max; + return num; + } + function throttle(callback) { + let id = null; + return () => { + if (id) return; + id = requestAnimationFrame(() => { + callback(); + id = null; + }); + }; + } + if ("customElements" in window && "ResizeObserver" in window) { + customElements.define("scroll-shadow", ScrollShadowElement); + } }); diff --git a/app/assets/javascripts/beyond_canvas/common_functions.js b/app/assets/javascripts/beyond_canvas/common_functions.js index 29ca1978..0090cd49 100644 --- a/app/assets/javascripts/beyond_canvas/common_functions.js +++ b/app/assets/javascripts/beyond_canvas/common_functions.js @@ -50,13 +50,14 @@ var bc = (function (exports) { delete figureAttr["class"]; if ($(e.target).attr('multiple')) { - $(elementFather).children('attachment__placeholder, [preview]').each(function (_, img) { + $(elementFather).children('attachment__placeholder').each(function (_, img) { return $(img).remove(); }); } else { $(elementFather).find('figure').remove(); } + $(e.target).parents('.relative').find('.js-placeholder').hide(); arr.forEach(function (file) { var reader = new FileReader(); reader.readAsDataURL(file); diff --git a/app/form_builders/beyond_canvas/form_builder.rb b/app/form_builders/beyond_canvas/form_builder.rb index 8193e877..a291a177 100644 --- a/app/form_builders/beyond_canvas/form_builder.rb +++ b/app/form_builders/beyond_canvas/form_builder.rb @@ -79,17 +79,24 @@ def image_file_field(attribute, args = {}, &block) # IMPORTANT: Using this metho image_field_wrapper(attribute, args) do filed_identifyer = filed_identifyer(attribute) + placeholder_div_arguments = { + class: 'attachments js-placeholder', + js_placeholder_identifier: filed_identifyer, + } args.merge!(id: filed_identifyer) .merge!(style: 'visibility: hidden; position: absolute;') - @template.content_tag(:div, class: 'attachments js-images', js_identifier: filed_identifyer) do - image = @object.send(attribute) + placeholder_div_arguments.merge!(style: 'display: none') if image_exist?(attribute) + + @template.content_tag(:div, placeholder_div_arguments) do [ - (block.call if block_given?) + (@template.image_placeholder_tag(args.fetch(:placeholder)) if(args.fetch(:placeholder, true))), ].compact.inject(:+) + end + + @template.content_tag(:div, class: 'attachments js-images', js_identifier: filed_identifyer) do [ - (image_placeholder(args) unless image_exist?(attribute)) + (block.call if block_given?), ].compact.inject(:+) end + @template.content_tag(:div, class: 'input__file') do @@ -176,21 +183,6 @@ def filed_identifyer(attribute) "#{attribute}_#{DateTime.now.strftime('%Q') + rand(10_000).to_s}" end - def image_placeholder(args) - placeholder_with = 300 - placeholder_height = 300 - placeholder_with, placeholder_height = args[:placeholder_size].split('x') if args[:placeholder_size].present? - - options = { - class: 'attachment attachment__placeholder', - style: "width:#{placeholder_with}px;height:#{placeholder_height}px;" - }. merge args[:placeholder_figure_html_options] - - @template.content_tag(:figure, options) do - @template.inline_svg_tag('icons/placeholder.svg', args[:placeholder_image_html_options]) - end - end - def image_exist?(attribute) image = @object.send(attribute) diff --git a/app/helpers/beyond_canvas/form_tag_helper.rb b/app/helpers/beyond_canvas/form_tag_helper.rb index f380d680..acba075a 100644 --- a/app/helpers/beyond_canvas/form_tag_helper.rb +++ b/app/helpers/beyond_canvas/form_tag_helper.rb @@ -100,6 +100,20 @@ def image_attachment_tag(blob, delete_url = nil, args = {}) end end + def image_placeholder_tag(**options) + placeholder_with = 300 + placeholder_height = 300 + placeholder_with, placeholder_height = options[:size].split('x') if options[:size].present? + classes = "attachment attachment__placeholder #{options.fetch(:class, '')}" + styles = "#{options.fetch(:style, '')};width:#{placeholder_with}px;height:#{placeholder_height}px;" + + content_tag(:figure, class: classes, style: styles, data: options[:data]) do + [ + (inline_svg_tag('icons/placeholder.svg', options.fetch(:image_html_options, {}))) + ].compact.inject(:+) + end + end + private def field_wrapper(attribute, args, &block) diff --git a/app/javascript/beyond_canvas/initializers/inputs.js b/app/javascript/beyond_canvas/initializers/inputs.js index 2d12bb44..3f2c5910 100644 --- a/app/javascript/beyond_canvas/initializers/inputs.js +++ b/app/javascript/beyond_canvas/initializers/inputs.js @@ -1,9 +1,9 @@ (function ($) { const onDOMReady = function () { $('input[type="file"]').each(function () { - const $input = $(this), - $label = $(`.input__file__text.${$input.attr('id')}`), - labelVal = $label.html(); + const $input = $(this); + const $label = $(`.input__file__text.${$input.attr('id')}`); + const labelVal = $label.html(); $input.on('change', function (e) { let fileName = ''; diff --git a/app/javascript/beyond_canvas/lib/common_functions.js b/app/javascript/beyond_canvas/lib/common_functions.js index 1866fa54..5a5ab38c 100644 --- a/app/javascript/beyond_canvas/lib/common_functions.js +++ b/app/javascript/beyond_canvas/lib/common_functions.js @@ -11,11 +11,13 @@ export function previewImage(e) { delete figureAttr.class; if($(e.target).attr('multiple')) { - $(elementFather).children('attachment__placeholder, [preview]').each((_, img) => $(img).remove()); + $(elementFather).children('attachment__placeholder').each((_, img) => $(img).remove()); } else { $(elementFather).find('figure').remove(); } + $(e.target).parents('.relative').find('.js-placeholder').hide(); + arr.forEach(file => { const reader = new FileReader(); From 95b01ddf8fbaf9257b60f8ceed2590255f918058 Mon Sep 17 00:00:00 2001 From: German San Emeterio Date: Mon, 6 Mar 2023 14:06:26 +0100 Subject: [PATCH 41/76] Remove preview images --- app/assets/javascripts/beyond_canvas/common_functions.js | 2 +- app/javascript/beyond_canvas/lib/common_functions.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/beyond_canvas/common_functions.js b/app/assets/javascripts/beyond_canvas/common_functions.js index 0090cd49..d0750905 100644 --- a/app/assets/javascripts/beyond_canvas/common_functions.js +++ b/app/assets/javascripts/beyond_canvas/common_functions.js @@ -50,7 +50,7 @@ var bc = (function (exports) { delete figureAttr["class"]; if ($(e.target).attr('multiple')) { - $(elementFather).children('attachment__placeholder').each(function (_, img) { + $(elementFather).children('attachment__placeholder, [preview]').each(function (_, img) { return $(img).remove(); }); } else { diff --git a/app/javascript/beyond_canvas/lib/common_functions.js b/app/javascript/beyond_canvas/lib/common_functions.js index 5a5ab38c..c1952f89 100644 --- a/app/javascript/beyond_canvas/lib/common_functions.js +++ b/app/javascript/beyond_canvas/lib/common_functions.js @@ -11,7 +11,7 @@ export function previewImage(e) { delete figureAttr.class; if($(e.target).attr('multiple')) { - $(elementFather).children('attachment__placeholder').each((_, img) => $(img).remove()); + $(elementFather).children('attachment__placeholder, [preview]').each((_, img) => $(img).remove()); } else { $(elementFather).find('figure').remove(); } From 092692d1df49ba1d6784a3b4af0c952fb0cb0a4f Mon Sep 17 00:00:00 2001 From: German Date: Tue, 7 Mar 2023 12:57:07 +0100 Subject: [PATCH 42/76] Get attributes from placeholder and remove styles (#105) * Get attributes from placeholder and remove styles * Get image and placeholder attributes --------- Co-authored-by: German San Emeterio --- .../beyond_canvas/common_functions.js | 49 +++++++++++++++---- app/helpers/beyond_canvas/form_tag_helper.rb | 10 ++-- .../beyond_canvas/lib/common_functions.js | 31 +++++++++--- 3 files changed, 70 insertions(+), 20 deletions(-) diff --git a/app/assets/javascripts/beyond_canvas/common_functions.js b/app/assets/javascripts/beyond_canvas/common_functions.js index d0750905..14b22966 100644 --- a/app/assets/javascripts/beyond_canvas/common_functions.js +++ b/app/assets/javascripts/beyond_canvas/common_functions.js @@ -1,6 +1,24 @@ var bc = (function (exports) { 'use strict'; + function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); + } + function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); @@ -44,10 +62,12 @@ var bc = (function (exports) { var arr = Array.from(e.target.files); var elementFather = $(e.target).parents('.relative').find('.js-images'); var figureElement = $(elementFather).find('figure'); - var imgAttr = getImagesAttributes($(figureElement)); - var figureAttr = getAtrributesFromElement($(figureElement)[0]); + var figurePlaceholderElement = $(e.target).parents('.relative').find('.js-placeholder').find('figure'); + var imgAttr = getImagesAttributes(figureElement, figurePlaceholderElement); + var figureAttr = getAttributesFromFigureElements(figureElement, figurePlaceholderElement); delete imgAttr.src; delete figureAttr["class"]; + delete figureAttr.style; if ($(e.target).attr('multiple')) { $(elementFather).children('attachment__placeholder, [preview]').each(function (_, img) { @@ -75,17 +95,26 @@ var bc = (function (exports) { }; }); } - var getImagesAttributes = function getImagesAttributes(figureElement) { + + var getImagesAttributes = function getImagesAttributes(figureImageElement, figurePlaceholderElement) { + return _extends({}, getImageAttributes($(figurePlaceholderElement)), getImageAttributes($(figureImageElement))); + }; + + var getAttributesFromFigureElements = function getAttributesFromFigureElements(figureImageElement, figurePlaceholderElement) { + return _extends({}, getAttributesFromElement($(figurePlaceholderElement)[0]), getAttributesFromElement($(figureImageElement)[0])); + }; + + var getImageAttributes = function getImageAttributes(figureElement) { var svgElement = $(figureElement).find('svg')[0]; var imageElement = $(figureElement).find('img')[0]; if (imageElement) { - return getAtrributesFromElement(imageElement); + return getAttributesFromElement(imageElement); } - return getAtrributesFromSVG(svgElement); + return getAttributesFromSVG(svgElement); }; - var getAtrributesFromElement = function getAtrributesFromElement(element) { + var getAttributesFromElement = function getAttributesFromElement(element) { var attributes = {}; if (!element) return attributes; @@ -96,7 +125,7 @@ var bc = (function (exports) { return attributes; }; - var getAtrributesFromSVG = function getAtrributesFromSVG(element) { + var getAttributesFromSVG = function getAttributesFromSVG(element) { var svgAttrToExclude = ['xmlns', 'xmlns:xlink', 'version', 'id', 'x', 'y', 'viewBox', 'style', 'xml:space']; var attributes = {}; if (!element) return attributes; @@ -117,9 +146,9 @@ var bc = (function (exports) { } }; - exports.getAtrributesFromElement = getAtrributesFromElement; - exports.getAtrributesFromSVG = getAtrributesFromSVG; - exports.getImagesAttributes = getImagesAttributes; + exports.getAttributesFromElement = getAttributesFromElement; + exports.getAttributesFromSVG = getAttributesFromSVG; + exports.getImageAttributes = getImageAttributes; exports.previewImage = previewImage; exports.setAttributesToElement = setAttributesToElement; diff --git a/app/helpers/beyond_canvas/form_tag_helper.rb b/app/helpers/beyond_canvas/form_tag_helper.rb index acba075a..91e156e0 100644 --- a/app/helpers/beyond_canvas/form_tag_helper.rb +++ b/app/helpers/beyond_canvas/form_tag_helper.rb @@ -104,10 +104,14 @@ def image_placeholder_tag(**options) placeholder_with = 300 placeholder_height = 300 placeholder_with, placeholder_height = options[:size].split('x') if options[:size].present? - classes = "attachment attachment__placeholder #{options.fetch(:class, '')}" - styles = "#{options.fetch(:style, '')};width:#{placeholder_with}px;height:#{placeholder_height}px;" - content_tag(:figure, class: classes, style: styles, data: options[:data]) do + figure_options = { + class: "attachment attachment__placeholder #{options.fetch(:class, '')}", + style: "#{options.fetch(:style, '')};width:#{placeholder_with}px;height:#{placeholder_height}px;", + data: options[:data] + }.merge(options[:figure_html_options]) + + content_tag(:figure, figure_options) do [ (inline_svg_tag('icons/placeholder.svg', options.fetch(:image_html_options, {}))) ].compact.inject(:+) diff --git a/app/javascript/beyond_canvas/lib/common_functions.js b/app/javascript/beyond_canvas/lib/common_functions.js index c1952f89..f845fbb8 100644 --- a/app/javascript/beyond_canvas/lib/common_functions.js +++ b/app/javascript/beyond_canvas/lib/common_functions.js @@ -4,11 +4,14 @@ export function previewImage(e) { const arr = Array.from(e.target.files); const elementFather = $(e.target).parents('.relative').find('.js-images'); const figureElement = $(elementFather).find('figure'); + const figurePlaceholderElement = $(e.target).parents('.relative').find('.js-placeholder').find('figure'); + + const imgAttr = getImagesAttributes(figureElement, figurePlaceholderElement) + const figureAttr = getAttributesFromFigureElements(figureElement, figurePlaceholderElement) - const imgAttr = getImagesAttributes($(figureElement)); - const figureAttr = getAtrributesFromElement($(figureElement)[0]); delete imgAttr.src; delete figureAttr.class; + delete figureAttr.style if($(e.target).attr('multiple')) { $(elementFather).children('attachment__placeholder, [preview]').each((_, img) => $(img).remove()); @@ -39,18 +42,32 @@ export function previewImage(e) { }); } -export const getImagesAttributes = (figureElement) => { +const getImagesAttributes = (figureImageElement, figurePlaceholderElement) => { + return { + ...getImageAttributes($(figurePlaceholderElement)), + ...getImageAttributes($(figureImageElement)) + } +} + +const getAttributesFromFigureElements = (figureImageElement, figurePlaceholderElement) => { + return { + ...getAttributesFromElement($(figurePlaceholderElement)[0]), + ...getAttributesFromElement($(figureImageElement)[0]) + } +} + +export const getImageAttributes = (figureElement) => { const svgElement = $(figureElement).find('svg')[0]; const imageElement = $(figureElement).find('img')[0]; if(imageElement) { - return getAtrributesFromElement(imageElement); + return getAttributesFromElement(imageElement); } - return getAtrributesFromSVG(svgElement); + return getAttributesFromSVG(svgElement); } -export const getAtrributesFromElement = (element) => { +export const getAttributesFromElement = (element) => { const attributes = {}; if(!element) return attributes; @@ -62,7 +79,7 @@ export const getAtrributesFromElement = (element) => { return attributes; }; -export const getAtrributesFromSVG = (element) => { +export const getAttributesFromSVG = (element) => { const svgAttrToExclude = ['xmlns', 'xmlns:xlink', 'version', 'id', 'x', 'y', 'viewBox', 'style', 'xml:space']; const attributes = {}; From 418a2033fbd75bf9c3b40055b4141e3002f4a80a Mon Sep 17 00:00:00 2001 From: Kathia Date: Wed, 15 Mar 2023 12:52:59 +0100 Subject: [PATCH 43/76] Remove references of figure_html_options and image_html_options (#106) --- app/helpers/beyond_canvas/form_tag_helper.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/helpers/beyond_canvas/form_tag_helper.rb b/app/helpers/beyond_canvas/form_tag_helper.rb index 91e156e0..741f742d 100644 --- a/app/helpers/beyond_canvas/form_tag_helper.rb +++ b/app/helpers/beyond_canvas/form_tag_helper.rb @@ -87,12 +87,12 @@ def image_attachment_tag(blob, delete_url = nil, args = {}) if blob figure_options = { class: ['attachment', "attachment--#{blob.representable? ? 'preview' : 'file'}", "attachment--#{blob.filename.extension}"] - }.merge args[:figure_html_options] || {} + } content_tag(:figure, figure_options) do if blob.representable? [ - (image_tag(args.present? && args[:transformations].present? ? blob.representation(args[:transformations]) : blob, args[:image_html_options])), + (image_tag(args.present? && args[:transformations].present? ? blob.representation(args[:transformations]) : blob)), (link_to(inline_svg_tag('icons/delete.svg'), delete_url, {class: 'attachment__delete-icon', method: :delete}.merge(args[:link_html_options].to_h)) unless delete_url.blank?) ].compact.inject(:+) end @@ -109,7 +109,7 @@ def image_placeholder_tag(**options) class: "attachment attachment__placeholder #{options.fetch(:class, '')}", style: "#{options.fetch(:style, '')};width:#{placeholder_with}px;height:#{placeholder_height}px;", data: options[:data] - }.merge(options[:figure_html_options]) + } content_tag(:figure, figure_options) do [ From d3ce2ffe5b7fc39d92713bdecbb6681024654e0e Mon Sep 17 00:00:00 2001 From: Kathia Date: Thu, 30 Mar 2023 17:41:17 +0200 Subject: [PATCH 44/76] Update gems (#107) --- Gemfile.lock | 266 ++++++++++++++++++++++++------------------ beyond_canvas.gemspec | 2 +- 2 files changed, 154 insertions(+), 114 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index d679dce9..d74fe746 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -12,184 +12,222 @@ PATH jwt (~> 2.2) loaf (~> 0.9) premailer-rails (~> 1.11) - rails (>= 5.1.7) + rails (>= 5.1.7, < 7.0) sassc-rails (~> 2.1) sprockets (>= 3.0, < 4.1) GEM remote: https://rubygems.org/ specs: - actioncable (6.1.4.1) - actionpack (= 6.1.4.1) - activesupport (= 6.1.4.1) + actioncable (6.1.7.3) + actionpack (= 6.1.7.3) + activesupport (= 6.1.7.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.4.1) - actionpack (= 6.1.4.1) - activejob (= 6.1.4.1) - activerecord (= 6.1.4.1) - activestorage (= 6.1.4.1) - activesupport (= 6.1.4.1) + actionmailbox (6.1.7.3) + actionpack (= 6.1.7.3) + activejob (= 6.1.7.3) + activerecord (= 6.1.7.3) + activestorage (= 6.1.7.3) + activesupport (= 6.1.7.3) mail (>= 2.7.1) - actionmailer (6.1.4.1) - actionpack (= 6.1.4.1) - actionview (= 6.1.4.1) - activejob (= 6.1.4.1) - activesupport (= 6.1.4.1) + actionmailer (6.1.7.3) + actionpack (= 6.1.7.3) + actionview (= 6.1.7.3) + activejob (= 6.1.7.3) + activesupport (= 6.1.7.3) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.4.1) - actionview (= 6.1.4.1) - activesupport (= 6.1.4.1) + actionpack (6.1.7.3) + actionview (= 6.1.7.3) + activesupport (= 6.1.7.3) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.4.1) - actionpack (= 6.1.4.1) - activerecord (= 6.1.4.1) - activestorage (= 6.1.4.1) - activesupport (= 6.1.4.1) + actiontext (6.1.7.3) + actionpack (= 6.1.7.3) + activerecord (= 6.1.7.3) + activestorage (= 6.1.7.3) + activesupport (= 6.1.7.3) nokogiri (>= 1.8.5) - actionview (6.1.4.1) - activesupport (= 6.1.4.1) + actionview (6.1.7.3) + activesupport (= 6.1.7.3) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (6.1.4.1) - activesupport (= 6.1.4.1) + activejob (6.1.7.3) + activesupport (= 6.1.7.3) globalid (>= 0.3.6) - activemodel (6.1.4.1) - activesupport (= 6.1.4.1) - activerecord (6.1.4.1) - activemodel (= 6.1.4.1) - activesupport (= 6.1.4.1) - activestorage (6.1.4.1) - actionpack (= 6.1.4.1) - activejob (= 6.1.4.1) - activerecord (= 6.1.4.1) - activesupport (= 6.1.4.1) - marcel (~> 1.0.0) + activemodel (6.1.7.3) + activesupport (= 6.1.7.3) + activerecord (6.1.7.3) + activemodel (= 6.1.7.3) + activesupport (= 6.1.7.3) + activestorage (6.1.7.3) + actionpack (= 6.1.7.3) + activejob (= 6.1.7.3) + activerecord (= 6.1.7.3) + activesupport (= 6.1.7.3) + marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (6.1.4.1) + activesupport (6.1.7.3) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) tzinfo (~> 2.0) zeitwerk (~> 2.3) - addressable (2.8.0) - public_suffix (>= 2.0.2, < 5.0) + addressable (2.8.1) + public_suffix (>= 2.0.2, < 6.0) ast (2.4.2) attr_encrypted (3.1.0) encryptor (~> 3.0.0) - beyond_api (0.18.0.pre) - faraday (~> 0.15) - bourbon (7.0.0) + beyond_api (0.22.1.pre) + faraday (~> 1.9.0) + bourbon (7.3.0) thor (~> 1.0) builder (3.2.4) colorize (0.8.1) - concurrent-ruby (1.1.9) + concurrent-ruby (1.2.2) crass (1.0.6) - css_parser (1.10.0) + css_parser (1.14.0) addressable + date (3.3.3) encryptor (3.0.0) - erubi (1.10.0) - faraday (0.17.4) - multipart-post (>= 1.2, < 3) - ffi (1.15.4) - globalid (0.5.2) + erubi (1.12.0) + faraday (1.9.3) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0) + faraday-multipart (~> 1.0) + faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.0) + faraday-patron (~> 1.0) + faraday-rack (~> 1.0) + faraday-retry (~> 1.0) + ruby2_keywords (>= 0.0.4) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) + faraday-httpclient (1.0.1) + faraday-multipart (1.0.4) + multipart-post (~> 2) + faraday-net_http (1.0.1) + faraday-net_http_persistent (1.2.0) + faraday-patron (1.0.0) + faraday-rack (1.0.0) + faraday-retry (1.0.3) + ffi (1.15.5) + globalid (1.1.0) activesupport (>= 5.0) htmlentities (4.3.4) - http-accept (2.1.1) - i18n (1.8.10) + http-accept (2.2.0) + i18n (1.12.0) concurrent-ruby (~> 1.0) - inline_svg (1.7.2) + inline_svg (1.9.0) activesupport (>= 3.0) nokogiri (>= 1.6) - jquery-rails (4.4.0) + jquery-rails (4.5.1) rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) - jwt (2.3.0) + json (2.6.3) + jwt (2.7.0) loaf (0.10.0) railties (>= 3.2) - loofah (2.12.0) + loofah (2.19.1) crass (~> 1.0.2) nokogiri (>= 1.5.9) - mail (2.7.1) + mail (2.8.1) mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp marcel (1.0.2) method_source (1.0.0) mini_mime (1.1.2) - minitest (5.14.4) - multipart-post (2.1.1) + minitest (5.18.0) + multipart-post (2.3.0) + net-imap (0.3.4) + date + net-protocol + net-pop (0.1.2) + net-protocol + net-protocol (0.2.1) + timeout + net-smtp (0.3.3) + net-protocol nio4r (2.5.8) - nokogiri (1.12.5-x86_64-darwin) + nokogiri (1.14.2-x86_64-darwin) racc (~> 1.4) - nokogiri (1.12.5-x86_64-linux) + nokogiri (1.14.2-x86_64-linux) racc (~> 1.4) - parallel (1.20.1) - parser (3.0.2.0) + parallel (1.22.1) + parser (3.2.1.1) ast (~> 2.4.1) - premailer (1.15.0) + premailer (1.21.0) addressable - css_parser (>= 1.6.0) + css_parser (>= 1.12.0) htmlentities (>= 4.0.0) - premailer-rails (1.11.1) + premailer-rails (1.12.0) actionmailer (>= 3) + net-smtp premailer (~> 1.7, >= 1.7.9) - public_suffix (4.0.6) - racc (1.6.0) - rack (2.2.3) - rack-test (1.1.0) - rack (>= 1.0, < 3) - rails (6.1.4.1) - actioncable (= 6.1.4.1) - actionmailbox (= 6.1.4.1) - actionmailer (= 6.1.4.1) - actionpack (= 6.1.4.1) - actiontext (= 6.1.4.1) - actionview (= 6.1.4.1) - activejob (= 6.1.4.1) - activemodel (= 6.1.4.1) - activerecord (= 6.1.4.1) - activestorage (= 6.1.4.1) - activesupport (= 6.1.4.1) + public_suffix (5.0.1) + racc (1.6.2) + rack (2.2.6.4) + rack-test (2.1.0) + rack (>= 1.3) + rails (6.1.7.3) + actioncable (= 6.1.7.3) + actionmailbox (= 6.1.7.3) + actionmailer (= 6.1.7.3) + actionpack (= 6.1.7.3) + actiontext (= 6.1.7.3) + actionview (= 6.1.7.3) + activejob (= 6.1.7.3) + activemodel (= 6.1.7.3) + activerecord (= 6.1.7.3) + activestorage (= 6.1.7.3) + activesupport (= 6.1.7.3) bundler (>= 1.15.0) - railties (= 6.1.4.1) + railties (= 6.1.7.3) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.4.2) - loofah (~> 2.3) - railties (6.1.4.1) - actionpack (= 6.1.4.1) - activesupport (= 6.1.4.1) + rails-html-sanitizer (1.5.0) + loofah (~> 2.19, >= 2.19.1) + railties (6.1.7.3) + actionpack (= 6.1.7.3) + activesupport (= 6.1.7.3) method_source - rake (>= 0.13) + rake (>= 12.2) thor (~> 1.0) - rainbow (3.0.0) + rainbow (3.1.1) rake (13.0.6) - regexp_parser (2.1.1) + regexp_parser (2.7.0) rexml (3.2.5) - rubocop (1.19.1) + rubocop (1.48.1) + json (~> 2.3) parallel (~> 1.10) - parser (>= 3.0.0.0) + parser (>= 3.2.0.0) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) - rexml - rubocop-ast (>= 1.9.1, < 2.0) + rexml (>= 3.2.5, < 4.0) + rubocop-ast (>= 1.26.0, < 2.0) ruby-progressbar (~> 1.7) - unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.10.0) - parser (>= 3.0.1.1) - rubocop-rails (2.11.3) + unicode-display_width (>= 2.4.0, < 3.0) + rubocop-ast (1.28.0) + parser (>= 3.2.1.0) + rubocop-rails (2.18.0) activesupport (>= 4.2.0) rack (>= 1.1) - rubocop (>= 1.7.0, < 2.0) - ruby-progressbar (1.11.0) + rubocop (>= 1.33.0, < 2.0) + ruby-progressbar (1.13.0) + ruby2_keywords (0.0.5) sassc (2.4.0) ffi (~> 1.9) sassc-rails (2.1.2) @@ -198,25 +236,27 @@ GEM sprockets (> 3.0) sprockets-rails tilt - sprockets (4.0.2) + sprockets (4.0.3) concurrent-ruby (~> 1.0) rack (> 1, < 3) - sprockets-rails (3.2.2) - actionpack (>= 4.0) - activesupport (>= 4.0) + sprockets-rails (3.4.2) + actionpack (>= 5.2) + activesupport (>= 5.2) sprockets (>= 3.0.0) - thor (1.1.0) - tilt (2.0.10) - tzinfo (2.0.4) + thor (1.2.1) + tilt (2.1.0) + timeout (0.3.2) + tzinfo (2.0.6) concurrent-ruby (~> 1.0) - unicode-display_width (2.0.0) + unicode-display_width (2.4.2) websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) - zeitwerk (2.5.1) + zeitwerk (2.6.7) PLATFORMS x86_64-darwin-20 + x86_64-darwin-22 x86_64-linux DEPENDENCIES @@ -224,4 +264,4 @@ DEPENDENCIES rubocop-rails (~> 2.5) BUNDLED WITH - 2.2.28 + 2.4.3 diff --git a/beyond_canvas.gemspec b/beyond_canvas.gemspec index d71cc1bc..93c25283 100644 --- a/beyond_canvas.gemspec +++ b/beyond_canvas.gemspec @@ -44,7 +44,7 @@ Gem::Specification.new do |spec| spec.add_dependency 'jwt', '~> 2.2' spec.add_dependency 'loaf', '~> 0.9' spec.add_dependency 'premailer-rails', '~> 1.11' - spec.add_dependency 'rails', '>= 5.1.7' + spec.add_dependency 'rails', '>= 5.1.7', ' < 7.0' spec.add_dependency 'sassc-rails', '~> 2.1' spec.add_dependency 'sprockets', '>= 3.0', '< 4.1' From 4fb5ac5cab4affcab7b7a40a0675f923e1e5faa6 Mon Sep 17 00:00:00 2001 From: Kathia Date: Fri, 31 Mar 2023 08:45:05 +0200 Subject: [PATCH 45/76] Revert "Update gems (#107)" (#108) This reverts commit d3ce2ffe5b7fc39d92713bdecbb6681024654e0e. --- Gemfile.lock | 266 ++++++++++++++++++------------------------ beyond_canvas.gemspec | 2 +- 2 files changed, 114 insertions(+), 154 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index d74fe746..d679dce9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -12,222 +12,184 @@ PATH jwt (~> 2.2) loaf (~> 0.9) premailer-rails (~> 1.11) - rails (>= 5.1.7, < 7.0) + rails (>= 5.1.7) sassc-rails (~> 2.1) sprockets (>= 3.0, < 4.1) GEM remote: https://rubygems.org/ specs: - actioncable (6.1.7.3) - actionpack (= 6.1.7.3) - activesupport (= 6.1.7.3) + actioncable (6.1.4.1) + actionpack (= 6.1.4.1) + activesupport (= 6.1.4.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.7.3) - actionpack (= 6.1.7.3) - activejob (= 6.1.7.3) - activerecord (= 6.1.7.3) - activestorage (= 6.1.7.3) - activesupport (= 6.1.7.3) + actionmailbox (6.1.4.1) + actionpack (= 6.1.4.1) + activejob (= 6.1.4.1) + activerecord (= 6.1.4.1) + activestorage (= 6.1.4.1) + activesupport (= 6.1.4.1) mail (>= 2.7.1) - actionmailer (6.1.7.3) - actionpack (= 6.1.7.3) - actionview (= 6.1.7.3) - activejob (= 6.1.7.3) - activesupport (= 6.1.7.3) + actionmailer (6.1.4.1) + actionpack (= 6.1.4.1) + actionview (= 6.1.4.1) + activejob (= 6.1.4.1) + activesupport (= 6.1.4.1) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.7.3) - actionview (= 6.1.7.3) - activesupport (= 6.1.7.3) + actionpack (6.1.4.1) + actionview (= 6.1.4.1) + activesupport (= 6.1.4.1) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.7.3) - actionpack (= 6.1.7.3) - activerecord (= 6.1.7.3) - activestorage (= 6.1.7.3) - activesupport (= 6.1.7.3) + actiontext (6.1.4.1) + actionpack (= 6.1.4.1) + activerecord (= 6.1.4.1) + activestorage (= 6.1.4.1) + activesupport (= 6.1.4.1) nokogiri (>= 1.8.5) - actionview (6.1.7.3) - activesupport (= 6.1.7.3) + actionview (6.1.4.1) + activesupport (= 6.1.4.1) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - activejob (6.1.7.3) - activesupport (= 6.1.7.3) + activejob (6.1.4.1) + activesupport (= 6.1.4.1) globalid (>= 0.3.6) - activemodel (6.1.7.3) - activesupport (= 6.1.7.3) - activerecord (6.1.7.3) - activemodel (= 6.1.7.3) - activesupport (= 6.1.7.3) - activestorage (6.1.7.3) - actionpack (= 6.1.7.3) - activejob (= 6.1.7.3) - activerecord (= 6.1.7.3) - activesupport (= 6.1.7.3) - marcel (~> 1.0) + activemodel (6.1.4.1) + activesupport (= 6.1.4.1) + activerecord (6.1.4.1) + activemodel (= 6.1.4.1) + activesupport (= 6.1.4.1) + activestorage (6.1.4.1) + actionpack (= 6.1.4.1) + activejob (= 6.1.4.1) + activerecord (= 6.1.4.1) + activesupport (= 6.1.4.1) + marcel (~> 1.0.0) mini_mime (>= 1.1.0) - activesupport (6.1.7.3) + activesupport (6.1.4.1) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) tzinfo (~> 2.0) zeitwerk (~> 2.3) - addressable (2.8.1) - public_suffix (>= 2.0.2, < 6.0) + addressable (2.8.0) + public_suffix (>= 2.0.2, < 5.0) ast (2.4.2) attr_encrypted (3.1.0) encryptor (~> 3.0.0) - beyond_api (0.22.1.pre) - faraday (~> 1.9.0) - bourbon (7.3.0) + beyond_api (0.18.0.pre) + faraday (~> 0.15) + bourbon (7.0.0) thor (~> 1.0) builder (3.2.4) colorize (0.8.1) - concurrent-ruby (1.2.2) + concurrent-ruby (1.1.9) crass (1.0.6) - css_parser (1.14.0) + css_parser (1.10.0) addressable - date (3.3.3) encryptor (3.0.0) - erubi (1.12.0) - faraday (1.9.3) - faraday-em_http (~> 1.0) - faraday-em_synchrony (~> 1.0) - faraday-excon (~> 1.1) - faraday-httpclient (~> 1.0) - faraday-multipart (~> 1.0) - faraday-net_http (~> 1.0) - faraday-net_http_persistent (~> 1.0) - faraday-patron (~> 1.0) - faraday-rack (~> 1.0) - faraday-retry (~> 1.0) - ruby2_keywords (>= 0.0.4) - faraday-em_http (1.0.0) - faraday-em_synchrony (1.0.0) - faraday-excon (1.1.0) - faraday-httpclient (1.0.1) - faraday-multipart (1.0.4) - multipart-post (~> 2) - faraday-net_http (1.0.1) - faraday-net_http_persistent (1.2.0) - faraday-patron (1.0.0) - faraday-rack (1.0.0) - faraday-retry (1.0.3) - ffi (1.15.5) - globalid (1.1.0) + erubi (1.10.0) + faraday (0.17.4) + multipart-post (>= 1.2, < 3) + ffi (1.15.4) + globalid (0.5.2) activesupport (>= 5.0) htmlentities (4.3.4) - http-accept (2.2.0) - i18n (1.12.0) + http-accept (2.1.1) + i18n (1.8.10) concurrent-ruby (~> 1.0) - inline_svg (1.9.0) + inline_svg (1.7.2) activesupport (>= 3.0) nokogiri (>= 1.6) - jquery-rails (4.5.1) + jquery-rails (4.4.0) rails-dom-testing (>= 1, < 3) railties (>= 4.2.0) thor (>= 0.14, < 2.0) - json (2.6.3) - jwt (2.7.0) + jwt (2.3.0) loaf (0.10.0) railties (>= 3.2) - loofah (2.19.1) + loofah (2.12.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) - mail (2.8.1) + mail (2.7.1) mini_mime (>= 0.1.1) - net-imap - net-pop - net-smtp marcel (1.0.2) method_source (1.0.0) mini_mime (1.1.2) - minitest (5.18.0) - multipart-post (2.3.0) - net-imap (0.3.4) - date - net-protocol - net-pop (0.1.2) - net-protocol - net-protocol (0.2.1) - timeout - net-smtp (0.3.3) - net-protocol + minitest (5.14.4) + multipart-post (2.1.1) nio4r (2.5.8) - nokogiri (1.14.2-x86_64-darwin) + nokogiri (1.12.5-x86_64-darwin) racc (~> 1.4) - nokogiri (1.14.2-x86_64-linux) + nokogiri (1.12.5-x86_64-linux) racc (~> 1.4) - parallel (1.22.1) - parser (3.2.1.1) + parallel (1.20.1) + parser (3.0.2.0) ast (~> 2.4.1) - premailer (1.21.0) + premailer (1.15.0) addressable - css_parser (>= 1.12.0) + css_parser (>= 1.6.0) htmlentities (>= 4.0.0) - premailer-rails (1.12.0) + premailer-rails (1.11.1) actionmailer (>= 3) - net-smtp premailer (~> 1.7, >= 1.7.9) - public_suffix (5.0.1) - racc (1.6.2) - rack (2.2.6.4) - rack-test (2.1.0) - rack (>= 1.3) - rails (6.1.7.3) - actioncable (= 6.1.7.3) - actionmailbox (= 6.1.7.3) - actionmailer (= 6.1.7.3) - actionpack (= 6.1.7.3) - actiontext (= 6.1.7.3) - actionview (= 6.1.7.3) - activejob (= 6.1.7.3) - activemodel (= 6.1.7.3) - activerecord (= 6.1.7.3) - activestorage (= 6.1.7.3) - activesupport (= 6.1.7.3) + public_suffix (4.0.6) + racc (1.6.0) + rack (2.2.3) + rack-test (1.1.0) + rack (>= 1.0, < 3) + rails (6.1.4.1) + actioncable (= 6.1.4.1) + actionmailbox (= 6.1.4.1) + actionmailer (= 6.1.4.1) + actionpack (= 6.1.4.1) + actiontext (= 6.1.4.1) + actionview (= 6.1.4.1) + activejob (= 6.1.4.1) + activemodel (= 6.1.4.1) + activerecord (= 6.1.4.1) + activestorage (= 6.1.4.1) + activesupport (= 6.1.4.1) bundler (>= 1.15.0) - railties (= 6.1.7.3) + railties (= 6.1.4.1) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.5.0) - loofah (~> 2.19, >= 2.19.1) - railties (6.1.7.3) - actionpack (= 6.1.7.3) - activesupport (= 6.1.7.3) + rails-html-sanitizer (1.4.2) + loofah (~> 2.3) + railties (6.1.4.1) + actionpack (= 6.1.4.1) + activesupport (= 6.1.4.1) method_source - rake (>= 12.2) + rake (>= 0.13) thor (~> 1.0) - rainbow (3.1.1) + rainbow (3.0.0) rake (13.0.6) - regexp_parser (2.7.0) + regexp_parser (2.1.1) rexml (3.2.5) - rubocop (1.48.1) - json (~> 2.3) + rubocop (1.19.1) parallel (~> 1.10) - parser (>= 3.2.0.0) + parser (>= 3.0.0.0) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) - rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.26.0, < 2.0) + rexml + rubocop-ast (>= 1.9.1, < 2.0) ruby-progressbar (~> 1.7) - unicode-display_width (>= 2.4.0, < 3.0) - rubocop-ast (1.28.0) - parser (>= 3.2.1.0) - rubocop-rails (2.18.0) + unicode-display_width (>= 1.4.0, < 3.0) + rubocop-ast (1.10.0) + parser (>= 3.0.1.1) + rubocop-rails (2.11.3) activesupport (>= 4.2.0) rack (>= 1.1) - rubocop (>= 1.33.0, < 2.0) - ruby-progressbar (1.13.0) - ruby2_keywords (0.0.5) + rubocop (>= 1.7.0, < 2.0) + ruby-progressbar (1.11.0) sassc (2.4.0) ffi (~> 1.9) sassc-rails (2.1.2) @@ -236,27 +198,25 @@ GEM sprockets (> 3.0) sprockets-rails tilt - sprockets (4.0.3) + sprockets (4.0.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) - sprockets-rails (3.4.2) - actionpack (>= 5.2) - activesupport (>= 5.2) + sprockets-rails (3.2.2) + actionpack (>= 4.0) + activesupport (>= 4.0) sprockets (>= 3.0.0) - thor (1.2.1) - tilt (2.1.0) - timeout (0.3.2) - tzinfo (2.0.6) + thor (1.1.0) + tilt (2.0.10) + tzinfo (2.0.4) concurrent-ruby (~> 1.0) - unicode-display_width (2.4.2) + unicode-display_width (2.0.0) websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) - zeitwerk (2.6.7) + zeitwerk (2.5.1) PLATFORMS x86_64-darwin-20 - x86_64-darwin-22 x86_64-linux DEPENDENCIES @@ -264,4 +224,4 @@ DEPENDENCIES rubocop-rails (~> 2.5) BUNDLED WITH - 2.4.3 + 2.2.28 diff --git a/beyond_canvas.gemspec b/beyond_canvas.gemspec index 93c25283..d71cc1bc 100644 --- a/beyond_canvas.gemspec +++ b/beyond_canvas.gemspec @@ -44,7 +44,7 @@ Gem::Specification.new do |spec| spec.add_dependency 'jwt', '~> 2.2' spec.add_dependency 'loaf', '~> 0.9' spec.add_dependency 'premailer-rails', '~> 1.11' - spec.add_dependency 'rails', '>= 5.1.7', ' < 7.0' + spec.add_dependency 'rails', '>= 5.1.7' spec.add_dependency 'sassc-rails', '~> 2.1' spec.add_dependency 'sprockets', '>= 3.0', '< 4.1' From 2e32685b85c136a71262158c108720cb1f2552fc Mon Sep 17 00:00:00 2001 From: German Date: Fri, 31 Mar 2023 15:37:00 +0200 Subject: [PATCH 46/76] Avoid subscribe to beyond webhooks when is not production (#109) --- .../beyond_canvas/install/templates/beyond_canvas.rb.erb | 7 +++++-- lib/models/concerns/webhook.rb | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/generators/beyond_canvas/install/templates/beyond_canvas.rb.erb b/lib/generators/beyond_canvas/install/templates/beyond_canvas.rb.erb index b949479a..2e4a8627 100644 --- a/lib/generators/beyond_canvas/install/templates/beyond_canvas.rb.erb +++ b/lib/generators/beyond_canvas/install/templates/beyond_canvas.rb.erb @@ -116,6 +116,9 @@ BeyondCanvas.setup do |config| # `product.updated`, `order.created`, `order.updated`) apart from # `app.uninstalled` on app installation process, add them like follows: # + # To clear the default webhook event list: + # config.clear_webhook_events! + # # To subscribe to a single webhook event: # config.register_webhook_event('product.created') # @@ -123,7 +126,7 @@ BeyondCanvas.setup do |config| # config.register_webhook_events(['product.created', 'product.updated']) # Set a URL where webhooks will call on non-production environments. You can - # make use of https://webhook.site/. + # make use of https://webhook.site/. By default webhook subscription on non-production environment is skipped # On production environments, the URL will be automatically generated. - config.webhook_site_url = nil + # config.webhook_site_url = nil end diff --git a/lib/models/concerns/webhook.rb b/lib/models/concerns/webhook.rb index 60c773ee..7e2b02ed 100644 --- a/lib/models/concerns/webhook.rb +++ b/lib/models/concerns/webhook.rb @@ -37,6 +37,7 @@ module Webhook # :nodoc: # def subscribe_to_beyond_webhooks return if BeyondCanvas.configuration.webhook_events.to_a.empty? + return if !Rails.env.production? && BeyondCanvas.configuration.webhook_site_url.blank? # Unsubscribe from all existing Beyond webhooks self.unsubscribe_from_all_beyond_webhooks From 7589aff1a77932f3c9cbcceff28ea385038e6ab8 Mon Sep 17 00:00:00 2001 From: citin Date: Tue, 4 Apr 2023 14:51:03 +0200 Subject: [PATCH 47/76] adds event on click to clear previous selected file --- app/assets/javascripts/beyond_canvas/base.js | 20 +++++++++-- .../beyond_canvas/initializers/inputs.js | 34 +++++++++++++++---- 2 files changed, 46 insertions(+), 8 deletions(-) diff --git a/app/assets/javascripts/beyond_canvas/base.js b/app/assets/javascripts/beyond_canvas/base.js index f05d4be0..ed351c1d 100644 --- a/app/assets/javascripts/beyond_canvas/base.js +++ b/app/assets/javascripts/beyond_canvas/base.js @@ -154,11 +154,16 @@ $('input[type="file"]').each(function() { var $input = $(this); var $label = $(".input__file__text." + $input.attr("id")); - var labelVal = $label.html(); + var noFileText = $input.attr("data-no-file-text"); + var svgFileIcon = '\n \n \n '; $input.on("change", function(e) { var fileName = ""; if (this.files && this.files.length > 1) fileName = (this.getAttribute("data-multiple-caption") || "{count} files selected").replace("{count}", this.files.length); else if (e.target.value) fileName = e.target.value.split("\\").pop(); - if (fileName) $label.html('' + fileName); else $label.html(labelVal); + if (fileName) { + $label.html("" + svgFileIcon + fileName); + } else { + $label.html(noFileText); + } }); $input.on("focus", function() { $input.addClass("has-focus"); @@ -167,11 +172,22 @@ }); }); }; + var initializeClearOnClickInputs = function initializeClearOnClickInputs() { + $("form").on("click", 'input[type="file"][data-clear-on-click="true"]', function() { + var dt = new DataTransfer(); + this.files = dt.files; + this.dispatchEvent(new Event("change", { + bubbles: true, + composed: true + })); + }); + }; $(document).on("ready page:load turbolinks:load", function() { var observer = new MutationObserver(function() { return onDOMReady(); }); onDOMReady(); + initializeClearOnClickInputs(); observer.observe(document.body, { childList: true, subtree: true diff --git a/app/javascript/beyond_canvas/initializers/inputs.js b/app/javascript/beyond_canvas/initializers/inputs.js index 3f2c5910..b3516631 100644 --- a/app/javascript/beyond_canvas/initializers/inputs.js +++ b/app/javascript/beyond_canvas/initializers/inputs.js @@ -3,7 +3,11 @@ $('input[type="file"]').each(function () { const $input = $(this); const $label = $(`.input__file__text.${$input.attr('id')}`); - const labelVal = $label.html(); + const noFileText = $input.attr('data-no-file-text'); + const svgFileIcon = ` + + + `; $input.on('change', function (e) { let fileName = ''; @@ -15,11 +19,13 @@ ); else if (e.target.value) fileName = e.target.value.split('\\').pop(); - if (fileName) - $label.html( - `${fileName}` - ); - else $label.html(labelVal); + if (fileName) { + // Adds icon + filename to label + $label.html(`${svgFileIcon}${fileName}`); + } else { + // Adds default no-file text + $label.html(noFileText); + } }); // Firefox bug fix @@ -33,10 +39,26 @@ }); }; + // Clear previous files on click to upload a new file. This applies to the files + // inputs inside a form that has the data-clear-on-click="true" setted + const initializeClearOnClickInputs = function () { + $('form').on('click', 'input[type="file"][data-clear-on-click="true"]', function () { + // Clear previous selected files + const dt = new DataTransfer(); + this.files = dt.files; + + // Trigger change + this.dispatchEvent(new Event('change', { bubbles: true, composed: true })); + }); + }; + $(document).on('ready page:load turbolinks:load', () => { const observer = new MutationObserver(() => onDOMReady()); onDOMReady(); + initializeClearOnClickInputs(); + observer.observe(document.body, { childList: true, subtree: true }); }); })(jQuery); + From fb99ccf8b98d9c433299f3ea24b640c43642c4f4 Mon Sep 17 00:00:00 2001 From: citin Date: Wed, 12 Apr 2023 10:08:19 +0100 Subject: [PATCH 48/76] fix linter --- app/javascript/beyond_canvas/initializers/inputs.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/beyond_canvas/initializers/inputs.js b/app/javascript/beyond_canvas/initializers/inputs.js index b3516631..e3c7d18f 100644 --- a/app/javascript/beyond_canvas/initializers/inputs.js +++ b/app/javascript/beyond_canvas/initializers/inputs.js @@ -45,8 +45,8 @@ $('form').on('click', 'input[type="file"][data-clear-on-click="true"]', function () { // Clear previous selected files const dt = new DataTransfer(); - this.files = dt.files; + this.files = dt.files; // Trigger change this.dispatchEvent(new Event('change', { bubbles: true, composed: true })); }); From f9d641d2770dc956457d85699b18ac3db7231af1 Mon Sep 17 00:00:00 2001 From: German Date: Thu, 11 May 2023 12:27:47 +0200 Subject: [PATCH 49/76] Fix js event firing multiple times (#112) --- .eslintrc.json | 16 ++--- app/assets/javascripts/beyond_canvas/base.js | 54 +++++++-------- .../beyond_canvas/form_builder.rb | 15 ++-- .../beyond_canvas/initializers/inputs.js | 69 +++++++++---------- .../beyond_canvas/lib/common_functions.js | 16 ++--- 5 files changed, 82 insertions(+), 88 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index 4c785e51..10b30c66 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -4,11 +4,9 @@ "es6": true, "jquery": true }, - "extends": [ - "eslint:recommended" - ], + "extends": ["eslint:recommended"], "parserOptions": { - "ecmaVersion": 6, + "ecmaVersion": 11, "sourceType": "module" }, "rules": { @@ -28,14 +26,8 @@ "allowTemplateLiterals": true } ], - "semi": [ - "error", - "always" - ], - "init-declarations": [ - "error", - "always" - ], + "semi": ["error", "always"], + "init-declarations": ["error", "always"], "no-undefined": "error" } } diff --git a/app/assets/javascripts/beyond_canvas/base.js b/app/assets/javascripts/beyond_canvas/base.js index ed351c1d..21965543 100644 --- a/app/assets/javascripts/beyond_canvas/base.js +++ b/app/assets/javascripts/beyond_canvas/base.js @@ -151,25 +151,33 @@ }); (function($) { var onDOMReady = function onDOMReady() { - $('input[type="file"]').each(function() { - var $input = $(this); - var $label = $(".input__file__text." + $input.attr("id")); - var noFileText = $input.attr("data-no-file-text"); + updateInputLabel(); + initializeClearOnClickInputs(); + addInputFocusClass(); + removeInputFocusClass(); + }; + var updateInputLabel = function updateInputLabel() { + $("form").on("change", 'input[type="file"]', function(_ref) { + var _input$files, _input$getAttribute, _input$value; + var input = _ref.currentTarget; + var label = $(".input__file__text." + input.getAttribute("id")); + if (!label) return; + var noFileText = input.getAttribute("data-no-file-text"); var svgFileIcon = '\n \n \n '; - $input.on("change", function(e) { - var fileName = ""; - if (this.files && this.files.length > 1) fileName = (this.getAttribute("data-multiple-caption") || "{count} files selected").replace("{count}", this.files.length); else if (e.target.value) fileName = e.target.value.split("\\").pop(); - if (fileName) { - $label.html("" + svgFileIcon + fileName); - } else { - $label.html(noFileText); - } - }); - $input.on("focus", function() { - $input.addClass("has-focus"); - }).on("blur", function() { - $input.removeClass("has-focus"); - }); + var fileName = ((_input$files = input.files) == null ? void 0 : _input$files.length) > 1 ? (_input$getAttribute = input.getAttribute("data-multiple-selection-text")) == null ? void 0 : _input$getAttribute.replace("{count}", input.files.length) : ((_input$value = input.value) == null ? void 0 : _input$value.split("\\").pop()) || ""; + fileName ? label.html("" + svgFileIcon + fileName) : label.html(noFileText); + }); + }; + var addInputFocusClass = function addInputFocusClass() { + $("form").on("focus", 'input[type="file"]', function(_ref2) { + var input = _ref2.currentTarget; + input.addClass("has-focus"); + }); + }; + var removeInputFocusClass = function removeInputFocusClass() { + $("form").on("blur", 'input[type="file"]', function(_ref3) { + var input = _ref3.currentTarget; + input.removeClass("has-focus"); }); }; var initializeClearOnClickInputs = function initializeClearOnClickInputs() { @@ -183,15 +191,7 @@ }); }; $(document).on("ready page:load turbolinks:load", function() { - var observer = new MutationObserver(function() { - return onDOMReady(); - }); - onDOMReady(); - initializeClearOnClickInputs(); - observer.observe(document.body, { - childList: true, - subtree: true - }); + return onDOMReady(); }); })(jQuery); (function($) { diff --git a/app/form_builders/beyond_canvas/form_builder.rb b/app/form_builders/beyond_canvas/form_builder.rb index a291a177..8deae4fe 100644 --- a/app/form_builders/beyond_canvas/form_builder.rb +++ b/app/form_builders/beyond_canvas/form_builder.rb @@ -57,18 +57,25 @@ def file_field(attribute, args = {}) args.merge!(id: filed_identifyer) .merge!(style: 'visibility: hidden; position: absolute;') - custom_attributes = { data: { multiple_selection_text: '{count} files selected' } } - args = custom_attributes.merge!(args) + custom_attributes = { + data: { + multiple_selection_text: '{count} files selected', + no_file_text: args.dig(:data, :no_file_text) || 'No file chosen' + } + } + + custom_attributes[:data].merge! args[:data] if args.has_key? :data + args.merge!(custom_attributes) @template.content_tag(:div, class: 'input__file') do super(attribute, args) + @template.content_tag(:label, for: filed_identifyer, class: 'input__file__control button__transparent--primary') do - args[:data][:button_text] || 'Choose file' + args.dig(:data, :button_text) || 'Choose file' end + @template.content_tag(:span, - args[:data][:no_file_text] || 'No file chosen', + args.dig(:data, :no_file_text), class: "input__file__text #{filed_identifyer}") end end diff --git a/app/javascript/beyond_canvas/initializers/inputs.js b/app/javascript/beyond_canvas/initializers/inputs.js index e3c7d18f..b8c1fc32 100644 --- a/app/javascript/beyond_canvas/initializers/inputs.js +++ b/app/javascript/beyond_canvas/initializers/inputs.js @@ -1,41 +1,44 @@ (function ($) { const onDOMReady = function () { - $('input[type="file"]').each(function () { - const $input = $(this); - const $label = $(`.input__file__text.${$input.attr('id')}`); - const noFileText = $input.attr('data-no-file-text'); + updateInputLabel(); + initializeClearOnClickInputs(); + addInputFocusClass(); + removeInputFocusClass(); + }; + + const updateInputLabel = () => { + $('form').on('change', 'input[type="file"]', function ({ currentTarget: input }) { + const label = $(`.input__file__text.${input.getAttribute('id')}`); + + if (!label) return; + + const noFileText = input.getAttribute('data-no-file-text'); const svgFileIcon = ` `; - $input.on('change', function (e) { - let fileName = ''; + const fileName = input.files?.length > 1 ? + input.getAttribute('data-multiple-selection-text')?.replace( + '{count}', + input.files.length + ) : + input.value?.split('\\').pop() || ''; - if (this.files && this.files.length > 1) - fileName = (this.getAttribute('data-multiple-caption') || '{count} files selected').replace( - '{count}', - this.files.length - ); - else if (e.target.value) fileName = e.target.value.split('\\').pop(); + // Adds icon + filename to label or default no-file text + fileName ? label.html(`${svgFileIcon}${fileName}`) : label.html(noFileText); + }); + }; - if (fileName) { - // Adds icon + filename to label - $label.html(`${svgFileIcon}${fileName}`); - } else { - // Adds default no-file text - $label.html(noFileText); - } - }); + const addInputFocusClass = () => { + $('form').on('focus', 'input[type="file"]', function ({ currentTarget: input }) { + input.addClass('has-focus'); + }); + }; - // Firefox bug fix - $input - .on('focus', function () { - $input.addClass('has-focus'); - }) - .on('blur', function () { - $input.removeClass('has-focus'); - }); + const removeInputFocusClass = () => { + $('form').on('blur', 'input[type="file"]', function ({ currentTarget: input }) { + input.removeClass('has-focus'); }); }; @@ -52,13 +55,5 @@ }); }; - $(document).on('ready page:load turbolinks:load', () => { - const observer = new MutationObserver(() => onDOMReady()); - - onDOMReady(); - initializeClearOnClickInputs(); - - observer.observe(document.body, { childList: true, subtree: true }); - }); + $(document).on('ready page:load turbolinks:load', () => onDOMReady()); })(jQuery); - diff --git a/app/javascript/beyond_canvas/lib/common_functions.js b/app/javascript/beyond_canvas/lib/common_functions.js index f845fbb8..6d888421 100644 --- a/app/javascript/beyond_canvas/lib/common_functions.js +++ b/app/javascript/beyond_canvas/lib/common_functions.js @@ -6,12 +6,12 @@ export function previewImage(e) { const figureElement = $(elementFather).find('figure'); const figurePlaceholderElement = $(e.target).parents('.relative').find('.js-placeholder').find('figure'); - const imgAttr = getImagesAttributes(figureElement, figurePlaceholderElement) - const figureAttr = getAttributesFromFigureElements(figureElement, figurePlaceholderElement) + const imgAttr = getImagesAttributes(figureElement, figurePlaceholderElement); + const figureAttr = getAttributesFromFigureElements(figureElement, figurePlaceholderElement); delete imgAttr.src; delete figureAttr.class; - delete figureAttr.style + delete figureAttr.style; if($(e.target).attr('multiple')) { $(elementFather).children('attachment__placeholder, [preview]').each((_, img) => $(img).remove()); @@ -46,15 +46,15 @@ const getImagesAttributes = (figureImageElement, figurePlaceholderElement) => { return { ...getImageAttributes($(figurePlaceholderElement)), ...getImageAttributes($(figureImageElement)) - } -} + }; +}; const getAttributesFromFigureElements = (figureImageElement, figurePlaceholderElement) => { return { ...getAttributesFromElement($(figurePlaceholderElement)[0]), ...getAttributesFromElement($(figureImageElement)[0]) - } -} + }; +}; export const getImageAttributes = (figureElement) => { const svgElement = $(figureElement).find('svg')[0]; @@ -65,7 +65,7 @@ export const getImageAttributes = (figureElement) => { } return getAttributesFromSVG(svgElement); -} +}; export const getAttributesFromElement = (element) => { const attributes = {}; From a6b49a3965f468234a93cb3ffaf13184c0e31b05 Mon Sep 17 00:00:00 2001 From: Kathia Date: Mon, 8 Jan 2024 06:29:42 -0400 Subject: [PATCH 50/76] Add test tools (#119) --- lib/beyond_canvas.rb | 1 + lib/beyond_canvas/test_tools.rb | 46 +++++++++++++++++++++++++++++++++ lib/models/concerns/utils.rb | 2 +- 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 lib/beyond_canvas/test_tools.rb diff --git a/lib/beyond_canvas.rb b/lib/beyond_canvas.rb index 6c8e5527..034354bb 100644 --- a/lib/beyond_canvas.rb +++ b/lib/beyond_canvas.rb @@ -20,6 +20,7 @@ module BeyondCanvas # :nodoc: autoload :Configuration, 'beyond_canvas/configuration' autoload :MenuItemRegistration, 'beyond_canvas/menu_item_registration' autoload :ParameterSanitizer, 'beyond_canvas/parameter_sanitizer' + autoload :TestTools, 'beyond_canvas/test_tools' autoload :WebhookEventRegistration, 'beyond_canvas/webhook_event_registration' module Middleware diff --git a/lib/beyond_canvas/test_tools.rb b/lib/beyond_canvas/test_tools.rb new file mode 100644 index 00000000..714887c2 --- /dev/null +++ b/lib/beyond_canvas/test_tools.rb @@ -0,0 +1,46 @@ +# frozen_string_literal: true + +# This module provides some tools to facilitate the testing of your applications +# Usage: add the following line in your config/environments/test.rb +# BeyondCanvas::TestTools.enable + +module BeyondCanvas + module TestTools + class << self + def enable + enable_client_credentials + create_authorized_shop_shared_context + end + + private + + # Setup to retrieve the shop token using `grant_type=client_credentials` + def enable_client_credentials + BeyondCanvas.setup do |config| + config.client_credentials = true + end + end + + # Creates an authorized shop for testing propouses + # Usage: add the following line in your `_spec` file + # include_context 'authorized shop' + def create_authorized_shop_shared_context + RSpec.shared_context 'authorized shop' do + let(:shop) do + Shop.new.tap do |shop| + shop.beyond_api_url = "#{Rails.application.credentials.rspec[:shop_url]}/api" + shop.reseller = Rails.application.credentials.rspec[:reseller_name] + shop.beyond_access_token = shop.to_session.token.client_credentials.access_token + shop.save! + end + end + + before(:each) do + # Stub current_shop + allow_any_instance_of(BeyondCanvas::AuthenticationsHelper).to receive(:current_shop).and_return(shop) + end + end + end + end + end +end diff --git a/lib/models/concerns/utils.rb b/lib/models/concerns/utils.rb index 8e47b4bf..a5e817ac 100644 --- a/lib/models/concerns/utils.rb +++ b/lib/models/concerns/utils.rb @@ -47,7 +47,7 @@ def refresh_token_if_needed # attributes) from the instantiated Shop. # def to_session - refresh_token_if_needed + refresh_token_if_needed unless BeyondCanvas.configuration.client_credentials BeyondApi::Session.new(api_url: beyond_api_url, access_token: beyond_access_token, From e6eb2f6131388329168097454715b19d8e4799cc Mon Sep 17 00:00:00 2001 From: Unai Abrisketa Date: Wed, 10 Jan 2024 10:29:18 +0100 Subject: [PATCH 51/76] Fix issue (#120) --- lib/beyond_canvas/engine.rb | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/beyond_canvas/engine.rb b/lib/beyond_canvas/engine.rb index 2c1b4a53..b3766ed3 100644 --- a/lib/beyond_canvas/engine.rb +++ b/lib/beyond_canvas/engine.rb @@ -19,10 +19,7 @@ class Engine < ::Rails::Engine # :nodoc: initializer 'beyond_canvas.session' do |app| if BeyondCanvas.configuration.cockpit_app == true && Rails.env.production? - app.config.session_store :cookie_store, { - secure: true, - same_site: :none - } + app.config.session_store :cookie_store, secure: true, same_site: :none end end From 515ce2dbef953451be2c305d4c0b6638a5201275 Mon Sep 17 00:00:00 2001 From: Unai Abrisketa Date: Thu, 11 Jan 2024 13:00:29 +0100 Subject: [PATCH 52/76] V0.23.1.pre (#121) * Fix issue * Update yarn dependencies --- app/assets/javascripts/beyond_canvas/base.js | 64 +- .../beyond_canvas/common_functions.js | 27 +- package.json | 29 +- yarn.lock | 3247 ++++++++++------- 4 files changed, 1903 insertions(+), 1464 deletions(-) diff --git a/app/assets/javascripts/beyond_canvas/base.js b/app/assets/javascripts/beyond_canvas/base.js index 21965543..a7cf9026 100644 --- a/app/assets/javascripts/beyond_canvas/base.js +++ b/app/assets/javascripts/beyond_canvas/base.js @@ -230,35 +230,16 @@ modal.trigger("bc.modal.hidden"); } }); - const template = ` - - - -`; + const template = ``; const updaters = new WeakMap(); class ScrollShadowElement extends HTMLElement { + constructor() { + super(); + this.attachShadow({ + mode: "open" + }).innerHTML = template; + updaters.set(this, new Updater(this.shadowRoot.lastElementChild)); + } static get observedAttributes() { return [ "el" ]; } @@ -268,13 +249,6 @@ set el(value) { this.setAttribute("el", value); } - constructor() { - super(); - this.attachShadow({ - mode: "open" - }).innerHTML = template; - updaters.set(this, new Updater(this.shadowRoot.lastElementChild)); - } connectedCallback() { this.shadowRoot.querySelector("slot").addEventListener("slotchange", () => this.start()); this.start(); @@ -289,34 +263,36 @@ } } start() { - const el = this.scrollEl || this.firstElementChild; - updaters.get(this).start(el, this.scrollEl ? this.firstElementChild : null); + updaters.get(this).start(this.scrollEl || this.firstElementChild, this.scrollEl ? this.firstElementChild : null); } } class Updater { constructor(targetElement) { const update = this.update.bind(this, targetElement, getComputedStyle(targetElement)); this.handleScroll = throttle(update); - this.resizeObserver = new ResizeObserver(update); + this.rO = new ResizeObserver(update); + this.mO = new MutationObserver(() => this.start(this.el, this.rootEl)); } start(element, rootElement) { if (this.el) this.stop(); if (element) { element.addEventListener("scroll", this.handleScroll); - this.resizeObserver.observe(element); + [ element, ...element.children ].forEach(el => this.rO.observe(el)); + this.mO.observe(element, { + childList: true + }); this.el = element; } if (rootElement) { - this.resizeObserver.observe(rootElement); + this.rO.observe(rootElement); this.rootEl = rootElement; } } stop() { - if (!this.el) return; this.el.removeEventListener("scroll", this.handleScroll); - this.resizeObserver.disconnect(); - this.el = null; - this.rootEl = null; + this.mO.disconnect(); + this.rO.disconnect(); + this.el = this.rootEl = null; } update(targetElement, computedStyle) { const { @@ -324,7 +300,7 @@ rootEl } = this; if (!el) return; - const maxSize = Number(computedStyle.getPropertyValue("--scroll-shadow-size") || 14); + const maxSize = Number(computedStyle.getPropertyValue("--scroll-shadow-size")) || 14; const style = { "--top": clamp(el.scrollTop, 0, maxSize), "--bottom": clamp(el.scrollHeight - el.offsetHeight - el.scrollTop, 0, maxSize), diff --git a/app/assets/javascripts/beyond_canvas/common_functions.js b/app/assets/javascripts/beyond_canvas/common_functions.js index 14b22966..80843f61 100644 --- a/app/assets/javascripts/beyond_canvas/common_functions.js +++ b/app/assets/javascripts/beyond_canvas/common_functions.js @@ -2,23 +2,19 @@ var bc = (function (exports) { 'use strict'; function _extends() { - _extends = Object.assign || function (target) { + _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; - for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } - return target; }; - return _extends.apply(this, arguments); } - function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); @@ -27,19 +23,14 @@ var bc = (function (exports) { if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; - for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; - return arr2; } - function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); - if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; @@ -53,11 +44,11 @@ var bc = (function (exports) { }; }; } - throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } /* exported previewImage */ + function previewImage(e) { var arr = Array.from(e.target.files); var elementFather = $(e.target).parents('.relative').find('.js-images'); @@ -68,7 +59,6 @@ var bc = (function (exports) { delete imgAttr.src; delete figureAttr["class"]; delete figureAttr.style; - if ($(e.target).attr('multiple')) { $(elementFather).children('attachment__placeholder, [preview]').each(function (_, img) { return $(img).remove(); @@ -76,12 +66,10 @@ var bc = (function (exports) { } else { $(elementFather).find('figure').remove(); } - $(e.target).parents('.relative').find('.js-placeholder').hide(); arr.forEach(function (file) { var reader = new FileReader(); reader.readAsDataURL(file); - reader.onload = function () { var figure = document.createElement('figure'); var img = document.createElement('img'); @@ -95,34 +83,27 @@ var bc = (function (exports) { }; }); } - var getImagesAttributes = function getImagesAttributes(figureImageElement, figurePlaceholderElement) { return _extends({}, getImageAttributes($(figurePlaceholderElement)), getImageAttributes($(figureImageElement))); }; - var getAttributesFromFigureElements = function getAttributesFromFigureElements(figureImageElement, figurePlaceholderElement) { return _extends({}, getAttributesFromElement($(figurePlaceholderElement)[0]), getAttributesFromElement($(figureImageElement)[0])); }; - var getImageAttributes = function getImageAttributes(figureElement) { var svgElement = $(figureElement).find('svg')[0]; var imageElement = $(figureElement).find('img')[0]; - if (imageElement) { return getAttributesFromElement(imageElement); } - return getAttributesFromSVG(svgElement); }; var getAttributesFromElement = function getAttributesFromElement(element) { var attributes = {}; if (!element) return attributes; - for (var _iterator = _createForOfIteratorHelperLoose(element.getAttributeNames()), _step; !(_step = _iterator()).done;) { var attr = _step.value; attributes[attr] = element.getAttribute(attr); } - return attributes; }; var getAttributesFromSVG = function getAttributesFromSVG(element) { @@ -132,12 +113,10 @@ var bc = (function (exports) { var svgAttr = element.getAttributeNames().filter(function (attr) { return !svgAttrToExclude.includes(attr); }); - for (var _iterator2 = _createForOfIteratorHelperLoose(svgAttr), _step2; !(_step2 = _iterator2()).done;) { var attr = _step2.value; attributes[attr] = element.getAttribute(attr); } - return attributes; }; var setAttributesToElement = function setAttributesToElement(element, attributes) { @@ -154,4 +133,4 @@ var bc = (function (exports) { return exports; -}({})); +})({}); diff --git a/package.json b/package.json index 72f186e2..5da5bdea 100644 --- a/package.json +++ b/package.json @@ -29,29 +29,30 @@ "type": "git", "url": "https://github.com/ePages-de/beyond_canvas.git" }, + "type": "module", "scripts": { "build": "rollup --config rollup.config.js", "prepublishOnly": "rm -rf src && cp -R app/javascript/beyond_canvas src && cp -R app/assets/stylesheets/beyond_canvas src/scss", "eslint": "eslint ./app/javascript/beyond_canvas" }, "dependencies": { - "bourbon": "^7.0.0", - "jquery": "^3.5.1", - "scroll-shadow-element": "^1.1.3" + "bourbon": "^7.3.0", + "jquery": "^3.7.1", + "scroll-shadow-element": "^1.1.6" }, "devDependencies": { - "@babel/core": "^7.6.2", - "@babel/preset-env": "^7.6.2", - "@rollup/plugin-babel": "^5.0.0", - "@rollup/plugin-commonjs": "^11.1.0", - "@rollup/plugin-node-resolve": "^7.1.3", - "common-tags": "^1.8.0", - "eslint": "^7.1.0", - "eslint-config-standard": "^14.1.1", - "eslint-plugin-import": "^2.20.2", + "@babel/core": "^7.23.7", + "@babel/preset-env": "^7.23.8", + "@rollup/plugin-babel": "^6.0.4", + "@rollup/plugin-commonjs": "^25.0.7", + "@rollup/plugin-node-resolve": "^15.2.3", + "common-tags": "^1.8.2", + "eslint": "^8.56.0", + "eslint-config-standard": "^17.1.0", + "eslint-plugin-import": "^2.29.1", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-standard": "^4.0.1", - "rollup": "^1.21.4", + "eslint-plugin-standard": "^5.0.0", + "rollup": "^4.9.4", "rollup-plugin-uglify": "^6.0.4" } } diff --git a/yarn.lock b/yarn.lock index 767d1ae4..4b0e7643 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,254 +2,270 @@ # yarn lockfile v1 -"@babel/code-frame@7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" - integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" + resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== + +"@ampproject/remapping@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== dependencies: - "@babel/highlight" "^7.10.4" + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.14.5": +"@babel/code-frame@^7.0.0": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== dependencies: "@babel/highlight" "^7.14.5" -"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.5", "@babel/compat-data@^7.14.7": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.7.tgz#7b047d7a3a89a67d2258dc61f604f098f1bc7e08" - integrity sha512-nS6dZaISCXJ3+518CWiBfEr//gHyMO02uDxBkXTKZDN5POruCnOZ1N4YBRZDCabwF8nZMWBpRxIicmXtBs+fvw== - -"@babel/core@^7.6.2": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.8.tgz#20cdf7c84b5d86d83fac8710a8bc605a7ba3f010" - integrity sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.14.8" - "@babel/helper-compilation-targets" "^7.14.5" - "@babel/helper-module-transforms" "^7.14.8" - "@babel/helpers" "^7.14.8" - "@babel/parser" "^7.14.8" - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.14.8" - "@babel/types" "^7.14.8" - convert-source-map "^1.7.0" +"@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" + +"@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== + +"@babel/core@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.7.tgz#4d8016e06a14b5f92530a13ed0561730b5c6483f" + integrity sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.7" + "@babel/parser" "^7.23.6" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.7" + "@babel/types" "^7.23.6" + convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.1.2" - semver "^6.3.0" - source-map "^0.5.0" + json5 "^2.2.3" + semver "^6.3.1" -"@babel/generator@^7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.8.tgz#bf86fd6af96cf3b74395a8ca409515f89423e070" - integrity sha512-cYDUpvIzhBVnMzRoY1fkSEhK/HmwEVwlyULYgn/tMQYd6Obag3ylCjONle3gdErfXBW61SVTlR9QR7uWlgeIkg== +"@babel/generator@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" + integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== dependencies: - "@babel/types" "^7.14.8" + "@babel/types" "^7.23.6" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61" - integrity sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA== - dependencies: - "@babel/types" "^7.14.5" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz#b939b43f8c37765443a19ae74ad8b15978e0a191" - integrity sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.14.5" - "@babel/types" "^7.14.5" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz#7a99c5d0967911e972fe2c3411f7d5b498498ecf" - integrity sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw== - dependencies: - "@babel/compat-data" "^7.14.5" - "@babel/helper-validator-option" "^7.14.5" - browserslist "^4.16.6" - semver "^6.3.0" - -"@babel/helper-create-class-features-plugin@^7.14.5": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.8.tgz#a6f8c3de208b1e5629424a9a63567f56501955fc" - integrity sha512-bpYvH8zJBWzeqi1o+co8qOrw+EXzQ/0c74gVmY205AWXy9nifHrOg77y+1zwxX5lXE7Icq4sPlSQ4O2kWBrteQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.14.5" - "@babel/helper-function-name" "^7.14.5" - "@babel/helper-member-expression-to-functions" "^7.14.7" - "@babel/helper-optimise-call-expression" "^7.14.5" - "@babel/helper-replace-supers" "^7.14.5" - "@babel/helper-split-export-declaration" "^7.14.5" - -"@babel/helper-create-regexp-features-plugin@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4" - integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A== - dependencies: - "@babel/helper-annotate-as-pure" "^7.14.5" - regexpu-core "^4.7.1" - -"@babel/helper-define-polyfill-provider@^0.2.2": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6" - integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew== - dependencies: - "@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" +"@babel/helper-annotate-as-pure@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" + integrity sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg== + dependencies: + "@babel/types" "^7.22.5" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" + integrity sha512-QkBXwGgaoC2GtGZRoma6kv7Szfv06khvhFav67ZExau2RaXzy8MpHSMO2PNoP2XtmQphJQRHFfg77Bq731Yizw== + dependencies: + "@babel/types" "^7.22.15" + +"@babel/helper-compilation-targets@^7.22.15", "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" + lru-cache "^5.1.1" + semver "^6.3.1" + +"@babel/helper-create-class-features-plugin@^7.22.15": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.23.7.tgz#b2e6826e0e20d337143655198b79d58fdc9bd43d" + integrity sha512-xCoqR/8+BoNnXOY7RVSgv6X+o7pmT5q1d+gGcRlXYkI+9B31glE4jeejhKVpA04O1AtzOt7OSQ6VYKP5FcRl9g== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-member-expression-to-functions" "^7.23.0" + "@babel/helper-optimise-call-expression" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + semver "^6.3.1" + +"@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" + integrity sha512-29FkPLFjn4TPEa3RE7GpW+qbE8tlsu3jntNYNfcGsc49LphF1PQIiD+vMZ1z1xVOKt+93khA9tc2JBs3kBjA7w== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + regexpu-core "^5.3.1" + semver "^6.3.1" + +"@babel/helper-define-polyfill-provider@^0.4.4": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz#64df615451cb30e94b59a9696022cffac9a10088" + integrity sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" debug "^4.1.1" lodash.debounce "^4.0.8" resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-explode-assignable-expression@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz#8aa72e708205c7bb643e45c73b4386cdf2a1f645" - integrity sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ== - dependencies: - "@babel/types" "^7.14.5" -"@babel/helper-function-name@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" - integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== - dependencies: - "@babel/helper-get-function-arity" "^7.14.5" - "@babel/template" "^7.14.5" - "@babel/types" "^7.14.5" +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== -"@babel/helper-get-function-arity@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" - integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg== +"@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== dependencies: - "@babel/types" "^7.14.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" -"@babel/helper-hoist-variables@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" - integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ== +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== dependencies: - "@babel/types" "^7.14.5" + "@babel/types" "^7.22.5" -"@babel/helper-member-expression-to-functions@^7.14.5", "@babel/helper-member-expression-to-functions@^7.14.7": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz#97e56244beb94211fe277bd818e3a329c66f7970" - integrity sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA== +"@babel/helper-member-expression-to-functions@^7.22.15", "@babel/helper-member-expression-to-functions@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" + integrity sha512-6gfrPwh7OuT6gZyJZvd6WbTfrqAo7vm4xCzAXOusKqq/vWdKXphTpj5klHKNmRUU6/QRGlBsyU9mAIPaWHlqJA== dependencies: - "@babel/types" "^7.14.5" + "@babel/types" "^7.23.0" -"@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" - integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== +"@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== dependencies: - "@babel/types" "^7.14.5" + "@babel/types" "^7.22.15" -"@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.8.tgz#d4279f7e3fd5f4d5d342d833af36d4dd87d7dc49" - integrity sha512-RyE+NFOjXn5A9YU1dkpeBaduagTlZ0+fccnIcAGbv1KGUlReBj7utF7oEth8IdIBQPcux0DDgW5MFBH2xu9KcA== +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== dependencies: - "@babel/helper-module-imports" "^7.14.5" - "@babel/helper-replace-supers" "^7.14.5" - "@babel/helper-simple-access" "^7.14.8" - "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/helper-validator-identifier" "^7.14.8" - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.14.8" - "@babel/types" "^7.14.8" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" -"@babel/helper-optimise-call-expression@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c" - integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA== +"@babel/helper-optimise-call-expression@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" + integrity sha512-HBwaojN0xFRx4yIvpwGqxiV2tUfl7401jlok564NgB9EHS1y6QT17FmKWm4ztqjeVdXLuC4fSvHc5ePpQjoTbw== dependencies: - "@babel/types" "^7.14.5" + "@babel/types" "^7.22.5" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== -"@babel/helper-remap-async-to-generator@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz#51439c913612958f54a987a4ffc9ee587a2045d6" - integrity sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A== +"@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== + +"@babel/helper-remap-async-to-generator@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" + integrity sha512-pBGyV4uBqOns+0UvhsTO8qgl8hO89PmiDYv+/COyp1aeMcmfrfruz+/nCMFiYyFF/Knn0yfrC85ZzNFjembFTw== dependencies: - "@babel/helper-annotate-as-pure" "^7.14.5" - "@babel/helper-wrap-function" "^7.14.5" - "@babel/types" "^7.14.5" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-wrap-function" "^7.22.20" -"@babel/helper-replace-supers@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz#0ecc0b03c41cd567b4024ea016134c28414abb94" - integrity sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow== +"@babel/helper-replace-supers@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.22.20.tgz#e37d367123ca98fe455a9887734ed2e16eb7a793" + integrity sha512-qsW0In3dbwQUbK8kejJ4R7IHVGwHJlV6lpG6UA7a9hSa2YEiAib+N1T2kr6PEeUT+Fl7najmSOS6SmAwCHK6Tw== dependencies: - "@babel/helper-member-expression-to-functions" "^7.14.5" - "@babel/helper-optimise-call-expression" "^7.14.5" - "@babel/traverse" "^7.14.5" - "@babel/types" "^7.14.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-member-expression-to-functions" "^7.22.15" + "@babel/helper-optimise-call-expression" "^7.22.5" -"@babel/helper-simple-access@^7.14.5", "@babel/helper-simple-access@^7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924" - integrity sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg== +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== dependencies: - "@babel/types" "^7.14.8" + "@babel/types" "^7.22.5" -"@babel/helper-skip-transparent-expression-wrappers@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz#96f486ac050ca9f44b009fbe5b7d394cab3a0ee4" - integrity sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ== +"@babel/helper-skip-transparent-expression-wrappers@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" + integrity sha512-tK14r66JZKiC43p8Ki33yLBVJKlQDFoA8GYN67lWCDCqoL6EMMSuM9b+Iff2jHaM/RRFYl7K+iiru7hbRqNx8Q== dependencies: - "@babel/types" "^7.14.5" + "@babel/types" "^7.22.5" -"@babel/helper-split-export-declaration@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" - integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== dependencies: - "@babel/types" "^7.14.5" + "@babel/types" "^7.22.5" + +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== "@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.8": version "7.14.8" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.8.tgz#32be33a756f29e278a0d644fa08a2c9e0f88a34c" integrity sha512-ZGy6/XQjllhYQrNw/3zfWRwZCTVSiBLZ9DHVZxn9n2gip/7ab8mv2TWlKPIBk26RwedCBoWdjLmn+t9na2Gcow== -"@babel/helper-validator-option@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" - integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== +"@babel/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-wrap-function@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz#5919d115bf0fe328b8a5d63bcb610f51601f2bff" - integrity sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ== +"@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== + +"@babel/helper-wrap-function@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" + integrity sha512-pms/UwkOpnQe/PDAEdV/d7dVCoBbB+R4FvYoHGZz+4VPcg7RtYy2KP7S2lbuWM6FCSgob5wshfGESbC/hzNXZw== dependencies: - "@babel/helper-function-name" "^7.14.5" - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.14.5" - "@babel/types" "^7.14.5" + "@babel/helper-function-name" "^7.22.5" + "@babel/template" "^7.22.15" + "@babel/types" "^7.22.19" -"@babel/helpers@^7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.8.tgz#839f88f463025886cff7f85a35297007e2da1b77" - integrity sha512-ZRDmI56pnV+p1dH6d+UN6GINGz7Krps3+270qqI9UJ4wxYThfAIcI5i7j5vXC4FJ3Wap+S9qcebxeYiqn87DZw== +"@babel/helpers@^7.23.7": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.8.tgz#fc6b2d65b16847fd50adddbd4232c76378959e34" + integrity sha512-KDqYz4PiOWvDFrdHLPhKtCThtIcKVy6avWD2oG4GEvyQ+XDZwHD4YQd+H2vNMnq2rkdxsDkU82T+Vk8U/WXHRQ== dependencies: - "@babel/template" "^7.14.5" - "@babel/traverse" "^7.14.8" - "@babel/types" "^7.14.8" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.7" + "@babel/types" "^7.23.6" -"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": +"@babel/highlight@^7.14.5": version "7.14.5" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== @@ -258,147 +274,48 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.14.5", "@babel/parser@^7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.8.tgz#66fd41666b2d7b840bd5ace7f7416d5ac60208d4" - integrity sha512-syoCQFOoo/fzkWDeM0dLEZi5xqurb5vuyzwIMNZRNun+N/9A4cUZeQaE7dTrB8jGaKuJRBtEOajtnmw0I5hvvA== - -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz#4b467302e1548ed3b1be43beae2cc9cf45e0bb7e" - integrity sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" - "@babel/plugin-proposal-optional-chaining" "^7.14.5" - -"@babel/plugin-proposal-async-generator-functions@^7.14.7": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.7.tgz#784a48c3d8ed073f65adcf30b57bcbf6c8119ace" - integrity sha512-RK8Wj7lXLY3bqei69/cc25gwS5puEc3dknoFPFbqfy3XxYQBQFvu4ioWpafMBAB+L9NyptQK4nMOa5Xz16og8Q== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-remap-async-to-generator" "^7.14.5" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e" - integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - -"@babel/plugin-proposal-class-static-block@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz#158e9e10d449c3849ef3ecde94a03d9f1841b681" - integrity sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-class-static-block" "^7.14.5" - -"@babel/plugin-proposal-dynamic-import@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c" - integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76" - integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb" - integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738" - integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6" - integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18" - integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.14.7": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz#5920a2b3df7f7901df0205974c0641b13fd9d363" - integrity sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g== +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== dependencies: - "@babel/compat-data" "^7.14.7" - "@babel/helper-compilation-targets" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.14.5" + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" -"@babel/plugin-proposal-optional-catch-binding@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c" - integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ== - dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" +"@babel/parser@^7.22.15", "@babel/parser@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" + integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== -"@babel/plugin-proposal-optional-chaining@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603" - integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ== +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a" + integrity sha512-iRkKcCqb7iGnq9+3G6rZ+Ciz5VywC4XNRHe57lKM+jOeYAoR0lVqdeeDRfh0tQcTfw/+vBhHn926FmQhLtlFLQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-proposal-private-methods@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d" - integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.23.3.tgz#f6652bb16b94f8f9c20c50941e16e9756898dc5d" + integrity sha512-WwlxbfMNdVEpQjZmK5mhm7oSwD3dS6eU+Iwsi4Knl9wAletWem7kaRsGOG+8UEbRyqxY4SS5zvtfXwX+jMxUwQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-transform-optional-chaining" "^7.23.3" -"@babel/plugin-proposal-private-property-in-object@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz#9f65a4d0493a940b4c01f8aa9d3f1894a587f636" - integrity sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q== +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz#516462a95d10a9618f197d39ad291a9b47ae1d7b" + integrity sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw== dependencies: - "@babel/helper-annotate-as-pure" "^7.14.5" - "@babel/helper-create-class-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8" - integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" +"@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": + version "7.21.0-placeholder-for-preset-env.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" + integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -435,6 +352,27 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" +"@babel/plugin-syntax-import-assertions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.23.3.tgz#9c05a7f592982aff1a2768260ad84bcd3f0c77fc" + integrity sha512-lPgDSU+SJLK3xmFDTV2ZRQAiM7UuUjGidwBywFavObCiZc1BeAAcMtHJKUya92hPHO+at63JJPLygilZard8jw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-attributes@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.23.3.tgz#992aee922cf04512461d7dae3ff6951b90a2dc06" + integrity sha512-pawnE0P9g10xgoP7yKr6CK63K2FMsTE+FZidZO/1PwRdzmAPVs+HS1mAURUsgaoxammTJvULUdIkEK0gOcU2tA== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-syntax-import-meta@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" @@ -498,284 +436,423 @@ dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-arrow-functions@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a" - integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A== +"@babel/plugin-syntax-unicode-sets-regex@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" + integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-create-regexp-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" -"@babel/plugin-transform-async-to-generator@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67" - integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA== +"@babel/plugin-transform-arrow-functions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.23.3.tgz#94c6dcfd731af90f27a79509f9ab7fb2120fc38b" + integrity sha512-NzQcQrzaQPkaEwoTm4Mhyl8jI1huEL/WWIEvudjTCMJ9aBZNpsJbMASx7EQECtQQPS/DcnFpo0FIh3LvEO9cxQ== dependencies: - "@babel/helper-module-imports" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-remap-async-to-generator" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-block-scoped-functions@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4" - integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ== +"@babel/plugin-transform-async-generator-functions@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz#3aa0b4f2fa3788b5226ef9346cf6d16ec61f99cd" + integrity sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.20" + "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-transform-block-scoping@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.5.tgz#8cc63e61e50f42e078e6f09be775a75f23ef9939" - integrity sha512-LBYm4ZocNgoCqyxMLoOnwpsmQ18HWTQvql64t3GvMUzLQrNoV1BDG0lNftC8QKYERkZgCCT/7J5xWGObGAyHDw== +"@babel/plugin-transform-async-to-generator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa" + integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.20" -"@babel/plugin-transform-classes@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.5.tgz#0e98e82097b38550b03b483f9b51a78de0acb2cf" - integrity sha512-J4VxKAMykM06K/64z9rwiL6xnBHgB1+FVspqvlgCdwD1KUbQNfszeKVVOMh59w3sztHYIZDgnhOC4WbdEfHFDA== +"@babel/plugin-transform-block-scoped-functions@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.23.3.tgz#fe1177d715fb569663095e04f3598525d98e8c77" + integrity sha512-vI+0sIaPIO6CNuM9Kk5VmXcMVRiOpDh7w2zZt9GXzmE/9KD70CUEVhvPR/etAeNK/FAEkhxQtXOzVF3EuRL41A== dependencies: - "@babel/helper-annotate-as-pure" "^7.14.5" - "@babel/helper-function-name" "^7.14.5" - "@babel/helper-optimise-call-expression" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-replace-supers" "^7.14.5" - "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-block-scoping@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.23.4.tgz#b2d38589531c6c80fbe25e6b58e763622d2d3cf5" + integrity sha512-0QqbP6B6HOh7/8iNR4CQU2Th/bbRtBp4KS9vcaZd1fZ0wSh5Fyssg0UCIHwxh+ka+pNDREbVLQnHCMHKZfPwfw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.23.3.tgz#35c377db11ca92a785a718b6aa4e3ed1eb65dc48" + integrity sha512-uM+AN8yCIjDPccsKGlw271xjJtGii+xQIF/uMPS8H15L12jZTsLfF4o5vNO7d/oUguOyfdikHGc/yi9ge4SGIg== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-class-static-block@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.23.4.tgz#2a202c8787a8964dd11dfcedf994d36bfc844ab5" + integrity sha512-nsWu/1M+ggti1SOALj3hfx5FXzAY06fwPJsUZD4/A5e1bWi46VUIWtD+kOX6/IdhXGsXBWllLFDSnqSCdUNydQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + +"@babel/plugin-transform-classes@^7.23.8": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.23.8.tgz#d08ae096c240347badd68cdf1b6d1624a6435d92" + integrity sha512-yAYslGsY1bX6Knmg46RjiCiNSwJKv2IUC8qOdYKqMMr0491SXFhcHqOdRDeCRohOOIzwN/90C6mQ9qAKgrP7dg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" + "@babel/helper-split-export-declaration" "^7.22.6" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f" - integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg== +"@babel/plugin-transform-computed-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.23.3.tgz#652e69561fcc9d2b50ba4f7ac7f60dcf65e86474" + integrity sha512-dTj83UVTLw/+nbiHqQSFdwO9CbTtwq1DsDqm3CUEtDrZNET5rT5E6bIdTlOftDTDLMYxvxHNEYO4B9SLl8SLZw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/template" "^7.22.15" -"@babel/plugin-transform-destructuring@^7.14.7": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz#0ad58ed37e23e22084d109f185260835e5557576" - integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw== +"@babel/plugin-transform-destructuring@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.23.3.tgz#8c9ee68228b12ae3dff986e56ed1ba4f3c446311" + integrity sha512-n225npDqjDIr967cMScVKHXJs7rout1q+tt50inyBCPkyZ8KxeI6d+GIbSBTT/w/9WdlWDOej3V9HE5Lgk57gw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a" - integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw== +"@babel/plugin-transform-dotall-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.23.3.tgz#3f7af6054882ede89c378d0cf889b854a993da50" + integrity sha512-vgnFYDHAKzFaTVp+mneDsIEbnJ2Np/9ng9iviHw3P/KVcgONxpNULEW/51Z/BaFojG2GI2GwwXck5uV1+1NOYQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-duplicate-keys@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954" - integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A== +"@babel/plugin-transform-duplicate-keys@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.23.3.tgz#664706ca0a5dfe8d066537f99032fc1dc8b720ce" + integrity sha512-RrqQ+BQmU3Oyav3J+7/myfvRCq7Tbz+kKLLshUmMwNlDHExbGL7ARhajvoBJEvc+fCguPPu887N+3RRXBVKZUA== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-exponentiation-operator@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493" - integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA== +"@babel/plugin-transform-dynamic-import@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.23.4.tgz#c7629e7254011ac3630d47d7f34ddd40ca535143" + integrity sha512-V6jIbLhdJK86MaLh4Jpghi8ho5fGzt3imHOBu/x0jlBaPYqDoWz4RDXjmMOfnh+JWNaQleEAByZLV0QzBT4YQQ== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-transform-for-of@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz#dae384613de8f77c196a8869cbf602a44f7fc0eb" - integrity sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA== +"@babel/plugin-transform-exponentiation-operator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.23.3.tgz#ea0d978f6b9232ba4722f3dbecdd18f450babd18" + integrity sha512-5fhCsl1odX96u7ILKHBj4/Y8vipoqwsJMh4csSA8qFfxrZDEA4Ssku2DyNvMJSmZNOEBT750LfFPbtrnTP90BQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-function-name@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2" - integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ== +"@babel/plugin-transform-export-namespace-from@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.23.4.tgz#084c7b25e9a5c8271e987a08cf85807b80283191" + integrity sha512-GzuSBcKkx62dGzZI1WVgTWvkkz84FZO5TC5T8dl/Tht/rAla6Dg/Mz9Yhypg+ezVACf/rgDuQt3kbWEv7LdUDQ== dependencies: - "@babel/helper-function-name" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-transform-literals@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78" - integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A== +"@babel/plugin-transform-for-of@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.23.6.tgz#81c37e24171b37b370ba6aaffa7ac86bcb46f94e" + integrity sha512-aYH4ytZ0qSuBbpfhuofbg/e96oQ7U2w1Aw/UQmKT+1l39uEhUPoFS3fHevDc1G0OvewyDudfMKY1OulczHzWIw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" -"@babel/plugin-transform-member-expression-literals@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7" - integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q== +"@babel/plugin-transform-function-name@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.23.3.tgz#8f424fcd862bf84cb9a1a6b42bc2f47ed630f8dc" + integrity sha512-I1QXp1LxIvt8yLaib49dRW5Okt7Q4oaxao6tFVKS/anCdEOMtYwWVKoiOA1p34GOWIZjUK0E+zCp7+l1pfQyiw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-amd@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7" - integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g== +"@babel/plugin-transform-json-strings@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.23.4.tgz#a871d9b6bd171976efad2e43e694c961ffa3714d" + integrity sha512-81nTOqM1dMwZ/aRXQ59zVubN9wHGqk6UtqRK+/q+ciXmRy8fSolhGVvG09HHRGo4l6fr/c4ZhXUQH0uFW7PZbg== dependencies: - "@babel/helper-module-transforms" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-transform-modules-commonjs@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.5.tgz#7aaee0ea98283de94da98b28f8c35701429dad97" - integrity sha512-en8GfBtgnydoao2PS+87mKyw62k02k7kJ9ltbKe0fXTHrQmG6QZZflYuGI1VVG7sVpx4E1n7KBpNlPb8m78J+A== +"@babel/plugin-transform-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.23.3.tgz#8214665f00506ead73de157eba233e7381f3beb4" + integrity sha512-wZ0PIXRxnwZvl9AYpqNUxpZ5BiTGrYt7kueGQ+N5FiQ7RCOD4cm8iShd6S6ggfVIWaJf2EMk8eRzAh52RfP4rQ== dependencies: - "@babel/helper-module-transforms" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-simple-access" "^7.14.5" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-modules-systemjs@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz#c75342ef8b30dcde4295d3401aae24e65638ed29" - integrity sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA== +"@babel/plugin-transform-logical-assignment-operators@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.23.4.tgz#e599f82c51d55fac725f62ce55d3a0886279ecb5" + integrity sha512-Mc/ALf1rmZTP4JKKEhUwiORU+vcfarFVLfcFiolKUo6sewoxSEgl36ak5t+4WamRsNr6nzjZXQjM35WsU+9vbg== dependencies: - "@babel/helper-hoist-variables" "^7.14.5" - "@babel/helper-module-transforms" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-validator-identifier" "^7.14.5" - babel-plugin-dynamic-import-node "^2.3.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-transform-modules-umd@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0" - integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA== +"@babel/plugin-transform-member-expression-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.23.3.tgz#e37b3f0502289f477ac0e776b05a833d853cabcc" + integrity sha512-sC3LdDBDi5x96LA+Ytekz2ZPk8i/Ck+DEuDbRAll5rknJ5XRTSaPKEYwomLcs1AA8wg9b3KjIQRsnApj+q51Ag== dependencies: - "@babel/helper-module-transforms" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-named-capturing-groups-regex@^7.14.7": - version "7.14.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.7.tgz#60c06892acf9df231e256c24464bfecb0908fd4e" - integrity sha512-DTNOTaS7TkW97xsDMrp7nycUVh6sn/eq22VaxWfEdzuEbRsiaOU0pqU7DlyUGHVsbQbSghvjKRpEl+nUCKGQSg== +"@babel/plugin-transform-modules-amd@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.23.3.tgz#e19b55436a1416829df0a1afc495deedfae17f7d" + integrity sha512-vJYQGxeKM4t8hYCKVBlZX/gtIY2I7mRGFNcm85sgXGMTBcoV3QdVtdpbcWEbzbfUIUZKwvgFT82mRvaQIebZzw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-new-target@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8" - integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ== +"@babel/plugin-transform-modules-commonjs@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" + integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" -"@babel/plugin-transform-object-super@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45" - integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg== +"@babel/plugin-transform-modules-systemjs@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz#fa7e62248931cb15b9404f8052581c302dd9de81" + integrity sha512-ZxyKGTkF9xT9YJuKQRo19ewf3pXpopuYQd8cDXqNzc3mUNbOME0RKMoZxviQk74hwzfQsEe66dE92MaZbdHKNQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-identifier" "^7.22.20" -"@babel/plugin-transform-parameters@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz#49662e86a1f3ddccac6363a7dfb1ff0a158afeb3" - integrity sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA== +"@babel/plugin-transform-modules-umd@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.23.3.tgz#5d4395fccd071dfefe6585a4411aa7d6b7d769e9" + integrity sha512-zHsy9iXX2nIsCBFPud3jKn1IRPWg3Ing1qOZgeKV39m1ZgIdpJqvlWVeiHBZC6ITRG0MfskhYe9cLgntfSFPIg== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-property-literals@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34" - integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw== +"@babel/plugin-transform-named-capturing-groups-regex@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.22.5.tgz#67fe18ee8ce02d57c855185e27e3dc959b2e991f" + integrity sha512-YgLLKmS3aUBhHaxp5hi1WJTgOUb/NCuDHzGT9z9WTt3YG+CPRhJs6nprbStx6DnWM4dh6gt7SU3sZodbZ08adQ== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-create-regexp-features-plugin" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-regenerator@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz#9676fd5707ed28f522727c5b3c0aa8544440b04f" - integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg== +"@babel/plugin-transform-new-target@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.23.3.tgz#5491bb78ed6ac87e990957cea367eab781c4d980" + integrity sha512-YJ3xKqtJMAT5/TIZnpAR3I+K+WaDowYbN3xyxI8zxx/Gsypwf9B9h0VB+1Nh6ACAAPRS5NSRje0uVv5i79HYGQ== dependencies: - regenerator-transform "^0.14.2" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-reserved-words@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304" - integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg== +"@babel/plugin-transform-nullish-coalescing-operator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.23.4.tgz#45556aad123fc6e52189ea749e33ce090637346e" + integrity sha512-jHE9EVVqHKAQx+VePv5LLGHjmHSJR76vawFPTdlxR/LVJPfOEGxREQwQfjuZEOPTwG92X3LINSh3M40Rv4zpVA== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-transform-shorthand-properties@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58" - integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g== +"@babel/plugin-transform-numeric-separator@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.23.4.tgz#03d08e3691e405804ecdd19dd278a40cca531f29" + integrity sha512-mps6auzgwjRrwKEZA05cOwuDc9FAzoyFS4ZsG/8F43bTLf/TgkJg7QXOrPO1JO599iA3qgK9MXdMGOEC8O1h6Q== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-transform-spread@^7.14.6": - version "7.14.6" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144" - integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag== +"@babel/plugin-transform-object-rest-spread@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.23.4.tgz#2b9c2d26bf62710460bdc0d1730d4f1048361b83" + integrity sha512-9x9K1YyeQVw0iOXJlIzwm8ltobIIv7j2iLyP2jIhEbqPRQ7ScNgwQufU2I0Gq11VjyG4gI4yMXt2VFags+1N3g== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/compat-data" "^7.23.3" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.23.3" -"@babel/plugin-transform-sticky-regex@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9" - integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A== +"@babel/plugin-transform-object-super@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.23.3.tgz#81fdb636dcb306dd2e4e8fd80db5b2362ed2ebcd" + integrity sha512-BwQ8q0x2JG+3lxCVFohg+KbQM7plfpBwThdW9A6TMtWwLsbDA01Ek2Zb/AgDN39BiZsExm4qrXxjk+P1/fzGrA== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-replace-supers" "^7.22.20" -"@babel/plugin-transform-template-literals@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93" - integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg== +"@babel/plugin-transform-optional-catch-binding@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.23.4.tgz#318066de6dacce7d92fa244ae475aa8d91778017" + integrity sha512-XIq8t0rJPHf6Wvmbn9nFxU6ao4c7WhghTR5WyV8SrJfUFzyxhCm4nhC+iAp3HFhbAKLfYpgzhJ6t4XCtVwqO5A== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-transform-typeof-symbol@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4" - integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw== +"@babel/plugin-transform-optional-chaining@^7.23.3", "@babel/plugin-transform-optional-chaining@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.23.4.tgz#6acf61203bdfc4de9d4e52e64490aeb3e52bd017" + integrity sha512-ZU8y5zWOfjM5vZ+asjgAPwDaBjJzgufjES89Rs4Lpq63O300R/kOz30WCLo6BxxX6QVEilwSlpClnG5cZaikTA== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-transform-unicode-escapes@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b" - integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA== +"@babel/plugin-transform-parameters@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.23.3.tgz#83ef5d1baf4b1072fa6e54b2b0999a7b2527e2af" + integrity sha512-09lMt6UsUb3/34BbECKVbVwrT9bO6lILWln237z7sLaWnMsTi7Yc9fhX5DLpkJzAGfaReXI22wP41SZmnAA3Vw== dependencies: - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-unicode-regex@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e" - integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw== +"@babel/plugin-transform-private-methods@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.23.3.tgz#b2d7a3c97e278bfe59137a978d53b2c2e038c0e4" + integrity sha512-UzqRcRtWsDMTLrRWFvUBDwmw06tCQH9Rl1uAjfh6ijMSmGYQ+fpdB+cnqRC8EMh5tuuxSv0/TejGL+7vyj+50g== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" -"@babel/preset-env@^7.6.2": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.8.tgz#254942f5ca80ccabcfbb2a9f524c74bca574005b" - integrity sha512-a9aOppDU93oArQ51H+B8M1vH+tayZbuBqzjOhntGetZVa+4tTu5jp+XTwqHGG2lxslqomPYVSjIxQkFwXzgnxg== +"@babel/plugin-transform-private-property-in-object@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.23.4.tgz#3ec711d05d6608fd173d9b8de39872d8dbf68bf5" + integrity sha512-9G3K1YqTq3F4Vt88Djx1UZ79PDyj+yKRnUy7cZGSMe+a7jkwD259uKKuUzQlPkGam7R+8RJwh5z4xO27fA1o2A== dependencies: - "@babel/compat-data" "^7.14.7" - "@babel/helper-compilation-targets" "^7.14.5" - "@babel/helper-plugin-utils" "^7.14.5" - "@babel/helper-validator-option" "^7.14.5" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.14.5" - "@babel/plugin-proposal-async-generator-functions" "^7.14.7" - "@babel/plugin-proposal-class-properties" "^7.14.5" - "@babel/plugin-proposal-class-static-block" "^7.14.5" - "@babel/plugin-proposal-dynamic-import" "^7.14.5" - "@babel/plugin-proposal-export-namespace-from" "^7.14.5" - "@babel/plugin-proposal-json-strings" "^7.14.5" - "@babel/plugin-proposal-logical-assignment-operators" "^7.14.5" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5" - "@babel/plugin-proposal-numeric-separator" "^7.14.5" - "@babel/plugin-proposal-object-rest-spread" "^7.14.7" - "@babel/plugin-proposal-optional-catch-binding" "^7.14.5" - "@babel/plugin-proposal-optional-chaining" "^7.14.5" - "@babel/plugin-proposal-private-methods" "^7.14.5" - "@babel/plugin-proposal-private-property-in-object" "^7.14.5" - "@babel/plugin-proposal-unicode-property-regex" "^7.14.5" + "@babel/helper-annotate-as-pure" "^7.22.5" + "@babel/helper-create-class-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-transform-property-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.23.3.tgz#54518f14ac4755d22b92162e4a852d308a560875" + integrity sha512-jR3Jn3y7cZp4oEWPFAlRsSWjxKe4PZILGBSd4nis1TsC5qeSpb+nrtihJuDhNI7QHiVbUaiXa0X2RZY3/TI6Nw== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-regenerator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.23.3.tgz#141afd4a2057298602069fce7f2dc5173e6c561c" + integrity sha512-KP+75h0KghBMcVpuKisx3XTu9Ncut8Q8TuvGO4IhY+9D5DFEckQefOuIsB/gQ2tG71lCke4NMrtIPS8pOj18BQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + regenerator-transform "^0.15.2" + +"@babel/plugin-transform-reserved-words@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.23.3.tgz#4130dcee12bd3dd5705c587947eb715da12efac8" + integrity sha512-QnNTazY54YqgGxwIexMZva9gqbPa15t/x9VS+0fsEFWplwVpXYZivtgl43Z1vMpc1bdPP2PP8siFeVcnFvA3Cg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-shorthand-properties@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.23.3.tgz#97d82a39b0e0c24f8a981568a8ed851745f59210" + integrity sha512-ED2fgqZLmexWiN+YNFX26fx4gh5qHDhn1O2gvEhreLW2iI63Sqm4llRLCXALKrCnbN4Jy0VcMQZl/SAzqug/jg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-spread@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.23.3.tgz#41d17aacb12bde55168403c6f2d6bdca563d362c" + integrity sha512-VvfVYlrlBVu+77xVTOAoxQ6mZbnIq5FM0aGBSFEcIh03qHf+zNqA4DC/3XMUozTg7bZV3e3mZQ0i13VB6v5yUg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.22.5" + +"@babel/plugin-transform-sticky-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.23.3.tgz#dec45588ab4a723cb579c609b294a3d1bd22ff04" + integrity sha512-HZOyN9g+rtvnOU3Yh7kSxXrKbzgrm5X4GncPY1QOquu7epga5MxKHVpYu2hvQnry/H+JjckSYRb93iNfsioAGg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-template-literals@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.23.3.tgz#5f0f028eb14e50b5d0f76be57f90045757539d07" + integrity sha512-Flok06AYNp7GV2oJPZZcP9vZdszev6vPBkHLwxwSpaIqx75wn6mUd3UFWsSsA0l8nXAKkyCmL/sR02m8RYGeHg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-typeof-symbol@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.23.3.tgz#9dfab97acc87495c0c449014eb9c547d8966bca4" + integrity sha512-4t15ViVnaFdrPC74be1gXBSMzXk3B4Us9lP7uLRQHTFpV5Dvt33pn+2MyyNxmN3VTTm3oTrZVMUmuw3oBnQ2oQ== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-escapes@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz#1f66d16cab01fab98d784867d24f70c1ca65b925" + integrity sha512-OMCUx/bU6ChE3r4+ZdylEqAjaQgHAgipgW8nsCfu5pGqDcFytVd91AwRvUJSBZDz0exPGgnjoqhgRYLRjFZc9Q== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-property-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.23.3.tgz#19e234129e5ffa7205010feec0d94c251083d7ad" + integrity sha512-KcLIm+pDZkWZQAFJ9pdfmh89EwVfmNovFBcXko8szpBeF8z68kWIPeKlmSOkT9BXJxs2C0uk+5LxoxIv62MROA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.23.3.tgz#26897708d8f42654ca4ce1b73e96140fbad879dc" + integrity sha512-wMHpNA4x2cIA32b/ci3AfwNgheiva2W0WUKWTK7vBHBhDKfPsc5cFGNWm69WBqpwd86u1qwZ9PWevKqm1A3yAw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/plugin-transform-unicode-sets-regex@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.23.3.tgz#4fb6f0a719c2c5859d11f6b55a050cc987f3799e" + integrity sha512-W7lliA/v9bNR83Qc3q1ip9CQMZ09CcHDbHfbLRDNuAhn1Mvkr1ZNF7hPmztMQvtTGVLJ9m8IZqWsTkXOml8dbw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + +"@babel/preset-env@^7.23.8": + version "7.23.8" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.8.tgz#7d6f8171ea7c221ecd28059e65ad37c20e441e3e" + integrity sha512-lFlpmkApLkEP6woIKprO6DO60RImpatTQKtz4sUcDjVcK8M8mQ4sZsuxaTMNOZf0sqAq/ReYW1ZBHnOQwKpLWA== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.23.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.7" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.23.3" + "@babel/plugin-syntax-import-attributes" "^7.23.3" + "@babel/plugin-syntax-import-meta" "^7.10.4" "@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.3" @@ -785,57 +862,76 @@ "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-private-property-in-object" "^7.14.5" "@babel/plugin-syntax-top-level-await" "^7.14.5" - "@babel/plugin-transform-arrow-functions" "^7.14.5" - "@babel/plugin-transform-async-to-generator" "^7.14.5" - "@babel/plugin-transform-block-scoped-functions" "^7.14.5" - "@babel/plugin-transform-block-scoping" "^7.14.5" - "@babel/plugin-transform-classes" "^7.14.5" - "@babel/plugin-transform-computed-properties" "^7.14.5" - "@babel/plugin-transform-destructuring" "^7.14.7" - "@babel/plugin-transform-dotall-regex" "^7.14.5" - "@babel/plugin-transform-duplicate-keys" "^7.14.5" - "@babel/plugin-transform-exponentiation-operator" "^7.14.5" - "@babel/plugin-transform-for-of" "^7.14.5" - "@babel/plugin-transform-function-name" "^7.14.5" - "@babel/plugin-transform-literals" "^7.14.5" - "@babel/plugin-transform-member-expression-literals" "^7.14.5" - "@babel/plugin-transform-modules-amd" "^7.14.5" - "@babel/plugin-transform-modules-commonjs" "^7.14.5" - "@babel/plugin-transform-modules-systemjs" "^7.14.5" - "@babel/plugin-transform-modules-umd" "^7.14.5" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.14.7" - "@babel/plugin-transform-new-target" "^7.14.5" - "@babel/plugin-transform-object-super" "^7.14.5" - "@babel/plugin-transform-parameters" "^7.14.5" - "@babel/plugin-transform-property-literals" "^7.14.5" - "@babel/plugin-transform-regenerator" "^7.14.5" - "@babel/plugin-transform-reserved-words" "^7.14.5" - "@babel/plugin-transform-shorthand-properties" "^7.14.5" - "@babel/plugin-transform-spread" "^7.14.6" - "@babel/plugin-transform-sticky-regex" "^7.14.5" - "@babel/plugin-transform-template-literals" "^7.14.5" - "@babel/plugin-transform-typeof-symbol" "^7.14.5" - "@babel/plugin-transform-unicode-escapes" "^7.14.5" - "@babel/plugin-transform-unicode-regex" "^7.14.5" - "@babel/preset-modules" "^0.1.4" - "@babel/types" "^7.14.8" - babel-plugin-polyfill-corejs2 "^0.2.2" - babel-plugin-polyfill-corejs3 "^0.2.2" - babel-plugin-polyfill-regenerator "^0.2.2" - core-js-compat "^3.15.0" - semver "^6.3.0" - -"@babel/preset-modules@^0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" - integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.23.3" + "@babel/plugin-transform-async-generator-functions" "^7.23.7" + "@babel/plugin-transform-async-to-generator" "^7.23.3" + "@babel/plugin-transform-block-scoped-functions" "^7.23.3" + "@babel/plugin-transform-block-scoping" "^7.23.4" + "@babel/plugin-transform-class-properties" "^7.23.3" + "@babel/plugin-transform-class-static-block" "^7.23.4" + "@babel/plugin-transform-classes" "^7.23.8" + "@babel/plugin-transform-computed-properties" "^7.23.3" + "@babel/plugin-transform-destructuring" "^7.23.3" + "@babel/plugin-transform-dotall-regex" "^7.23.3" + "@babel/plugin-transform-duplicate-keys" "^7.23.3" + "@babel/plugin-transform-dynamic-import" "^7.23.4" + "@babel/plugin-transform-exponentiation-operator" "^7.23.3" + "@babel/plugin-transform-export-namespace-from" "^7.23.4" + "@babel/plugin-transform-for-of" "^7.23.6" + "@babel/plugin-transform-function-name" "^7.23.3" + "@babel/plugin-transform-json-strings" "^7.23.4" + "@babel/plugin-transform-literals" "^7.23.3" + "@babel/plugin-transform-logical-assignment-operators" "^7.23.4" + "@babel/plugin-transform-member-expression-literals" "^7.23.3" + "@babel/plugin-transform-modules-amd" "^7.23.3" + "@babel/plugin-transform-modules-commonjs" "^7.23.3" + "@babel/plugin-transform-modules-systemjs" "^7.23.3" + "@babel/plugin-transform-modules-umd" "^7.23.3" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.23.3" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4" + "@babel/plugin-transform-numeric-separator" "^7.23.4" + "@babel/plugin-transform-object-rest-spread" "^7.23.4" + "@babel/plugin-transform-object-super" "^7.23.3" + "@babel/plugin-transform-optional-catch-binding" "^7.23.4" + "@babel/plugin-transform-optional-chaining" "^7.23.4" + "@babel/plugin-transform-parameters" "^7.23.3" + "@babel/plugin-transform-private-methods" "^7.23.3" + "@babel/plugin-transform-private-property-in-object" "^7.23.4" + "@babel/plugin-transform-property-literals" "^7.23.3" + "@babel/plugin-transform-regenerator" "^7.23.3" + "@babel/plugin-transform-reserved-words" "^7.23.3" + "@babel/plugin-transform-shorthand-properties" "^7.23.3" + "@babel/plugin-transform-spread" "^7.23.3" + "@babel/plugin-transform-sticky-regex" "^7.23.3" + "@babel/plugin-transform-template-literals" "^7.23.3" + "@babel/plugin-transform-typeof-symbol" "^7.23.3" + "@babel/plugin-transform-unicode-escapes" "^7.23.3" + "@babel/plugin-transform-unicode-property-regex" "^7.23.3" + "@babel/plugin-transform-unicode-regex" "^7.23.3" + "@babel/plugin-transform-unicode-sets-regex" "^7.23.3" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.7" + babel-plugin-polyfill-corejs3 "^0.8.7" + babel-plugin-polyfill-regenerator "^0.5.4" + core-js-compat "^3.31.0" + semver "^6.3.1" + +"@babel/preset-modules@0.1.6-no-external-plugins": + version "0.1.6-no-external-plugins" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" + integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" "@babel/types" "^7.4.4" esutils "^2.0.2" +"@babel/regjsgen@^0.8.0": + version "0.8.0" + resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" + integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== + "@babel/runtime@^7.8.4": version "7.14.8" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.8.tgz#7119a56f421018852694290b9f9148097391b446" @@ -843,31 +939,41 @@ dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.14.5": - version "7.14.5" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" - integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/parser" "^7.14.5" - "@babel/types" "^7.14.5" - -"@babel/traverse@^7.13.0", "@babel/traverse@^7.14.5", "@babel/traverse@^7.14.8": - version "7.14.8" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.8.tgz#c0253f02677c5de1a8ff9df6b0aacbec7da1a8ce" - integrity sha512-kexHhzCljJcFNn1KYAQ6A5wxMRzq9ebYpEDV4+WdNyr3i7O44tanbDOR/xjiG2F3sllan+LgwK+7OMk0EmydHg== - dependencies: - "@babel/code-frame" "^7.14.5" - "@babel/generator" "^7.14.8" - "@babel/helper-function-name" "^7.14.5" - "@babel/helper-hoist-variables" "^7.14.5" - "@babel/helper-split-export-declaration" "^7.14.5" - "@babel/parser" "^7.14.8" - "@babel/types" "^7.14.8" - debug "^4.1.0" +"@babel/template@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" + integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== + dependencies: + "@babel/code-frame" "^7.22.13" + "@babel/parser" "^7.22.15" + "@babel/types" "^7.22.15" + +"@babel/traverse@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.7.tgz#9a7bf285c928cb99b5ead19c3b1ce5b310c9c305" + integrity sha512-tY3mM8rH9jM0YHFGyfC0/xf+SB5eKUu7HPj7/k3fpi9dAlsMc5YbQvDi0Sh2QTPXqMhyaAtzAr807TIyfQrmyg== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.6" + "@babel/types" "^7.23.6" + debug "^4.3.1" globals "^11.1.0" -"@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.4.4": +"@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" + integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + +"@babel/types@^7.4.4": version "7.14.8" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.8.tgz#38109de8fcadc06415fbd9b74df0065d4d41c728" integrity sha512-iob4soQa7dZw8nodR/KlOQkPh9S4I8RwCxwRIFuiMRYjOzH/KJzdUfDgz6cGi5dDaclXF4P2PAhCdrBJNIg68Q== @@ -875,109 +981,252 @@ "@babel/helper-validator-identifier" "^7.14.8" to-fast-properties "^2.0.0" -"@eslint/eslintrc@^0.4.3": - version "0.4.3" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" - integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== +"@eslint-community/eslint-utils@^4.2.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== + dependencies: + eslint-visitor-keys "^3.3.0" + +"@eslint-community/regexpp@^4.6.1": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" - debug "^4.1.1" - espree "^7.3.0" - globals "^13.9.0" - ignore "^4.0.6" + debug "^4.3.2" + espree "^9.6.0" + globals "^13.19.0" + ignore "^5.2.0" import-fresh "^3.2.1" - js-yaml "^3.13.1" - minimatch "^3.0.4" + js-yaml "^4.1.0" + minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@humanwhocodes/config-array@^0.5.0": - version "0.5.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" - integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== +"@eslint/js@8.56.0": + version "8.56.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" + integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== + +"@humanwhocodes/config-array@^0.11.13": + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== dependencies: - "@humanwhocodes/object-schema" "^1.2.0" - debug "^4.1.1" - minimatch "^3.0.4" + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" + minimatch "^3.0.5" -"@humanwhocodes/object-schema@^1.2.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" - integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@rollup/plugin-babel@^5.0.0": - version "5.3.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.0.tgz#9cb1c5146ddd6a4968ad96f209c50c62f92f9879" - integrity sha512-9uIC8HZOnVLrLHxayq/PTzw+uS25E14KPUBh5ktF+18Mjo5yK0ToMMx6epY0uEgkjwJw0aBW4x2horYXh8juWw== +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" + integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== + +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@rollup/pluginutils" "^3.1.0" + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" -"@rollup/plugin-commonjs@^11.1.0": - version "11.1.0" - resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-11.1.0.tgz#60636c7a722f54b41e419e1709df05c7234557ef" - integrity sha512-Ycr12N3ZPN96Fw2STurD21jMqzKwL9QuFhms3SD7KKRK7oaXUsBU9Zt0jL/rOPHiPYisI21/rXGO3jr9BnLHUA== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": + version "0.3.20" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" + integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== dependencies: - "@rollup/pluginutils" "^3.0.8" - commondir "^1.0.1" - estree-walker "^1.0.1" - glob "^7.1.2" - is-reference "^1.1.2" - magic-string "^0.25.2" - resolve "^1.11.0" - -"@rollup/plugin-node-resolve@^7.1.3": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz#80de384edfbd7bfc9101164910f86078151a3eca" - integrity sha512-RxtSL3XmdTAE2byxekYLnx+98kEUOrPHF/KRVjLH+DEIHy6kjIw7YINQzn+NXiH/NTrQLAwYs0GWB+csWygA9Q== - dependencies: - "@rollup/pluginutils" "^3.0.8" - "@types/resolve" "0.0.8" - builtin-modules "^3.1.0" - is-module "^1.0.0" - resolve "^1.14.2" + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" -"@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" - integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.8": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@rollup/plugin-babel@^6.0.4": + version "6.0.4" + resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-6.0.4.tgz#bd698e351fa9aa9619fcae780aea2a603d98e4c4" + integrity sha512-YF7Y52kFdFT/xVSuVdjkV5ZdX/3YtmX0QulG+x0taQOtJdHYzVU61aSSkAgVJ7NOv6qPkIYiJSgSWWN/DM5sGw== + dependencies: + "@babel/helper-module-imports" "^7.18.6" + "@rollup/pluginutils" "^5.0.1" + +"@rollup/plugin-commonjs@^25.0.7": + version "25.0.7" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-25.0.7.tgz#145cec7589ad952171aeb6a585bbeabd0fd3b4cf" + integrity sha512-nEvcR+LRjEjsaSsc4x3XZfCCvZIaSMenZu/OiwOKGN2UhQpAYI7ru7czFvyWbErlpoGjnSX3D5Ch5FcMA3kRWQ== dependencies: - "@types/estree" "0.0.39" - estree-walker "^1.0.1" - picomatch "^2.2.2" + "@rollup/pluginutils" "^5.0.1" + commondir "^1.0.1" + estree-walker "^2.0.2" + glob "^8.0.3" + is-reference "1.2.1" + magic-string "^0.30.3" + +"@rollup/plugin-node-resolve@^15.2.3": + version "15.2.3" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz#e5e0b059bd85ca57489492f295ce88c2d4b0daf9" + integrity sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ== + dependencies: + "@rollup/pluginutils" "^5.0.1" + "@types/resolve" "1.20.2" + deepmerge "^4.2.2" + is-builtin-module "^3.2.1" + is-module "^1.0.0" + resolve "^1.22.1" + +"@rollup/pluginutils@^5.0.1": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.0.tgz#7e53eddc8c7f483a4ad0b94afb1f7f5fd3c771e0" + integrity sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^2.0.2" + picomatch "^2.3.1" + +"@rollup/rollup-android-arm-eabi@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.9.4.tgz#b1094962742c1a0349587040bc06185e2a667c9b" + integrity sha512-ub/SN3yWqIv5CWiAZPHVS1DloyZsJbtXmX4HxUTIpS0BHm9pW5iYBo2mIZi+hE3AeiTzHz33blwSnhdUo+9NpA== + +"@rollup/rollup-android-arm64@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.9.4.tgz#96eb86fb549e05b187f2ad06f51d191a23cb385a" + integrity sha512-ehcBrOR5XTl0W0t2WxfTyHCR/3Cq2jfb+I4W+Ch8Y9b5G+vbAecVv0Fx/J1QKktOrgUYsIKxWAKgIpvw56IFNA== + +"@rollup/rollup-darwin-arm64@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.9.4.tgz#2456630c007cc5905cb368acb9ff9fc04b2d37be" + integrity sha512-1fzh1lWExwSTWy8vJPnNbNM02WZDS8AW3McEOb7wW+nPChLKf3WG2aG7fhaUmfX5FKw9zhsF5+MBwArGyNM7NA== + +"@rollup/rollup-darwin-x64@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.9.4.tgz#97742214fc7dfd47a0f74efba6f5ae264e29c70c" + integrity sha512-Gc6cukkF38RcYQ6uPdiXi70JB0f29CwcQ7+r4QpfNpQFVHXRd0DfWFidoGxjSx1DwOETM97JPz1RXL5ISSB0pA== + +"@rollup/rollup-linux-arm-gnueabihf@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.9.4.tgz#cd933e61d6f689c9cdefde424beafbd92cfe58e2" + integrity sha512-g21RTeFzoTl8GxosHbnQZ0/JkuFIB13C3T7Y0HtKzOXmoHhewLbVTFBQZu+z5m9STH6FZ7L/oPgU4Nm5ErN2fw== + +"@rollup/rollup-linux-arm64-gnu@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.9.4.tgz#33b09bf462f1837afc1e02a1b352af6b510c78a6" + integrity sha512-TVYVWD/SYwWzGGnbfTkrNpdE4HON46orgMNHCivlXmlsSGQOx/OHHYiQcMIOx38/GWgwr/po2LBn7wypkWw/Mg== + +"@rollup/rollup-linux-arm64-musl@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.9.4.tgz#50257fb248832c2308064e3764a16273b6ee4615" + integrity sha512-XcKvuendwizYYhFxpvQ3xVpzje2HHImzg33wL9zvxtj77HvPStbSGI9czrdbfrf8DGMcNNReH9pVZv8qejAQ5A== + +"@rollup/rollup-linux-riscv64-gnu@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.9.4.tgz#09589e4e1a073cf56f6249b77eb6c9a8e9b613a8" + integrity sha512-LFHS/8Q+I9YA0yVETyjonMJ3UA+DczeBd/MqNEzsGSTdNvSJa1OJZcSH8GiXLvcizgp9AlHs2walqRcqzjOi3A== + +"@rollup/rollup-linux-x64-gnu@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.9.4.tgz#bd312bb5b5f02e54d15488605d15cfd3f90dda7c" + integrity sha512-dIYgo+j1+yfy81i0YVU5KnQrIJZE8ERomx17ReU4GREjGtDW4X+nvkBak2xAUpyqLs4eleDSj3RrV72fQos7zw== + +"@rollup/rollup-linux-x64-musl@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.9.4.tgz#25b3bede85d86438ce28cc642842d10d867d40e9" + integrity sha512-RoaYxjdHQ5TPjaPrLsfKqR3pakMr3JGqZ+jZM0zP2IkDtsGa4CqYaWSfQmZVgFUCgLrTnzX+cnHS3nfl+kB6ZQ== + +"@rollup/rollup-win32-arm64-msvc@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.9.4.tgz#95957067eb107f571da1d81939f017d37b4958d3" + integrity sha512-T8Q3XHV+Jjf5e49B4EAaLKV74BbX7/qYBRQ8Wop/+TyyU0k+vSjiLVSHNWdVd1goMjZcbhDmYZUYW5RFqkBNHQ== + +"@rollup/rollup-win32-ia32-msvc@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.9.4.tgz#71b6facad976db527863f698692c6964c0b6e10e" + integrity sha512-z+JQ7JirDUHAsMecVydnBPWLwJjbppU+7LZjffGf+Jvrxq+dVjIE7By163Sc9DKc3ADSU50qPVw0KonBS+a+HQ== + +"@rollup/rollup-win32-x64-msvc@4.9.4": + version "4.9.4" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.9.4.tgz#16295ccae354707c9bc6842906bdeaad4f3ba7a5" + integrity sha512-LfdGXCV9rdEify1oxlN9eamvDSjv9md9ZVMAbNHA87xqIfFCxImxan9qZ8+Un54iK2nnqPlbnSi4R54ONtbWBw== "@types/estree@*": version "0.0.50" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== -"@types/estree@0.0.39": - version "0.0.39" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" - integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== +"@types/estree@1.0.5", "@types/estree@^1.0.0": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== -"@types/node@*": - version "16.4.3" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.4.3.tgz#c01c1a215721f6dec71b47d88b4687463601ba48" - integrity sha512-GKM4FLMkWDc0sfx7tXqPWkM6NBow1kge0fgQh0bOnlqo4iT1kvTvMEKE0c1RtUGnbLlGRXiAA8SumE//90uKAg== +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/resolve@0.0.8": - version "0.0.8" - resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" - integrity sha512-auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ== - dependencies: - "@types/node" "*" +"@types/resolve@1.20.2": + version "1.20.2" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" + integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== + +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== -acorn-jsx@^5.3.1: +acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== -acorn@^7.1.0, acorn@^7.4.0: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +acorn@^8.9.0: + version "8.11.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" + integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== -ajv@^6.10.0, ajv@^6.12.4: +ajv@^6.12.4: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -987,25 +1236,10 @@ ajv@^6.10.0, ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.1: - version "8.6.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz#2fb45e0e5fcbc0813326c1c3da535d1881bb0571" - integrity sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -ansi-colors@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" - integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-styles@^3.2.1: version "3.2.1" @@ -1014,85 +1248,119 @@ ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" -ansi-styles@^4.0.0, ansi-styles@^4.1.0: +ansi-styles@^4.1.0: version "4.3.0" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== dependencies: - sprintf-js "~1.0.2" + call-bind "^1.0.2" + is-array-buffer "^3.0.1" -array-includes@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" - integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== +array-includes@^3.1.7: + version "3.1.7" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" + integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - get-intrinsic "^1.1.1" - is-string "^1.0.5" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + is-string "^1.0.7" -array.prototype.flat@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" - integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== +array.prototype.findlastindex@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" + integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.1" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + get-intrinsic "^1.2.1" -astral-regex@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" - integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== +array.prototype.flat@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== +array.prototype.flatmap@^1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== dependencies: - object.assign "^4.1.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" -babel-plugin-polyfill-corejs2@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" - integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== +arraybuffer.prototype.slice@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" + integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== dependencies: - "@babel/compat-data" "^7.13.11" - "@babel/helper-define-polyfill-provider" "^0.2.2" - semver "^6.1.1" + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + is-array-buffer "^3.0.2" + is-shared-array-buffer "^1.0.2" -babel-plugin-polyfill-corejs3@^0.2.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.3.tgz#72add68cf08a8bf139ba6e6dfc0b1d504098e57b" - integrity sha512-rCOFzEIJpJEAU14XCcV/erIf/wZQMmMT5l5vXOpL5uoznyOGfDIjPj6FVytMvtzaKSTSVKouOCTPJ5OMUZH30g== +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +babel-plugin-polyfill-corejs2@^0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.7.tgz#679d1b94bf3360f7682e11f2cb2708828a24fe8c" + integrity sha512-LidDk/tEGDfuHW2DWh/Hgo4rmnw3cduK6ZkOI1NPFceSK3n/yAGeOsNT7FLnSGHkXj3RHGSEVkN3FsCTY6w2CQ== dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.2" - core-js-compat "^3.14.0" + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.4.4" + semver "^6.3.1" -babel-plugin-polyfill-regenerator@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" - integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== +babel-plugin-polyfill-corejs3@^0.8.7: + version "0.8.7" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz#941855aa7fdaac06ed24c730a93450d2b2b76d04" + integrity sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA== dependencies: - "@babel/helper-define-polyfill-provider" "^0.2.2" + "@babel/helper-define-polyfill-provider" "^0.4.4" + core-js-compat "^3.33.1" + +babel-plugin-polyfill-regenerator@^0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.4.tgz#c6fc8eab610d3a11eb475391e52584bacfc020f4" + integrity sha512-S/x2iOCvDaCASLYsOOgWOq4bCfKYVqvO/uxjkaYyZ3rVsVE3CeAI/c84NpyuBBymEgNvHgjEot3a9/Z/kXvqsg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.4.4" balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -bourbon@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/bourbon/-/bourbon-7.0.0.tgz#42c0b691e99cb1f7616aad2a11b17ab88bbc4918" - integrity sha512-49kyBY+4gwnEvnez8H0TzFjfNZpUVdCmmS873S9nQ6YUuh2+qesbOh8lA+9gAuWlqtYlF+/3Etxm/13RhceOrg== +bourbon@^7.3.0: + version "7.3.0" + resolved "https://registry.yarnpkg.com/bourbon/-/bourbon-7.3.0.tgz#0b7b7dc74064c7ea4c534830dd2b54bef992e919" + integrity sha512-u9ZUqmaX7K7nkarKODlFT4/XYfWafLRoadlv2Lye8hytrIA4Urg/50rav1eFdbdbO6o9GnK9a6qf7zwq808atA== brace-expansion@^1.1.7: version "1.1.11" @@ -1102,21 +1370,27 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" -browserslist@^4.16.6: - version "4.16.6" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" - integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: - caniuse-lite "^1.0.30001219" - colorette "^1.2.2" - electron-to-chromium "^1.3.723" - escalade "^3.1.1" - node-releases "^1.1.71" + balanced-match "^1.0.0" -builtin-modules@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.2.0.tgz#45d5db99e7ee5e6bc4f362e008bf917ab5049887" - integrity sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA== +browserslist@^4.22.2: + version "4.22.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.2.tgz#704c4943072bd81ea18997f3bd2180e89c77874b" + integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== + dependencies: + caniuse-lite "^1.0.30001565" + electron-to-chromium "^1.4.601" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + +builtin-modules@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" @@ -1126,17 +1400,26 @@ call-bind@^1.0.0, call-bind@^1.0.2: function-bind "^1.1.1" get-intrinsic "^1.0.2" +call-bind@^1.0.4, call-bind@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" + integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== + dependencies: + function-bind "^1.1.2" + get-intrinsic "^1.2.1" + set-function-length "^1.1.1" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -caniuse-lite@^1.0.30001219: - version "1.0.30001247" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001247.tgz#105be7a8fb30cdd303275e769a9dfb87d4b3577a" - integrity sha512-4rS7co+7+AoOSPRPOPUt5/GdaqZc0EsUpWk66ofE3HJTAajUK2Ss2VwoNzVN69ghg8lYYlh0an0Iy4LIHHo9UQ== +caniuse-lite@^1.0.30001565: + version "1.0.30001576" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001576.tgz#893be772cf8ee6056d6c1e2d07df365b9ec0a5c4" + integrity sha512-ff5BdakGe2P3SQsMsiqmt1Lc8221NR1VzHj5jXN5vBny9A6fpze94HiVV/n7XRosOlsShJcvMv5mdnpjOGCEgg== -chalk@^2.0.0: +chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -1177,15 +1460,10 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -colorette@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" - integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== - -common-tags@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" - integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== +common-tags@^1.8.2: + version "1.8.2" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6" + integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== commondir@^1.0.1: version "1.0.1" @@ -1197,20 +1475,17 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -convert-source-map@^1.7.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" - integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== - dependencies: - safe-buffer "~5.1.1" +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -core-js-compat@^3.14.0, core-js-compat@^3.15.0: - version "3.15.2" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.15.2.tgz#47272fbb479880de14b4e6081f71f3492f5bd3cb" - integrity sha512-Wp+BJVvwopjI+A1EFqm2dwUmWYXrvucmtIB2LgXn/Rb+gWPKYxtmb4GKHGKG/KGF1eK9jfjzT38DITbTOCX/SQ== +core-js-compat@^3.31.0, core-js-compat@^3.33.1: + version "3.35.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.35.0.tgz#c149a3d1ab51e743bc1da61e39cb51f461a41873" + integrity sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw== dependencies: - browserslist "^4.16.6" - semver "7.0.0" + browserslist "^4.22.2" cross-spawn@^7.0.2: version "7.0.3" @@ -1221,13 +1496,6 @@ cross-spawn@^7.0.2: shebang-command "^2.0.0" which "^2.0.1" -debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -1235,18 +1503,39 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: +debug@^4.1.0, debug@^4.1.1: version "4.3.2" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== dependencies: ms "2.1.2" +debug@^4.3.1, debug@^4.3.2: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + deep-is@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= +deepmerge@^4.2.2: + version "4.3.1" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" + integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== + +define-data-property@^1.0.1, define-data-property@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" + integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== + dependencies: + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -1254,6 +1543,15 @@ define-properties@^1.1.3: dependencies: object-keys "^1.0.12" +define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -1268,51 +1566,71 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -electron-to-chromium@^1.3.723: - version "1.3.786" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.786.tgz#1fc572abc77e2f474725f8a61acf7e25ced9fbe2" - integrity sha512-AmvbLBj3hepRk8v/DHrFF8gINxOFfDbrn6Ts3PcK46/FBdQb5OMmpamSpZQXSkfi77FfBzYtQtAk+00LCLYMVw== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -enquirer@^2.3.5: - version "2.3.6" - resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" - integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== +electron-to-chromium@^1.4.601: + version "1.4.628" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.628.tgz#97cefa4b2356d981875f19639885e4fc50ce6e82" + integrity sha512-2k7t5PHvLsufpP6Zwk0nof62yLOsCf032wZx7/q0mv8gwlXjhcxI3lz6f0jBr0GrnWKcm3burXzI3t5IrcdUxw== + +es-abstract@^1.22.1: + version "1.22.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" + integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== + dependencies: + array-buffer-byte-length "^1.0.0" + arraybuffer.prototype.slice "^1.0.2" + available-typed-arrays "^1.0.5" + call-bind "^1.0.5" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.2" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-typed-array "^1.1.12" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.1" + safe-array-concat "^1.0.1" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.8" + string.prototype.trimend "^1.0.7" + string.prototype.trimstart "^1.0.7" + typed-array-buffer "^1.0.0" + typed-array-byte-length "^1.0.0" + typed-array-byte-offset "^1.0.0" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.13" + +es-set-tostringtag@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" + integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== dependencies: - ansi-colors "^4.1.1" + get-intrinsic "^1.2.2" + has-tostringtag "^1.0.0" + hasown "^2.0.0" -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== +es-shim-unscopables@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: - version "1.18.3" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0" - integrity sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw== - dependencies: - 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.2" - is-callable "^1.2.3" - is-negative-zero "^2.0.1" - is-regex "^1.1.3" - is-string "^1.0.6" - object-inspect "^1.10.3" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.4" - string.prototype.trimstart "^1.0.4" - unbox-primitive "^1.0.1" + hasown "^2.0.0" es-to-primitive@^1.2.1: version "1.2.1" @@ -1338,26 +1656,26 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-config-standard@^14.1.1: - version "14.1.1" - resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz#830a8e44e7aef7de67464979ad06b406026c56ea" - integrity sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg== +eslint-config-standard@^17.1.0: + version "17.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-standard/-/eslint-config-standard-17.1.0.tgz#40ffb8595d47a6b242e07cbfd49dc211ed128975" + integrity sha512-IwHwmaBNtDK4zDHQukFDW5u/aTb8+meQWZvNFWkiGmbWjD6bqyuSSBxxXKkCftCUzc1zwCH2m/baCNDLGmuO5Q== -eslint-import-resolver-node@^0.3.4: - version "0.3.4" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" - integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== +eslint-import-resolver-node@^0.3.9: + version "0.3.9" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== dependencies: - debug "^2.6.9" - resolve "^1.13.1" + debug "^3.2.7" + is-core-module "^2.13.0" + resolve "^1.22.4" -eslint-module-utils@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz#b51be1e473dd0de1c5ea638e22429c2490ea8233" - integrity sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A== +eslint-module-utils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== dependencies: debug "^3.2.7" - pkg-dir "^2.0.0" eslint-plugin-es@^3.0.0: version "3.0.1" @@ -1367,26 +1685,28 @@ eslint-plugin-es@^3.0.0: eslint-utils "^2.0.0" regexpp "^3.0.0" -eslint-plugin-import@^2.20.2: - version "2.23.4" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz#8dceb1ed6b73e46e50ec9a5bb2411b645e7d3d97" - integrity sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ== +eslint-plugin-import@^2.29.1: + version "2.29.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== dependencies: - array-includes "^3.1.3" - array.prototype.flat "^1.2.4" - debug "^2.6.9" + array-includes "^3.1.7" + array.prototype.findlastindex "^1.2.3" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" + debug "^3.2.7" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.4" - eslint-module-utils "^2.6.1" - find-up "^2.0.0" - has "^1.0.3" - is-core-module "^2.4.0" - minimatch "^3.0.4" - object.values "^1.1.3" - pkg-up "^2.0.0" - read-pkg-up "^3.0.0" - resolve "^1.20.0" - tsconfig-paths "^3.9.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.8.0" + hasown "^2.0.0" + is-core-module "^2.13.1" + is-glob "^4.0.3" + minimatch "^3.1.2" + object.fromentries "^2.0.7" + object.groupby "^1.0.1" + object.values "^1.1.7" + semver "^6.3.1" + tsconfig-paths "^3.15.0" eslint-plugin-node@^11.1.0: version "11.1.0" @@ -1400,100 +1720,93 @@ eslint-plugin-node@^11.1.0: resolve "^1.10.1" semver "^6.1.0" -eslint-plugin-standard@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz#0c3bf3a67e853f8bbbc580fb4945fbf16f41b7c5" - integrity sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ== +eslint-plugin-standard@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-standard/-/eslint-plugin-standard-5.0.0.tgz#c43f6925d669f177db46f095ea30be95476b1ee4" + integrity sha512-eSIXPc9wBM4BrniMzJRBm2uoVuXz2EPa+NXPk2+itrVt+r5SbKFERx/IgrK/HmfjddyKVz2f+j+7gBRvu19xLg== -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== +eslint-scope@^7.2.2: + version "7.2.2" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" - estraverse "^4.1.1" + estraverse "^5.2.0" -eslint-utils@^2.0.0, eslint-utils@^2.1.0: +eslint-utils@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== dependencies: eslint-visitor-keys "^1.1.0" -eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: +eslint-visitor-keys@^1.1.0: version "1.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint@^7.1.0: - version "7.31.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.31.0.tgz#f972b539424bf2604907a970860732c5d99d3aca" - integrity sha512-vafgJpSh2ia8tnTkNUkwxGmnumgckLh5aAbLa1xRmIn9+owi8qBNGKL+B881kNKNTy7FFqTEkpNkUvmw0n6PkA== - dependencies: - "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.3" - "@humanwhocodes/config-array" "^0.5.0" - ajv "^6.10.0" +eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint@^8.56.0: + version "8.56.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" + integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.56.0" + "@humanwhocodes/config-array" "^0.11.13" + "@humanwhocodes/module-importer" "^1.0.1" + "@nodelib/fs.walk" "^1.2.8" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" - debug "^4.0.1" + debug "^4.3.2" doctrine "^3.0.0" - enquirer "^2.3.5" escape-string-regexp "^4.0.0" - eslint-scope "^5.1.1" - eslint-utils "^2.1.0" - eslint-visitor-keys "^2.0.0" - espree "^7.3.1" - esquery "^1.4.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" - functional-red-black-tree "^1.0.1" - glob-parent "^5.1.2" - globals "^13.6.0" - ignore "^4.0.6" - import-fresh "^3.0.0" + find-up "^5.0.0" + glob-parent "^6.0.2" + globals "^13.19.0" + graphemer "^1.4.0" + ignore "^5.2.0" imurmurhash "^0.1.4" is-glob "^4.0.0" - js-yaml "^3.13.1" + is-path-inside "^3.0.3" + js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" lodash.merge "^4.6.2" - minimatch "^3.0.4" + minimatch "^3.1.2" natural-compare "^1.4.0" - optionator "^0.9.1" - progress "^2.0.0" - regexpp "^3.1.0" - semver "^7.2.1" - strip-ansi "^6.0.0" - strip-json-comments "^3.1.0" - table "^6.0.9" + optionator "^0.9.3" + strip-ansi "^6.0.1" text-table "^0.2.0" - v8-compile-cache "^2.0.3" -espree@^7.3.0, espree@^7.3.1: - version "7.3.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" - integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== +espree@^9.6.0, espree@^9.6.1: + version "9.6.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: - acorn "^7.4.0" - acorn-jsx "^5.3.1" - eslint-visitor-keys "^1.3.0" + acorn "^8.9.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^3.4.1" -esprima@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== +esquery@^1.4.2: + version "1.5.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" @@ -1504,20 +1817,15 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - estraverse@^5.1.0, estraverse@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== -estree-walker@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" - integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== +estree-walker@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== esutils@^2.0.2: version "2.0.3" @@ -1539,6 +1847,13 @@ fast-levenshtein@^2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fastq@^1.6.0: + version "1.16.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.16.0.tgz#83b9a9375692db77a822df081edb6a9cf6839320" + integrity sha512-ifCoaXsDrsdkWTtiNJX5uzHDsrck5TzfKKDcuFFTIrrc/BS076qgEIfoIy1VeZqViznfKiysPYTh/QeHtnIsYA== + dependencies: + reusify "^1.0.4" + file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -1546,12 +1861,13 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" -find-up@^2.0.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= +find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: - locate-path "^2.0.0" + locate-path "^6.0.0" + path-exists "^4.0.0" flat-cache@^3.0.4: version "3.0.4" @@ -1566,20 +1882,47 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.1.tgz#bbef080d95fca6709362c73044a1634f7c6e7d05" integrity sha512-OMQjaErSFHmHqZe+PSidH5n8j3O0F2DdnVh8JB4j4eUQ2k6KvB0qGfrKIhapvez5JerBbmWkaLYUYWISaESoXg== +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + function-bind@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== gensync@^1.0.0-beta.2: version "1.0.0-beta.2" @@ -1595,14 +1938,32 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.1" -glob-parent@^5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== +get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" + integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== + dependencies: + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: - is-glob "^4.0.1" + is-glob "^4.0.3" -glob@^7.1.2, glob@^7.1.3: +glob@^7.1.3: version "7.1.7" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== @@ -1614,27 +1975,52 @@ glob@^7.1.2, glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" +glob@^8.0.3: + version "8.1.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^13.6.0, globals@^13.9.0: - version "13.10.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.10.0.tgz#60ba56c3ac2ca845cfbf4faeca727ad9dd204676" - integrity sha512-piHC3blgLGFjvOuMmWZX60f+na1lXFDhQXBf1UYp2fXPXqvEUbOhNwi6BsQ0bQishwedgnjkwv1d9zKf+MWw3g== +globals@^13.19.0: + version "13.24.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.24.0.tgz#8432a19d78ce0c1e833949c36adb345400bb1171" + integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== dependencies: type-fest "^0.20.2" -graceful-fs@^4.1.2: - version "4.2.6" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== +globalthis@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" -has-bigints@^1.0.1: +gopd@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" - integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== + +has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== has-flag@^3.0.0: version "3.0.0" @@ -1646,11 +2032,35 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== +has-property-descriptors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" + integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== + dependencies: + get-intrinsic "^1.2.2" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + has-symbols@^1.0.1, has-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== +has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + has@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -1658,22 +2068,24 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - -ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + dependencies: + function-bind "^1.1.2" ignore@^5.1.1: version "5.1.8" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== -import-fresh@^3.0.0, import-fresh@^3.2.1: +ignore@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.0.tgz#67418ae40d34d6999c95ff56016759c718c82f78" + integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== + +import-fresh@^3.2.1: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -1699,10 +2111,23 @@ inherits@2: resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= +internal-slot@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" + integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== + dependencies: + get-intrinsic "^1.2.2" + hasown "^2.0.0" + side-channel "^1.0.4" + +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" is-bigint@^1.0.1: version "1.0.2" @@ -1716,12 +2141,31 @@ is-boolean-object@^1.1.0: dependencies: call-bind "^1.0.2" -is-callable@^1.1.4, is-callable@^1.2.3: +is-builtin-module@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" + integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== + dependencies: + builtin-modules "^3.3.0" + +is-callable@^1.1.3, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-callable@^1.1.4: version "1.2.3" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== -is-core-module@^2.2.0, is-core-module@^2.4.0: +is-core-module@^2.13.0, is-core-module@^2.13.1: + version "2.13.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== + dependencies: + hasown "^2.0.0" + +is-core-module@^2.2.0: version "2.5.0" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.5.0.tgz#f754843617c70bfd29b7bd87327400cda5c18491" integrity sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg== @@ -1738,53 +2182,74 @@ is-extglob@^2.1.1: resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^4.0.0, is-glob@^4.0.1: +is-glob@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== dependencies: is-extglob "^2.1.1" +is-glob@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + is-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE= -is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== is-number-object@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb" integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== -is-reference@^1.1.2: +is-path-inside@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== + +is-reference@1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== dependencies: "@types/estree" "*" -is-regex@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" - integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== dependencies: call-bind "^1.0.2" - has-symbols "^1.0.2" -is-string@^1.0.5, is-string@^1.0.6: +is-string@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== +is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" @@ -1792,6 +2257,25 @@ is-symbol@^1.0.2, is-symbol@^1.0.3: dependencies: has-symbols "^1.0.2" +is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: + version "1.1.12" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== + dependencies: + which-typed-array "^1.1.11" + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -1805,23 +2289,22 @@ jest-worker@^24.0.0: merge-stream "^2.0.0" supports-color "^6.1.0" -jquery@^3.5.1: - version "3.6.0" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470" - integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw== +jquery@^3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.1.tgz#083ef98927c9a6a74d05a6af02806566d16274de" + integrity sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg== js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== +js-yaml@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: - argparse "^1.0.7" - esprima "^4.0.0" + argparse "^2.0.1" jsesc@^2.5.1: version "2.5.2" @@ -1833,32 +2316,27 @@ jsesc@~0.5.0: resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-schema-traverse@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" - integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== - json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json5@^2.1.2, json5@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: - minimist "^1.2.5" + minimist "^1.2.0" + +json5@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" + integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== levn@^0.4.1: version "0.4.1" @@ -1868,28 +2346,12 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -load-json-file@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" - integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= - dependencies: - graceful-fs "^4.1.2" - parse-json "^4.0.0" - pify "^3.0.0" - strip-bom "^3.0.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -lodash.clonedeep@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" - integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + p-locate "^5.0.0" lodash.debounce@^4.0.8: version "4.0.8" @@ -1901,24 +2363,19 @@ lodash.merge@^4.6.2: resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -lodash.truncate@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" - integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: - yallist "^4.0.0" + yallist "^3.0.2" -magic-string@^0.25.2: - version "0.25.7" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" - integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== +magic-string@^0.30.3: + version "0.30.5" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.5.tgz#1994d980bd1c8835dc6e78db7cbd4ae4f24746f9" + integrity sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA== dependencies: - sourcemap-codec "^1.4.4" + "@jridgewell/sourcemap-codec" "^1.4.15" merge-stream@^2.0.0: version "2.0.0" @@ -1932,15 +2389,29 @@ minimatch@^3.0.4: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.5: +minimatch@^3.0.5, minimatch@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.2.0: version "1.2.5" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= +minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== ms@2.1.2: version "2.1.2" @@ -1957,49 +2428,58 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= -node-releases@^1.1.71: - version "1.1.73" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20" - integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg== - -normalize-package-data@^2.3.2: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== -object-inspect@^1.10.3: - version "1.11.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" - integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== +object-inspect@^1.13.1, object-inspect@^1.9.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.0, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== +object.assign@^4.1.4: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" object-keys "^1.1.1" -object.values@^1.1.3: - version "1.1.4" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" - integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== +object.fromentries@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" + integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.18.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +object.groupby@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" + integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + +object.values@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" + integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" once@^1.3.0: version "1.4.0" @@ -2008,36 +2488,31 @@ once@^1.3.0: dependencies: wrappy "1" -optionator@^0.9.1: - version "0.9.1" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" - integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== +optionator@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: + "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" fast-levenshtein "^2.0.6" levn "^0.4.1" prelude-ls "^1.2.1" type-check "^0.4.0" - word-wrap "^1.2.3" -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: - p-try "^1.0.0" + yocto-queue "^0.1.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: - p-limit "^1.1.0" - -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + p-limit "^3.0.2" parent-module@^1.0.0: version "1.0.1" @@ -2046,18 +2521,10 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-json@^4.0.0: +path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" @@ -2069,82 +2536,44 @@ path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parse@^1.0.6: +path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - -picomatch@^2.2.2: - version "2.3.0" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" - integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pkg-dir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" - integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= - dependencies: - find-up "^2.1.0" +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" - integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= - dependencies: - find-up "^2.1.0" +picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -progress@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - punycode@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -read-pkg-up@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" - integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= - dependencies: - find-up "^2.0.0" - read-pkg "^3.0.0" - -read-pkg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" - integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= - dependencies: - load-json-file "^4.0.0" - normalize-package-data "^2.3.2" - path-type "^3.0.0" +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== +regenerate-unicode-properties@^10.1.0: + version "10.1.1" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz#6b0e05489d9076b04c436f318d9b067bba459480" + integrity sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q== dependencies: - regenerate "^1.4.0" + regenerate "^1.4.2" -regenerate@^1.4.0: +regenerate@^1.4.2: version "1.4.2" resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== @@ -2154,53 +2583,52 @@ regenerator-runtime@^0.13.4: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== -regenerator-transform@^0.14.2: - version "0.14.5" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" - integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== +regenerator-transform@^0.15.2: + version "0.15.2" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" + integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== dependencies: "@babel/runtime" "^7.8.4" -regexpp@^3.0.0, regexpp@^3.1.0: +regexp.prototype.flags@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" + integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + set-function-name "^2.0.0" + +regexpp@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -regexpu-core@^4.7.1: - version "4.7.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" - integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== +regexpu-core@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" + integrity sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ== dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" + "@babel/regjsgen" "^0.8.0" + regenerate "^1.4.2" + regenerate-unicode-properties "^10.1.0" + regjsparser "^0.9.1" + unicode-match-property-ecmascript "^2.0.0" + unicode-match-property-value-ecmascript "^2.1.0" -regjsgen@^0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== - -regjsparser@^0.6.4: - version "0.6.9" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6" - integrity sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ== +regjsparser@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.9.1.tgz#272d05aa10c7c1f67095b1ff0addae8442fc5709" + integrity sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ== dependencies: jsesc "~0.5.0" -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== -resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.20.0: +resolve@^1.10.1, resolve@^1.14.2: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== @@ -2208,6 +2636,20 @@ resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.0, resolve@^1.13.1, resolve@^1.1 is-core-module "^2.2.0" path-parse "^1.0.6" +resolve@^1.22.1, resolve@^1.22.4: + version "1.22.8" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -2225,52 +2667,93 @@ rollup-plugin-uglify@^6.0.4: serialize-javascript "^2.1.2" uglify-js "^3.4.9" -rollup@^1.21.4: - version "1.32.1" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-1.32.1.tgz#4480e52d9d9e2ae4b46ba0d9ddeaf3163940f9c4" - integrity sha512-/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A== +rollup@^4.9.4: + version "4.9.4" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.9.4.tgz#37bc0c09ae6b4538a9c974f4d045bb64b2e7c27c" + integrity sha512-2ztU7pY/lrQyXSCnnoU4ICjT/tCG9cdH3/G25ERqE3Lst6vl2BCM5hL2Nw+sslAvAf+ccKsAq1SkKQALyqhR7g== + dependencies: + "@types/estree" "1.0.5" + optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.9.4" + "@rollup/rollup-android-arm64" "4.9.4" + "@rollup/rollup-darwin-arm64" "4.9.4" + "@rollup/rollup-darwin-x64" "4.9.4" + "@rollup/rollup-linux-arm-gnueabihf" "4.9.4" + "@rollup/rollup-linux-arm64-gnu" "4.9.4" + "@rollup/rollup-linux-arm64-musl" "4.9.4" + "@rollup/rollup-linux-riscv64-gnu" "4.9.4" + "@rollup/rollup-linux-x64-gnu" "4.9.4" + "@rollup/rollup-linux-x64-musl" "4.9.4" + "@rollup/rollup-win32-arm64-msvc" "4.9.4" + "@rollup/rollup-win32-ia32-msvc" "4.9.4" + "@rollup/rollup-win32-x64-msvc" "4.9.4" + fsevents "~2.3.2" + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: - "@types/estree" "*" - "@types/node" "*" - acorn "^7.1.0" + queue-microtask "^1.2.2" -safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -scroll-shadow-element@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/scroll-shadow-element/-/scroll-shadow-element-1.1.3.tgz#fa06c100fbd33b4592cf03d163be4bf8420ff960" - integrity sha512-dSYJYM9sD56xX8at/ey1CS5XQH4PGigdbMFtiFyr5kdDE/HTB+f2h7NMEqpMBtKfgx3uNvx0RGVr4/uDTC9XZg== +safe-array-concat@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" + integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + isarray "^2.0.5" -"semver@2 || 3 || 4 || 5": - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== +safe-regex-test@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.1.tgz#207369b445fd007e534864635b28b2ae7b105783" + integrity sha512-Y5NejJTTliTyY4H7sipGqY+RX5P87i3F7c4Rcepy72nq+mNLhIsD0W4c7kEmduMDQCSqtPsXPlSTsFhh2LQv+g== + dependencies: + call-bind "^1.0.5" + get-intrinsic "^1.2.2" + is-regex "^1.1.4" -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== +scroll-shadow-element@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/scroll-shadow-element/-/scroll-shadow-element-1.1.6.tgz#a61f95f2303deb0850fd56fde14b974c8f51d727" + integrity sha512-YZaW9eEaFGQ8zfNwtk9w4Yt9cJl/0Um6siG1NogAKwD9vr1+tqIvRoudh6IWicpjub1faiRaqFwlEGiMKF9Y0g== -semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: +semver@^6.1.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.2.1: - version "7.3.5" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" - integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== - dependencies: - lru-cache "^6.0.0" +semver@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== serialize-javascript@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== +set-function-length@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" + integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== + dependencies: + define-data-property "^1.1.1" + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + +set-function-name@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" + integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== + dependencies: + define-data-property "^1.0.1" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.0" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -2283,94 +2766,55 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -slice-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" - integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== - dependencies: - ansi-styles "^4.0.0" - astral-regex "^2.0.0" - is-fullwidth-code-point "^3.0.0" - -source-map@^0.5.0: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -sourcemap-codec@^1.4.4: - version "1.4.8" - resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.9" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f" - integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" -string-width@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" - integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== +string.prototype.trim@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimend@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== +string.prototype.trimend@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" -string.prototype.trimstart@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== +string.prototype.trimstart@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== dependencies: call-bind "^1.0.2" - define-properties "^1.1.3" + define-properties "^1.2.0" + es-abstract "^1.22.1" -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== +strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: - ansi-regex "^5.0.0" + ansi-regex "^5.0.1" strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= -strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -2396,17 +2840,10 @@ supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -table@^6.0.9: - version "6.7.1" - resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" - integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== - dependencies: - ajv "^8.0.1" - lodash.clonedeep "^4.5.0" - lodash.truncate "^4.4.2" - slice-ansi "^4.0.0" - string-width "^4.2.0" - strip-ansi "^6.0.0" +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== text-table@^0.2.0: version "0.2.0" @@ -2418,13 +2855,14 @@ to-fast-properties@^2.0.0: resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= -tsconfig-paths@^3.9.0: - version "3.10.1" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.10.1.tgz#79ae67a68c15289fdf5c51cb74f397522d795ed7" - integrity sha512-rETidPDgCpltxF7MjBZlAFPUHv5aHH2MymyPvh+vEyWAED4Eb/WeMbsnD/JDr4OKPOA1TssDHgIcpTN5Kh0p6Q== +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== dependencies: - json5 "^2.2.0" - minimist "^1.2.0" + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" strip-bom "^3.0.0" type-check@^0.4.0, type-check@~0.4.0: @@ -2439,43 +2877,90 @@ type-fest@^0.20.2: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== +typed-array-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-typed-array "^1.1.10" + +typed-array-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + uglify-js@^3.4.9: version "3.14.0" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.14.0.tgz#2d723a0afee81e0d08db9354a9c277006e942386" integrity sha512-R/tiGB1ZXp2BC+TkRGLwj8xUZgdfT2f4UZEgX6aVjJ5uttPrr4fYmwTWDGqVnBCLbOXRMY6nr/BTbwCtVfps0g== -unbox-primitive@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" - integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: - function-bind "^1.1.1" - has-bigints "^1.0.1" - has-symbols "^1.0.2" + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== +unicode-canonical-property-names-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc" + integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ== -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== +unicode-match-property-ecmascript@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" + integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" + unicode-canonical-property-names-ecmascript "^2.0.0" + unicode-property-aliases-ecmascript "^2.0.0" -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== +unicode-match-property-value-ecmascript@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz#cb5fffdcd16a05124f5a4b0bf7c3770208acbbe0" + integrity sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA== + +unicode-property-aliases-ecmascript@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" + integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== -unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" uri-js@^4.2.2: version "4.4.1" @@ -2484,19 +2969,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -v8-compile-cache@^2.0.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" - integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" @@ -2508,6 +2980,17 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" +which-typed-array@^1.1.11, which-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" + integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.4" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -2515,17 +2998,17 @@ which@^2.0.1: dependencies: isexe "^2.0.0" -word-wrap@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 266ed5efa9d244bf18bdf1533b37bbaa40d825a9 Mon Sep 17 00:00:00 2001 From: Unai Abrisketa Date: Thu, 11 Jan 2024 13:02:04 +0100 Subject: [PATCH 53/76] V0.23.1.pre (#122) * Fix issue * Update yarn dependencies * Update version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5da5bdea..249e4f45 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@epages/beyond_canvas", - "version": "0.23.0-pre", + "version": "0.23.1-pre", "description": "Open-source framework that provides CSS and JS for apps designed and developed for the online shop software Beyond", "keywords": [ "epages", From 4a68241e12016801a93ef17feb6fe68bb061b852 Mon Sep 17 00:00:00 2001 From: Unai Abrisketa Date: Thu, 11 Jan 2024 13:07:16 +0100 Subject: [PATCH 54/76] V0.23.1.pre (#123) * Fix issue * Update yarn dependencies * Update version * Fix repo url --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 249e4f45..e80ef70c 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "main": "app/assets/javascripts/beyond_canvas/base.js", "repository": { "type": "git", - "url": "https://github.com/ePages-de/beyond_canvas.git" + "url": "git+https://github.com/ePages-de/beyond_canvas.git" }, "type": "module", "scripts": { From c2d53406f222b361484c480da7d240f3b174e3f7 Mon Sep 17 00:00:00 2001 From: kgallego Date: Mon, 29 Jan 2024 09:50:56 +0100 Subject: [PATCH 55/76] Fix button_tag styling --- app/assets/stylesheets/beyond_canvas/components/_links.scss | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/assets/stylesheets/beyond_canvas/components/_links.scss b/app/assets/stylesheets/beyond_canvas/components/_links.scss index 5b077c9b..8306db15 100644 --- a/app/assets/stylesheets/beyond_canvas/components/_links.scss +++ b/app/assets/stylesheets/beyond_canvas/components/_links.scss @@ -8,6 +8,9 @@ @mixin link($color, $color-hover) { color: var(#{$color}); line-height: 1.2; + background-color: transparent; + border: none; + padding: 0; &:hover { color: var(#{$color-hover}); @@ -46,6 +49,7 @@ &--primary, &--secondary, &--danger { + &:disabled, &[disabled] { @extend %link_disabled; From feee460178d20c2113c5ab5c94c78b6812f22eda Mon Sep 17 00:00:00 2001 From: kgallego Date: Mon, 29 Jan 2024 10:17:22 +0100 Subject: [PATCH 56/76] Remove line break --- app/assets/stylesheets/beyond_canvas/components/_links.scss | 1 - 1 file changed, 1 deletion(-) diff --git a/app/assets/stylesheets/beyond_canvas/components/_links.scss b/app/assets/stylesheets/beyond_canvas/components/_links.scss index 8306db15..bfc9039c 100644 --- a/app/assets/stylesheets/beyond_canvas/components/_links.scss +++ b/app/assets/stylesheets/beyond_canvas/components/_links.scss @@ -49,7 +49,6 @@ &--primary, &--secondary, &--danger { - &:disabled, &[disabled] { @extend %link_disabled; From 8b2129dd35b1af6a61d00276aa4e073f145c247d Mon Sep 17 00:00:00 2001 From: Kathia Date: Mon, 5 Feb 2024 13:17:25 +0100 Subject: [PATCH 57/76] Fix issue with image_file_field (#125) --- app/form_builders/beyond_canvas/form_builder.rb | 2 +- app/helpers/beyond_canvas/form_tag_helper.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/form_builders/beyond_canvas/form_builder.rb b/app/form_builders/beyond_canvas/form_builder.rb index 8deae4fe..f2d8f7b8 100644 --- a/app/form_builders/beyond_canvas/form_builder.rb +++ b/app/form_builders/beyond_canvas/form_builder.rb @@ -98,7 +98,7 @@ def image_file_field(attribute, args = {}, &block) # IMPORTANT: Using this metho @template.content_tag(:div, placeholder_div_arguments) do [ - (@template.image_placeholder_tag(args.fetch(:placeholder)) if(args.fetch(:placeholder, true))), + (@template.image_placeholder_tag(args.fetch(:placeholder)) if (args.fetch(:placeholder, true))), ].compact.inject(:+) end + @template.content_tag(:div, class: 'attachments js-images', js_identifier: filed_identifyer) do diff --git a/app/helpers/beyond_canvas/form_tag_helper.rb b/app/helpers/beyond_canvas/form_tag_helper.rb index 741f742d..d0fa4b97 100644 --- a/app/helpers/beyond_canvas/form_tag_helper.rb +++ b/app/helpers/beyond_canvas/form_tag_helper.rb @@ -100,7 +100,7 @@ def image_attachment_tag(blob, delete_url = nil, args = {}) end end - def image_placeholder_tag(**options) + def image_placeholder_tag(options) placeholder_with = 300 placeholder_height = 300 placeholder_with, placeholder_height = options[:size].split('x') if options[:size].present? From 1a64fa973367cc573ec7519ffeb0680fe7dd19e6 Mon Sep 17 00:00:00 2001 From: citin Date: Mon, 4 Mar 2024 11:26:20 +0100 Subject: [PATCH 58/76] enhance tooltip using svg --- app/assets/images/icons/tooltip.svg | 1 + .../stylesheets/beyond_canvas/components/_tooltips.scss | 9 +++++++-- app/form_builders/beyond_canvas/form_builder.rb | 4 ++-- app/helpers/beyond_canvas/application_helper.rb | 2 +- 4 files changed, 11 insertions(+), 5 deletions(-) create mode 100644 app/assets/images/icons/tooltip.svg diff --git a/app/assets/images/icons/tooltip.svg b/app/assets/images/icons/tooltip.svg new file mode 100644 index 00000000..9ae78df4 --- /dev/null +++ b/app/assets/images/icons/tooltip.svg @@ -0,0 +1 @@ + diff --git a/app/assets/stylesheets/beyond_canvas/components/_tooltips.scss b/app/assets/stylesheets/beyond_canvas/components/_tooltips.scss index 4cf54b3e..13b7cae0 100644 --- a/app/assets/stylesheets/beyond_canvas/components/_tooltips.scss +++ b/app/assets/stylesheets/beyond_canvas/components/_tooltips.scss @@ -3,14 +3,19 @@ $arrow-size: 8px; .tooltip { cursor: default; position: relative; - white-space: break-spaces; - padding: 5px; &:hover .tooltip__bubble { opacity: 1; visibility: visible; } + > svg { + @include size(14px); + + fill: var(--primary-color); + transform: translateY(1px); + } + &__label { color: var(--primary-color); font-weight: 700; diff --git a/app/form_builders/beyond_canvas/form_builder.rb b/app/form_builders/beyond_canvas/form_builder.rb index f2d8f7b8..1b76a0ed 100644 --- a/app/form_builders/beyond_canvas/form_builder.rb +++ b/app/form_builders/beyond_canvas/form_builder.rb @@ -120,7 +120,7 @@ def image_file_field(attribute, args = {}, &block) # IMPORTANT: Using this metho private def field_wrapper(attribute, args, &block) - label = sanitize(args.delete(:label)) + label = args.delete(:label)&.html_safe hint = sanitize(args.delete(:hint)) pre = args.delete(:pre) post = args.delete(:post) @@ -168,7 +168,7 @@ def image_field_wrapper(attribute, args, &block) end def inline_wrapper(attribute, args, filed_identifyer, &block) - label = sanitize(args.delete(:label)) + label = args.delete(:label)&.html_safe hint = sanitize(args.delete(:hint)) errors = object.errors[attribute].join(BeyondCanvas.configuration.model_errors_joined_by) if object.respond_to?(:errors) && object.errors.include?(attribute) diff --git a/app/helpers/beyond_canvas/application_helper.rb b/app/helpers/beyond_canvas/application_helper.rb index 1c7352bb..e632ca57 100644 --- a/app/helpers/beyond_canvas/application_helper.rb +++ b/app/helpers/beyond_canvas/application_helper.rb @@ -69,7 +69,7 @@ def step_list(title = nil, steps: []) name = block if block_given? content_tag('span', class: 'tooltip') do - content_tag('span', '?', class: 'tooltip__label', data: { placement: method }) + + inline_svg_tag('icons/tooltip.svg', class: 'tooltip__label', data: { placement: method }) + content_tag('div', name, class: 'tooltip__bubble', &block) end end From 22c65a8121aecb29b32692039a3c7b2287c3490c Mon Sep 17 00:00:00 2001 From: citin Date: Mon, 4 Mar 2024 12:42:06 +0100 Subject: [PATCH 59/76] adds left margin to tooltips --- app/assets/stylesheets/beyond_canvas/components/_tooltips.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/app/assets/stylesheets/beyond_canvas/components/_tooltips.scss b/app/assets/stylesheets/beyond_canvas/components/_tooltips.scss index 13b7cae0..21a9547e 100644 --- a/app/assets/stylesheets/beyond_canvas/components/_tooltips.scss +++ b/app/assets/stylesheets/beyond_canvas/components/_tooltips.scss @@ -3,6 +3,7 @@ $arrow-size: 8px; .tooltip { cursor: default; position: relative; + margin-left: 4px; &:hover .tooltip__bubble { opacity: 1; From 12519d418e1b2abdf2863e6b1bef0f9bfbeb5690 Mon Sep 17 00:00:00 2001 From: citin Date: Wed, 6 Mar 2024 10:32:25 +0100 Subject: [PATCH 60/76] enhance modal styles and fix some bugs --- .../beyond_canvas/components/_modals.scss | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/app/assets/stylesheets/beyond_canvas/components/_modals.scss b/app/assets/stylesheets/beyond_canvas/components/_modals.scss index 7f93c6f3..d8447184 100644 --- a/app/assets/stylesheets/beyond_canvas/components/_modals.scss +++ b/app/assets/stylesheets/beyond_canvas/components/_modals.scss @@ -43,13 +43,27 @@ } &__body { - scroll-shadow & { - max-height: 65vh; - overflow-x: hidden; - padding-right: 20px; + overflow-y: auto; + overflow-x: hidden; + max-width: 100%; + max-height: 65vh; + + -ms-overflow-style: none; + scrollbar-width: none; + + &::-webkit-scrollbar { + display: none; } } + scroll-shadow { + display: inline-block; + width: 100%; + max-width: 100%; + --scroll-shadow-left: none; + --scroll-shadow-right: none; + } + &__close { // SEE: https://newbedev.com/change-svg-fill-color-in-before-or-after-css @include position(absolute, 20px 20px null null); From cc8357997668450f7008c4a178fc06144e91b83f Mon Sep 17 00:00:00 2001 From: kengallego Date: Thu, 26 Sep 2024 10:17:18 +0200 Subject: [PATCH 61/76] Remove scroll shadow --- app/assets/javascripts/beyond_canvas/base.js | 263 +++++------------- .../beyond_canvas/components/_modals.scss | 12 - app/javascript/beyond_canvas/base.js | 1 - package.json | 3 +- yarn.lock | 5 - 5 files changed, 78 insertions(+), 206 deletions(-) diff --git a/app/assets/javascripts/beyond_canvas/base.js b/app/assets/javascripts/beyond_canvas/base.js index a7cf9026..09f4bb77 100644 --- a/app/assets/javascripts/beyond_canvas/base.js +++ b/app/assets/javascripts/beyond_canvas/base.js @@ -7,18 +7,18 @@ //= require_self (function(factory) { - typeof define === "function" && define.amd ? define([ "jquery" ], factory) : factory(); + typeof define === 'function' && define.amd ? define([ 'jquery' ], factory) : factory(); })(function() { - "use strict"; + 'use strict'; var SPINNER_ANIMATION_TIMEOUT = 125; - var BUTTON_SELECTORS = '[class^="button"]'; + var BUTTON_SELECTORS = "[class^='button']"; (function($) { var onDOMReady = function onDOMReady() { - var inputs = $("input, textarea, select").not(":input[type=button], :input[type=submit], :input[type=reset]"); + var inputs = $('input, textarea, select').not(':input[type=button], :input[type=submit], :input[type=reset]'); inputs.each(function() { var input = $(this); - input.bind("invalid", function(e) { - if ($(input).is(":hidden")) { + input.bind('invalid', function(e) { + if ($(input).is(':hidden')) { e.preventDefault(); } $.restoreActionElements(); @@ -28,20 +28,20 @@ $(this).buildButton(); }); }; - $(document).on("confirm:complete", function() { + $(document).on('confirm:complete', function() { $.restoreActionElements(); }); - $(document).on("click", BUTTON_SELECTORS, function(e) { + $(document).on('click', BUTTON_SELECTORS, function(e) { var _e$target$attributes$; var button = $(this); - if (((_e$target$attributes$ = e.target.attributes.getNamedItem("target")) == null ? void 0 : _e$target$attributes$.value) === "_blank") return; + if (((_e$target$attributes$ = e.target.attributes.getNamedItem('target')) == null ? void 0 : _e$target$attributes$.value) === '_blank') return; $.disableActionElements(); - if (!button.hasClass("button--no-spinner")) { + if (!button.hasClass('button--no-spinner')) { $(this).showSpinner(); } }); - $(document).on("ready page:load turbolinks:load", onDOMReady); - $(document).on("beforeunload turbolinks:before-visit", function() { + $(document).on('ready page:load turbolinks:load', onDOMReady); + $(document).on('beforeunload turbolinks:before-visit', function() { $.restoreActionElements(); }); })(jQuery); @@ -50,52 +50,52 @@ setTimeout(function() { $(BUTTON_SELECTORS).each(function(_, button) { setTimeout(function() { - $(button).find(".spinner").hide(); - $(button).width($(button).data("oldWidth")); + $(button).find('.spinner').hide(); + $(button).width($(button).data('oldWidth')); }, SPINNER_ANIMATION_TIMEOUT); }); - $('a, input[type="submit"], input[type="button"], input[type="reset"], button').each(function() { - $(this).removeClass("actions--disabled"); + $("a, input[type='submit'], input[type='button'], input[type='reset'], button").each(function() { + $(this).removeClass('actions--disabled'); }); }, 100); }, disableActionElements: function disableActionElements() { - $('a, input[type="submit"], input[type="button"], input[type="reset"], button').each(function() { - $(this).addClass("actions--disabled"); + $("a, input[type='submit'], input[type='button'], input[type='reset'], button").each(function() { + $(this).addClass('actions--disabled'); }); } }); $.fn.extend({ buildButton: function buildButton() { var button = $(this); - if (button.is("[class^=button]")) { - if (!button.hasClass("button--no-spinner")) { + if (button.is('[class^=button]')) { + if (!button.hasClass('button--no-spinner')) { button.width(button.width()); - button.data("oldWidth", button.width()); - if (button.find(".spinner").length == 0) { - button.prepend('\n
\n
\n
\n
\n
'); + button.data('oldWidth', button.width()); + if (button.find('.spinner').length == 0) { + button.prepend("\n
\n
\n
\n
\n
"); } } - button.closest("form").on("ajax:success", function() { + button.closest('form').on('ajax:success', function() { $.restoreActionElements(); - }).on("ajax:error", function() { + }).on('ajax:error', function() { $.restoreActionElements(); }); } }, showSpinner: function showSpinner() { var button = $(this); - button.width(button.width() + $(".spinner").outerWidth(true)); + button.width(button.width() + $('.spinner').outerWidth(true)); setTimeout(function() { - button.find(".spinner").css("display", "inline-flex"); + button.find('.spinner').css('display', 'inline-flex'); }, SPINNER_ANIMATION_TIMEOUT); } }); (function($) { - $(document).on("click", '[data-toggle="collapse"]', function(e) { + $(document).on('click', '[data-toggle="collapse"]', function(e) { e.preventDefault(); - var target = $(this).attr("data-target"); - if ($(target).is(":hidden")) { + var target = $(this).attr('data-target'); + if ($(target).is(':hidden')) { $(this).openCollapse(); } else { $(this).closeCollapse(); @@ -104,49 +104,49 @@ })(jQuery); $.fn.extend({ openCollapse: function openCollapse() { - var target = $(this).attr("data-target"); - $(this).trigger("bc.collapse.open"); - $(this).attr("data-visible", true); - $(this).find(".collapse__icon").addClass("collapse__icon--open"); + var target = $(this).attr('data-target'); + $(this).trigger('bc.collapse.open'); + $(this).attr('data-visible', true); + $(this).find('.collapse__icon').addClass('collapse__icon--open'); $(target).slideDown(); - $(this).trigger("bc.collapse.opened"); + $(this).trigger('bc.collapse.opened'); }, closeCollapse: function closeCollapse() { - var target = $(this).attr("data-target"); - $(this).trigger("bc.collapse.close"); - $(this).attr("data-visible", false); - $(this).find(".collapse__icon").removeClass("collapse__icon--open"); + var target = $(this).attr('data-target'); + $(this).trigger('bc.collapse.close'); + $(this).attr('data-visible', false); + $(this).find('.collapse__icon').removeClass('collapse__icon--open'); $(target).slideUp(); - $(this).trigger("bc.collapse.closed"); + $(this).trigger('bc.collapse.closed'); } }); (function($) { var onDOMReady = function onDOMReady() { - $(".flash").each(function() { - $(this).css("right", -$(this).width() + "px"); + $('.flash').each(function() { + $(this).css('right', -$(this).width() + 'px'); }); setTimeout(function() { - $(".flash").addClass("flash--shown"); + $('.flash').addClass('flash--shown'); }, 100); }; - $(document).on("click", ".flash__close", function() { + $(document).on('click', '.flash__close', function() { $.closeAlert(); }); - $(document).on("ready page:load turbolinks:load bc.flash.shown", onDOMReady); + $(document).on('ready page:load turbolinks:load bc.flash.shown', onDOMReady); })(jQuery); $.extend({ showFlash: function showFlash(status, message) { - var flash = '\n
\n
\n \n
\n
\n ' + message + '\n
\n
\n \n
\n
'; - $(document).trigger("bc.flash.show"); - $("#flash").html(flash); - $(document).trigger("bc.flash.shown"); + var flash = "\n
\n
\n \n
\n
\n ' + message + '\n
\n
\n \n
\n
"; + $(document).trigger('bc.flash.show'); + $('#flash').html(flash); + $(document).trigger('bc.flash.shown'); }, closeAlert: function closeAlert() { - $(document).trigger("bc.flash.hide"); - $(".flash").removeClass("flash--shown").delay(700).queue(function() { + $(document).trigger('bc.flash.hide'); + $('.flash').removeClass('flash--shown').delay(700).queue(function() { $(this).remove(); }); - $(document).trigger("bc.flash.hidden"); + $(document).trigger('bc.flash.hidden'); } }); (function($) { @@ -157,187 +157,78 @@ removeInputFocusClass(); }; var updateInputLabel = function updateInputLabel() { - $("form").on("change", 'input[type="file"]', function(_ref) { + $('form').on('change', 'input[type="file"]', function(_ref) { var _input$files, _input$getAttribute, _input$value; var input = _ref.currentTarget; - var label = $(".input__file__text." + input.getAttribute("id")); + var label = $('.input__file__text.' + input.getAttribute('id')); if (!label) return; - var noFileText = input.getAttribute("data-no-file-text"); - var svgFileIcon = '\n \n \n '; - var fileName = ((_input$files = input.files) == null ? void 0 : _input$files.length) > 1 ? (_input$getAttribute = input.getAttribute("data-multiple-selection-text")) == null ? void 0 : _input$getAttribute.replace("{count}", input.files.length) : ((_input$value = input.value) == null ? void 0 : _input$value.split("\\").pop()) || ""; - fileName ? label.html("" + svgFileIcon + fileName) : label.html(noFileText); + var noFileText = input.getAttribute('data-no-file-text'); + var svgFileIcon = "\n \n \n "; + var fileName = ((_input$files = input.files) == null ? void 0 : _input$files.length) > 1 ? (_input$getAttribute = input.getAttribute('data-multiple-selection-text')) == null ? void 0 : _input$getAttribute.replace('{count}', input.files.length) : ((_input$value = input.value) == null ? void 0 : _input$value.split('\\').pop()) || ''; + fileName ? label.html('' + svgFileIcon + fileName) : label.html(noFileText); }); }; var addInputFocusClass = function addInputFocusClass() { - $("form").on("focus", 'input[type="file"]', function(_ref2) { + $('form').on('focus', 'input[type="file"]', function(_ref2) { var input = _ref2.currentTarget; - input.addClass("has-focus"); + input.addClass('has-focus'); }); }; var removeInputFocusClass = function removeInputFocusClass() { - $("form").on("blur", 'input[type="file"]', function(_ref3) { + $('form').on('blur', 'input[type="file"]', function(_ref3) { var input = _ref3.currentTarget; - input.removeClass("has-focus"); + input.removeClass('has-focus'); }); }; var initializeClearOnClickInputs = function initializeClearOnClickInputs() { - $("form").on("click", 'input[type="file"][data-clear-on-click="true"]', function() { + $('form').on('click', 'input[type="file"][data-clear-on-click="true"]', function() { var dt = new DataTransfer(); this.files = dt.files; - this.dispatchEvent(new Event("change", { + this.dispatchEvent(new Event('change', { bubbles: true, composed: true })); }); }; - $(document).on("ready page:load turbolinks:load", function() { + $(document).on('ready page:load turbolinks:load', function() { return onDOMReady(); }); })(jQuery); (function($) { var onDOMReady = function onDOMReady() { - $(".modal").each(function() { - $(this).hide().css("visibility", "visible"); + $('.modal').each(function() { + $(this).hide().css('visibility', 'visible'); }); }; - $(document).on("click", '[data-toggle="modal"]', function(e) { + $(document).on('click', '[data-toggle="modal"]', function(e) { e.preventDefault(); - var dataTarget = $(this).attr("data-target"); + var dataTarget = $(this).attr('data-target'); $.restoreActionElements(); $(dataTarget).showModal(); }); - $(document).on("click", '[data-dismiss="modal"]', function(e) { + $(document).on('click', '[data-dismiss="modal"]', function(e) { e.preventDefault(); - var dataTarget = $(this).closest(".modal"); + var dataTarget = $(this).closest('.modal'); $.restoreActionElements(); $(dataTarget).hideModal(); }); - $(document).on("ready page:load turbolinks:load", onDOMReady); + $(document).on('ready page:load turbolinks:load', onDOMReady); })(jQuery); $.fn.extend({ showModal: function showModal() { var modal = $(this); - modal.trigger("bc.modal.show"); + modal.trigger('bc.modal.show'); $.restoreActionElements(); - modal.css("display", "flex"); - modal.trigger("bc.modal.shown"); + modal.css('display', 'flex'); + modal.trigger('bc.modal.shown'); }, hideModal: function hideModal() { var modal = $(this); - modal.trigger("bc.modal.hide"); + modal.trigger('bc.modal.hide'); $.restoreActionElements(); modal.hide(); - modal.trigger("bc.modal.hidden"); + modal.trigger('bc.modal.hidden'); } }); const template = ``; - const updaters = new WeakMap(); - class ScrollShadowElement extends HTMLElement { - constructor() { - super(); - this.attachShadow({ - mode: "open" - }).innerHTML = template; - updaters.set(this, new Updater(this.shadowRoot.lastElementChild)); - } - static get observedAttributes() { - return [ "el" ]; - } - get el() { - return this.getAttribute("el"); - } - set el(value) { - this.setAttribute("el", value); - } - connectedCallback() { - this.shadowRoot.querySelector("slot").addEventListener("slotchange", () => this.start()); - this.start(); - } - disconnectedCallback() { - updaters.get(this).stop(); - } - attributeChangedCallback(_name, oldValue, newValue) { - if (oldValue !== newValue) { - this.scrollEl = newValue ? this.querySelector(newValue) : null; - this.start(); - } - } - start() { - updaters.get(this).start(this.scrollEl || this.firstElementChild, this.scrollEl ? this.firstElementChild : null); - } - } - class Updater { - constructor(targetElement) { - const update = this.update.bind(this, targetElement, getComputedStyle(targetElement)); - this.handleScroll = throttle(update); - this.rO = new ResizeObserver(update); - this.mO = new MutationObserver(() => this.start(this.el, this.rootEl)); - } - start(element, rootElement) { - if (this.el) this.stop(); - if (element) { - element.addEventListener("scroll", this.handleScroll); - [ element, ...element.children ].forEach(el => this.rO.observe(el)); - this.mO.observe(element, { - childList: true - }); - this.el = element; - } - if (rootElement) { - this.rO.observe(rootElement); - this.rootEl = rootElement; - } - } - stop() { - this.el.removeEventListener("scroll", this.handleScroll); - this.mO.disconnect(); - this.rO.disconnect(); - this.el = this.rootEl = null; - } - update(targetElement, computedStyle) { - const { - el, - rootEl - } = this; - if (!el) return; - const maxSize = Number(computedStyle.getPropertyValue("--scroll-shadow-size")) || 14; - const style = { - "--top": clamp(el.scrollTop, 0, maxSize), - "--bottom": clamp(el.scrollHeight - el.offsetHeight - el.scrollTop, 0, maxSize), - "--left": clamp(el.scrollLeft, 0, maxSize), - "--right": clamp(el.scrollWidth - el.offsetWidth - el.scrollLeft, 0, maxSize) - }; - if (rootEl) { - const clientRect = el.getBoundingClientRect(); - const rootClientRect = rootEl.getBoundingClientRect(); - Object.assign(style, { - top: clamp(clientRect.top - rootClientRect.top), - bottom: clamp(rootClientRect.bottom - clientRect.bottom), - left: clamp(clientRect.left - rootClientRect.left), - right: clamp(rootClientRect.right - clientRect.right) - }); - } - for (const key in style) { - targetElement.style.setProperty(key, `${style[key]}px`); - } - } - } - function clamp(num, min = 0, max) { - if (num < min) return min; - if (num > max) return max; - return num; - } - function throttle(callback) { - let id = null; - return () => { - if (id) return; - id = requestAnimationFrame(() => { - callback(); - id = null; - }); - }; - } - if ("customElements" in window && "ResizeObserver" in window) { - customElements.define("scroll-shadow", ScrollShadowElement); - } }); diff --git a/app/assets/stylesheets/beyond_canvas/components/_modals.scss b/app/assets/stylesheets/beyond_canvas/components/_modals.scss index d8447184..9c21b4cd 100644 --- a/app/assets/stylesheets/beyond_canvas/components/_modals.scss +++ b/app/assets/stylesheets/beyond_canvas/components/_modals.scss @@ -11,10 +11,6 @@ z-index: 99999; visibility: hidden; - scroll-shadow { - width: 100%; - } - &__dialog { width: 100%; max-width: $modal-width; @@ -56,14 +52,6 @@ } } - scroll-shadow { - display: inline-block; - width: 100%; - max-width: 100%; - --scroll-shadow-left: none; - --scroll-shadow-right: none; - } - &__close { // SEE: https://newbedev.com/change-svg-fill-color-in-before-or-after-css @include position(absolute, 20px 20px null null); diff --git a/app/javascript/beyond_canvas/base.js b/app/javascript/beyond_canvas/base.js index e6419688..fa3ffcdd 100644 --- a/app/javascript/beyond_canvas/base.js +++ b/app/javascript/beyond_canvas/base.js @@ -4,4 +4,3 @@ import './initializers/collapse'; import './initializers/flash'; import './initializers/inputs'; import './initializers/modals'; -import 'scroll-shadow-element/scroll-shadow-element'; diff --git a/package.json b/package.json index e80ef70c..329d7801 100644 --- a/package.json +++ b/package.json @@ -37,8 +37,7 @@ }, "dependencies": { "bourbon": "^7.3.0", - "jquery": "^3.7.1", - "scroll-shadow-element": "^1.1.6" + "jquery": "^3.7.1" }, "devDependencies": { "@babel/core": "^7.23.7", diff --git a/yarn.lock b/yarn.lock index 4b0e7643..47275d6d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2715,11 +2715,6 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.2.2" is-regex "^1.1.4" -scroll-shadow-element@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/scroll-shadow-element/-/scroll-shadow-element-1.1.6.tgz#a61f95f2303deb0850fd56fde14b974c8f51d727" - integrity sha512-YZaW9eEaFGQ8zfNwtk9w4Yt9cJl/0Um6siG1NogAKwD9vr1+tqIvRoudh6IWicpjub1faiRaqFwlEGiMKF9Y0g== - semver@^6.1.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" From 457b54f9a8b62f5240c8bea966643420c3db9791 Mon Sep 17 00:00:00 2001 From: kengallego Date: Thu, 26 Sep 2024 10:23:37 +0200 Subject: [PATCH 62/76] Remove breadcrumbs --- .../stylesheets/beyond_canvas/base.scss | 1 - .../components/_breadcrumbs.scss | 33 ------------------- .../settings/_base_variables.scss | 8 ----- .../settings/_constant_variables.scss | 8 ----- .../settings/_custom_variables.scss | 8 ----- .../shared/_breadcrumbs.html.erb | 17 ---------- .../beyond_canvas/application.html.erb | 2 -- .../beyond_canvas_custom_styles.scss | 7 ---- 8 files changed, 84 deletions(-) delete mode 100644 app/assets/stylesheets/beyond_canvas/components/_breadcrumbs.scss delete mode 100644 app/views/beyond_canvas/shared/_breadcrumbs.html.erb diff --git a/app/assets/stylesheets/beyond_canvas/base.scss b/app/assets/stylesheets/beyond_canvas/base.scss index 777d0047..414752ab 100644 --- a/app/assets/stylesheets/beyond_canvas/base.scss +++ b/app/assets/stylesheets/beyond_canvas/base.scss @@ -12,7 +12,6 @@ @import "components/action_bar"; @import "components/actions"; @import "components/attachments"; -@import "components/breadcrumbs"; @import "components/buttons"; @import "components/cards"; @import "components/collapse"; diff --git a/app/assets/stylesheets/beyond_canvas/components/_breadcrumbs.scss b/app/assets/stylesheets/beyond_canvas/components/_breadcrumbs.scss deleted file mode 100644 index fc4777c9..00000000 --- a/app/assets/stylesheets/beyond_canvas/components/_breadcrumbs.scss +++ /dev/null @@ -1,33 +0,0 @@ -.breadcrumbs { - font-size: 90%; - margin-bottom: 30px; - - .home-icon { - width: 12px; - height: 12px; - fill: var(--breadcrumb-icon); - } - - .arrow-right { - width: 8px; - height: 8px; - margin-left: 7px; - margin-right: 7px; - fill: var(--breadcrumb-text); - } -} - -.breadcrumb { - &__item { - color: var(--breadcrumb-link); - - &:hover { - color: var(--breadcrumb-link-hover); - } - - &--current { - color: var(--breadcrumb-text); - pointer-events: none; - } - } -} diff --git a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss index 858eba79..fd89f29d 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss @@ -29,14 +29,6 @@ --card-padding: 40px; /* /* --------------------------------------------------- - /* Breadcrumb - /* --------------------------------------------------- */ - --breadcrumb-text: #787878; - --breadcrumb-link: #787878; - --breadcrumb-link-hover: #525252; - --breadcrumb-icon: #787878; - /* - /* --------------------------------------------------- /* Action bar /* --------------------------------------------------- */ --workspace-toolbar-background: white; diff --git a/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss index 9896b9ef..d2116cd0 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss @@ -147,14 +147,6 @@ $logo-margin-bottom-public: 34px; $comment-background: rgb(246, 246, 243) !default; $comment-color: rgb(170, 169, 156) !default; -// ************************************************************ -// Breadcrums -// ************************************************************ - -$breadcrum-color: rgb(112, 110, 77) !default; -$breadcrum-color-hover: rgb(67, 65, 46) !default; -$breadcrum-color-current: rgb(112, 110, 77) !default; - // ************************************************************ // Titles // ************************************************************ diff --git a/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss index c5b8705d..ad04b3e7 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss @@ -147,14 +147,6 @@ $logo-margin-bottom-public: 34px; $comment-background: rgb(246, 246, 243) !default; $comment-color: rgb(170, 169, 156) !default; -// ************************************************************ -// Breadcrums -// ************************************************************ - -$breadcrum-color: rgb(112, 110, 77) !default; -$breadcrum-color-hover: rgb(67, 65, 46) !default; -$breadcrum-color-current: rgb(112, 110, 77) !default; - // ************************************************************ // Titles // ************************************************************ diff --git a/app/views/beyond_canvas/shared/_breadcrumbs.html.erb b/app/views/beyond_canvas/shared/_breadcrumbs.html.erb deleted file mode 100644 index 8c03fdbe..00000000 --- a/app/views/beyond_canvas/shared/_breadcrumbs.html.erb +++ /dev/null @@ -1,17 +0,0 @@ -<% if is_cockpit_app? && breadcrumb_trail.count.positive? %> - - - -<% end %> diff --git a/app/views/layouts/beyond_canvas/application.html.erb b/app/views/layouts/beyond_canvas/application.html.erb index bb4b742f..af6b9615 100644 --- a/app/views/layouts/beyond_canvas/application.html.erb +++ b/app/views/layouts/beyond_canvas/application.html.erb @@ -16,8 +16,6 @@
style="max-width: <%= yield :max_width %>"<% end %>> - <%= render 'beyond_canvas/shared/breadcrumbs' %> - <%= yield %> <%= debug(params) if debug_mode? %> diff --git a/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss b/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss index 1b78543a..fb44ce09 100644 --- a/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss +++ b/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss @@ -167,13 +167,6 @@ // $status-neutral-background: rgb(224,223,205); // $status-neutral-color: rgb(155,151,100); -// ************************************************************ -// Breadcrums -// ************************************************************ - -// $breadcrum-color: rgb(122, 118, 76); -// $breadcrum-color-current: rgb(61, 149, 137); - // ************************************************************ // Titles // ************************************************************ From 3ffd7bfdf6e95f5eb8b282dbcb34e19cbdd00052 Mon Sep 17 00:00:00 2001 From: kengallego Date: Thu, 26 Sep 2024 10:26:48 +0200 Subject: [PATCH 63/76] Remove debug mode --- app/assets/stylesheets/beyond_canvas/base.scss | 1 - .../stylesheets/beyond_canvas/components/_debug.scss | 10 ---------- .../beyond_canvas/application_controller.rb | 1 - .../concerns/beyond_canvas/locale_management.rb | 2 -- app/helpers/beyond_canvas/debug_helper.rb | 9 --------- app/helpers/beyond_canvas/locale_switch_helper.rb | 1 - app/views/layouts/beyond_canvas/application.html.erb | 2 -- app/views/layouts/beyond_canvas/blank.html.erb | 2 -- app/views/layouts/beyond_canvas/public.html.erb | 2 -- lib/beyond_canvas/configuration.rb | 3 +-- lib/beyond_canvas/engine.rb | 1 - .../install/templates/beyond_canvas.rb.erb | 6 ------ 12 files changed, 1 insertion(+), 39 deletions(-) delete mode 100644 app/assets/stylesheets/beyond_canvas/components/_debug.scss delete mode 100644 app/helpers/beyond_canvas/debug_helper.rb diff --git a/app/assets/stylesheets/beyond_canvas/base.scss b/app/assets/stylesheets/beyond_canvas/base.scss index 414752ab..53612f16 100644 --- a/app/assets/stylesheets/beyond_canvas/base.scss +++ b/app/assets/stylesheets/beyond_canvas/base.scss @@ -15,7 +15,6 @@ @import "components/buttons"; @import "components/cards"; @import "components/collapse"; -@import "components/debug"; @import "components/flash"; @import "components/forms"; @import "components/grids"; diff --git a/app/assets/stylesheets/beyond_canvas/components/_debug.scss b/app/assets/stylesheets/beyond_canvas/components/_debug.scss deleted file mode 100644 index 25a4aad8..00000000 --- a/app/assets/stylesheets/beyond_canvas/components/_debug.scss +++ /dev/null @@ -1,10 +0,0 @@ -.debug_dump { - margin: 50px auto 0; - background-color: #dedede; - max-width: 50%; - width: 100%; - border: 1px solid #666666; - border-radius: 4px; - padding: 20px; - box-sizing: border-box; -} diff --git a/app/controllers/beyond_canvas/application_controller.rb b/app/controllers/beyond_canvas/application_controller.rb index 1ac0203a..17bdd62c 100644 --- a/app/controllers/beyond_canvas/application_controller.rb +++ b/app/controllers/beyond_canvas/application_controller.rb @@ -6,7 +6,6 @@ class ApplicationController < ActionController::Base # :nodoc: include ::BeyondCanvas::StatusCodes include ::BeyondCanvas::AuthenticationsHelper - include ::BeyondCanvas::DebugHelper include ::BeyondCanvas::ControllerHelper end end diff --git a/app/controllers/concerns/beyond_canvas/locale_management.rb b/app/controllers/concerns/beyond_canvas/locale_management.rb index 40972129..90d9c295 100644 --- a/app/controllers/concerns/beyond_canvas/locale_management.rb +++ b/app/controllers/concerns/beyond_canvas/locale_management.rb @@ -22,8 +22,6 @@ def switch_locale(&action) end I18n.with_locale(cookies[:locale], &action) - - logger.debug "[BeyondCanvas] Locale set to: #{cookies[:locale]}".yellow if debug_mode? end # diff --git a/app/helpers/beyond_canvas/debug_helper.rb b/app/helpers/beyond_canvas/debug_helper.rb deleted file mode 100644 index 3b079060..00000000 --- a/app/helpers/beyond_canvas/debug_helper.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: true - -module BeyondCanvas - module DebugHelper # :nodoc: - def debug_mode? - Rails.env.development? && BeyondCanvas.configuration.debug_mode - end - end -end diff --git a/app/helpers/beyond_canvas/locale_switch_helper.rb b/app/helpers/beyond_canvas/locale_switch_helper.rb index 9aa73bd9..d83b1def 100644 --- a/app/helpers/beyond_canvas/locale_switch_helper.rb +++ b/app/helpers/beyond_canvas/locale_switch_helper.rb @@ -10,7 +10,6 @@ def translate_locale(locale) if I18n.exists?("locales.#{locale}") I18n.t("locales.#{locale}") else - logger.debug "[BeyondCanvas] Missing translation: #{I18n.locale}.locales.#{locale}".yellow if debug_mode? locale end end diff --git a/app/views/layouts/beyond_canvas/application.html.erb b/app/views/layouts/beyond_canvas/application.html.erb index af6b9615..e998815a 100644 --- a/app/views/layouts/beyond_canvas/application.html.erb +++ b/app/views/layouts/beyond_canvas/application.html.erb @@ -18,8 +18,6 @@ <%= yield %> - <%= debug(params) if debug_mode? %> -
diff --git a/app/views/layouts/beyond_canvas/blank.html.erb b/app/views/layouts/beyond_canvas/blank.html.erb index cfd06fe2..dd2564a3 100644 --- a/app/views/layouts/beyond_canvas/blank.html.erb +++ b/app/views/layouts/beyond_canvas/blank.html.erb @@ -13,8 +13,6 @@
- <%= debug(params) if debug_mode? %> - diff --git a/app/views/layouts/beyond_canvas/public.html.erb b/app/views/layouts/beyond_canvas/public.html.erb index aef61f1f..65463a5a 100644 --- a/app/views/layouts/beyond_canvas/public.html.erb +++ b/app/views/layouts/beyond_canvas/public.html.erb @@ -18,8 +18,6 @@ - <%= debug(params) if debug_mode? %> - diff --git a/lib/beyond_canvas/configuration.rb b/lib/beyond_canvas/configuration.rb index 68f082df..bf31aa29 100644 --- a/lib/beyond_canvas/configuration.rb +++ b/lib/beyond_canvas/configuration.rb @@ -3,7 +3,7 @@ module BeyondCanvas class Configuration # :nodoc: attr_accessor :site_title, :site_logo, :favicon, :skip_webpacker, :encryption_key, :namespace, :cockpit_app, - :open_app_url, :preinstalled, :debug_mode, :webhook_site_url, :email_logo, :client_credentials, + :open_app_url, :preinstalled, :webhook_site_url, :email_logo, :client_credentials, :custom_styles, :model_errors_joined_by include AssetRegistration @@ -12,7 +12,6 @@ class Configuration # :nodoc: def initialize @cockpit_app = false - @debug_mode = false @client_credentials = false @encryption_key = nil @favicon = nil diff --git a/lib/beyond_canvas/engine.rb b/lib/beyond_canvas/engine.rb index b3766ed3..b79e879f 100644 --- a/lib/beyond_canvas/engine.rb +++ b/lib/beyond_canvas/engine.rb @@ -38,7 +38,6 @@ class Engine < ::Rails::Engine # :nodoc: include ::BeyondCanvas::CustomStyles include ::BeyondCanvas::StatusCodes include ::BeyondCanvas::AuthenticationsHelper - include ::BeyondCanvas::DebugHelper include ::BeyondCanvas::ControllerHelper ::ActionController::Base.helper BeyondCanvas::Engine.helpers diff --git a/lib/generators/beyond_canvas/install/templates/beyond_canvas.rb.erb b/lib/generators/beyond_canvas/install/templates/beyond_canvas.rb.erb index 2e4a8627..a524c320 100644 --- a/lib/generators/beyond_canvas/install/templates/beyond_canvas.rb.erb +++ b/lib/generators/beyond_canvas/install/templates/beyond_canvas.rb.erb @@ -30,12 +30,6 @@ BeyondCanvas.setup do |config| # Set how to display errors when are concatenated # config.model_errors_joined_by = ', ' - # Set if you want to enable the available debug mode Beyond Canvas offers. - # This options displays a parameter debug as well as some custom Beyond Canvas - # logs. - # - # config.debug_mode = false - # Set an optional image to be send as email. Accepts any # string supported by image_tag's source parameter. Overrides # :email_logo. From ed4321ec04ab978c382d3b41ef6bd5f2780214e7 Mon Sep 17 00:00:00 2001 From: kengallego Date: Thu, 26 Sep 2024 11:02:18 +0200 Subject: [PATCH 64/76] Remove card component --- .../stylesheets/beyond_canvas/base.scss | 1 - .../beyond_canvas/components/_cards.scss | 42 ------------------- .../settings/_base_variables.scss | 10 ----- .../settings/_constant_variables.scss | 8 ---- .../settings/_custom_variables.scss | 8 ---- .../beyond_canvas_custom_styles.scss | 9 ---- public/styles.css | 8 ---- 7 files changed, 86 deletions(-) delete mode 100644 app/assets/stylesheets/beyond_canvas/components/_cards.scss diff --git a/app/assets/stylesheets/beyond_canvas/base.scss b/app/assets/stylesheets/beyond_canvas/base.scss index 53612f16..5cb4eebf 100644 --- a/app/assets/stylesheets/beyond_canvas/base.scss +++ b/app/assets/stylesheets/beyond_canvas/base.scss @@ -13,7 +13,6 @@ @import "components/actions"; @import "components/attachments"; @import "components/buttons"; -@import "components/cards"; @import "components/collapse"; @import "components/flash"; @import "components/forms"; diff --git a/app/assets/stylesheets/beyond_canvas/components/_cards.scss b/app/assets/stylesheets/beyond_canvas/components/_cards.scss deleted file mode 100644 index be9729af..00000000 --- a/app/assets/stylesheets/beyond_canvas/components/_cards.scss +++ /dev/null @@ -1,42 +0,0 @@ -%card { - background: var(--card-background); - border-radius: var(--card-borderRadius); - box-shadow: var(--card-shadow); -} - -%card_padding { - @include padding(var(--card-padding)); - - box-sizing: border-box; -} - -.card { - @extend %card; - - &:not(:last-child) { - margin-bottom: 30px; - } - - &--relative { - position: relative; - } - - &--padding { - @extend %card_padding; - } - - &__separator { - @include margin(35px null); - - border-bottom: var(--card-divider-border); - left: calc(-1 * var(--card-padding)); - position: relative; - width: calc(100% + 2 * #{var(--card-padding)}); - } - - &__headline { - color: var(--card-headline); - font-size: 20px; - margin-bottom: 20px; - } -} diff --git a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss index fd89f29d..9d8608a8 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss @@ -19,16 +19,6 @@ --surfaceHover-color: #b3ecff; /* /* --------------------------------------------------- - /* Card - /* --------------------------------------------------- */ - --card-headline: #a3a3a3; - --card-background: white; - --card-shadow: 0 2px 7px rgba(0, 0, 0, 0.2); - --card-divider-border: 1px solid #e6e6e6; - --card-borderRadius: 3px; - --card-padding: 40px; - /* - /* --------------------------------------------------- /* Action bar /* --------------------------------------------------- */ --workspace-toolbar-background: white; diff --git a/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss index d2116cd0..fdfbb7b3 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss @@ -74,14 +74,6 @@ $button-box-shadow: true !default; $button-font-weight: 700; $button-padding: 6px 12px 7px; -// ************************************************************ -// Cards -// ************************************************************ - -$card-padding: 40px; -$card-margin: 30px; -$card-separator-spacing: 40px; - // ************************************************************ // Containers // ************************************************************ diff --git a/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss index ad04b3e7..370075ce 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss @@ -74,14 +74,6 @@ $button-box-shadow: true !default; $button-font-weight: 700; $button-padding: 6px 12px 7px; -// ************************************************************ -// Cards -// ************************************************************ - -$card-padding: 40px; -$card-margin: 30px; -$card-separator-spacing: 40px; - // ************************************************************ // Containers // ************************************************************ diff --git a/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss b/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss index fb44ce09..d01810ea 100644 --- a/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss +++ b/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss @@ -54,15 +54,6 @@ // $button-border-radius: 3px; // $button-box-shadow: true; -// ************************************************************ -// Cards -// ************************************************************ - -// $card-border-radius: 3px; -// $card-box-shadow: 0 2px 7px rgba($black, 0.2); -// $card-separator-color: rgb(222, 222, 222); -// $card-title-color: rgb(247, 133, 96); - // ************************************************************ // Containers // ************************************************************ diff --git a/public/styles.css b/public/styles.css index 49e4ebb0..a6fa341e 100644 --- a/public/styles.css +++ b/public/styles.css @@ -16,14 +16,6 @@ body { padding: 25px 25px 100px 25px; } -.card { - background: white; - border-radius: 3px; - box-shadow: 0 2px 7px rgb(0 0 0 / 20%); - padding: 40px; - position: relative; -} - .wrapper { display: flex; justify-content: center; From ee8b5c44246d01fd4835886619ffea48808bdc0d Mon Sep 17 00:00:00 2001 From: kengallego Date: Thu, 26 Sep 2024 12:41:07 +0200 Subject: [PATCH 65/76] Remove flash and notifications --- app/assets/images/icons/flash_checkbox.svg | 1 - app/assets/images/icons/flash_close.svg | 1 - app/assets/images/icons/flash_error.svg | 1 - app/assets/images/icons/flash_info.svg | 1 - app/assets/images/icons/flash_warning.svg | 1 - app/assets/javascripts/beyond_canvas/base.js | 29 -------- .../stylesheets/beyond_canvas/base.scss | 2 - .../beyond_canvas/components/_flash.scss | 67 ------------------- .../beyond_canvas/components/_notices.scss | 57 ---------------- .../settings/_base_variables.scss | 12 ---- .../beyond_canvas/application_helper.rb | 38 ----------- app/javascript/beyond_canvas/base.js | 1 - .../beyond_canvas/initializers/flash.js | 48 ------------- .../beyond_canvas/shared/_flash.html.erb | 27 -------- .../beyond_canvas/application.html.erb | 1 - .../layouts/beyond_canvas/public.html.erb | 1 - .../beyond_canvas_custom_styles.scss | 25 ------- 17 files changed, 313 deletions(-) delete mode 100644 app/assets/images/icons/flash_checkbox.svg delete mode 100644 app/assets/images/icons/flash_close.svg delete mode 100644 app/assets/images/icons/flash_error.svg delete mode 100644 app/assets/images/icons/flash_info.svg delete mode 100644 app/assets/images/icons/flash_warning.svg delete mode 100644 app/assets/stylesheets/beyond_canvas/components/_flash.scss delete mode 100644 app/assets/stylesheets/beyond_canvas/components/_notices.scss delete mode 100644 app/javascript/beyond_canvas/initializers/flash.js delete mode 100644 app/views/beyond_canvas/shared/_flash.html.erb diff --git a/app/assets/images/icons/flash_checkbox.svg b/app/assets/images/icons/flash_checkbox.svg deleted file mode 100644 index 8ae37f57..00000000 --- a/app/assets/images/icons/flash_checkbox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/app/assets/images/icons/flash_close.svg b/app/assets/images/icons/flash_close.svg deleted file mode 100644 index 280c4d05..00000000 --- a/app/assets/images/icons/flash_close.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/app/assets/images/icons/flash_error.svg b/app/assets/images/icons/flash_error.svg deleted file mode 100644 index d452dac9..00000000 --- a/app/assets/images/icons/flash_error.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/app/assets/images/icons/flash_info.svg b/app/assets/images/icons/flash_info.svg deleted file mode 100644 index fd42b952..00000000 --- a/app/assets/images/icons/flash_info.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/app/assets/images/icons/flash_warning.svg b/app/assets/images/icons/flash_warning.svg deleted file mode 100644 index c9bcf20a..00000000 --- a/app/assets/images/icons/flash_warning.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/app/assets/javascripts/beyond_canvas/base.js b/app/assets/javascripts/beyond_canvas/base.js index 09f4bb77..abfc0ba7 100644 --- a/app/assets/javascripts/beyond_canvas/base.js +++ b/app/assets/javascripts/beyond_canvas/base.js @@ -120,35 +120,6 @@ $(this).trigger('bc.collapse.closed'); } }); - (function($) { - var onDOMReady = function onDOMReady() { - $('.flash').each(function() { - $(this).css('right', -$(this).width() + 'px'); - }); - setTimeout(function() { - $('.flash').addClass('flash--shown'); - }, 100); - }; - $(document).on('click', '.flash__close', function() { - $.closeAlert(); - }); - $(document).on('ready page:load turbolinks:load bc.flash.shown', onDOMReady); - })(jQuery); - $.extend({ - showFlash: function showFlash(status, message) { - var flash = "\n
\n
\n \n
\n
\n ' + message + '\n
\n
\n \n
\n
"; - $(document).trigger('bc.flash.show'); - $('#flash').html(flash); - $(document).trigger('bc.flash.shown'); - }, - closeAlert: function closeAlert() { - $(document).trigger('bc.flash.hide'); - $('.flash').removeClass('flash--shown').delay(700).queue(function() { - $(this).remove(); - }); - $(document).trigger('bc.flash.hidden'); - } - }); (function($) { var onDOMReady = function onDOMReady() { updateInputLabel(); diff --git a/app/assets/stylesheets/beyond_canvas/base.scss b/app/assets/stylesheets/beyond_canvas/base.scss index 5cb4eebf..7a6b2235 100644 --- a/app/assets/stylesheets/beyond_canvas/base.scss +++ b/app/assets/stylesheets/beyond_canvas/base.scss @@ -14,7 +14,6 @@ @import "components/attachments"; @import "components/buttons"; @import "components/collapse"; -@import "components/flash"; @import "components/forms"; @import "components/grids"; @import "components/inputs"; @@ -25,7 +24,6 @@ @import "components/markdown"; @import "components/menu"; @import "components/modals"; -@import "components/notices"; @import "components/relative"; @import "components/select2"; @import "components/sidebar"; diff --git a/app/assets/stylesheets/beyond_canvas/components/_flash.scss b/app/assets/stylesheets/beyond_canvas/components/_flash.scss deleted file mode 100644 index f4b6291b..00000000 --- a/app/assets/stylesheets/beyond_canvas/components/_flash.scss +++ /dev/null @@ -1,67 +0,0 @@ -.flash { - @include position(fixed, 70px null null null); - - background-color: var(--notification-background); - border-radius: var(--notification-borderRadius); - box-shadow: var(--notification-boxShadow); - display: flex; - overflow: hidden; - transition: 0.7s linear; - z-index: 999999; - - &--shown { - // sass-lint:disable no-important - right: 25px !important; - // sass-lint:enable no-important - transition: 0.4s linear; - } - - &__icon { - @include padding(11px 8px); - - display: flex; - - > svg { - @include size(18px); - - fill: var(--notification-background); - } - - &--success, - &--notice { - background-color: var(--notification-success); - } - - &--info { - background-color: var(--notification-info); - } - - &--warning { - background-color: var(--notification-warning); - } - - &--error, - &--alert { - background-color: var(--notification-danger); - } - } - - &__message { - @include padding(10px 15px); - - box-sizing: border-box; - color: var(--notification-text); - } - - &__close { - @include padding(10px 15px); - - cursor: pointer; - - > svg { - @include size(8px); - - fill: var(--notification-text); - } - } -} diff --git a/app/assets/stylesheets/beyond_canvas/components/_notices.scss b/app/assets/stylesheets/beyond_canvas/components/_notices.scss deleted file mode 100644 index d30fbbf4..00000000 --- a/app/assets/stylesheets/beyond_canvas/components/_notices.scss +++ /dev/null @@ -1,57 +0,0 @@ -.notice { - border-radius: var(--notification-borderRadius); - border: 1px solid; - box-sizing: border-box; - display: flex; - - &--success { - border-color: var(--notification-success); - - .notice__icon { - background-color: var(--notification-success); - } - } - - &--info { - border-color: var(--notification-info); - - .notice__icon { - background-color: var(--notification-info); - } - } - - &--warning { - border-color: var(--notification-warning); - - .notice__icon { - background-color: var(--notification-warning); - } - } - - &--error { - border-color: var(--notification-danger); - - .notice__icon { - background-color: var(--notification-danger); - } - } - - &__icon { - @include padding(10px 8px); - - display: flex; - - > svg { - @include size(18px); - - fill: var(--notification-background); - } - } - - &__content { - @include padding(8px 14px); - - color: var(--notification-text); - display: block; - } -} diff --git a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss index 9d8608a8..7bb8a725 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss @@ -26,18 +26,6 @@ --header-bar-height: 73px; /* /* --------------------------------------------------- - /* Notification and Toast messages - /* --------------------------------------------------- */ - --notification-background: white; - --notification-text: gray; - --notification-borderRadius: 4px; - --notification-boxShadow: 0 1px 2px 0 rgba(0, 0, 0, 0.2); - --notification-success: #97c344; - --notification-info: #999999; - --notification-warning: #f3b547; - --notification-danger: #da3c3c; - /* - /* --------------------------------------------------- /* Modal /* --------------------------------------------------- */ --modal-overlay-background: rgba(0, 0, 0, 0.75); diff --git a/app/helpers/beyond_canvas/application_helper.rb b/app/helpers/beyond_canvas/application_helper.rb index e632ca57..b26dd3b8 100644 --- a/app/helpers/beyond_canvas/application_helper.rb +++ b/app/helpers/beyond_canvas/application_helper.rb @@ -8,12 +8,6 @@ def full_title(page_title = '') page_title.empty? ? base_title : "#{page_title} | #{base_title}" end - %i[success info warning error].each do |method| - define_method :"notice_#{method}" do |name = nil, html_options = nil, &block| - notice_render(method, name, html_options, &block) - end - end - def logo_image_tag(logo_path, options = {}) html_options = { class: 'logo', alt: 'logo' }.merge options @@ -80,37 +74,5 @@ def step_list(title = nil, steps: []) def unique_id(attribute) "#{attribute}_#{DateTime.now.strftime('%Q') + rand(10_000).to_s}" end - - def get_flash_icon(key) - case key - when 'success', 'notice' - inline_svg_tag 'icons/flash_checkbox.svg' - when 'info' - inline_svg_tag 'icons/flash_info.svg' - when 'warning' - inline_svg_tag 'icons/flash_warning.svg' - when 'error', 'alert' - inline_svg_tag 'icons/flash_error.svg' - else - inline_svg_tag 'icons/flash_info.svg' - end - end - - def notice_render(method, name = nil, html_options = nil, &block) - if block_given? - html_options = name - name = block - end - - html_options ||= {} - - html_options.merge!(class: "notice notice--#{method}") { |_key, old_val, new_val| [new_val, old_val].join(' ') } - - content_tag('div', html_options) do - content_tag('div', class: 'notice__icon') do - get_flash_icon(method.to_s) - end + content_tag('span', block_given? ? capture(&name) : name, class: 'notice__content') - end - end end end diff --git a/app/javascript/beyond_canvas/base.js b/app/javascript/beyond_canvas/base.js index fa3ffcdd..7e16e876 100644 --- a/app/javascript/beyond_canvas/base.js +++ b/app/javascript/beyond_canvas/base.js @@ -1,6 +1,5 @@ import 'jquery'; import './initializers/buttons'; import './initializers/collapse'; -import './initializers/flash'; import './initializers/inputs'; import './initializers/modals'; diff --git a/app/javascript/beyond_canvas/initializers/flash.js b/app/javascript/beyond_canvas/initializers/flash.js deleted file mode 100644 index 5391ff5d..00000000 --- a/app/javascript/beyond_canvas/initializers/flash.js +++ /dev/null @@ -1,48 +0,0 @@ -(function ($) { - const onDOMReady = function () { - $('.flash').each(function () { - $(this).css('right', -$(this).width() + 'px'); - }); - - setTimeout(function () { - $('.flash').addClass('flash--shown'); - }, 100); - }; - - $(document).on('click', '.flash__close', function () { - $.closeAlert(); - }); - - $(document).on('ready page:load turbolinks:load bc.flash.shown', onDOMReady); -})(jQuery); - -$.extend({ - showFlash: function(status, message) { - const flash = ` -
-
- -
-
- ${message} -
-
- -
-
`; - - $(document).trigger('bc.flash.show'); - $('#flash').html(flash); - $(document).trigger('bc.flash.shown'); - }, - closeAlert: function() { - $(document).trigger('bc.flash.hide'); - $('.flash') - .removeClass('flash--shown') - .delay(700) - .queue(function () { - $(this).remove(); - }); - $(document).trigger('bc.flash.hidden'); - } -}); diff --git a/app/views/beyond_canvas/shared/_flash.html.erb b/app/views/beyond_canvas/shared/_flash.html.erb deleted file mode 100644 index 3b5f5c2d..00000000 --- a/app/views/beyond_canvas/shared/_flash.html.erb +++ /dev/null @@ -1,27 +0,0 @@ -
- - <% flash.each do |key, value| %> - - <% unless value.blank? %> - -
- -
- <%= get_flash_icon(key) %> -
- -
- <%= value %> -
- -
- <%= inline_svg_tag 'icons/flash_close.svg' %> -
- -
- - <% end %> - - <% end %> - -
diff --git a/app/views/layouts/beyond_canvas/application.html.erb b/app/views/layouts/beyond_canvas/application.html.erb index e998815a..f77ae854 100644 --- a/app/views/layouts/beyond_canvas/application.html.erb +++ b/app/views/layouts/beyond_canvas/application.html.erb @@ -9,7 +9,6 @@
--<%= params[:action] %>"> - <%= render 'beyond_canvas/shared/flash' %> <%= render 'beyond_canvas/shared/locales' %> <%= render 'beyond_canvas/shared/menu' %> <%= render 'beyond_canvas/shared/action_bar' %> diff --git a/app/views/layouts/beyond_canvas/public.html.erb b/app/views/layouts/beyond_canvas/public.html.erb index 65463a5a..d9774aed 100644 --- a/app/views/layouts/beyond_canvas/public.html.erb +++ b/app/views/layouts/beyond_canvas/public.html.erb @@ -7,7 +7,6 @@
--<%= params[:action] %>"> - <%= render 'beyond_canvas/shared/flash' %> <%= render 'beyond_canvas/shared/locales' %>
diff --git a/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss b/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss index d01810ea..6b79fe7f 100644 --- a/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss +++ b/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss @@ -106,19 +106,6 @@ // $logo-margin-top-public: 0; // $logo-margin-bottom-public: 34px; -// ************************************************************ -// Flash -// ************************************************************ - -// $flash-success: rgb(123, 170, 81); -// $flash-notice: rgb(123, 170, 81); -// $flash-info: rgb(153, 153, 153); -// $flash-warning: rgb(243, 181, 71); -// $flash-error: rgb(218, 60, 60); -// $flash-border-radius: 4px; -// $flash-box-shadow: 0 1px 2px 0 rgba($black, 0.2); -// $flash-color: rgb(128, 128, 128); - // ************************************************************ // Tables // ************************************************************ @@ -133,18 +120,6 @@ // $comment-background: rgb(246, 246, 243); // $comment-color: rgb(170, 169, 156); -// ************************************************************ -// Notices -// ************************************************************ - -// $notice-success-background: rgb(123, 170, 81); -// $notice-notice-background: rgb(123, 170, 81); -// $notice-info-background: rgb(153, 153, 153); -// $notice-warning-background: rgb(243, 181, 71); -// $notice-error-background: rgb(218, 60, 60); -// $notice-border-radius: 4px; -// $notice-color: rgb(153, 153, 153); - // ************************************************************ // Status // ************************************************************ From 0d2512870fb9fd41d0ed951fd775c3a19fb176cc Mon Sep 17 00:00:00 2001 From: kengallego Date: Thu, 26 Sep 2024 13:17:18 +0200 Subject: [PATCH 66/76] Remove buttons and links --- app/assets/images/icons/external_link.svg | 1 - .../stylesheets/beyond_canvas/base.scss | 2 - .../beyond_canvas/components/_buttons.scss | 106 ---------------- .../beyond_canvas/components/_links.scss | 57 --------- .../settings/_base_variables.scss | 37 ------ .../settings/_constant_variables.scss | 31 ----- .../settings/_custom_variables.scss | 31 ----- app/javascript/beyond_canvas/base.js | 1 - .../beyond_canvas/initializers/buttons.js | 120 ------------------ .../beyond_canvas_custom_styles.scss | 28 ---- 10 files changed, 414 deletions(-) delete mode 100644 app/assets/images/icons/external_link.svg delete mode 100644 app/assets/stylesheets/beyond_canvas/components/_buttons.scss delete mode 100644 app/assets/stylesheets/beyond_canvas/components/_links.scss delete mode 100644 app/javascript/beyond_canvas/initializers/buttons.js diff --git a/app/assets/images/icons/external_link.svg b/app/assets/images/icons/external_link.svg deleted file mode 100644 index cefd23ec..00000000 --- a/app/assets/images/icons/external_link.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/app/assets/stylesheets/beyond_canvas/base.scss b/app/assets/stylesheets/beyond_canvas/base.scss index 7a6b2235..4ad70620 100644 --- a/app/assets/stylesheets/beyond_canvas/base.scss +++ b/app/assets/stylesheets/beyond_canvas/base.scss @@ -12,13 +12,11 @@ @import "components/action_bar"; @import "components/actions"; @import "components/attachments"; -@import "components/buttons"; @import "components/collapse"; @import "components/forms"; @import "components/grids"; @import "components/inputs"; @import "components/layouts"; -@import "components/links"; @import "components/main"; @import "components/margins"; @import "components/markdown"; diff --git a/app/assets/stylesheets/beyond_canvas/components/_buttons.scss b/app/assets/stylesheets/beyond_canvas/components/_buttons.scss deleted file mode 100644 index 821eb5e1..00000000 --- a/app/assets/stylesheets/beyond_canvas/components/_buttons.scss +++ /dev/null @@ -1,106 +0,0 @@ -%button { - align-items: center; - border-radius: var(--button-borderRadius); - border-width: 0; - cursor: pointer; - display: inline-flex; - font-weight: 700; - justify-content: flex-end; - line-height: 1; - outline: none; - padding: var(--button-horizontal-padding) 12px; - transition: $main-transition; - white-space: nowrap; -} - -%button_disabled { - border-color: var(--button-disabled-background); - background-color: var(--button-disabled-background); - pointer-events: none; - color: var(--button-disabled-text); - text-shadow: var(--button-disabled-textShadow); - border-bottom-color: var(--button-disabled-borderBottom-color); -} - -@mixin button-border-bottom($border-bottom-width, $border-bottom-color) { - border-bottom: var(#{$border-bottom-width}) solid var(#{$border-bottom-color}); -} - -@mixin button-solid($background, $background-hover, $color) { - @include spinner($color); - - background-color: var(#{$background}); - color: var(#{$color}); - - &:hover { - background-color: var(#{$background-hover}); - } -} - -@mixin button-transparent($background, $background-hover, $color) { - @include spinner($color); - - background-color: var(#{$background}); - color: var(#{$color}); - padding: calc(var(--button-horizontal-padding) - var(--button-outline-border-width)) 12px var(--button-horizontal-padding); - border: var(--button-outline-border-width) solid var(--button-outline-border-color); - - &:hover { - background-color: var(#{$background-hover}); - } -} - -@mixin spinner($background) { - .spinner { - display: none; - - > div { - background-color: var(#{$background}); - } - } -} - -input[type=file][disabled] ~ .button__transparent--primary { - @extend %button_disabled; -} - -[class^='button__'] { - &:disabled, - &[disabled] { - @extend %button_disabled; - } -} - -.button { - &__solid { - &--primary { - @extend %button; - - @include button-solid(--button-primary-background, --button-primary-background-hover, --button-text); - @include button-border-bottom(--button-borderBottom-width, --button-primary-borderBottom-color); - } - - &--secondary { - @extend %button; - - @include button-solid(--button-default-background, --button-default-background-hover, --button-text); - @include button-border-bottom(--button-borderBottom-width, --button-default-borderBottom-color); - } - - &--danger { - @extend %button; - - @include button-solid(--button-danger-background, --button-danger-background-hover, --button-text); - @include button-border-bottom(--button-borderBottom-width, --button-danger-borderBottom-color); - } - } - - &__transparent { - &--primary { - @extend %button; - - @include button-transparent(--button-outline-background, --button-outline-background-hover, --button-outline-text); - @include button-border-bottom(--button-outline-borderBottom-width, --button-outline-border-color); - } - } -} diff --git a/app/assets/stylesheets/beyond_canvas/components/_links.scss b/app/assets/stylesheets/beyond_canvas/components/_links.scss deleted file mode 100644 index bfc9039c..00000000 --- a/app/assets/stylesheets/beyond_canvas/components/_links.scss +++ /dev/null @@ -1,57 +0,0 @@ -%link_disabled { - @include color-darken($link-disabled-color, 10%); - - cursor: not-allowed; - pointer-events: none; -} - -@mixin link($color, $color-hover) { - color: var(#{$color}); - line-height: 1.2; - background-color: transparent; - border: none; - padding: 0; - - &:hover { - color: var(#{$color-hover}); - - svg { - fill: var(#{$color-hover}); - } - } - - svg { - fill: var(#{$color}); - - &:first-child { - margin-right: 4px; - } - - &:last-child { - margin-left: 6px; - } - } -} - -.link { - &--primary { - @include link(--primaryLink-color, --primaryLink-hover-color); - } - - &--secondary { - @include link(--defaultLink-color, --defaultLink-hover-color); - } - - &--danger { - @include link(--button-danger-background, --button-danger-background-hover); - } - - &--primary, - &--secondary, - &--danger { - &:disabled, - &[disabled] { - @extend %link_disabled; - } - } -} diff --git a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss index 7bb8a725..ee22cec3 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss @@ -73,43 +73,6 @@ --outline-status-text: #808080; /* /* --------------------------------------------------- - /* Link - /* --------------------------------------------------- */ - --primaryLink-color: DeepSkyBlue; - --primaryLink-hover-color: #0099cc; - --defaultLink-color: #787878; - --defaultLink-hover-color: #5e5e5e; - /* - /* --------------------------------------------------- - /* Buttons - /* --------------------------------------------------- */ - --button-text: white; - --button-borderRadius: 4px; - --button-borderBottom-width: 2px; - --button-horizontal-padding: calc(8px - 2px / 2); - --button-default-background: #999999; - --button-default-background-hover: #7f7f7f; - --button-default-borderBottom-color: #7f7f7f; - --button-primary-background: Orange; - --button-primary-background-hover: #cc8400; - --button-primary-borderBottom-color: #cc8400; - --button-danger-background: #da3c3c; - --button-danger-background-hover: #ae3535; - --button-danger-borderBottom-color: #ae3535; - --button-disabled-background: #d0d0d0; - --button-disabled-borderBottom-color: #aaaaaa; - --button-disabled-text: #909090; - --button-disabled-textShadow: 1px 1px 0 #ffffff; - --button-outline-border-color: Orange; - --button-outline-border-width: 1px; - --button-outline-borderBottom-width: 2px; - --button-outline-background: transparent; - --button-outline-background-hover: #ffedcc; - --button-outline-text: #eb9800; - --button-link-default-text: #787878; - --button-link-primary-text: DeepSkyBlue; - /* - /* --------------------------------------------------- /* RichTextEditor /* --------------------------------------------------- */ --textEditor-text: #3e3e3e; diff --git a/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss index fdfbb7b3..213aa371 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss @@ -43,37 +43,6 @@ $main-font-size: 14px; $headline-line-height: 1; -// ************************************************************ -// Links -// ************************************************************ - -$link-primary-color: darken($palette-primary, 10%) !default; -$link-secondary-color: darken($palette-cancel, 10%) !default; -$link-danger-color: darken($palette-danger, 10%) !default; -$link-disabled-color: rgb(208,208,208) !default; - -// ************************************************************ -// Buttons -// ************************************************************ - -$button-primary-background: $palette-primary !default; -$button-primary-color: $white !default; - -$button-secondary-background: $palette-cancel !default; -$button-secondary-color: $white !default; - -$button-danger-background: $palette-danger !default; -$button-danger-color: $white !default; - -$button-disabled-background: rgb(208,208,208) !default; -$button-disabled-color: rgb(144,144,144) !default; -$button-disabled-text-shadow: 1px 1px 0 $white !default; - -$button-border-radius: 3px !default; -$button-box-shadow: true !default; -$button-font-weight: 700; -$button-padding: 6px 12px 7px; - // ************************************************************ // Containers // ************************************************************ diff --git a/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss index 370075ce..59ffa7a8 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss @@ -43,37 +43,6 @@ $main-font-size: 14px; $headline-line-height: 1; -// ************************************************************ -// Links -// ************************************************************ - -$link-primary-color: darken($palette-primary, 10%) !default; -$link-secondary-color: darken($palette-cancel, 10%) !default; -$link-danger-color: darken($palette-danger, 10%) !default; -$link-disabled-color: rgb(208,208,208) !default; - -// ************************************************************ -// Buttons -// ************************************************************ - -$button-primary-background: $palette-primary !default; -$button-primary-color: $white !default; - -$button-secondary-background: $palette-cancel !default; -$button-secondary-color: $white !default; - -$button-danger-background: $palette-danger !default; -$button-danger-color: $white !default; - -$button-disabled-background: rgb(208,208,208) !default; -$button-disabled-color: rgb(144,144,144) !default; -$button-disabled-text-shadow: 1px 1px 0 $white !default; - -$button-border-radius: 3px !default; -$button-box-shadow: true !default; -$button-font-weight: 700; -$button-padding: 6px 12px 7px; - // ************************************************************ // Containers // ************************************************************ diff --git a/app/javascript/beyond_canvas/base.js b/app/javascript/beyond_canvas/base.js index 7e16e876..302b8e4c 100644 --- a/app/javascript/beyond_canvas/base.js +++ b/app/javascript/beyond_canvas/base.js @@ -1,5 +1,4 @@ import 'jquery'; -import './initializers/buttons'; import './initializers/collapse'; import './initializers/inputs'; import './initializers/modals'; diff --git a/app/javascript/beyond_canvas/initializers/buttons.js b/app/javascript/beyond_canvas/initializers/buttons.js deleted file mode 100644 index 4eef6f70..00000000 --- a/app/javascript/beyond_canvas/initializers/buttons.js +++ /dev/null @@ -1,120 +0,0 @@ -const SPINNER_ANIMATION_TIMEOUT = 125; -const BUTTON_SELECTORS = '[class^="button"]'; - -(function ($) { - const onDOMReady = function () { - const inputs = $('input, textarea, select').not( - ':input[type=button], :input[type=submit], :input[type=reset]' - ); - - inputs.each(function () { - var input = $(this); - - input.bind('invalid', function (e) { - if ($(input).is(':hidden')) { - e.preventDefault(); - } - $.restoreActionElements(); - }); - }); - - $(BUTTON_SELECTORS).each(function () { - $(this).buildButton(); - }); - }; - - $(document).on('confirm:complete', function () { - $.restoreActionElements(); - }); - - $(document).on('click', BUTTON_SELECTORS, function (e) { - var button = $(this); - - if(e.target.attributes.getNamedItem('target')?.value === '_blank') return; - - $.disableActionElements(); - - if (!button.hasClass('button--no-spinner')) { - $(this).showSpinner(); - } - }); - - $(document).on('ready page:load turbolinks:load', onDOMReady); - - $(document).on('beforeunload turbolinks:before-visit', function () { - $.restoreActionElements(); - }); -})(jQuery); - -$.extend({ - restoreActionElements: function () { - setTimeout(function () { - // Hide spinners - $(BUTTON_SELECTORS).each(function (_, button) { - setTimeout(function () { - // Hide the spinner - $(button).find('.spinner').hide(); - // Adjust the width of the button - $(button).width($(button).data('oldWidth')); - }, SPINNER_ANIMATION_TIMEOUT); - }); - - // Enable action elements - $('a, input[type="submit"], input[type="button"], input[type="reset"], button').each(function () { - $(this).removeClass('actions--disabled'); - }); - }, 100); - }, - disableActionElements: function () { - $('a, input[type="submit"], input[type="button"], input[type="reset"], button').each(function () { - $(this).addClass('actions--disabled'); - }); - } -}); - -$.fn.extend({ - buildButton: function() { - var button = $(this); - - if (button.is('[class^=button]')) { - if (!button.hasClass('button--no-spinner')) { - // Add width attribute and save old width - button.width(button.width()); - button.data('oldWidth', button.width()); - - // Add the spinner - if (button.find('.spinner').length == 0) { - button.prepend(` -
-
-
-
-
`); - } - } - - // Bind ajax:success and ajax:error to the form the button belongs to - button - .closest('form') - .on('ajax:success', function () { - $.restoreActionElements(); - }) - .on('ajax:error', function () { - $.restoreActionElements(); - }); - } - }, - showSpinner: function () { - var button = $(this); - - // Adjust the width of the button - button.width( - button.width() + $('.spinner').outerWidth(true) - ); - - // Show the spinner - setTimeout(function () { - button.find('.spinner').css('display', 'inline-flex'); - }, SPINNER_ANIMATION_TIMEOUT); - } -}); diff --git a/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss b/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss index 6b79fe7f..ec59ab09 100644 --- a/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss +++ b/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss @@ -26,34 +26,6 @@ // $headline-color: rgb(122, 118, 76); -// ************************************************************ -// Links -// ************************************************************ - -// $link-primary-color: darken($palette-primary, 10%); -// $link-secondary-color: darken($palette-cancel, 10%); -// $link-danger-color: darken($palette-danger, 10%); - -// ************************************************************ -// Buttons -// ************************************************************ - -// $button-primary-background: $palette-primary; -// $button-primary-color: $white; - -// $button-secondary-background: $palette-cancel; -// $button-secondary-color: $white; - -// $button-danger-background: $palette-danger; -// $button-danger-color: $white; - -// $button-disabled-background: rgb(208,208,208); -// $button-disabled-color: rgb(144,144,144); -// $button-disabled-text-shadow: 1px 1px 0 $white; - -// $button-border-radius: 3px; -// $button-box-shadow: true; - // ************************************************************ // Containers // ************************************************************ From 4fe99366c9f0b88a12f8a134254161f819a26900 Mon Sep 17 00:00:00 2001 From: kengallego Date: Thu, 26 Sep 2024 13:36:12 +0200 Subject: [PATCH 67/76] Remove form fields --- app/assets/images/icons/checkbox_checked.svg | 1 - .../images/icons/checkbox_unchecked.svg | 1 - .../images/icons/radiobutton_checked.svg | 1 - .../images/icons/radiobutton_unchecked.svg | 1 - app/assets/images/icons/toggle.svg | 1 - app/assets/images/icons/toggle_checked.svg | 3 - app/assets/images/icons/toggle_unchecked.svg | 3 - .../stylesheets/beyond_canvas/base.scss | 3 - .../beyond_canvas/components/_forms.scss | 61 ---- .../beyond_canvas/components/_inputs.scss | 309 ------------------ .../beyond_canvas/components/_texts.scss | 15 - .../settings/_base_variables.scss | 32 -- .../settings/_constant_variables.scss | 39 --- .../settings/_custom_variables.scss | 39 --- .../beyond_canvas/form_builder.rb | 200 ------------ app/helpers/beyond_canvas/form_tag_helper.rb | 128 ++------ app/javascript/beyond_canvas/base.js | 1 - .../beyond_canvas/initializers/inputs.js | 59 ---- .../beyond_canvas_custom_styles.scss | 28 -- 19 files changed, 23 insertions(+), 902 deletions(-) delete mode 100644 app/assets/images/icons/checkbox_checked.svg delete mode 100644 app/assets/images/icons/checkbox_unchecked.svg delete mode 100644 app/assets/images/icons/radiobutton_checked.svg delete mode 100644 app/assets/images/icons/radiobutton_unchecked.svg delete mode 100644 app/assets/images/icons/toggle.svg delete mode 100644 app/assets/images/icons/toggle_checked.svg delete mode 100644 app/assets/images/icons/toggle_unchecked.svg delete mode 100644 app/assets/stylesheets/beyond_canvas/components/_forms.scss delete mode 100644 app/assets/stylesheets/beyond_canvas/components/_inputs.scss delete mode 100644 app/assets/stylesheets/beyond_canvas/components/_texts.scss delete mode 100644 app/form_builders/beyond_canvas/form_builder.rb delete mode 100644 app/javascript/beyond_canvas/initializers/inputs.js diff --git a/app/assets/images/icons/checkbox_checked.svg b/app/assets/images/icons/checkbox_checked.svg deleted file mode 100644 index e6c72342..00000000 --- a/app/assets/images/icons/checkbox_checked.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/app/assets/images/icons/checkbox_unchecked.svg b/app/assets/images/icons/checkbox_unchecked.svg deleted file mode 100644 index 2788c6e6..00000000 --- a/app/assets/images/icons/checkbox_unchecked.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/app/assets/images/icons/radiobutton_checked.svg b/app/assets/images/icons/radiobutton_checked.svg deleted file mode 100644 index 11d958f2..00000000 --- a/app/assets/images/icons/radiobutton_checked.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/app/assets/images/icons/radiobutton_unchecked.svg b/app/assets/images/icons/radiobutton_unchecked.svg deleted file mode 100644 index e60f6e24..00000000 --- a/app/assets/images/icons/radiobutton_unchecked.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/app/assets/images/icons/toggle.svg b/app/assets/images/icons/toggle.svg deleted file mode 100644 index dcaacafe..00000000 --- a/app/assets/images/icons/toggle.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/app/assets/images/icons/toggle_checked.svg b/app/assets/images/icons/toggle_checked.svg deleted file mode 100644 index e3cde878..00000000 --- a/app/assets/images/icons/toggle_checked.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/app/assets/images/icons/toggle_unchecked.svg b/app/assets/images/icons/toggle_unchecked.svg deleted file mode 100644 index 742d8dd5..00000000 --- a/app/assets/images/icons/toggle_unchecked.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/app/assets/stylesheets/beyond_canvas/base.scss b/app/assets/stylesheets/beyond_canvas/base.scss index 4ad70620..980cdcb5 100644 --- a/app/assets/stylesheets/beyond_canvas/base.scss +++ b/app/assets/stylesheets/beyond_canvas/base.scss @@ -13,9 +13,7 @@ @import "components/actions"; @import "components/attachments"; @import "components/collapse"; -@import "components/forms"; @import "components/grids"; -@import "components/inputs"; @import "components/layouts"; @import "components/main"; @import "components/margins"; @@ -30,6 +28,5 @@ @import "components/step_list"; @import "components/svgs"; @import "components/tables"; -@import "components/texts"; @import "components/titles"; @import "components/tooltips"; diff --git a/app/assets/stylesheets/beyond_canvas/components/_forms.scss b/app/assets/stylesheets/beyond_canvas/components/_forms.scss deleted file mode 100644 index f955729c..00000000 --- a/app/assets/stylesheets/beyond_canvas/components/_forms.scss +++ /dev/null @@ -1,61 +0,0 @@ -%form__actions { - overflow: hidden; -} - -.form { - &__row, - &__actions { - width: 100%; - - &:not(:last-of-type) { - margin-bottom: 20px; - } - } - - &__actions { - &--left { - @extend %form__actions; - - > * { - float: left; - - &:not(:first-child) { - margin-left: 30px; - } - } - } - - &--right { - @extend %form__actions; - - > * { - float: right; - - &:not(:first-child) { - margin-right: 30px; - } - } - } - - &--space-between { - display: flex; - justify-content: space-between; - - > *:not(:last-child) { - > * { - &:not(:first-child) { - margin-left: 30px; - } - } - } - - > *:last-child { - > * { - &:not(:last-child) { - margin-right: 30px; - } - } - } - } - } -} diff --git a/app/assets/stylesheets/beyond_canvas/components/_inputs.scss b/app/assets/stylesheets/beyond_canvas/components/_inputs.scss deleted file mode 100644 index ef7f94d9..00000000 --- a/app/assets/stylesheets/beyond_canvas/components/_inputs.scss +++ /dev/null @@ -1,309 +0,0 @@ -$controls: checkbox, radio; - -#{$all-text-inputs}, -select { - background-color: var(--inputField-background); - border: 1px solid var(--inputField-border); - border-radius: var(--inputField-borderRadius); - box-sizing: border-box; - order: 2; - outline: none; - padding: 6px 8px; - width: 100%; - - &:disabled { - background-color: var(--inputField-background-disabled) !important; - color: var(--inputField-text-disabled); - opacity: 1; - } -} - -#{$all-text-inputs} { - line-height: 1; -} - -#{$all-text-inputs-focus}, -select:focus { - border-color: var(--inputField-border-focus); -} - -select { - @include prefixer(appearance, none, ("webkit", "moz")); - - background-image: linear-gradient(45deg, transparent 50%, gray 50%), linear-gradient(135deg, gray 50%, transparent 50%), linear-gradient(to right, $input-border-color, $input-border-color); - background-position: calc(100% - 19px) calc(1em + -1px), calc(100% - 15px) calc(1em + -1px), calc(100% - 2.5em) 0.5em; - background-size: 4px 4px, 4px 4px, 0 0; - background-repeat: no-repeat; -} - -textarea { - min-height: 100px; - resize: vertical; -} - -#{$all-text-inputs}, -select { - &.input__error { - border-left: 2px solid var(--formGroup-validation-error); - - &:focus { - border: 1px solid var(--inputField-border-focus); - } - } -} - -fieldset { - legend { - color: var(--workspace-headline); - font-size: 16px; - font-weight: bold; - margin-bottom: 6px; - } - - .form__row { - margin-bottom: 8px !important; - } -} - -.input { - &__label { - color: var(--formGroup-label); - display: block; - font-size: 13px; - font-weight: bold; - - &--disabled { - color: var(--check-disabled-text); - } - } - - &__hint { - color: var(--inputField-hint-text); - font-size: 13px; - margin-top: 1px; - } - - &__pre, - &__post { - background-color: var(--inputField-background-disabled); - border: 1px solid var(--inputField-border); - box-sizing: border-box; - color: var(--inputField-text-disabled); - line-height: 1; - outline: none; - padding: 6px 8px; - } - - &__pre { - border-bottom-left-radius: var(--inputField-borderRadius); - border-top-left-radius: var(--inputField-borderRadius); - border-right: 0; - order: 1; - - ~ input, - ~ select { - @include border-left-radius(0); - } - } - - &__post { - border-bottom-right-radius: var(--inputField-borderRadius); - border-top-right-radius: var(--inputField-borderRadius); - border-left: 0; - order: 10; - - ~ input, - ~ select { - @include border-right-radius(0); - } - } - - @each $control in $controls { - - &__#{$control} { - - &__control { - cursor: pointer; - } - - &--unchecked { - background: #fff; - - path { - fill: var(--uncheck-color); - } - } - - &--checked { - background: #fff; - - path { - fill: var(--check-color); - } - } - - &:not(:checked) + .input__#{$control}__control .input__#{$control}--unchecked, - &:checked + .input__#{$control}__control .input__#{$control}--checked { - display: block !important; - } - - &:disabled { - ~ div .input__label, - ~ div .input__hint { - cursor: default; - color: var(--check-disabled-text); - } - - + .input__#{$control}__control .input__#{$control}--unchecked, - + .input__#{$control}__control .input__#{$control}--checked { - cursor: default; - - path { - fill: var(--check-disabled-icon); - } - } - } - - ~ div .input__label { - padding-left: 7px; - } - - ~ div .input__hint { - padding-left: 7px; - padding-top: 4px; - } - - ~ div .input__label, - ~ div .input__hint { - line-height: 1; - cursor: pointer; - } - } - } - - &__toggle { - - &:checked + .input__toggle__control svg path:nth-of-type(1), - &:not(:checked) + .input__toggle__control svg path:nth-of-type(2) { - opacity: 1; - } - - &:checked + .input__toggle__control svg path { - transform: translateX(19.6px); - } - - &:disabled { - + .input__toggle__control { - cursor: default; - - svg { - - rect { - fill: var(--inputField-background-disabled); - } - - path { - fill: var(--check-disabled-icon); - } - } - } - - ~ div .input__label, - ~ div .input__hint { - cursor: default; - color: var(--check-disabled-text); - } - } - - &__control { - cursor: pointer; - width: 47px; - height: 26px; - - svg { - width: 47px; - height: 26px; - - rect { - stroke: var(--flipSwitch-border); - fill: transparent; - } - - path { - transition: 0.3s; - opacity: 0; - - &:nth-of-type(1) { - fill: var(--flipSwitch-checked-background); - } - - &:nth-of-type(2) { - fill: var(--flipSwitch-unchecked-background); - } - } - } - } - - ~ div .input__label { - color: var(--flipSwitch-label); - } - - ~ div .input__hint { - color: var(--flipSwitch-text); - padding-top: 4px; - } - - ~ div .input__label, - ~ div .input__hint { - padding-left: 10px; - line-height: 1; - cursor: pointer; - } - } - - &__file { - display: flex; - align-items: center; - - &__control { - display: inline-block; - } - - &__text { - display: flex; - margin-left: 20px; - font-weight: 500; - text-overflow: ellipsis; - overflow: hidden; - white-space: nowrap; - max-width: 200px; - } - - &__icon { - color: $main-color; - width: 14px; - margin-right: 5px; - } - } -} - -label.input__error { - @include padding(5px 7px); - @include position(absolute, calc(100% + 8px) null null 0); - - background-color: var(--formGroup-validation-error); - border-radius: var(--formGroup-validation-borderRadius); - color: var(--formGroup-validation-text); - font-size: 13px; - z-index: 1; - - &::before { - @include position(absolute, null null 100% 8px); - border-style: solid; - height: 0; - width: 0; - border-color: transparent transparent var(--formGroup-validation-error); - border-width: 0 6px 6px; - content: ''; - } -} diff --git a/app/assets/stylesheets/beyond_canvas/components/_texts.scss b/app/assets/stylesheets/beyond_canvas/components/_texts.scss deleted file mode 100644 index a283b833..00000000 --- a/app/assets/stylesheets/beyond_canvas/components/_texts.scss +++ /dev/null @@ -1,15 +0,0 @@ -.text { - &__align { - &--left { - text-align: left; - } - - &--center { - text-align: center; - } - - &--right { - text-align: right; - } - } -} diff --git a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss index ee22cec3..296724fe 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss @@ -112,38 +112,6 @@ --screen-xl: 112.5em; /* /* --------------------------------------------------- - /* Form elements - /* --------------------------------------------------- */ - --formGroup-label: gray; - --formGroup-validation-error: #da3c3c; - --formGroup-validation-text: white; - --formGroup-validation-borderRadius: 3px; - --inputField-borderRadius: 3px; - --inputField-border: #d2d2d2; - --inputField-border-focus: Orange; - --inputField-text: #3e3e3e; - --inputField-background: white; - --inputField-background-focus: white; - --inputField-background-disabled: #f5f5f5; - --inputField-text-disabled: #9a9a9a; - --inputField-placeholder-text: #a4a4a4; - --inputField-hint-text: gray; - --smartInputField-suggestion-active: #b3ecff; - --smartInputField-value-background: #d9d9d9; - --smartInputField-value-text: #666666; - --smartInputField-value-icon: currentColor; - --smartInputField-value-icon-hover: #4d4d4d; - --smartInputField-value-borderRadius: 3px; - /* - /* --------------------------------------------------- - /* Checkboxes and Radio buttons - /* --------------------------------------------------- */ - --check-color: #97c344; - --uncheck-color: #b3b3b3; - --check-disabled-text: #c5c5c5; - --check-disabled-icon: #d9d9d9; - /* - /* --------------------------------------------------- /* FlipSwitch /* --------------------------------------------------- */ --flipSwitch-unchecked-background: #b3b3b3; diff --git a/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss index 213aa371..fb654f85 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss @@ -49,45 +49,6 @@ $headline-line-height: 1; $container-spacing: 30px; -// ************************************************************ -// Inputs -// ************************************************************ - -$input-border-color: rgb(217, 216, 195) !default; -$input-border-color-focus: $palette-primary !default; -$input-errors-color: $palette-danger !default; -$input-disabled-background: rgb(245,244,239) !default; -$input-disabled-color: rgb(163,161,137) !default; - -// ************************************************************ -// Checkboxes -// ************************************************************ - -$checkbox-checked-color: #97C344 !default; // This value MUST be HEX -$checkbox-checked-background: #ffffff !default; // This value MUST be HEX -$checkbox-unchecked-color: #C2BF9D !default; // This value MUST be HEX -$checkbox-unchecked-background: #ffffff !default; // This value MUST be HEX - -// ************************************************************ -// Toggles -// ************************************************************ - -$toggle-border-color: #cbc9ad !default; -$toggle-disabled-background: #f5f4ef !default; -$toggle-checked-background: #97c344 !default; // This value MUST be HEX -$toggle-checked-color: #ffffff !default; // This value MUST be HEX -$toggle-unchecked-background: #c2bf9d !default; // This value MUST be HEX -$toggle-unchecked-color: #ffffff !default; // This value MUST be HEX - -// ************************************************************ -// Radiobuttons -// ************************************************************ - -$radio-checked-color: #97C344 !default; // This value MUST be HEX -$radio-checked-background: #ffffff !default; // This value MUST be HEX -$radio-unchecked-color: #C2BF9D !default; // This value MUST be HEX -$radio-unchecked-background: #ffffff !default; // This value MUST be HEX - // ************************************************************ // Hints // ************************************************************ diff --git a/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss index 59ffa7a8..a83ac824 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss @@ -49,45 +49,6 @@ $headline-line-height: 1; $container-spacing: 30px; -// ************************************************************ -// Inputs -// ************************************************************ - -$input-border-color: rgb(217, 216, 195) !default; -$input-border-color-focus: $palette-primary !default; -$input-errors-color: $palette-danger !default; -$input-disabled-background: rgb(245,244,239) !default; -$input-disabled-color: rgb(163,161,137) !default; - -// ************************************************************ -// Checkboxes -// ************************************************************ - -$checkbox-checked-color: #97C344 !default; // This value MUST be HEX -$checkbox-checked-background: #ffffff !default; // This value MUST be HEX -$checkbox-unchecked-color: #C2BF9D !default; // This value MUST be HEX -$checkbox-unchecked-background: #ffffff !default; // This value MUST be HEX - -// ************************************************************ -// Toggles -// ************************************************************ - -$toggle-border-color: #cbc9ad !default; -$toggle-disabled-background: #f5f4ef !default; -$toggle-checked-background: #97c344 !default; // This value MUST be HEX -$toggle-checked-color: #ffffff !default; // This value MUST be HEX -$toggle-unchecked-background: #c2bf9d !default; // This value MUST be HEX -$toggle-unchecked-color: #ffffff !default; // This value MUST be HEX - -// ************************************************************ -// Radiobuttons -// ************************************************************ - -$radio-checked-color: #97C344 !default; // This value MUST be HEX -$radio-checked-background: #ffffff !default; // This value MUST be HEX -$radio-unchecked-color: #C2BF9D !default; // This value MUST be HEX -$radio-unchecked-background: #ffffff !default; // This value MUST be HEX - // ************************************************************ // Hints // ************************************************************ diff --git a/app/form_builders/beyond_canvas/form_builder.rb b/app/form_builders/beyond_canvas/form_builder.rb deleted file mode 100644 index 1b76a0ed..00000000 --- a/app/form_builders/beyond_canvas/form_builder.rb +++ /dev/null @@ -1,200 +0,0 @@ -# frozen_string_literal: true - -module BeyondCanvas - class FormBuilder < ActionView::Helpers::FormBuilder # :nodoc: - include ActionView::Helpers::SanitizeHelper - - %i[email_field text_field number_field password_field text_area].each do |method| - define_method method do |attribute, args = {}| - field_wrapper(attribute, args) do - super(attribute, args) - end - end - end - - def select(attribute, choices, options = {}, args = {}) - field_wrapper(attribute, args) do - super(attribute, choices, options, args) - end - end - - def check_box(attribute, args = {}, checked_value = '1', unchecked_value = '0') - filed_identifyer = filed_identifyer(attribute) - - inline_wrapper(attribute, args, filed_identifyer) do - args.merge!(id: filed_identifyer) - .merge!(hidden: true) - .merge!(class: 'input__checkbox') - - super(attribute, args, checked_value, unchecked_value) + - @template.content_tag(:label, class: 'input__checkbox__control', for: filed_identifyer) do - @template.inline_svg_tag('icons/checkbox_checked.svg', style: 'display: none;', class: 'input__checkbox--checked') + - @template.inline_svg_tag('icons/checkbox_unchecked.svg', style: 'display: none;', class: 'input__checkbox--unchecked') - end - end - end - - def radio_button(attribute, value, args = {}) - filed_identifyer = filed_identifyer(attribute) - - inline_wrapper(attribute, args, filed_identifyer) do - args.merge!(id: filed_identifyer) - .merge!(hidden: true) - .merge!(class: 'input__radio') - - super(attribute, value, args) + - @template.content_tag(:label, class: 'input__radio__control', for: filed_identifyer) do - @template.inline_svg_tag('icons/radiobutton_checked.svg', style: 'display: none;', class: 'input__radio--checked') + - @template.inline_svg_tag('icons/radiobutton_unchecked.svg', style: 'display: none;', class: 'input__radio--unchecked') - end - end - end - - def file_field(attribute, args = {}) - field_wrapper(attribute, args) do - filed_identifyer = filed_identifyer(attribute) - - args.merge!(id: filed_identifyer) - .merge!(style: 'visibility: hidden; position: absolute;') - - custom_attributes = { - data: { - multiple_selection_text: '{count} files selected', - no_file_text: args.dig(:data, :no_file_text) || 'No file chosen' - } - } - - custom_attributes[:data].merge! args[:data] if args.has_key? :data - args.merge!(custom_attributes) - - @template.content_tag(:div, class: 'input__file') do - super(attribute, args) + - @template.content_tag(:label, - for: filed_identifyer, - class: 'input__file__control button__transparent--primary') do - args.dig(:data, :button_text) || 'Choose file' - end + - @template.content_tag(:span, - args.dig(:data, :no_file_text), - class: "input__file__text #{filed_identifyer}") - end - end - end - - def image_file_field(attribute, args = {}, &block) # IMPORTANT: Using this method inside a form_for block will set the enclosing form's encoding to multipart/form-data. - self.multipart = true # SEE: https://api.rubyonrails.org/v6.1.0/classes/ActionView/Helpers/FormBuilder.html#method-i-file_field - - image_field_wrapper(attribute, args) do - filed_identifyer = filed_identifyer(attribute) - placeholder_div_arguments = { - class: 'attachments js-placeholder', - js_placeholder_identifier: filed_identifyer, - } - - args.merge!(id: filed_identifyer) - .merge!(style: 'visibility: hidden; position: absolute;') - - placeholder_div_arguments.merge!(style: 'display: none') if image_exist?(attribute) - - @template.content_tag(:div, placeholder_div_arguments) do - [ - (@template.image_placeholder_tag(args.fetch(:placeholder)) if (args.fetch(:placeholder, true))), - ].compact.inject(:+) - end + - @template.content_tag(:div, class: 'attachments js-images', js_identifier: filed_identifyer) do - [ - (block.call if block_given?), - ].compact.inject(:+) - end + - @template.content_tag(:div, class: 'input__file') do - @template.file_field(@object_name, attribute, { onchange: 'bc.previewImage(event)' }.merge(args)) + - @template.content_tag(:label, - for: filed_identifyer, - class: 'input__file__control button__transparent--primary') do - image_exist?(attribute) ? args.dig(:data, :button_change_text) || 'Change image' : args.dig(:data, :button_upload_text) || 'Upload image' - end - end - end - end - - private - - def field_wrapper(attribute, args, &block) - label = args.delete(:label)&.html_safe - hint = sanitize(args.delete(:hint)) - pre = args.delete(:pre) - post = args.delete(:post) - - errors = object.errors[attribute].join(BeyondCanvas.configuration.model_errors_joined_by) if object.respond_to?(:errors) && object.errors.include?(attribute) - - @template.content_tag(:div, class: 'form__row') do - [ - (@template.content_tag(:label, label, class: 'input__label') if label.present?), - (@template.content_tag(:div, class: 'relative', style: "#{'display: flex;' if pre || post}") do - [ - (@template.content_tag(:span, pre, class: 'input__pre') if pre.present?), - (@template.content_tag(:span, post, class: 'input__post') if post.present?), - block.call, - (@template.content_tag(:label, errors, class: 'input__error') if errors.present?) - ].compact.inject(:+) - end), - (@template.content_tag(:div, hint, class: 'input__hint') if hint.present?) - ].compact.inject(:+) - end - end - - def image_field_wrapper(attribute, args, &block) - label = sanitize(args.delete(:label)) - hint = sanitize(args.delete(:hint)) - pre = args.delete(:pre) - post = args.delete(:post) - - errors = object.errors[attribute].join(BeyondCanvas.configuration.model_errors_joined_by) if object.respond_to?(:errors) && object.errors.include?(attribute) - - @template.content_tag(:div, class: 'form__row') do - [ - (@template.content_tag(:label, label, class: 'input__label') if label.present?), - (@template.content_tag(:div, hint, class: 'input__hint', style: 'margin-bottom: 10x') if hint.present?), - (@template.content_tag(:div, class: 'relative', style: "#{'display: flex;' if pre || post}") do - [ - (@template.content_tag(:span, pre, class: 'input__pre') if pre.present?), - (@template.content_tag(:span, post, class: 'input__post') if post.present?), - block.call, - (@template.content_tag(:label, errors, class: 'input__error') if errors.present?) - ].compact.inject(:+) - end), - ].compact.inject(:+) - end - end - - def inline_wrapper(attribute, args, filed_identifyer, &block) - label = args.delete(:label)&.html_safe - hint = sanitize(args.delete(:hint)) - errors = object.errors[attribute].join(BeyondCanvas.configuration.model_errors_joined_by) if object.respond_to?(:errors) && object.errors.include?(attribute) - - @template.content_tag(:div, class: 'form__row') do - @template.content_tag(:div, class: 'relative', style: 'display: flex; align-items: center;') do - block.call + - (@template.content_tag(:div) do - [ - (@template.content_tag(:label, label, class: "input__label", for: filed_identifyer) if label.present?), - (@template.content_tag(:label, hint, class: 'input__hint', for: filed_identifyer) if hint.present?) - ].compact.inject(:+) - end if label.present? || hint.present?) + - (@template.content_tag(:label, errors, class: 'input__error') if errors.present?) - end - end - end - - def filed_identifyer(attribute) - "#{attribute}_#{DateTime.now.strftime('%Q') + rand(10_000).to_s}" - end - - def image_exist?(attribute) - image = @object.send(attribute) - - image.class == ActiveStorage::Attached::One && image.attachment.present? || - image.class == ActiveStorage::Attached::Many && image.attachments.present? - end - end -end diff --git a/app/helpers/beyond_canvas/form_tag_helper.rb b/app/helpers/beyond_canvas/form_tag_helper.rb index d0fa4b97..26cc69fa 100644 --- a/app/helpers/beyond_canvas/form_tag_helper.rb +++ b/app/helpers/beyond_canvas/form_tag_helper.rb @@ -2,98 +2,33 @@ module BeyondCanvas module FormTagHelper - %i[email_field_tag text_field_tag password_field_tag text_area_tag].each do |method| - define_method method do |name, value = nil, options = {}| - field_wrapper(name, options) do - super(name, value, options) - end - end - end - - def select_tag(name, option_tags = nil, options = {}) + def text_area_tag(name, content = nil, options = {}) field_wrapper(name, options) do - super(name, option_tags, options) - end - end - - def check_box_tag(name, value = 1, checked = false, options = {}) - filed_identifyer = filed_identifyer(name) - - inline_wrapper(name, options, filed_identifyer) do - - options.merge!(id: filed_identifyer) - .merge!(hidden: true) - .merge!(class: 'input__checkbox') - - super(name, value, checked, options) + - content_tag(:label, class: 'input__checkbox__control', for: filed_identifyer) do - inline_svg_tag('icons/checkbox_checked.svg', style: 'display: none;', class: 'input__checkbox--checked') + - inline_svg_tag('icons/checkbox_unchecked.svg', style: 'display: none;', class: 'input__checkbox--unchecked') - end - end - end - - def radio_button_tag(name, value, checked = false, options = {}) - filed_identifyer = filed_identifyer(name) - - inline_wrapper(name, options, filed_identifyer) do - - options.merge!(id: filed_identifyer) - .merge!(hidden: true) - .merge!(class: 'input__radio') - - super(name, value, checked, options) + - content_tag(:label, class: 'input__radio__control', for: filed_identifyer) do - inline_svg_tag('icons/radiobutton_checked.svg', style: 'display: none;', class: 'input__radio--checked') + - inline_svg_tag('icons/radiobutton_unchecked.svg', style: 'display: none;', class: 'input__radio--unchecked') - end - end - end - - def toggle_tag(name, value = 1, checked = false, options = {}) - filed_identifyer = filed_identifyer(name) - - inline_wrapper(name, options, filed_identifyer) do - - options.merge!(id: filed_identifyer) - .merge!(hidden: true) - .merge!(class: 'input__toggle') - - html_options = { type: 'checkbox', name: name, value: value }.update(options.stringify_keys) - html_options['checked'] = 'checked' if checked - - tag(:input, html_options) + - content_tag(:label, class: 'input__toggle__control', for: filed_identifyer) do - inline_svg_tag('icons/toggle.svg') - end + super(name, content, options) end end def hidden_field_tag(name, value = nil, options = {}) - tag :input, { type: :text, name: name, id: sanitize_to_id(name), value: value }.update(options.stringify_keys.merge(type: :hidden)) - end - - def number_field_tag(name, value = nil, options = {}) - field_wrapper(name, options) do - options = options.stringify_keys - if (range = options.delete('in') || options.delete('within')) - options.update(min: range.min, max: range.max) - end - tag :input, { type: 'number', name: name, id: sanitize_to_id(name), value: value }.update(options.stringify_keys) - end + tag :input, + { type: :text, name: name, id: sanitize_to_id(name), + value: value }.update(options.stringify_keys.merge(type: :hidden)) end def image_attachment_tag(blob, delete_url = nil, args = {}) if blob figure_options = { - class: ['attachment', "attachment--#{blob.representable? ? 'preview' : 'file'}", "attachment--#{blob.filename.extension}"] - } + class: ['attachment', "attachment--#{blob.representable? ? 'preview' : 'file'}", + "attachment--#{blob.filename.extension}"] + } - content_tag(:figure, figure_options) do + tag.figure(figure_options) do if blob.representable? [ - (image_tag(args.present? && args[:transformations].present? ? blob.representation(args[:transformations]) : blob)), - (link_to(inline_svg_tag('icons/delete.svg'), delete_url, {class: 'attachment__delete-icon', method: :delete}.merge(args[:link_html_options].to_h)) unless delete_url.blank?) + image_tag(args.present? && args[:transformations].present? ? blob.representation(args[:transformations]) : blob), + (if delete_url.present? + link_to(inline_svg_tag('icons/delete.svg'), delete_url, + { class: 'attachment__delete-icon', method: :delete }.merge(args[:link_html_options].to_h)) + end) ].compact.inject(:+) end end @@ -111,53 +46,36 @@ def image_placeholder_tag(options) data: options[:data] } - content_tag(:figure, figure_options) do + tag.figure(figure_options) do [ - (inline_svg_tag('icons/placeholder.svg', options.fetch(:image_html_options, {}))) + inline_svg_tag('icons/placeholder.svg', options.fetch(:image_html_options, {})) ].compact.inject(:+) end end private - def field_wrapper(attribute, args, &block) + def field_wrapper(_attribute, args, &block) label = sanitize(args.delete(:label)) hint = sanitize(args.delete(:hint)) pre = args.delete(:pre) post = args.delete(:post) - content_tag(:div, class: 'form__row') do + tag.div(class: 'form__row') do [ - (content_tag(:label, label, class: 'input__label') if label.present?), - (content_tag(:div, class: 'relative', style: "#{'display: flex;' if pre || post}") do + (tag.label(label, class: 'input__label') if label.present?), + (tag.div(class: 'relative', style: ('display: flex;' if pre || post).to_s) do [ - (content_tag(:span, pre, class: 'input__pre') if pre.present?), - (content_tag(:span, post, class: 'input__post') if post.present?), + (tag.span(pre, class: 'input__pre') if pre.present?), + (tag.span(post, class: 'input__post') if post.present?), block.call ].compact.inject(:+) end), - (content_tag(:div, hint, class: 'input__hint') if hint.present?) + (tag.div(hint, class: 'input__hint') if hint.present?) ].compact.inject(:+) end end - def inline_wrapper(attribute, args, filed_identifyer, &block) - label = sanitize(args.delete(:label)) - hint = sanitize(args.delete(:hint)) - - content_tag(:div, class: 'form__row') do - content_tag(:div, class: 'relative', style: 'display: flex; align-items: center;') do - block.call + - (content_tag(:div) do - [ - (content_tag(:label, label, class: "input__label", for: filed_identifyer) if label.present?), - (content_tag(:label, hint, class: 'input__hint', for: filed_identifyer) if hint.present?) - ].compact.inject(:+) - end if label.present? || hint.present?) - end - end - end - def filed_identifyer(attribute) "#{attribute.to_s.delete('[]')}_#{DateTime.now.strftime('%Q') + rand(10_000).to_s}" end diff --git a/app/javascript/beyond_canvas/base.js b/app/javascript/beyond_canvas/base.js index 302b8e4c..d62650ba 100644 --- a/app/javascript/beyond_canvas/base.js +++ b/app/javascript/beyond_canvas/base.js @@ -1,4 +1,3 @@ import 'jquery'; import './initializers/collapse'; -import './initializers/inputs'; import './initializers/modals'; diff --git a/app/javascript/beyond_canvas/initializers/inputs.js b/app/javascript/beyond_canvas/initializers/inputs.js deleted file mode 100644 index b8c1fc32..00000000 --- a/app/javascript/beyond_canvas/initializers/inputs.js +++ /dev/null @@ -1,59 +0,0 @@ -(function ($) { - const onDOMReady = function () { - updateInputLabel(); - initializeClearOnClickInputs(); - addInputFocusClass(); - removeInputFocusClass(); - }; - - const updateInputLabel = () => { - $('form').on('change', 'input[type="file"]', function ({ currentTarget: input }) { - const label = $(`.input__file__text.${input.getAttribute('id')}`); - - if (!label) return; - - const noFileText = input.getAttribute('data-no-file-text'); - const svgFileIcon = ` - - - `; - - const fileName = input.files?.length > 1 ? - input.getAttribute('data-multiple-selection-text')?.replace( - '{count}', - input.files.length - ) : - input.value?.split('\\').pop() || ''; - - // Adds icon + filename to label or default no-file text - fileName ? label.html(`${svgFileIcon}${fileName}`) : label.html(noFileText); - }); - }; - - const addInputFocusClass = () => { - $('form').on('focus', 'input[type="file"]', function ({ currentTarget: input }) { - input.addClass('has-focus'); - }); - }; - - const removeInputFocusClass = () => { - $('form').on('blur', 'input[type="file"]', function ({ currentTarget: input }) { - input.removeClass('has-focus'); - }); - }; - - // Clear previous files on click to upload a new file. This applies to the files - // inputs inside a form that has the data-clear-on-click="true" setted - const initializeClearOnClickInputs = function () { - $('form').on('click', 'input[type="file"][data-clear-on-click="true"]', function () { - // Clear previous selected files - const dt = new DataTransfer(); - - this.files = dt.files; - // Trigger change - this.dispatchEvent(new Event('change', { bubbles: true, composed: true })); - }); - }; - - $(document).on('ready page:load turbolinks:load', () => onDOMReady()); -})(jQuery); diff --git a/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss b/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss index ec59ab09..0204e8e0 100644 --- a/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss +++ b/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss @@ -37,34 +37,6 @@ // $label-color: rgb(128, 128, 128); -// ************************************************************ -// Inputs -// ************************************************************ - -// $input-border-color: rgb(217, 216, 195); -// $input-border-color-focus: $palette-primary; -// $input-errors-color: $palette-danger; -// $input-disabled-background: rgb(245,244,239); -// $input-disabled-color: rgb(163,161,137); - -// ************************************************************ -// Checkboxes -// ************************************************************ - -// $checkbox-checked-color: #97C344; // This value MUST be HEX -// $checkbox-checked-background: #ffffff; // This value MUST be HEX -// $checkbox-unchecked-color: #C2BF9D; // This value MUST be HEX -// $checkbox-unchecked-background: #ffffff; // This value MUST be HEX - -// ************************************************************ -// Radiobuttons -// ************************************************************ - -// $radio-checked-color: #97C344; // This value MUST be HEX -// $radio-checked-background: #ffffff; // This value MUST be HEX -// $radio-unchecked-color: #C2BF9D; // This value MUST be HEX -// $radio-unchecked-background: #ffffff; // This value MUST be HEX - // ************************************************************ // Hints // ************************************************************ From ad50fa794287516672b2361e9a09098b4f259a3d Mon Sep 17 00:00:00 2001 From: kengallego Date: Thu, 26 Sep 2024 13:39:44 +0200 Subject: [PATCH 68/76] Remove spinner --- app/assets/javascripts/beyond_canvas/base.js | 26 ---------- .../stylesheets/beyond_canvas/base.scss | 1 - .../beyond_canvas/components/_spinner.scss | 48 ------------------- .../settings/_base_variables.scss | 6 --- 4 files changed, 81 deletions(-) delete mode 100644 app/assets/stylesheets/beyond_canvas/components/_spinner.scss diff --git a/app/assets/javascripts/beyond_canvas/base.js b/app/assets/javascripts/beyond_canvas/base.js index abfc0ba7..e367aa63 100644 --- a/app/assets/javascripts/beyond_canvas/base.js +++ b/app/assets/javascripts/beyond_canvas/base.js @@ -65,32 +65,6 @@ }); } }); - $.fn.extend({ - buildButton: function buildButton() { - var button = $(this); - if (button.is('[class^=button]')) { - if (!button.hasClass('button--no-spinner')) { - button.width(button.width()); - button.data('oldWidth', button.width()); - if (button.find('.spinner').length == 0) { - button.prepend("\n
\n
\n
\n
\n
"); - } - } - button.closest('form').on('ajax:success', function() { - $.restoreActionElements(); - }).on('ajax:error', function() { - $.restoreActionElements(); - }); - } - }, - showSpinner: function showSpinner() { - var button = $(this); - button.width(button.width() + $('.spinner').outerWidth(true)); - setTimeout(function() { - button.find('.spinner').css('display', 'inline-flex'); - }, SPINNER_ANIMATION_TIMEOUT); - } - }); (function($) { $(document).on('click', '[data-toggle="collapse"]', function(e) { e.preventDefault(); diff --git a/app/assets/stylesheets/beyond_canvas/base.scss b/app/assets/stylesheets/beyond_canvas/base.scss index 980cdcb5..d64148ed 100644 --- a/app/assets/stylesheets/beyond_canvas/base.scss +++ b/app/assets/stylesheets/beyond_canvas/base.scss @@ -23,7 +23,6 @@ @import "components/relative"; @import "components/select2"; @import "components/sidebar"; -@import "components/spinner"; @import "components/statuses"; @import "components/step_list"; @import "components/svgs"; diff --git a/app/assets/stylesheets/beyond_canvas/components/_spinner.scss b/app/assets/stylesheets/beyond_canvas/components/_spinner.scss deleted file mode 100644 index 97bbd8b6..00000000 --- a/app/assets/stylesheets/beyond_canvas/components/_spinner.scss +++ /dev/null @@ -1,48 +0,0 @@ -.spinner { - display: flex; - margin-right: 12px; - width: 24px; - text-align: center; - - > div { - margin: 0 !important; - width: 8px; - height: 8px; - border-radius: 100%; - display: inline-block; - -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both; - animation: sk-bouncedelay 1.4s infinite ease-in-out both; - } - - .bounce1 { - -webkit-animation-delay: -0.32s; - animation-delay: -0.32s; - } - - .bounce2 { - -webkit-animation-delay: -0.16s; - animation-delay: -0.16s; - } -} - -@-webkit-keyframes sk-bouncedelay { - 0%, 80%, 100% { - -webkit-transform: scale(0); - } - - 40% { - -webkit-transform: scale(1); - } -} - -@keyframes sk-bouncedelay { - 0%, 80%, 100% { - -webkit-transform: scale(0); - transform: scale(0); - } - - 40% { - -webkit-transform: scale(1); - transform: scale(1); - } -} diff --git a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss index 296724fe..c8ab69cc 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss @@ -45,12 +45,6 @@ --emptyState-help-text: gray; /* /* --------------------------------------------------- - /* Loading spinner - /* --------------------------------------------------- */ - --spinner-border: #c0c0c0; - --spinner-border-highlighting: #676767; - /* - /* --------------------------------------------------- /* States /* --------------------------------------------------- */ --danger-color: #da3c3c; From 7a34ed28de70d0ed8c21a66a9cb6f24f2c4df097 Mon Sep 17 00:00:00 2001 From: kengallego Date: Thu, 26 Sep 2024 13:47:22 +0200 Subject: [PATCH 69/76] Remove tooltip --- app/assets/images/icons/tooltip.svg | 1 - .../stylesheets/beyond_canvas/base.scss | 1 - .../beyond_canvas/components/_tooltips.scss | 105 ------------------ .../beyond_canvas/application_helper.rb | 11 -- 4 files changed, 118 deletions(-) delete mode 100644 app/assets/images/icons/tooltip.svg delete mode 100644 app/assets/stylesheets/beyond_canvas/components/_tooltips.scss diff --git a/app/assets/images/icons/tooltip.svg b/app/assets/images/icons/tooltip.svg deleted file mode 100644 index 9ae78df4..00000000 --- a/app/assets/images/icons/tooltip.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/app/assets/stylesheets/beyond_canvas/base.scss b/app/assets/stylesheets/beyond_canvas/base.scss index d64148ed..0f2a4cd7 100644 --- a/app/assets/stylesheets/beyond_canvas/base.scss +++ b/app/assets/stylesheets/beyond_canvas/base.scss @@ -28,4 +28,3 @@ @import "components/svgs"; @import "components/tables"; @import "components/titles"; -@import "components/tooltips"; diff --git a/app/assets/stylesheets/beyond_canvas/components/_tooltips.scss b/app/assets/stylesheets/beyond_canvas/components/_tooltips.scss deleted file mode 100644 index 21a9547e..00000000 --- a/app/assets/stylesheets/beyond_canvas/components/_tooltips.scss +++ /dev/null @@ -1,105 +0,0 @@ -$arrow-size: 8px; - -.tooltip { - cursor: default; - position: relative; - margin-left: 4px; - - &:hover .tooltip__bubble { - opacity: 1; - visibility: visible; - } - - > svg { - @include size(14px); - - fill: var(--primary-color); - transform: translateY(1px); - } - - &__label { - color: var(--primary-color); - font-weight: 700; - - &[data-placement="top"] ~ .tooltip__bubble, - &[data-placement="bottom"] ~ .tooltip__bubble { - left: 50%; - transform: translateX(-50%); - } - - &[data-placement="right"] ~ .tooltip__bubble, - &[data-placement="left"] ~ .tooltip__bubble { - top: 50%; - transform: translateY(-50%); - - &::before { - top: 50%; - transform: translateY(-50%); - } - } - - &[data-placement="top"] ~ .tooltip__bubble { - bottom: calc(1em + 16px); - - &::before { - @include triangle('down', 16px, 8px, white); - @include position(absolute, null null -8px null); - - content: ''; - left: 50%; - transform: translateX(-50%); - } - } - - &[data-placement="right"] ~ .tooltip__bubble { - left: 27px; - - &::before { - @include triangle('left', 8px, 16px, white); - @include position(absolute, null null null -8px); - - content: ''; - } - } - - &[data-placement="bottom"] ~ .tooltip__bubble { - top: calc(1em + 15px); - - &::before { - @include triangle('up', 16px, 8px, white); - @include position(absolute, -8px null null null); - - content: ''; - left: 50%; - transform: translateX(-50%); - } - } - - &[data-placement="left"] ~ .tooltip__bubble { - right: 27px; - - &::before { - @include triangle('right', 8px, 16px, white); - @include position(absolute, null -8px null null); - - content: ''; - } - } - } - - &__bubble { - position: absolute; - padding: 1em; - z-index: 99; - opacity: 0; - visibility: hidden; - max-width: 350px; - transition: opacity cubic-bezier(0, 0, 0.57, 0.74) 0.2s, 0.2s visibility; - border-radius: 4px; - background: white; - box-shadow: 0 0 14px 0 rgba(0, 0, 0, 0.4); - line-height: 1; - font-weight: normal; - width: max-content; - } -} diff --git a/app/helpers/beyond_canvas/application_helper.rb b/app/helpers/beyond_canvas/application_helper.rb index b26dd3b8..9c7e822b 100644 --- a/app/helpers/beyond_canvas/application_helper.rb +++ b/app/helpers/beyond_canvas/application_helper.rb @@ -58,17 +58,6 @@ def step_list(title = nil, steps: []) end end - %i[top right bottom left].each do |method| - define_method :"tooltip_#{method}" do |name = nil, &block| - name = block if block_given? - - content_tag('span', class: 'tooltip') do - inline_svg_tag('icons/tooltip.svg', class: 'tooltip__label', data: { placement: method }) + - content_tag('div', name, class: 'tooltip__bubble', &block) - end - end - end - private def unique_id(attribute) From 3031360bca3d5c957ca55b1132693cc77f188565 Mon Sep 17 00:00:00 2001 From: kengallego Date: Thu, 26 Sep 2024 13:49:40 +0200 Subject: [PATCH 70/76] Remove step_list --- .../stylesheets/beyond_canvas/base.scss | 1 - .../beyond_canvas/components/_step_list.scss | 67 ------------------- .../settings/_base_variables.scss | 9 --- .../beyond_canvas/application_helper.rb | 23 ------- 4 files changed, 100 deletions(-) delete mode 100644 app/assets/stylesheets/beyond_canvas/components/_step_list.scss diff --git a/app/assets/stylesheets/beyond_canvas/base.scss b/app/assets/stylesheets/beyond_canvas/base.scss index 0f2a4cd7..8def45fa 100644 --- a/app/assets/stylesheets/beyond_canvas/base.scss +++ b/app/assets/stylesheets/beyond_canvas/base.scss @@ -24,7 +24,6 @@ @import "components/select2"; @import "components/sidebar"; @import "components/statuses"; -@import "components/step_list"; @import "components/svgs"; @import "components/tables"; @import "components/titles"; diff --git a/app/assets/stylesheets/beyond_canvas/components/_step_list.scss b/app/assets/stylesheets/beyond_canvas/components/_step_list.scss deleted file mode 100644 index 5c1e0c51..00000000 --- a/app/assets/stylesheets/beyond_canvas/components/_step_list.scss +++ /dev/null @@ -1,67 +0,0 @@ -.step-list { - - &__container { - background-color: var(--stepList-background); - padding: 25px; - } - - &__title { - color: var(--stepList-headline); - font-size: 20px; - font-weight: bold; - margin-bottom: 15px; - margin-top: 0; - } - - &__items { - width: 100%; - margin-left: -2px; - - tr:last-child td { - padding-bottom: 0; - - &::after { - height: 0; - } - } - - td { - vertical-align: top; - padding-bottom: 20px; - position: relative; - } - } - - &__bubble-column { - width: 35px; - text-align: center; - - &::after { - content: ' '; - position: absolute; - left: 10px; - width: 2px; - height: 100%; - background-color: var(--stepList-bubble-line); - } - } - - &__bubble { - width: 20px; - height: 20px; - border-radius: 10px; - background-color: var(--stepList-bubble-background); - color: var(--stepList-bubble-text); - line-height: 19px; - font-size: 11px; - font-weight: bold; - } - - &__headline { - font-weight: bold; - line-height: 1.2; - margin-bottom: 5px; - color: var(--stepList-headline); - } - -} diff --git a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss index c8ab69cc..ae03eaf9 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss @@ -115,15 +115,6 @@ --flipSwitch-text: silver; /* /* --------------------------------------------------- - /* Step list - /* --------------------------------------------------- */ - --stepList-background: #f0f0f0; - --stepList-headline: #747474; - --stepList-bubble-line: #808080; - --stepList-bubble-background: #808080; - --stepList-bubble-text: white; - /* - /* --------------------------------------------------- /* Reseller logo /* --------------------------------------------------- */ --logo-width: 238px; diff --git a/app/helpers/beyond_canvas/application_helper.rb b/app/helpers/beyond_canvas/application_helper.rb index 9c7e822b..67a81cee 100644 --- a/app/helpers/beyond_canvas/application_helper.rb +++ b/app/helpers/beyond_canvas/application_helper.rb @@ -35,29 +35,6 @@ def collapse(name, html_options = nil, &block) end end - def step_list(title = nil, steps: []) - content_tag('div', class: 'step-list__container') do - [ - (content_tag('h4', raw(title), class: 'step-list__title') if title.present?), - content_tag('table', class: 'step-list__items') do - content_tag('tbody') do - safe_join(steps.each_with_index.collect do |step, index| - content_tag('tr') do - content_tag('td', class: 'step-list__bubble-column') do - content_tag('div', index + 1, class: 'step-list__bubble') - end + - content_tag('td') do - content_tag('strong', raw(step[:headline]), class: 'step-list__headline') + - content_tag('p', raw(step[:description]), class: 'step-list__description') - end - end - end) - end - end - ].compact.inject(:+) - end - end - private def unique_id(attribute) From f6d041528e89fa7afa550ae07900224d9a2e6ec7 Mon Sep 17 00:00:00 2001 From: kengallego Date: Thu, 26 Sep 2024 13:53:19 +0200 Subject: [PATCH 71/76] Remove tables and titles --- .../stylesheets/beyond_canvas/base.scss | 2 -- .../beyond_canvas/components/_tables.scss | 36 ------------------- .../beyond_canvas/components/_titles.scss | 7 ---- .../settings/_base_variables.scss | 12 ------- .../settings/_constant_variables.scss | 6 ---- .../settings/_custom_variables.scss | 6 ---- .../beyond_canvas_custom_styles.scss | 13 ------- 7 files changed, 82 deletions(-) delete mode 100644 app/assets/stylesheets/beyond_canvas/components/_tables.scss delete mode 100644 app/assets/stylesheets/beyond_canvas/components/_titles.scss diff --git a/app/assets/stylesheets/beyond_canvas/base.scss b/app/assets/stylesheets/beyond_canvas/base.scss index 8def45fa..9e122b93 100644 --- a/app/assets/stylesheets/beyond_canvas/base.scss +++ b/app/assets/stylesheets/beyond_canvas/base.scss @@ -25,5 +25,3 @@ @import "components/sidebar"; @import "components/statuses"; @import "components/svgs"; -@import "components/tables"; -@import "components/titles"; diff --git a/app/assets/stylesheets/beyond_canvas/components/_tables.scss b/app/assets/stylesheets/beyond_canvas/components/_tables.scss deleted file mode 100644 index 7602cf92..00000000 --- a/app/assets/stylesheets/beyond_canvas/components/_tables.scss +++ /dev/null @@ -1,36 +0,0 @@ -.table { - border-collapse: collapse; - table-layout: fixed; - width: 100%; - - th, td { - box-sizing: border-box; - padding: 15px; - text-align: left; - } - - thead { - tr { - font-weight: 700; - - &:first-child { - background-color: var(--table-header-background); - } - - &:nth-child(2) { - border-bottom: 2px solid var(--table-row-border); - } - } - } - - tbody { - tr { - background-color: var(--table-row-background); - border-bottom: var(--table-row-border); - - &:hover { - background-color: var(--table-row-background-hover); - } - } - } -} diff --git a/app/assets/stylesheets/beyond_canvas/components/_titles.scss b/app/assets/stylesheets/beyond_canvas/components/_titles.scss deleted file mode 100644 index a1735291..00000000 --- a/app/assets/stylesheets/beyond_canvas/components/_titles.scss +++ /dev/null @@ -1,7 +0,0 @@ -.title { - margin-bottom: 25px; - line-height: 1; - font-weight: normal; - font-size: 190%; - color: var(--workspace-headline); -} diff --git a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss index ae03eaf9..03a26fee 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss @@ -82,18 +82,6 @@ --textEditor-button-icon-disabled: #b3b3b3; /* /* --------------------------------------------------- - /* Table - /* --------------------------------------------------- */ - --table-row-border: 1px solid #e6e6e6; - --table-row-background: white; - --table-row-background-hover: #b3ecff; - --table-header-background: #ebebeb; - --table-header-link: #3e3e3e; - --table-header-link-hover: #252525; - --table-header-sort-icon-default: #b3b3b3; - --table-header-sort-icon: currentColor; - /* - /* --------------------------------------------------- /* Media queries /* --------------------------------------------------- */ --screen-xs-max: 47.9375em; diff --git a/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss index fb654f85..6b478503 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss @@ -69,12 +69,6 @@ $logo-margin-bottom-public: 34px; $comment-background: rgb(246, 246, 243) !default; $comment-color: rgb(170, 169, 156) !default; -// ************************************************************ -// Titles -// ************************************************************ - -$title-color: rgb(122, 118, 76) !default; - // ************************************************************ // Menu // ************************************************************ diff --git a/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss index a83ac824..18a34360 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss @@ -69,12 +69,6 @@ $logo-margin-bottom-public: 34px; $comment-background: rgb(246, 246, 243) !default; $comment-color: rgb(170, 169, 156) !default; -// ************************************************************ -// Titles -// ************************************************************ - -$title-color: rgb(122, 118, 76) !default; - // ************************************************************ // Menu // ************************************************************ diff --git a/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss b/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss index 0204e8e0..882332ca 100644 --- a/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss +++ b/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss @@ -50,13 +50,6 @@ // $logo-margin-top-public: 0; // $logo-margin-bottom-public: 34px; -// ************************************************************ -// Tables -// ************************************************************ - -// $table-header-background: rgb(243, 242, 236); -// $table-border-color: rgb(233, 232, 220); - // ************************************************************ // Comments // ************************************************************ @@ -77,12 +70,6 @@ // $status-neutral-background: rgb(224,223,205); // $status-neutral-color: rgb(155,151,100); -// ************************************************************ -// Titles -// ************************************************************ - -// $title-color: rgb(122, 118, 76); - // ************************************************************ // Menu // ************************************************************ From 718128014151037e90cb7f805643621755366288 Mon Sep 17 00:00:00 2001 From: kengallego Date: Thu, 26 Sep 2024 13:54:57 +0200 Subject: [PATCH 72/76] Remove status --- .../stylesheets/beyond_canvas/base.scss | 1 - .../beyond_canvas/components/_statuses.scss | 28 ------------------- .../settings/_base_variables.scss | 13 --------- app/helpers/beyond_canvas/statuses_helper.rb | 26 ----------------- .../beyond_canvas_custom_styles.scss | 13 --------- 5 files changed, 81 deletions(-) delete mode 100644 app/assets/stylesheets/beyond_canvas/components/_statuses.scss delete mode 100644 app/helpers/beyond_canvas/statuses_helper.rb diff --git a/app/assets/stylesheets/beyond_canvas/base.scss b/app/assets/stylesheets/beyond_canvas/base.scss index 9e122b93..845eeb53 100644 --- a/app/assets/stylesheets/beyond_canvas/base.scss +++ b/app/assets/stylesheets/beyond_canvas/base.scss @@ -23,5 +23,4 @@ @import "components/relative"; @import "components/select2"; @import "components/sidebar"; -@import "components/statuses"; @import "components/svgs"; diff --git a/app/assets/stylesheets/beyond_canvas/components/_statuses.scss b/app/assets/stylesheets/beyond_canvas/components/_statuses.scss deleted file mode 100644 index 6137c883..00000000 --- a/app/assets/stylesheets/beyond_canvas/components/_statuses.scss +++ /dev/null @@ -1,28 +0,0 @@ -.status { - @include padding(4px 6px); - font-size: 12px; - border-radius: 3px; - line-height: 1.2; - font-weight: 500; - - &--good { - background-color: var(--active-status-background); - color: var(--active-status-text); - } - - &--warning { - background-color: var(--todo-status-background); - color: var(--todo-status-text); - } - - &--danger { - background-color: var(--danger-status-background); - color: var(--danger-status-text); - } - - &--neutral { - background-color: var(--outline-status-background); - border: 1px solid var(--outline-status-border); - color: var(--outline-status-text); - } -} diff --git a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss index 03a26fee..988c7c11 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss @@ -53,19 +53,6 @@ --disabled-color: #d0d0d0; --default-color: #999999; /* - /* --------------------------------------------------- - /* Status bubbles - /* --------------------------------------------------- */ - --todo-status-background: #f9dca7; - --todo-status-text: #af740b; - --active-status-background: #cde2a5; - --active-status-text: #4e6721; - --danger-status-background: #eeb3a7; - --danger-status-text: #c72626; - --outline-status-background: transparent; - --outline-status-border: #b3b3b3; - --outline-status-text: #808080; - /* /* --------------------------------------------------- /* RichTextEditor /* --------------------------------------------------- */ diff --git a/app/helpers/beyond_canvas/statuses_helper.rb b/app/helpers/beyond_canvas/statuses_helper.rb deleted file mode 100644 index 4427af75..00000000 --- a/app/helpers/beyond_canvas/statuses_helper.rb +++ /dev/null @@ -1,26 +0,0 @@ -# frozen_string_literal: true - -module BeyondCanvas - module StatusesHelper # :nodoc: - %i[good warning danger neutral].each do |method| - define_method :"status_#{method}" do |name = nil, html_options = nil, &block| - status_render(method, name, html_options, &block) - end - end - - private - - def status_render(method, name = nil, html_options = nil, &block) - if block_given? - html_options = name - name = block - end - - html_options ||= {} - - html_options.merge!(class: "status status--#{method}") { |_key, old_val, new_val| [new_val, old_val].join(' ') } - - content_tag('span', block_given? ? capture(&name) : name, html_options) - end - end -end diff --git a/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss b/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss index 882332ca..e1152f45 100644 --- a/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss +++ b/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss @@ -57,19 +57,6 @@ // $comment-background: rgb(246, 246, 243); // $comment-color: rgb(170, 169, 156); -// ************************************************************ -// Status -// ************************************************************ - -// $status-good-background: rgb(205,225,165); -// $status-good-color: rgb(85,110,41); -// $status-warning-background: rgb(249,220,166); -// $status-warning-color: rgb(178,120,18); -// $status-danger-background: rgb(247,174,163); -// $status-danger-color: rgb(164,35,34); -// $status-neutral-background: rgb(224,223,205); -// $status-neutral-color: rgb(155,151,100); - // ************************************************************ // Menu // ************************************************************ From e01e41a44d1a8c126ebb8d6219a268d3e5aa0bf8 Mon Sep 17 00:00:00 2001 From: kengallego Date: Thu, 26 Sep 2024 14:01:13 +0200 Subject: [PATCH 73/76] Remove headline and svg --- app/assets/stylesheets/beyond_canvas/base.scss | 1 - .../stylesheets/beyond_canvas/components/_svgs.scss | 11 ----------- .../beyond_canvas/settings/_constant_variables.scss | 6 ------ .../beyond_canvas/settings/_custom_variables.scss | 6 ------ .../templates/beyond_canvas_custom_styles.scss | 6 ------ public/styles.css | 12 ------------ 6 files changed, 42 deletions(-) delete mode 100644 app/assets/stylesheets/beyond_canvas/components/_svgs.scss diff --git a/app/assets/stylesheets/beyond_canvas/base.scss b/app/assets/stylesheets/beyond_canvas/base.scss index 845eeb53..13c3af74 100644 --- a/app/assets/stylesheets/beyond_canvas/base.scss +++ b/app/assets/stylesheets/beyond_canvas/base.scss @@ -23,4 +23,3 @@ @import "components/relative"; @import "components/select2"; @import "components/sidebar"; -@import "components/svgs"; diff --git a/app/assets/stylesheets/beyond_canvas/components/_svgs.scss b/app/assets/stylesheets/beyond_canvas/components/_svgs.scss deleted file mode 100644 index e0a25610..00000000 --- a/app/assets/stylesheets/beyond_canvas/components/_svgs.scss +++ /dev/null @@ -1,11 +0,0 @@ -svg { - .surface { - fill: var(--emptyState-surface); - } - .bubbles { - fill: var(--emptyState-bubbles); - } - .outline { - fill: var(--emptyState-outline); - } -} diff --git a/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss index 6b478503..b0b028c1 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss @@ -37,12 +37,6 @@ $main-font-family: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxyge $main-line-height: 1.5; $main-font-size: 14px; -// ************************************************************ -// Headlines -// ************************************************************ - -$headline-line-height: 1; - // ************************************************************ // Containers // ************************************************************ diff --git a/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss index 18a34360..19f2e78f 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss @@ -37,12 +37,6 @@ $main-font-family: '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxyge $main-line-height: 1.5; $main-font-size: 14px; -// ************************************************************ -// Headlines -// ************************************************************ - -$headline-line-height: 1; - // ************************************************************ // Containers // ************************************************************ diff --git a/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss b/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss index e1152f45..7bdad9e4 100644 --- a/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss +++ b/lib/generators/beyond_canvas/custom_styles/templates/beyond_canvas_custom_styles.scss @@ -20,12 +20,6 @@ // $main-color: rgb(62, 62, 62); -// ************************************************************ -// Headlines -// ************************************************************ - -// $headline-color: rgb(122, 118, 76); - // ************************************************************ // Containers // ************************************************************ diff --git a/public/styles.css b/public/styles.css index a6fa341e..c6f8b0f1 100644 --- a/public/styles.css +++ b/public/styles.css @@ -53,14 +53,6 @@ body { margin-right: 40px; } -.headline { - color: #7a764c; - font-size: 42px; - font-weight: 100; - line-height: 1; - margin-bottom: 20px; -} - .text { color: #808080; font-size: 17px; @@ -76,10 +68,6 @@ body { text-align: center; } - .headline { - text-align: center; - } - .container__icon { padding-left: 30px; } From 393991ff7bc5ee6793e2328248560dd4cdbb538f Mon Sep 17 00:00:00 2001 From: kengallego Date: Thu, 26 Sep 2024 14:18:03 +0200 Subject: [PATCH 74/76] Remove collapse --- app/assets/javascripts/beyond_canvas/base.js | 29 -------------- .../stylesheets/beyond_canvas/base.scss | 1 - .../beyond_canvas/components/_collapse.scss | 33 ---------------- .../settings/_constant_variables.scss | 6 --- .../settings/_custom_variables.scss | 6 --- .../beyond_canvas/application_helper.rb | 23 ----------- app/javascript/beyond_canvas/base.js | 1 - .../beyond_canvas/initializers/collapse.js | 38 ------------------- 8 files changed, 137 deletions(-) delete mode 100644 app/assets/stylesheets/beyond_canvas/components/_collapse.scss delete mode 100644 app/javascript/beyond_canvas/initializers/collapse.js diff --git a/app/assets/javascripts/beyond_canvas/base.js b/app/assets/javascripts/beyond_canvas/base.js index e367aa63..390bbfd4 100644 --- a/app/assets/javascripts/beyond_canvas/base.js +++ b/app/assets/javascripts/beyond_canvas/base.js @@ -65,35 +65,6 @@ }); } }); - (function($) { - $(document).on('click', '[data-toggle="collapse"]', function(e) { - e.preventDefault(); - var target = $(this).attr('data-target'); - if ($(target).is(':hidden')) { - $(this).openCollapse(); - } else { - $(this).closeCollapse(); - } - }); - })(jQuery); - $.fn.extend({ - openCollapse: function openCollapse() { - var target = $(this).attr('data-target'); - $(this).trigger('bc.collapse.open'); - $(this).attr('data-visible', true); - $(this).find('.collapse__icon').addClass('collapse__icon--open'); - $(target).slideDown(); - $(this).trigger('bc.collapse.opened'); - }, - closeCollapse: function closeCollapse() { - var target = $(this).attr('data-target'); - $(this).trigger('bc.collapse.close'); - $(this).attr('data-visible', false); - $(this).find('.collapse__icon').removeClass('collapse__icon--open'); - $(target).slideUp(); - $(this).trigger('bc.collapse.closed'); - } - }); (function($) { var onDOMReady = function onDOMReady() { updateInputLabel(); diff --git a/app/assets/stylesheets/beyond_canvas/base.scss b/app/assets/stylesheets/beyond_canvas/base.scss index 13c3af74..354be097 100644 --- a/app/assets/stylesheets/beyond_canvas/base.scss +++ b/app/assets/stylesheets/beyond_canvas/base.scss @@ -12,7 +12,6 @@ @import "components/action_bar"; @import "components/actions"; @import "components/attachments"; -@import "components/collapse"; @import "components/grids"; @import "components/layouts"; @import "components/main"; diff --git a/app/assets/stylesheets/beyond_canvas/components/_collapse.scss b/app/assets/stylesheets/beyond_canvas/components/_collapse.scss deleted file mode 100644 index b27f172b..00000000 --- a/app/assets/stylesheets/beyond_canvas/components/_collapse.scss +++ /dev/null @@ -1,33 +0,0 @@ -.collapse { - - &:not(:last-child) { - margin-bottom: 24px; - } - - &__content { - display: none; - } - - &__button { - color: var(--primaryLink-color); - font-weight: 700; - cursor: pointer; - display: block; - line-height: 1; - margin-bottom: 4px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - - &__icon { - @include size(10px); - - fill: var(--primaryLink-color); - margin-right: 2px; - - &--open { - transform: rotate(90deg); - } - } -} diff --git a/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss index b0b028c1..fc998b5c 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_constant_variables.scss @@ -128,12 +128,6 @@ $select2-disabled-background: rgb(245, 244, 239) !default; $select2-option-hover-background: rgb(229, 241, 240) !default; $select2-option-hover-color: rgb(62, 62, 62) !default; -// ************************************************************ -// Collapsibles -// ************************************************************ - -$collapsible-color: $palette-primary !default; - //************************************************************ // Attachments //************************************************************ diff --git a/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss index 19f2e78f..6e0977a3 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_custom_variables.scss @@ -127,9 +127,3 @@ $select2-tag-color: rgb(122, 118, 76) !default; $select2-disabled-background: rgb(245, 244, 239) !default; $select2-option-hover-background: rgb(229, 241, 240) !default; $select2-option-hover-color: rgb(62, 62, 62) !default; - -// ************************************************************ -// Collapsibles -// ************************************************************ - -$collapsible-color: $palette-primary !default; diff --git a/app/helpers/beyond_canvas/application_helper.rb b/app/helpers/beyond_canvas/application_helper.rb index 67a81cee..ed2d311a 100644 --- a/app/helpers/beyond_canvas/application_helper.rb +++ b/app/helpers/beyond_canvas/application_helper.rb @@ -17,28 +17,5 @@ def logo_image_tag(logo_path, options = {}) image_tag logo_path, html_options end end - - def collapse(name, html_options = nil, &block) - html_options ||= {} - id = unique_id(:collapse) - - html_options.merge!(class: 'collapse__content') { |_key, old_val, new_val| [new_val, old_val].join(' ') } - html_options.merge!(id: id) - - content_tag('div', class: 'collapse') do - content_tag('a', class: 'collapse__button', title: name, data: { visible: false, toggle: 'collapse', target: "##{id}" }) do - inline_svg_tag('icons/arrow_right.svg', class: 'collapse__icon') + name - end + - content_tag('div', html_options) do - yield block if block_given? - end - end - end - - private - - def unique_id(attribute) - "#{attribute}_#{DateTime.now.strftime('%Q') + rand(10_000).to_s}" - end end end diff --git a/app/javascript/beyond_canvas/base.js b/app/javascript/beyond_canvas/base.js index d62650ba..95862c6c 100644 --- a/app/javascript/beyond_canvas/base.js +++ b/app/javascript/beyond_canvas/base.js @@ -1,3 +1,2 @@ import 'jquery'; -import './initializers/collapse'; import './initializers/modals'; diff --git a/app/javascript/beyond_canvas/initializers/collapse.js b/app/javascript/beyond_canvas/initializers/collapse.js deleted file mode 100644 index c80002a5..00000000 --- a/app/javascript/beyond_canvas/initializers/collapse.js +++ /dev/null @@ -1,38 +0,0 @@ -(function ($) { - $(document).on('click', '[data-toggle="collapse"]', function (e) { - e.preventDefault(); - - const target = $(this).attr('data-target'); - - if ($(target).is(':hidden')) { - $(this).openCollapse(); - } else { - $(this).closeCollapse(); - } - }); -})(jQuery); - -$.fn.extend({ - openCollapse: function () { - const target = $(this).attr('data-target'); - - $(this).trigger('bc.collapse.open'); - - $(this).attr('data-visible', true); - $(this).find('.collapse__icon').addClass('collapse__icon--open'); - $(target).slideDown(); - - $(this).trigger('bc.collapse.opened'); - }, - closeCollapse: function () { - const target = $(this).attr('data-target'); - - $(this).trigger('bc.collapse.close'); - - $(this).attr('data-visible', false); - $(this).find('.collapse__icon').removeClass('collapse__icon--open'); - $(target).slideUp(); - - $(this).trigger('bc.collapse.closed'); - }, -}); From 78b41eb611f5a1a104fd6156ac2b0ae96f968811 Mon Sep 17 00:00:00 2001 From: kengallego Date: Thu, 26 Sep 2024 14:19:28 +0200 Subject: [PATCH 75/76] Remove empty_state styles --- .../beyond_canvas/settings/_base_variables.scss | 9 --------- 1 file changed, 9 deletions(-) diff --git a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss index 988c7c11..3f3157f4 100644 --- a/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss +++ b/app/assets/stylesheets/beyond_canvas/settings/_base_variables.scss @@ -36,15 +36,6 @@ --modal-container-padding: 40px; /* /* --------------------------------------------------- - /* Empty states - /* --------------------------------------------------- */ - --emptyState-surface: #e3e3e3; - --emptyState-bubbles: #dedede; - --emptyState-outline: #575757; - --emptyState-headline: #676767; - --emptyState-help-text: gray; - /* - /* --------------------------------------------------- /* States /* --------------------------------------------------- */ --danger-color: #da3c3c; From c749b2da071f5b15cd2cef61a0c382fc89a25fd5 Mon Sep 17 00:00:00 2001 From: kengallego Date: Thu, 26 Sep 2024 14:20:52 +0200 Subject: [PATCH 76/76] Remove home svg --- app/assets/images/icons/home.svg | 1 - 1 file changed, 1 deletion(-) delete mode 100644 app/assets/images/icons/home.svg diff --git a/app/assets/images/icons/home.svg b/app/assets/images/icons/home.svg deleted file mode 100644 index c3facba9..00000000 --- a/app/assets/images/icons/home.svg +++ /dev/null @@ -1 +0,0 @@ -